510 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			510 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| (function() {
 | |
|   var $;
 | |
| 
 | |
|   $ = jQuery;
 | |
| 
 | |
|   $.widget("ui.dialogExtend", {
 | |
|     version: "2.0.0",
 | |
|     modes: {},
 | |
|     options: {
 | |
|       "closable": true,
 | |
|       "dblclick": false,
 | |
|       "titlebar": false,
 | |
|       "icons": {
 | |
|         "close": "ui-icon-closethick",
 | |
|         "restore": "ui-icon-newwin"
 | |
|       },
 | |
|       "load": null,
 | |
|       "beforeRestore": null,
 | |
|       "restore": null
 | |
|     },
 | |
|     _create: function() {
 | |
|       this._state = "normal";
 | |
|       if (!$(this.element[0]).data("ui-dialog")) {
 | |
|         $.error("jQuery.dialogExtend Error : Only jQuery UI Dialog element is accepted");
 | |
|       }
 | |
|       this._verifyOptions();
 | |
|       this._initStyles();
 | |
|       this._initButtons();
 | |
|       this._initTitleBar();
 | |
|       this._setState("normal");
 | |
|       this._on("load", function(e) {
 | |
|         return console.log("test", e);
 | |
|       });
 | |
|       return this._trigger("load");
 | |
|     },
 | |
|     _setState: function(state) {
 | |
|       $(this.element[0]).removeClass("ui-dialog-" + this._state).addClass("ui-dialog-" + state);
 | |
|       return this._state = state;
 | |
|     },
 | |
|     _verifyOptions: function() {
 | |
|       var name, _ref, _results;
 | |
| 
 | |
|       if (this.options.dblclick && !(this.options.dblclick in this.modes)) {
 | |
|         $.error("jQuery.dialogExtend Error : Invalid <dblclick> value '" + this.options.dblclick + "'");
 | |
|         this.options.dblclick = false;
 | |
|       }
 | |
|       if (this.options.titlebar && ((_ref = this.options.titlebar) !== "none" && _ref !== "transparent")) {
 | |
|         $.error("jQuery.dialogExtend Error : Invalid <titlebar> value '" + this.options.titlebar + "'");
 | |
|         this.options.titlebar = false;
 | |
|       }
 | |
|       _results = [];
 | |
|       for (name in this.modes) {
 | |
|         if (this["_verifyOptions_" + name]) {
 | |
|           _results.push(this["_verifyOptions_" + name]());
 | |
|         } else {
 | |
|           _results.push(void 0);
 | |
|         }
 | |
|       }
 | |
|       return _results;
 | |
|     },
 | |
|     _initStyles: function() {
 | |
|       var name, style, _results;
 | |
| 
 | |
|       if (!$(".dialog-extend-css").length) {
 | |
|         style = '';
 | |
|         style += '<style class="dialog-extend-css" type="text/css">';
 | |
|         style += '.ui-dialog .ui-dialog-titlebar-buttonpane>a { float: right; }';
 | |
|         style += '.ui-dialog .ui-dialog-titlebar-restore { width: 19px; height: 18px; }';
 | |
|         style += '.ui-dialog .ui-dialog-titlebar-restore span { display: block; margin: 1px; }';
 | |
|         style += '.ui-dialog .ui-dialog-titlebar-restore:hover,';
 | |
|         style += '.ui-dialog .ui-dialog-titlebar-restore:focus { padding: 0; }';
 | |
|         style += '.ui-dialog .ui-dialog-titlebar ::selection { background-color: transparent; }';
 | |
|         style += '</style>';
 | |
|         $(style).appendTo("body");
 | |
|       }
 | |
|       _results = [];
 | |
|       for (name in this.modes) {
 | |
|         _results.push(this["_initStyles_" + name]());
 | |
|       }
 | |
|       return _results;
 | |
|     },
 | |
|     _initButtons: function() {
 | |
|       var buttonPane, mode, name, titlebar, _ref,
 | |
|         _this = this;
 | |
| 
 | |
|       titlebar = $(this.element[0]).dialog("widget").find(".ui-dialog-titlebar");
 | |
|       buttonPane = $('<div class="ui-dialog-titlebar-buttonpane"></div>').appendTo(titlebar);
 | |
|       buttonPane.css({
 | |
|         "position": "absolute",
 | |
|         "top": "50%",
 | |
|         "right": "0.3em",
 | |
|         "margin-top": "-10px",
 | |
|         "height": "18px"
 | |
|       });
 | |
|       titlebar.find(".ui-dialog-titlebar-close").css({
 | |
|         "position": "relative",
 | |
|         "float": "right",
 | |
|         "top": "auto",
 | |
|         "right": "auto",
 | |
|         "margin": 0
 | |
|       }).find(".ui-icon").removeClass("ui-icon-closethick").addClass(this.options.icons.close).end().appendTo(buttonPane).end();
 | |
|       buttonPane.append('<a class="ui-dialog-titlebar-restore ui-corner-all ui-state-default" href="#"><span class="ui-icon ' + this.options.icons.restore + '" title="restore">restore</span></a>').find('.ui-dialog-titlebar-restore').attr("role", "button").mouseover(function() {
 | |
|         return $(this).addClass("ui-state-hover");
 | |
|       }).mouseout(function() {
 | |
|         return $(this).removeClass("ui-state-hover");
 | |
|       }).focus(function() {
 | |
|         return $(this).addClass("ui-state-focus");
 | |
|       }).blur(function() {
 | |
|         return $(this).removeClass("ui-state-focus");
 | |
|       }).end().find(".ui-dialog-titlebar-close").toggle(this.options.closable).end().find(".ui-dialog-titlebar-restore").hide().on("click",function(e) {
 | |
|         e.preventDefault();
 | |
|         return _this.restore();
 | |
|       }).end();
 | |
|       _ref = this.modes;
 | |
|       for (name in _ref) {
 | |
|         mode = _ref[name];
 | |
|         this._initModuleButton(name, mode);
 | |
|       }
 | |
|       return titlebar.dblclick(function(evt) {
 | |
|         if (_this.options.dblclick) {
 | |
|           if (_this._state !== "normal") {
 | |
|             return _this.restore();
 | |
|           } else {
 | |
|             return _this[_this.options.dblclick]();
 | |
|           }
 | |
|         }
 | |
|       }).select(function() {
 | |
|         return false;
 | |
|       });
 | |
|     },
 | |
|     _initModuleButton: function(name, mode) {
 | |
|       var buttonPane,
 | |
|         _this = this;
 | |
| 
 | |
|       buttonPane = $(this.element[0]).dialog("widget").find('.ui-dialog-titlebar-buttonpane');
 | |
|       return buttonPane.append('<a class="ui-dialog-titlebar-' + name + ' ui-corner-all ui-state-default" href="#" title="' + name + '"><span class="ui-icon ' + this.options.icons[name] + '">' + name + '</span></a>').find(".ui-dialog-titlebar-" + name).attr("role", "button").mouseover(function() {
 | |
|         return $(this).addClass("ui-state-hover");
 | |
|       }).mouseout(function() {
 | |
|         return $(this).removeClass("ui-state-hover");
 | |
|       }).focus(function() {
 | |
|         return $(this).addClass("ui-state-focus");
 | |
|       }).blur(function() {
 | |
|         return $(this).removeClass("ui-state-focus");
 | |
|       }).end().find(".ui-dialog-titlebar-" + name).toggle(this.options[mode.option]).on("click",function(e) {
 | |
|         e.preventDefault();
 | |
|         return _this[name]();
 | |
|       }).end();
 | |
|     },
 | |
|     _initTitleBar: function() {
 | |
|       var handle;
 | |
| 
 | |
|       switch (this.options.titlebar) {
 | |
|         case false:
 | |
|           return 0;
 | |
|         case "none":
 | |
|           if ($(this.element[0]).dialog("option", "draggable")) {
 | |
|             handle = $("<div />").addClass("ui-dialog-draggable-handle").css("cursor", "move").height(5);
 | |
|             $(this.element[0]).dialog("widget").prepend(handle).draggable("option", "handle", handle);
 | |
|           }
 | |
|           return $(this.element[0]).dialog("widget").find(".ui-dialog-titlebar").find(".ui-dialog-title").html(" ").end().css({
 | |
|             "background-color": "transparent",
 | |
|             "background-image": "none",
 | |
|             "border": 0,
 | |
|             "position": "absolute",
 | |
|             "right": 0,
 | |
|             "top": 0,
 | |
|             "z-index": 9999
 | |
|           }).end();
 | |
|         case "transparent":
 | |
|           return $(this.element[0]).dialog("widget").find(".ui-dialog-titlebar").css({
 | |
|             "background-color": "transparent",
 | |
|             "background-image": "none",
 | |
|             "border": 0
 | |
|           });
 | |
|         default:
 | |
|           return $.error("jQuery.dialogExtend Error : Invalid <titlebar> value '" + this.options.titlebar + "'");
 | |
|       }
 | |
|     },
 | |
|     state: function() {
 | |
|       return this._state;
 | |
|     },
 | |
|     restore: function() {
 | |
|       this._trigger("beforeRestore");
 | |
|       this._restore();
 | |
|       this._toggleButtons();
 | |
|       return this._trigger("restore");
 | |
|     },
 | |
|     _restore: function() {
 | |
|       if (this._state !== "normal") {
 | |
|         this["_restore_" + this._state]();
 | |
|         this._setState("normal");
 | |
|         return $(this.element[0]).dialog("widget").focus();
 | |
|       }
 | |
|     },
 | |
|     _saveSnapshot: function() {
 | |
|       if (this._state === "normal") {
 | |
|         this.original_config_resizable = $(this.element[0]).dialog("option", "resizable");
 | |
|         this.original_config_draggable = $(this.element[0]).dialog("option", "draggable");
 | |
|         this.original_size_height = $(this.element[0]).dialog("widget").outerHeight();
 | |
|         this.original_size_width = $(this.element[0]).dialog("option", "width");
 | |
|         this.original_size_maxHeight = $(this.element[0]).dialog("option", "maxHeight");
 | |
|         this.original_position_mode = $(this.element[0]).dialog("widget").css("position");
 | |
|         this.original_position_left = $(this.element[0]).dialog("widget").offset().left - $('body').scrollLeft();
 | |
|         this.original_position_top = $(this.element[0]).dialog("widget").offset().top - $('body').scrollTop();
 | |
|         return this.original_titlebar_wrap = $(this.element[0]).dialog("widget").find(".ui-dialog-titlebar").css("white-space");
 | |
|       }
 | |
|     },
 | |
|     _loadSnapshot: function() {
 | |
|       return {
 | |
|         "config": {
 | |
|           "resizable": this.original_config_resizable,
 | |
|           "draggable": this.original_config_draggable
 | |
|         },
 | |
|         "size": {
 | |
|           "height": this.original_size_height,
 | |
|           "width": this.original_size_width,
 | |
|           "maxHeight": this.original_size_maxHeight
 | |
|         },
 | |
|         "position": {
 | |
|           "mode": this.original_position_mode,
 | |
|           "left": this.original_position_left,
 | |
|           "top": this.original_position_top
 | |
|         },
 | |
|         "titlebar": {
 | |
|           "wrap": this.original_titlebar_wrap
 | |
|         }
 | |
|       };
 | |
|     },
 | |
|     _toggleButtons: function(newstate) {
 | |
|       var mode, name, state, _ref, _ref1, _results;
 | |
| 
 | |
|       state = newstate || this._state;
 | |
|       $(this.element[0]).dialog("widget").find(".ui-dialog-titlebar-restore").toggle(state !== "normal").css({
 | |
|         "right": "1.4em"
 | |
|       }).end();
 | |
|       _ref = this.modes;
 | |
|       for (name in _ref) {
 | |
|         mode = _ref[name];
 | |
|         $(this.element[0]).dialog("widget").find(".ui-dialog-titlebar-" + name).toggle(state !== mode.state && this.options[mode.option]);
 | |
|       }
 | |
|       _ref1 = this.modes;
 | |
|       _results = [];
 | |
|       for (name in _ref1) {
 | |
|         mode = _ref1[name];
 | |
|         if (mode.state === state) {
 | |
|           _results.push($(this.element[0]).dialog("widget").find(".ui-dialog-titlebar-restore").insertAfter($(this.element[0]).dialog("widget").find(".ui-dialog-titlebar-" + name)).end());
 | |
|         } else {
 | |
|           _results.push(void 0);
 | |
|         }
 | |
|       }
 | |
|       return _results;
 | |
|     }
 | |
|   });
 | |
| 
 | |
| }).call(this);
 | |
