correct danish translation
[mkws-moved-to-github.git] / src / mkws-popup.js
index 4d03c52..54ef152 100644 (file)
@@ -2,34 +2,59 @@
  *
  */
 
-// "use strict";
+//"use strict";
+// $(document).ready(function () {
+mkws.registerWidgetType('popup', function() {
+    var $ = mkws.$;
+    var debug = this.info;
+    debug("init popup window");
 
-mkws.registerWidgetType('Popup', function() {
-  alert("running popup");
+    var popup_window = $(this.node);
+    // var popup_window = $(".mkws-popup mkwsPopup"); // $(document).ready()
+    if (!popup_window) {
+        debug("no popup found, skip...");
+        return;
+    } else {
+        debug("number of popup windows found: " + popup_window.length);
+    }
 
-  if (!mkws.$.ui) {
-      alert("Error: jquery-ui.js is missing, did you include it after jQuery core in the HTML file?");
-      return;
-  }
+    if (!$.ui) {
+        alert("Error: jquery-ui.js is missing, did you include it after jQuery core in the HTML file?");
+        return;
+    }
 
-  if (!this.config.popup_width) this.config.popup_width = "800";
-  if (!this.config.popup_height) this.config.popup_height = "600";
-  if (!this.config.auto_open) this.config.auto_open = "0";
+    // more than one widget on a page are possible
+    popup_window.each(function(i) {
+        var that = $(this);
 
-  $(this).dialog({
-      closeOnEscape: true,
-      autoOpen: parseInt(this.config.auto_open) ? true : false,
-      height: parseInt(this.config.popup_height),
-      width: parseInt(this.config.popup_width),
-      modal: true,
-      resizable: true,
-      buttons: {
-        Cancel: function() {
-          $(this).dialog("close");
-        }
-      },
-      close: function() { }
-  });
+        // all atributes are strings, convert them to integers here
+        var width = parseInt(that.attr("popup_width") || "800");
+        var height = parseInt(that.attr("popup_height") || "600");
+        var autoOpen = parseInt(that.attr("popup_autoOpen") || "0");
+        var modal = parseInt(that.attr("popup_modal") || "0");
 
-});
+        debug("Popup parameters: width: " + width + ", height: " + height + ", autoOpen: " + autoOpen);
+        that.dialog({
+            closeOnEscape: true,
+            autoOpen: autoOpen,
+            height: height,
+            width: width,
+            modal: modal ? true : false,
+            resizable: true,
+            buttons: {
+                Cancel: function() {
+                    that.dialog("close");
+                }
+            },
+            close: function() {}
+        });
 
+        // open at search query submit: "input.mkws-button mkwsButton"
+        var id_botton = that.attr("popup_button");
+        if (id_botton) {
+            $(id_botton).button().click(function() {
+                that.dialog("open");
+            });
+        }
+    });
+});