summaryrefslogtreecommitdiff
path: root/modules/gallery/js/quick.js
diff options
context:
space:
mode:
authorBharat Mediratta <bharat@menalto.com>2009-05-27 15:07:27 -0700
committerBharat Mediratta <bharat@menalto.com>2009-05-27 15:07:27 -0700
commit28b41056e3ea962dce1ad017a3c0a60252195e7a (patch)
tree82c11956bb13969e6c8ddeb39ccfce7ae70786ca /modules/gallery/js/quick.js
parent2e285cf3ecac742193457347ecb5c2d1121a1052 (diff)
Restructure things so that the application is now just another module.
Kohana makes this type of transition fairly straightforward in that all controllers/helpers/etc are still located in the cascading filesystem without any extra effort, except that I've temporarily added a hack to force modules/gallery into the module path. Rename what's left of "core" to be "application" so that it conforms more closely to the Kohana standard (basically, just application/config/config.php which is the minimal thing that you need in the application directory) There's still considerable work left to be done here.
Diffstat (limited to 'modules/gallery/js/quick.js')
-rw-r--r--modules/gallery/js/quick.js95
1 files changed, 95 insertions, 0 deletions
diff --git a/modules/gallery/js/quick.js b/modules/gallery/js/quick.js
new file mode 100644
index 00000000..e7f35cea
--- /dev/null
+++ b/modules/gallery/js/quick.js
@@ -0,0 +1,95 @@
+$(document).ready(function() {
+ if ($("#gAlbumGrid").length) {
+ // @todo Add quick edit pane for album (meta, move, permissions, delete)
+ $(".gItem").hover(show_quick, function() {});
+ }
+ if ($("#gPhoto").length) {
+ $("#gPhoto").hover(show_quick, function() {});
+ }
+});
+
+var show_quick = function() {
+ var cont = $(this);
+ var quick = $(this).find(".gQuick");
+ $("#gQuickPane").remove();
+ cont.append("<div id=\"gQuickPane\"></div>");
+ var img = cont.find(".gThumbnail,.gResize");
+ var pos = cont.position();
+ $("#gQuickPane").css({
+ "position": "absolute",
+ "top": pos.top,
+ "left": pos.left,
+ "text-align": "center",
+ "width": cont.innerWidth() + 1,
+ "height": "auto"
+ }).hide();
+ cont.hover(function() {}, hide_quick);
+ $.get(
+ quick.attr("href"),
+ {},
+ function(data, textStatus) {
+ $("#gQuickPane").html(data).slideDown("fast");
+ $(".ui-state-default").hover(
+ function(){
+ $(this).addClass("ui-state-hover");
+ },
+ function(){
+ $(this).removeClass("ui-state-hover");
+ }
+ );
+ $("#gQuickPane a:not(.options)").click(function(e) {
+ e.preventDefault();
+ if ($(this).attr("id") == "gQuickDelete" &&
+ !confirm($(this).attr("ref"))) {
+ return;
+ }
+ quick_do(cont, $(this), img);
+ });
+ $("#gQuickPane a.options").click(function(e) {
+ e.preventDefault();
+ $("#gQuickPaneOptions").slideToggle("fast");
+ });
+ }
+ );
+};
+
+var quick_do = function(cont, pane, img) {
+ if (pane.hasClass("ui-state-disabled")) {
+ return false;
+ }
+ if (pane.hasClass("gDialogLink")) {
+ openDialog(pane, function() { window.location.reload(); });
+ } else {
+ img.css("opacity", "0.1");
+ cont.addClass("gLoadingLarge");
+ $.ajax({
+ type: "GET",
+ url: pane.attr("href"),
+ dataType: "json",
+ success: function(data) {
+ img.css("opacity", "1");
+ cont.removeClass("gLoadingLarge");
+ if (data.src) {
+ img.attr("width", data.width);
+ img.attr("height", data.height);
+ img.attr("src", data.src);
+ if (data.height > data.width) {
+ img.css("margin-top", -32);
+ } else {
+ img.css("margin-top", 0);
+ }
+ } else if (data.location) {
+ window.location = data.location;
+ } else if (data.reload) {
+ window.location.reload();
+ }
+ }
+ });
+ }
+ return false;
+};
+
+var hide_quick = function() {
+ $("#gQuickPane").remove();
+};
+