| 
 | |
| (function() {
 | |
|   var $;
 | |
| 
 | |
|   $ = jQuery;
 | |
| 
 | |
|   $.extend(true, $.ui.dialogExtend.prototype, {
 | |
|     modes: {
 | |
|       "collapse": {
 | |
|         option: "collapsable",
 | |
|         state: "collapsed"
 | |
|       }
 | |
|     },
 | |
|     options: {
 | |
|       "collapsable": false,
 | |
|       "icons": {
 | |
|         "collapse": "ui-icon-triangle-1-s"
 | |
|       },
 | |
|       "beforeCollapse": null,
 | |
|       "collapse": null
 | |
|     },
 | |
|     collapse: function() {
 | |
|       var newHeight, pos;
 | |
| 
 | |
|       newHeight = $(this.element[0]).dialog("widget").find(".ui-dialog-titlebar").height() + 15;
 | |
|       this._trigger("beforeCollapse");
 | |
|       if (this._state !== "normal") {
 | |
|         this._restore();
 | |
|       }
 | |
|       this._saveSnapshot();
 | |
|       pos = $(this.element[0]).dialog("widget").position();
 | |
|       $(this.element[0]).dialog("option", {
 | |
|         "resizable": false,
 | |
|         "height": newHeight,
 | |
|         "maxHeight": newHeight,
 | |
|         "position": [pos.left - $(document).scrollLeft(), pos.top - $(document).scrollTop()]
 | |
|       }).on('dialogclose', this._collapse_restore).hide().dialog("widget").find(".ui-dialog-buttonpane:visible").hide().end().find(".ui-dialog-titlebar").css("white-space", "nowrap").end().find(".ui-dialog-content");
 | |
|       this._setState("collapsed");
 | |
|       this._toggleButtons();
 | |
|       return this._trigger("collapse");
 | |
|     },
 | |
|     _restore_collapsed: function() {
 | |
|       var original;
 | |
| 
 | |
|       original = this._loadSnapshot();
 | |
|       return $(this.element[0]).show().dialog("widget").find(".ui-dialog-buttonpane:hidden").show().end().find(".ui-dialog-titlebar").css("white-space", original.titlebar.wrap).end().find(".ui-dialog-content").dialog("option", {
 | |
|         "resizable": original.config.resizable,
 | |
|         "height": original.size.height,
 | |
|         "maxHeight": original.size.maxHeight
 | |
|       }).off('dialogclose', this._collapse_restore);
 | |
|     },
 | |
|     _initStyles_collapse: function() {
 | |
|       var style;
 | |
| 
 | |
|       if (!$(".dialog-extend-collapse-css").length) {
 | |
|         style = '';
 | |
|         style += '<style class="dialog-extend-collapse-css" type="text/css">';
 | |
|         style += '.ui-dialog .ui-dialog-titlebar-collapse { width: 19px; height: 18px; }';
 | |
|         style += '.ui-dialog .ui-dialog-titlebar-collapse span { display: block; margin: 1px; }';
 | |
|         style += '.ui-dialog .ui-dialog-titlebar-collapse:hover,';
 | |
|         style += '.ui-dialog .ui-dialog-titlebar-collapse:focus { padding: 0; }';
 | |
|         style += '</style>';
 | |
|         return $(style).appendTo("body");
 | |
|       }
 | |
|     },
 | |
|     _collapse_restore: function() {
 | |
|       return $(this).dialogExtend("restore");
 | |
|     }
 | |
|   });
 | |
| 
 | |
| }).call(this);
 | |
