check-js:
${MAKE} -C./test check
-phantomjs p jsb:
+phantomjs p p-all phantomjs-all jsb:
${MAKE} -C./test $@
# must be called once after GIT checkout
% The MasterKey Widget Set
% Mike Taylor; Wolfram Schneider
-% 10 July 2013
+% 10 July 2014
Introduction
- - -
-Copyright 2013 IndexData ApS. <http://indexdata.com>
+Copyright 2014 IndexData ApS. <http://indexdata.com>
% Embedded metasearching with the MasterKey Widget Set
% Mike Taylor
-% July-September 2013
Introduction
contains all the JavaScript needed by the widget-set.
* `mkws.css`
- provides the default CSS styling
+ provides the default CSS styling
Second, within the HTML body, `<div>` elements with special IDs that
begin `mkws` can be provided. These are filled in by the MKWS code,
in a popup. The key part of such an application is this invocation of
the MKWS jQuery plugin:
- <script type="text/javascript">
- jQuery.pazpar2({ "layout":"popup", width:800, height:500 });
- </script>
+ <div class="mkwsSearch"></div>
+ <div class="mkwsPopup" popup_width="1024" popup_height="650" popup_modal="0" popup_autoOpen="0" popup_button="input.mkwsButton">
+ <div class="mkwsSwitch"></div>
+ <div class="mkwsLang"></div>
+ <div class="mkwsResults"></div>
+ <div class="mkwsTargets"></div>
+ <div class="mkwsStat"></div>
+ </div>
The necessary scaffolding can be seen in an example application,
http://example.indexdata.com/index-popup.html
debug_level int 1 Level of debugging output to emit. 0 = none, 1 = messages, 2 = messages with
datestamps, 3 = messages with datestamps and stack-traces.
-facets array *Note 1* Ordered list of names of facets to display. Supported facet names are
+facets array *Note 1* Ordered list of names of facets to display. Supported facet names are
`xtargets`, `subject` and `author`.
lang string en Code of the default language to display the UI in. Supported language codes are `en` =
-### jQuery plugin invocation
+### jQuery UI popup invocation
-The MasterKey Widget Set can be invoked as a jQuery plugin rather than
-by providing an HTML skeleton explicitly. When this approach is used,
-the invocation is a single line of JavaScript:
+The MasterKey Widget Set can be invoked in a popup window on top of the page.
- <script>jQuery.pazpar2();</script>
+Note that when using the `popup` layout, facilities from the jQuery UI
+toolkit are used, so it's necessary to include both CSS and JavaScript
+from that toolkit. The relevant lines are:
-This code should be inserted in the page at the position where the
-metasearch should occur.
+ <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.min.js"></script>
+ <link rel="stylesheet" type="text/css"
+ href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
-When invoking this plugin, a key-value lookup table of named options
-may be passed in to modify the default behaviour, as in the exaple
-above. The available options are as follows:
+ <div class="mkwsSearch"></div>
+ <div class="mkwsPopup" popup_width="1024" popup_height="650" popup_modal="0" popup_autoOpen="0" popup_button="input.mkwsButton">
+ <div class="mkwsSwitch"></div>
+ <div class="mkwsLang"></div>
+ <div class="mkwsResults"></div>
+ <div class="mkwsTargets"></div>
+ <div class="mkwsStat"></div>
+ </div
---
Element Type Default Description
-------- ----- --------- ------------
-layout string popup Specifies how the user interface should
- appear. Options are `table` (the default,
- with facets at the bottom), `div` (with
- facets at the side) and `popup` (to
- obtain a popup window).
-
-width int 880 Width of the popup window (if used), in
+popup_width string 880 Width of the popup window (if used), in
pixels.
-height int 760 Height of the popup window (if used), in
+popup_height string 760 Height of the popup window (if used), in
pixels.
-id_button string input#mkwsButton (Never change this.)
+popup_button string input.mkwsButton (Never change this.)
-id_popup string #mkwsPopup (Never change this.)
----
+popup_modal string 0 Modal confirmation mode. Valid values are 0 or 1
-Note that when using the `popup` layout, facilities from the jQuery UI
-toolkit are used, so it's necessary to include both CSS and JavaScript
-from that toolkit. The relevant lines are:
+popup_autoOpen string 1 Open popup window on load. Valid values are 0 or 1
- <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.min.js"></script>
- <link rel="stylesheet" type="text/css"
- href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
+---
### The structure of the HTML generated by the MKWS widgets
- - -
-Copyright (C) 2013 by IndexData ApS, <http://www.indexdata.com>
+Copyright (C) 2013-2014 by IndexData ApS, <http://www.indexdata.com>
<h2>MKWS Jasmine regression tests</h2>
+ <div class="mkwsSearch"></div>
+ <div class="mkwsPopup" popup_width="990" popup_height="760" popup_modal="0" popup_autoOpen="0" popup_button="input.mkwsButton">
<div class="mkwsSwitch"></div>
<div class="mkwsLang"></div>
<div class="mkwsProgress"></div>
- <div class="mkwsSearch"></div>
<div class="mkwsResults"></div>
<div class="mkwsTargets"></div>
<div class="mkwsStat"></div>
<div class="mkwsBuilder"></div>
+ </div>
<!-- include jquery again -->
<script type="text/javascript" src="//code.jquery.com/jquery-1.10.0.js"></script>
<script type="text/javascript" src="tools/htdocs/pz2.js"></script>
<script type="text/javascript" src="tools/htdocs/jquery.json-2.4.js"></script>
<script type="text/javascript" src="tools/htdocs/handlebars-v1.1.2.js"></script>
+
<script type="text/javascript" src="src/mkws-handlebars.js"></script>
<script type="text/javascript" src="src/mkws-core.js"></script>
<script type="text/javascript" src="src/mkws-team.js"></script>
<script type="text/javascript" src="src/mkws-filter.js"></script>
+ <script type="text/javascript" src="src/mkws-popup.js"></script>
<script type="text/javascript" src="src/mkws-widget.js"></script>
<script type="text/javascript" src="src/mkws-widget-main.js"></script>
<script type="text/javascript" src="src/mkws-widget-termlists.js"></script>
<script type="text/javascript" src="src/mkws-widget-authname.js"></script>
+ <script type="text/javascript" src="src/mkws-widget-categories.js"></script>
<script type="text/javascript" src="src/mkws-widget-log.js"></script>
<script type="text/javascript" src="src/mkws-widget-record.js"></script>
-
- <script type="text/javascript" src="src/mkws-jquery.js"></script>
+ <script type="text/javascript" src="src/mkws-widget-reference.js"></script>
+ <script type="text/javascript" src="src/mkws-widget-builder.js"></script>
<link rel="shortcut icon" type="image/png" href="jasmine/lib/jasmine-1.3.1/jasmine_favicon.png">
<link rel="stylesheet" type="text/css" href="jasmine/lib/jasmine-1.3.1/jasmine.css">
show_record_url: true
};
- jQuery.pazpar2({
- "layout": "popup", /* "table" [default], "div", "popup" */
- "width": 990, /* popup width, should be at least 800 */
- "height": 760 /* popup height, should be at least 600 */
- });
</script>
<h2>MKWS Jasmine regression tests</h2>
-<p/>
+
+ <div class="mkwsSearch"></div>
+ <div class="mkwsPopup" popup_width="990" popup_height="760" popup_modal="0" popup_autoOpen="0" popup_button="input.mkwsButton">
+ <div class="mkwsSwitch"></div>
+ <div class="mkwsLang"></div>
+ <div class="mkwsResults"></div>
+ <div class="mkwsTargets"></div>
+ <div class="mkwsStat"></div>
+ </div>
</body>
</html>
<script type="text/javascript" src="tools/htdocs/pz2.js"></script>
<script type="text/javascript" src="tools/htdocs/jquery.json-2.4.js"></script>
<script type="text/javascript" src="tools/htdocs/handlebars-v1.1.2.js"></script>
+
<script type="text/javascript" src="src/mkws-handlebars.js"></script>
<script type="text/javascript" src="src/mkws-core.js"></script>
<script type="text/javascript" src="src/mkws-team.js"></script>
<script type="text/javascript" src="src/mkws-filter.js"></script>
+ <script type="text/javascript" src="src/mkws-popup.js"></script>
<script type="text/javascript" src="src/mkws-widget.js"></script>
<script type="text/javascript" src="src/mkws-widget-main.js"></script>
<script type="text/javascript" src="src/mkws-widget-termlists.js"></script>
<script type="text/javascript" src="src/mkws-widget-authname.js"></script>
+ <script type="text/javascript" src="src/mkws-widget-categories.js"></script>
<script type="text/javascript" src="src/mkws-widget-log.js"></script>
<script type="text/javascript" src="src/mkws-widget-record.js"></script>
-
- <script type="text/javascript" src="src/mkws-jquery.js"></script>
+ <script type="text/javascript" src="src/mkws-widget-reference.js"></script>
+ <script type="text/javascript" src="src/mkws-widget-builder.js"></script>
<link rel="shortcut icon" type="image/png" href="jasmine/lib/jasmine-1.3.1/jasmine_favicon.png">
<link rel="stylesheet" type="text/css" href="jasmine/lib/jasmine-1.3.1/jasmine.css">
<script type="text/javascript" src="test/js/mkws-jasmine-run.js"></script>
<script type="text/javascript"> mkws_jasmine_init(500); </script>
- <!-- jquery null test
+ <!-- jquery null test
<script type="text/javascript">$ = undefined;</script>
-->
check_motd: false,
show_record_url: true
};
-
- jQuery.pazpar2({
- "layout": "popup", /* "table" [default], "div", "popup" */
- "width": 990, /* popup width, should be at least 800 */
- "height": 760 /* popup height, should be at least 600 */
- });
</script>
<h2>MKWS Jasmine regression tests</h2>
-<p/>
+ <div class="mkwsSearch"></div>
+ <div class="mkwsPopup" popup_width="990" popup_height="760" popup_modal="0" popup_autoOpen="0" popup_button="input.mkwsButton">
+ <div class="mkwsSwitch"></div>
+ <div class="mkwsLang"></div>
+ <div class="mkwsResults"></div>
+ <div class="mkwsTargets"></div>
+ <div class="mkwsStat"></div>
+ </div>
+
</body>
</html>
--- /dev/null
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <title>MKWS demo: Reference widget with popup window</title>
+ <link rel="stylesheet" type="text/css" href="tools/htdocs/mkws.css" />
+ <link rel="stylesheet" type="text/css" href="//code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
+ <link rel="stylesheet" type="text/css" href="mkws-widget-reference.css" />
+ <link rel="stylesheet" type="text/css" href="mkws-widget-credo.css" />
+
+ <script type="text/javascript">
+ var mkws_config = {
+ service_proxy_auth: "//mkws.indexdata.com/service-proxy-credoauth"
+ };
+ </script>
+
+ <script type="text/javascript" src="tools/htdocs/jquery-1.10.0.min.js"></script>
+ <script type="text/javascript" src="//code.jquery.com/ui/1.10.3/jquery-ui.min.js"></script>
+
+ <script type="text/javascript" src="tools/htdocs/pz2.js"></script>
+ <script type="text/javascript" src="tools/htdocs/handlebars-v1.1.2.js"></script>
+ <script type="text/javascript" src="tools/htdocs/jquery.json-2.4.js"></script>
+
+ <script type="text/javascript" src="src/mkws-handlebars.js"></script>
+ <script type="text/javascript" src="src/mkws-core.js"></script>
+ <script type="text/javascript" src="src/mkws-team.js"></script>
+ <script type="text/javascript" src="src/mkws-filter.js"></script>
+ <script type="text/javascript" src="src/mkws-popup.js"></script>
+ <script type="text/javascript" src="src/mkws-widget.js"></script>
+ <script type="text/javascript" src="src/mkws-widget-main.js"></script>
+ <script type="text/javascript" src="src/mkws-widget-termlists.js"></script>
+ <script type="text/javascript" src="src/mkws-widget-authname.js"></script>
+ <script type="text/javascript" src="src/mkws-widget-categories.js"></script>
+ <script type="text/javascript" src="src/mkws-widget-log.js"></script>
+ <script type="text/javascript" src="src/mkws-widget-record.js"></script>
+ <script type="text/javascript" src="src/mkws-widget-reference.js"></script>
+ <script type="text/javascript" src="src/mkws-widget-builder.js"></script>
+
+ <script type="text/javascript" src="mkws-widget-credo.js"></script>
+ </head>
+ <body>
+ <h3>MKWS widgets in a popup window</h3>
+
+ <div class="mkwsSearch"></div>
+ <div class="mkwsPopup" popup_width="1024" popup_height="650" popup_modal="0" popup_autoOpen="0" popup_button="input.mkwsButton">
+ <div class="mkwsSwitch"></div>
+ <div class="mkwsLang"></div>
+ <div class="mkwsResults"></div>
+ <div class="mkwsTargets"></div>
+ <div class="mkwsStat"></div>
+ </div>
+
+ <div class="mkwsPopup" popup_width="1024" popup_height="800" popup_autoOpen="1">
+ <div class="mkwsCredo mkwsTeam_credo" autosearch="!param!q">mkwsCredo result will appear here</div>
+ </div>
+
+ <div class="mkwsPopup" popup_width="700" popup_height="600" popup_autoOpen="1">
+ <div class="mkwsReference mkwsTeam_credo" sentences="1" autosearch="!param!q">mkwsReference result will appear here</div>
+ </div>
+
+ </body>
+</html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>MKWS demo: popup search box</title>
-
- <link rel="stylesheet" type="text/css" href="//code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
+ <title>MKWS demo: Reference widget with popup window</title>
<link rel="stylesheet" type="text/css" href="//mkws.indexdata.com/mkws.css" />
+ <link rel="stylesheet" type="text/css" href="//code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
+ <link rel="stylesheet" type="text/css" href="//example.indexdata.com/mkws-widget-reference.css" />
+ <link rel="stylesheet" type="text/css" href="//example.indexdata.com/mkws-widget-credo.css" />
<script type="text/javascript">
- mkws_config = {
- show_lang: false,
- perpage_default: 10,
- query_width: 50,
- service_proxy_auth: "http://mkws.indexdata.com/service-proxy-auth"
- };
+ var mkws_config = {
+ service_proxy_auth: "//mkws.indexdata.com/service-proxy-credoauth"
+ };
</script>
+ <!--
+ <script type="text/javascript" src="tools/htdocs/mkws-complete.js"></script>
+ <script>jQuery = mkws.$</script>
+ <script type="text/javascript" src="//code.jquery.com/ui/1.10.3/jquery-ui.min.js"></script>
+ -->
<script type="text/javascript" src="//code.jquery.com/jquery-1.10.0.min.js"></script>
<script type="text/javascript" src="//jquery-json.googlecode.com/files/jquery.json-2.4.js"></script>
- <!-- legacy libs for testing
- <script type="text/javascript" src="//code.jquery.com/jquery-1.6.4.min.js"></script>
- <script src="//code.jquery.com/ui/1.8.0/jquery-ui.min.js"></script>
- -->
-
- <script type="text/javascript" src="//mkws.indexdata.com/pazpar2/js/pz2.js"></script>
- <script type="text/javascript" src="//mkws.indexdata.com/handlebars-v1.1.2.js"></script>
+ <script type="text/javascript" src="//code.jquery.com/ui/1.10.3/jquery-ui.min.js"></script>
+ <script type="text/javascript" src="//git.indexdata.com/?p=pazpar2.git;a=blob_plain;f=js/pz2.js;hb=HEAD"></script>
+ <script type="text/javascript" src="//builds.handlebarsjs.com.s3.amazonaws.com/handlebars-v1.1.2.js"></script>
<script type="text/javascript" src="//mkws.indexdata.com/mkws.js"></script>
- <script type="text/javascript" src="//mkws.indexdata.com/mkws-jquery.js"></script>
+
+ <script type="text/javascript" src="//example.indexdata.com/mkws-widget-credo.js"></script>
</head>
<body>
- <script type="text/javascript">
- jQuery.pazpar2({ "layout":"popup", width: 800, height: 500 } );
- </script>
-
- <pre>
- An embryonic MasterKey Widget Set
-=================================
-
-This directory contains an embryonic MasterKey Widget Set, based
-initially on "jsdemo" though now far removed from those beginnnings.
-
-
-How this works
---------------
-
-The goal is to make it that as much of the searching functionality as
-possible is hosted on
- http://mkws.indexdata.com/
-so that very simple websites such as
- http://example.indexdata.com/
-can have MasterKey searching with minimal effort.
-
-The following files must be hosted on mkws.indexdata.com:
- mkws.js
- mkws.css
- /pazpar2/js/pz2.js (*)
-
-The following files make up the application:
- index.html
- favicon.ico [optional]
- robots.txt [optional]
-
-(At present, the client application's configuruation also needs an
-Alias for /service-proxy/, to avoid cross-site scripting issues. We
-will fix this.)
+ <h3>MKWS widgets in a popup window</h3>
-(*) if you don't have already installed pazpar2 on the machine, you can
-do it by installing a debian package or check it out from GIT:
-$ git clone ssh://git.indexdata.com:222/home/git/pub/pazpar2
+ <div class="mkwsSearch"></div>
+ <div class="mkwsPopup" popup_width="1024" popup_height="650" popup_modal="0" popup_autoOpen="0" popup_button="input.mkwsButton">
+ <div class="mkwsSwitch"></div>
+ <div class="mkwsLang"></div>
+ <div class="mkwsResults"></div>
+ <div class="mkwsTargets"></div>
+ <div class="mkwsStat"></div>
+ </div>
-Configuring a client
---------------------
+ <div class="mkwsPopup" popup_width="1024" popup_height="800" popup_autoOpen="1">
+ <div class="mkwsCredo mkwsTeam_credo" autosearch="!param!q">mkwsCredo result will appear here</div>
+ </div>
-The application's HTML must contains the following elements as well as
-whatever makes up the application itself:
+ <div class="mkwsPopup" popup_width="700" popup_height="600" popup_autoOpen="1">
+ <div class="mkwsReference mkwsTeam_credo" sentences="1" autosearch="!param!q">mkwsReference result will appear here</div>
+ </div>
-[...]
- </pre>
- <script src="//code.jquery.com/ui/1.10.3/jquery-ui.min.js"></script>
</body>
</html>
<script type="text/javascript" src="src/mkws-widget-main.js"></script>
<script type="text/javascript" src="src/mkws-widget-termlists.js"></script>
<script type="text/javascript" src="src/mkws-widget-authname.js"></script>
+ <script type="text/javascript" src="src/mkws-widget-categories.js"></script>
<script type="text/javascript" src="src/mkws-widget-log.js"></script>
<script type="text/javascript" src="src/mkws-widget-record.js"></script>
+ <script type="text/javascript" src="src/mkws-widget-reference.js"></script>
+ <script type="text/javascript" src="src/mkws-widget-builder.js"></script>
<style type="text/css">
.mkwsTermlists div.facet {
// {"hash":{},"data":{}} for parameters that are not provided. So we
// have to be prepared for actual numbers, explicitly undefined
// values and this dumb magic value.
- if (nPara === undefined || nPara.hasOwnProperty('hash') || nPara == 0 || nPara > obj.length) {
+ if (obj && (nPara === undefined || nPara.hasOwnProperty('hash') || nPara == 0 || nPara > obj.length)) {
nPara = obj.length;
}
if (nSent === undefined || nSent.hasOwnProperty('hash') || nSent == 0) {
+++ /dev/null
-/*! jQuery plugin for MKWS, the MasterKey Widget Set.
- * Copyright (C) 2013-2014 Index Data
- * See the file LICENSE for details
- */
-
-"use strict";
-
-
-/*
- * implement jQuery plugin $.pazpar2({})
- */
-function _mkws_jquery_plugin($) {
- function debug(string) {
- mkws.log("jQuery.pazpar2: " + string);
- }
-
- function init_popup(obj) {
- var config = obj ? obj : {};
-
- var height = config.height || 760;
- var width = config.width || 880;
- var id_button = config.id_button || "input.mkwsButton";
- var id_popup = config.id_popup || ".mkwsPopup";
-
- debug("popup height: " + height + ", width: " + width);
-
- // make sure that jquery-ui was loaded afte jQuery core lib, e.g.:
- // <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.min.js"></script>
- if (!$.ui) {
- debug("Error: jquery-ui.js is missing, did you include it after jQuery core in the HTML file?");
- return;
- }
-
- $(id_popup).dialog({
- closeOnEscape: true,
- autoOpen: false,
- height: height,
- width: width,
- modal: true,
- resizable: true,
- buttons: {
- Cancel: function() {
- $(this).dialog("close");
- }
- },
- close: function() { }
- });
-
- $(id_button)
- .button()
- .click(function() {
- $(id_popup).dialog("open");
- });
- };
-
- $.extend({
-
- // service-proxy or pazpar2
- pazpar2: function(config) {
- if (config == null || typeof config != 'object') {
- config = {};
- }
- var id_popup = config.id_popup || ".mkwsPopup";
- id_popup = id_popup.replace(/^[#\.]/, "");
-
- // simple layout
- var div = '\
-<div class="mkwsSwitch"></div>\
-<div class="mkwsLang"></div>\
-<div class="mkwsSearch"></div>\
-<div class="mkwsResults"></div>\
-<div class="mkwsTargets"></div>\
-<div class="mkwsStat"></div>';
-
- // new table layout
- var table = '\
-<style type="text/css">\
- .mkwsTermlists div.facet {\
- float:left;\
- width: 30%;\
- margin: 0.3em;\
- }\
- .mkwsStat {\
- text-align: right;\
- }\
-</style>\
- \
-<table width="100%" border="0">\
- <tr>\
- <td>\
- <div class="mkwsSwitch"></div>\
- <div class="mkwsLang"></div>\
- <div class="mkwsSearch"></div>\
- </td>\
- </tr>\
- <tr>\
- <td>\
- <div style="height:500px; overflow: auto">\
- <div class="mkwsPager"></div>\
- <div class="mkwsNavi"></div>\
- <div class="mkwsRecords"></div>\
- <div class="mkwsTargets"></div>\
- <div class="mkwsRanking"></div>\
- </div>\
- </td>\
- </tr>\
- <tr>\
- <td>\
- <div style="height:300px; overflow: hidden">\
- <div class="mkwsTermlists"></div>\
- </div>\
- </td>\
- </tr>\
- <tr>\
- <td>\
- <div class="mkwsStat"></div>\
- </td>\
- </tr>\
-</table>';
-
- var popup = '\
-<div class="mkwsSearch"></div>\
-<div class="' + id_popup + '">\
- <div class="mkwsSwitch"></div>\
- <div class="mkwsLang"></div>\
- <div class="mkwsResults"></div>\
- <div class="mkwsTargets"></div>\
- <div class="mkwsStat"></div>\
-</div>'
-
- if (config && config.layout == 'div') {
- debug("jquery plugin layout: div");
- document.write(div);
- } else if (config && config.layout == 'popup') {
- debug("jquery plugin layout: popup with id: " + id_popup);
- document.write(popup);
- $(document).ready(function() { init_popup(config); });
- } else {
- debug("jquery plugin layout: table");
- document.write(table);
- }
- }
- });
-};
-
-
-// XXX: enable before page load, so we could call it before mkws() runs
-_mkws_jquery_plugin(mkws.$);
-
--- /dev/null
+/* generic function to open results in a popup window
+ *
+ */
+
+//"use strict";
+// $(document).ready(function () {
+mkws.registerWidgetType('Popup', function() {
+ var $ = mkws.$;
+ var debug = mkws.log;
+ debug("init popup window");
+
+ var popup_window = $(this.node); // mkws.registerWidgetType('Popup',....)
+ // var popup_window = $(".mkwsPopup"); // $(document).ready()
+ if (!popup_window) {
+ debug("no popup found, skip...");
+ return;
+ } else {
+ debug("number of popup windows found: " + popup_window.length);
+ }
+
+ if (!$.ui) {
+ alert("Error: jquery-ui.js is missing, did you include it after jQuery core in the HTML file?");
+ return;
+ }
+
+ // more than one widget on a page are possible
+ popup_window.each(function(i) {
+ var that = $(this);
+
+ // 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.mkwsButton"
+ var id_botton = that.attr("popup_button");
+ if (id_botton) {
+ $(id_botton).button().click(function() {
+ that.dialog("open");
+ });
+ }
+ });
+});
mkws.registerWidgetType('Query', function() {});
mkws.registerWidgetType('MOTDContainer', function() {});
mkws.registerWidgetType('Button', function() {});
-mkws.registerWidgetType('Popup', function() {});
VERSION = $(shell tr -d '\012' < ${SRC}/VERSION)
COMPONENTS = ${SRC}/mkws-handlebars.js \
- ${SRC}/mkws-core.js ${SRC}/mkws-team.js ${SRC}/mkws-filter.js \
- ${SRC}/mkws-widget.js ${SRC}/mkws-widget-main.js ${SRC}/mkws-widget-termlists.js \
- ${SRC}/mkws-widget-authname.js ${SRC}/mkws-widget-categories.js ${SRC}/mkws-widget-log.js \
- ${SRC}/mkws-widget-record.js ${SRC}/mkws-widget-reference.js ${SRC}/mkws-widget-builder.js
+ ${SRC}/mkws-core.js \
+ ${SRC}/mkws-team.js \
+ ${SRC}/mkws-filter.js \
+ ${SRC}/mkws-popup.js \
+ ${SRC}/mkws-widget.js \
+ ${SRC}/mkws-widget-main.js \
+ ${SRC}/mkws-widget-termlists.js \
+ ${SRC}/mkws-widget-authname.js \
+ ${SRC}/mkws-widget-categories.js \
+ ${SRC}/mkws-widget-log.js \
+ ${SRC}/mkws-widget-record.js \
+ ${SRC}/mkws-widget-reference.js \
+ ${SRC}/mkws-widget-builder.js
GENERATED = ${HANDLEBARS_FILE} ${JQUERY_FILE} ${JQUERY_JSON_FILE} ${PP2_FILE} \
mkws.js mkws.min.js mkws-complete.js mkws-complete.min.js
all: mkws.min.js mkws-complete.min.js
-mkws-js mkws-complete.js: Makefile mkws.js ${SRC}/mkws-jquery.js ${HANDLEBARS_FILE} ${JQUERY_FILE} ${JQUERY_JSON_FILE} ${PP2_FILE}
+mkws-js mkws-complete.js: Makefile mkws.js ${HANDLEBARS_FILE} ${JQUERY_FILE} ${JQUERY_JSON_FILE} ${PP2_FILE}
( set -e; \
echo "/*! Copyright (c) 2013-2014 IndexData ApS. http://indexdata.com"; \
echo " Licence: GPL, http://www.indexdata.com/licences/gpl"; \
cat ${HANDLEBARS_FILE}; \
cat ${PP2_FILE}; \
cat mkws.js; \
- cat ${SRC}/mkws-jquery.js; \
) > mkws-complete.js.tmp
mv -f mkws-complete.js.tmp mkws-complete.js
mv -f $@.tmp $@
chmod 444 $@
+mkws-html-includes:
+ echo $(COMPONENTS) | perl -npe "s,${SRC},,g; s/\s+/\0/g" | \
+ perl -n0e 'print qq{ <script type="text/javascript" src="src$$_"></script>\n}'
+
distclean: clean
@echo "(No need for distclean, 'make clean' is fine)"
</div>
<p style="text-align: right; font-size: small">
- Copyright © 2013 IndexData ApS.
+ Copyright (©) 2013-2014 IndexData ApS.
<a href="http://indexdata.com"><code>http://indexdata.com</code></a>
</p>
</body>