summaryrefslogtreecommitdiff
path: root/lib/gallery.panel.js
blob: 98d78d2a4dacd03638183eccba246898777a19a6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
(function($) {
   $.widget("ui.galleryPanel", {
     _init: function() {
       var self = this;
       this.element.click(function(event) {
         event.preventDefault();
         var element = event.currentTarget;
         var parent = $(element).parent().parent();
         var sHref = $(element).attr("href");
         var parentClass = $(parent).attr("class");
         var ePanel = "<tr id=\"gPanel\"><td colspan=\"6\"></td></tr>";

         if ($("#gPanel").length) {
           $("#gPanel").slideUp("slow").remove();
           if ($(element).attr("orig_text")) {
             $(element).children(".gButtonText").text($(element).attr("orig_text"));
           }
         } else {
           $(parent).after(ePanel);
           $("#gPanel td").html(sHref);
           $.get(sHref, function(data) {
             $("#gPanel td").html(data);
             self._ajaxify_panel();
             if ($(element).attr("open_text")) {
               $(element).attr("orig_text", $(element).children(".gButtonText").text());
               $(element).children(".gButtonText").text($(element).attr("open_text"));
             }
             $("#gPanel").addClass(parentClass).show().slideDown("slow");
           });
         }
         return false;
       });
     },

     _ajaxify_panel: function () {
       var self = this;
       $("#gPanel td form").ajaxForm({
         dataType: "json",
         success: function(data) {
           if (data.form) {
             $("#gPanel td form").replaceWith(data.form);
             self._ajaxify_panel();
           }
           if (data.result == "success") {
             self._trigger("success", null, {});
             if (data.location) {
               window.location = data.location;
             } else {
               window.location.reload();
             }
           }
         }
       });
     },

     success: function(event, ui) {}
   });
 })(jQuery);