summaryrefslogtreecommitdiff
path: root/modules/organize/js/organize.js
diff options
context:
space:
mode:
Diffstat (limited to 'modules/organize/js/organize.js')
-rw-r--r--modules/organize/js/organize.js172
1 files changed, 172 insertions, 0 deletions
diff --git a/modules/organize/js/organize.js b/modules/organize/js/organize.js
new file mode 100644
index 00000000..c3e5d3be
--- /dev/null
+++ b/modules/organize/js/organize.js
@@ -0,0 +1,172 @@
+/*
+ * @todo Trap resize of dialog and resize the child areas (tree, grid and edit form)
+ */
+var url;
+var height;
+
+function get_album_content() {
+ var grid_width = $("#gMicroThumbContainer").width();
+ url = $("#gMicroThumbContainer").attr("ref");
+ url = url.replace("__WIDTH__", grid_width);
+ url = url.replace("__HEIGHT__", height);
+
+ retrieve_micro_thumbs(url);
+}
+
+function retrieve_micro_thumbs() {
+ var offset = $("#gMicroThumbGrid li").length;
+ if (url == null) {
+ var grid_width = $("#gMicroThumbContainer").width();
+ url = $("#gMicroThumbContainer").attr("ref");
+ url = url.replace("__WIDTH__", grid_width);
+ url = url.replace("__HEIGHT__", height);
+ }
+ var url_data = url.replace("__OFFSET__", offset);
+ url_data = url.replace("__ITEM_ID__", item_id);
+ $.get(url_data, function(data) {
+ $("#gMicroThumbGrid").append(data);
+ get_more_data();
+ });
+}
+
+function get_more_data() {
+ var element = $("#gMicroThumbContainer").get(0);
+ var scrollHeight = element.scrollHeight;
+ var scrollTop = element.scrollTop;
+ var height = $("#gMicroThumbContainer").height();
+ var scrollPosition = scrollHeight - (scrollTop + height);
+ if (scrollPosition > 0 && scrollPosition <= 100) {
+ retrieve_micro_thumbs();
+ }
+}
+
+function toggle_select(event) {
+ var clone = null;
+ var id = $(this).attr("id").replace(/[^0-9]/g, "");
+
+ if ($(this).hasClass("gThumbSelected")) {
+ $(this).removeClass("gThumbSelected");
+ var newSelect = $(".gThumbSelected");
+ if (newSelect.size() == 1) {
+ clone = $(".gThumbSelected").children("img").clone(true);
+ id = $(".gThumbSelected").attr("id").replace(/[^0-9]/g, "");
+ } else {
+ clone = null;
+ }
+ } else {
+ clone = $(this).children("img").clone(true);
+ $(this).addClass("gThumbSelected");
+ }
+ switch ($(".gThumbSelected").size()) {
+ case 0:
+ reset_edit_select();
+ break;
+ case 1:
+ $("#gOrganizeFormThumb").empty();
+ $("#gOrganizeFormThumb").append(clone);
+ $("#gOrganizeFormNoImage").hide();
+ $("#gOrganizeFormMultipleImages").hide();
+ $("#gOrganizeFormThumb").show();
+ $("#gOrganizeButtonPane").show();
+ $.getJSON($("#gOrganizeFormInfo").attr("ref").replace("__ITEM_ID__", id), function(data) {
+ $("#gOrganizeFormTitle").text(data.title);
+ $("#gOrganizeFormOwner").text(data.owner);
+ $("#gOrganizeFormDate").text(data.date);
+ $("#gOrganizeFormDescription").text(data.description);
+ $("#gOrganizeFormInfo").show();
+ });
+ break;
+ default:
+ $("#gOrganizeFormThumb").hide();
+ $("#gOrganizeFormInfo").hide();
+ $("#gOrganizeFormMultipleImages").show();
+ }
+ event.preventDefault();
+}
+
+function reset_edit_select() {
+ $("#gOrganizeFormNoImage").show();
+ $("#gOrganizeFormThumb").hide();
+ $("#gOrganizeFormMultipleImages").hide();
+ $("#gOrganizeButtonPane").hide();
+ $("#gOrganizeFormInfo").hide();
+}
+
+function organize_toggle_children(event) {
+ var id = $(this).attr("ref");
+ var span_children = $("#gOrganizeChildren-" + id);
+ if ($(this).hasClass("ui-icon-plus")) {
+ $(this).removeClass("ui-icon-plus");
+ $(this).addClass("ui-icon-minus");
+ $("#gOrganizeChildren-" + id).removeClass("gBranchCollapsed");
+ } else {
+ $(this).removeClass("ui-icon-minus");
+ $(this).addClass("ui-icon-plus");
+ $("#gOrganizeChildren-" + id).addClass("gBranchCollapsed");
+ }
+ event.preventDefault();
+}
+
+function organize_open_folder(event) {
+ var selected = $(".gBranchSelected");
+ if ($(selected).attr("id") != $(this).attr("id")) {
+ $(selected).removeClass("gBranchSelected");
+ $(this).addClass("gBranchSelected");
+ item_id = $(this).attr("ref");
+ $("#gMicroThumbGrid").empty();
+ var url_header = $("#gDialog #hd").attr("ref").replace("__ITEM_ID__", item_id);
+ $.getJSON(url_header, function(data) {
+ $("#gOrganizeAlbumTitle").text(data.title);
+ $("#gOrganizeAlbumDescription").text(data.description);
+ });
+ reset_edit_select();
+ retrieve_micro_thumbs();
+ }
+ event.preventDefault();
+}
+
+function organize_dialog_init() {
+ var size = viewport_size();
+ height = size.height() - 100;
+ var width = size.width() - 100;
+
+ $("#gDialog").dialog("option", "width", width);
+ $("#gDialog").dialog("option", "height", height);
+
+ $("#gDialog").dialog("open");
+ if ($("#gDialog h1").length) {
+ $("#gDialog").dialog('option', 'title', $("#gDialog h1:eq(0)").html());
+ } else if ($("#gDialog fieldset legend").length) {
+ $("#gDialog").dialog('option', 'title', $("#gDialog fieldset legend:eq(0)").html());
+ }
+
+ height -= 2 * parseFloat($("#gDialog").css("padding-top"));
+ height -= 2 * parseFloat($("#gDialog").css("padding-bottom"));
+ height -= $("#gMicroThumbContainer").position().top;
+ height -= $("#gDialog #ft").height();
+ height = Math.round(height);
+
+ $("#gMicroThumbContainer").height(height);
+ $("#gOrganizeTreeContainer").height(height);
+ $("#gOrganizeEditContainer").height(height);
+
+ $(".gOrganizeBranch .ui-icon").click(organize_toggle_children);
+ $(".gBranchText").click(organize_open_folder);
+ retrieve_micro_thumbs(item_id);
+ //showLoading("#gDialog");
+}
+
+function viewport_size() {
+ return {
+ width : function() {
+ return window.innerWidth
+ || document.documentElement && document.documentElement.clientWidth
+ || document.body.clientWidth;
+ },
+ height : function() {
+ return window.innerHeight
+ || document.documentElement && document.documentElement.clientHeight
+ || document.body.clientHeight;
+ }
+ };
+}