Add mkws.aliasWidgetType() function.
[mkws-moved-to-github.git] / src / mkws-popup.js
1 /* generic function to open results in a popup window
2  *
3  */
4
5 //"use strict";
6 // $(document).ready(function () {
7 mkws.registerWidgetType('popup', function() {
8     var $ = mkws.$;
9     var debug = this.info;
10     debug("init popup window");
11
12     var popup_window = $(this.node);
13     // var popup_window = $(".mkws-popup mkwsPopup"); // $(document).ready()
14     if (!popup_window) {
15         debug("no popup found, skip...");
16         return;
17     } else {
18         debug("number of popup windows found: " + popup_window.length);
19     }
20
21     if (!$.ui) {
22         alert("Error: jquery-ui.js is missing, did you include it after jQuery core in the HTML file?");
23         return;
24     }
25
26     // more than one widget on a page are possible
27     popup_window.each(function(i) {
28         var that = $(this);
29
30         // all atributes are strings, convert them to integers here
31         var width = parseInt(that.attr("popup_width") || "800");
32         var height = parseInt(that.attr("popup_height") || "600");
33         var autoOpen = parseInt(that.attr("popup_autoOpen") || "0");
34         var modal = parseInt(that.attr("popup_modal") || "0");
35
36         debug("Popup parameters: width: " + width + ", height: " + height + ", autoOpen: " + autoOpen);
37         that.dialog({
38             closeOnEscape: true,
39             autoOpen: autoOpen,
40             height: height,
41             width: width,
42             modal: modal ? true : false,
43             resizable: true,
44             buttons: {
45                 Cancel: function() {
46                     that.dialog("close");
47                 }
48             },
49             close: function() {}
50         });
51
52         // open at search query submit: "input.mkws-button mkwsButton"
53         var id_botton = that.attr("popup_button");
54         if (id_botton) {
55             $(id_botton).button().click(function() {
56                 that.dialog("open");
57             });
58         }
59     });
60 });