| 
 | |
| (function() {
 | |
|   var $;
 | |
| 
 | |
|   $ = jQuery;
 | |
| 
 | |
|   $.extend(true, $.ui.dialogExtend.prototype, {
 | |
|     modes: {
 | |
|       "maximize": {
 | |
|         option: "maximizable",
 | |
|         state: "maximized"
 | |
|       }
 | |
|     },
 | |
|     options: {
 | |
|       "maximizable": false,
 | |
|       "icons": {
 | |
|         "maximize": "ui-icon-extlink"
 | |
|       },
 | |
|       "beforeMaximize": null,
 | |
|       "maximize": null
 | |
|     },
 | |
|     maximize: function() {
 | |
|       var newHeight, newWidth;
 | |
| 
 | |
|       newHeight = $(window).height() - 11;
 | |
|       newWidth = $(window).width() - 11;
 | |
|       this._trigger("beforeMaximize");
 | |
|       if (this._state !== "normal") {
 | |
|         this._restore();
 | |
|       }
 | |
|       this._saveSnapshot();
 | |
|       if ($(this.element[0]).dialog("option", "draggable")) {
 | |
|         $(this.element[0]).dialog("widget").draggable("option", "handle", null).find(".ui-dialog-draggable-handle").css("cursor", "text").end();
 | |
|       }
 | |
|       $(this.element[0]).dialog("widget").css("position", "fixed").find(".ui-dialog-content").show().dialog("widget").find(".ui-dialog-buttonpane").show().end().find(".ui-dialog-content").dialog("option", {
 | |
|         "resizable": false,
 | |
|         "draggable": false,
 | |
|         "height": newHeight,
 | |
|         "width": newWidth,
 | |
|         "position": {
 | |
|           my: "left top",
 | |
|           at: "left top",
 | |
|           of: window
 | |
|         }
 | |
|       });
 | |
|       this._setState("maximized");
 | |
|       this._toggleButtons();
 | |
|       return this._trigger("maximize");
 | |
|     },
 | |
|     _restore_maximized: function() {
 | |
|       var original;
 | |
| 
 | |
|       original = this._loadSnapshot();
 | |
|       $(this.element[0]).dialog("widget").css("position", original.position.mode).find(".ui-dialog-titlebar").css("white-space", original.titlebar.wrap).end().find(".ui-dialog-content").dialog("option", {
 | |
|         "resizable": original.config.resizable,
 | |
|         "draggable": original.config.draggable,
 | |
|         "height": original.size.height,
 | |
|         "width": original.size.width,
 | |
|         "maxHeight": original.size.maxHeight,
 | |
|         "position": {
 | |
|           my: "left top",
 | |
|           at: "left+" + original.position.left + " top+" + original.position.top,
 | |
|           of: window
 | |
|         }
 | |
|       });
 | |
|       if ($(this.element[0]).dialog("option", "draggable")) {
 | |
|         return $(this.element[0]).dialog("widget").draggable("option", "handle", $(this.element[0]).dialog("widget").find(".ui-dialog-draggable-handle").length ? $(this.element[0]).dialog("widget").find(".ui-dialog-draggable-handle") : ".ui-dialog-titlebar").find(".ui-dialog-draggable-handle").css("cursor", "move");
 | |
|       }
 | |
|     },
 | |
|     _initStyles_maximize: function() {
 | |
|       var style;
 | |
| 
 | |
|       if (!$(".dialog-extend-maximize-css").length) {
 | |
|         style = '';
 | |
|         style += '<style class="dialog-extend-maximize-css" type="text/css">';
 | |
|         style += '.ui-dialog .ui-dialog-titlebar-maximize { width: 19px; height: 18px; }';
 | |
|         style += '.ui-dialog .ui-dialog-titlebar-maximize span { display: block; margin: 1px; }';
 | |
|         style += '.ui-dialog .ui-dialog-titlebar-maximize:hover,';
 | |
|         style += '.ui-dialog .ui-dialog-titlebar-maximize:focus { padding: 0; }';
 | |
|         style += '</style>';
 | |
|         return $(style).appendTo("body");
 | |
|       }
 | |
|     }
 | |
|   });
 | |
| 
 | |
| }).call(this);
 | |
| 
 | |
| (function() {
 | |
|   var $;
 | |
| 
 | |
|   $ = jQuery;
 | |
| 
 | |
|   $.extend(true, $.ui.dialogExtend.prototype, {
 | |
|     modes: {
 | |
|       "minimize": {
 | |
|         option: "minimizable",
 | |
|         state: "minimized"
 | |
|       }
 | |
|     },
 | |
|     options: {
 | |
|       "minimizable": false,
 | |
|       "minimizeLocation": "left",
 | |
|       "icons": {
 | |
|         "minimize": "ui-icon-minus"
 | |
|       },
 | |
|       "beforeMinimize": null,
 | |
|       "minimize": null
 | |
|     },
 | |
|     minimize: function() {
 | |
|       var dialogcontrols, fixedContainer, newWidth;
 | |
| 
 | |
|       this._trigger("beforeMinimize");
 | |
|       if (this._state !== "normal") {
 | |
|         this._restore();
 | |
|       }
 | |
|       newWidth = 200;
 | |
|       if ($("#dialog-extend-fixed-container").length) {
 | |
|         fixedContainer = $("#dialog-extend-fixed-container");
 | |
|       } else {
 | |
|         fixedContainer = $('<div id="dialog-extend-fixed-container"></div>').appendTo("body");
 | |
|         fixedContainer.css({
 | |
|           "position": "fixed",
 | |
|           "bottom": 1,
 | |
|           "left": 1,
 | |
|           "right": 1,
 | |
|           "z-index": 9999
 | |
|         });
 | |
|       }
 | |
|       this._toggleButtons("minimized");
 | |
|       dialogcontrols = $(this.element[0]).dialog("widget").clone().children().remove().end();
 | |
|       $(this.element[0]).dialog("widget").find('.ui-dialog-titlebar').clone(true, true).appendTo(dialogcontrols);
 | |
|       dialogcontrols.css({
 | |
|         "float": this.options.minimizeLocation,
 | |
|         "margin": 1
 | |
|       });
 | |
|       fixedContainer.append(dialogcontrols);
 | |
|       $(this.element[0]).data("dialog-extend-minimize-controls", dialogcontrols);
 | |
|       if ($(this.element[0]).dialog("option", "draggable")) {
 | |
|         dialogcontrols.removeClass("ui-draggable");
 | |
|       }
 | |
|       dialogcontrols.css({
 | |
|         "height": "auto",
 | |
|         "width": newWidth,
 | |
|         "position": "static"
 | |
|       });
 | |
|       $(this.element[0]).on('dialogbeforeclose', this._minimize_restoreOnClose).dialog("widget").hide();
 | |
|       this._setState("minimized");
 | |
|       return this._trigger("minimize");
 | |
|     },
 | |
|     _restore_minimized: function() {
 | |
|       $(this.element[0]).dialog("widget").show();
 | |
|       $(this.element[0]).off('dialogbeforeclose', this._minimize_restoreOnClose);
 | |
|       $(this.element[0]).data("dialog-extend-minimize-controls").remove();
 | |
|       return $(this.element[0]).removeData("dialog-extend-minimize-controls");
 | |
|     },
 | |
|     _initStyles_minimize: function() {
 | |
|       var style;
 | |
| 
 | |
|       if (!$(".dialog-extend-minimize-css").length) {
 | |
|         style = '';
 | |
|         style += '<style class="dialog-extend-minimize-css" type="text/css">';
 | |
|         style += '.ui-dialog .ui-dialog-titlebar-minimize { width: 19px; height: 18px; }';
 | |
|         style += '.ui-dialog .ui-dialog-titlebar-minimize span { display: block; margin: 1px; }';
 | |
|         style += '.ui-dialog .ui-dialog-titlebar-minimize:hover,';
 | |
|         style += '.ui-dialog .ui-dialog-titlebar-minimize:focus { padding: 0; }';
 | |
|         style += '</style>';
 | |
|         return $(style).appendTo("body");
 | |
|       }
 | |
|     },
 | |
|     _verifyOptions_minimize: function() {
 | |
|       var _ref;
 | |
| 
 | |
|       if (!this.options.minimizeLocation || ((_ref = this.options.minimizeLocation) !== 'left' && _ref !== 'right')) {
 | |
|         $.error("jQuery.dialogExtend Error : Invalid <minimizeLocation> value '" + this.options.minimizeLocation + "'");
 | |
|         return this.options.minimizeLocation = "left";
 | |
|       }
 | |
|     },
 | |
|     _minimize_restoreOnClose: function() {
 | |
|       return $(this).dialogExtend("restore");
 | |
|     }
 | |
|   });
 | |
| 
 | |
| }).call(this);
 |