projects
/
mkws-moved-to-github.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
improve checking of mkws_config object, MKWS-88
[mkws-moved-to-github.git]
/
tools
/
htdocs
/
mkws.js
diff --git
a/tools/htdocs/mkws.js
b/tools/htdocs/mkws.js
index
8ebdb0b
..
db6c337
100644
(file)
--- a/
tools/htdocs/mkws.js
+++ b/
tools/htdocs/mkws.js
@@
-1,5
+1,4
@@
-/* A very simple client that shows a basic usage of the pz2.js
-*/
+/*! MKWS, the MasterKey Widget Set. Copyright (C) 2013, Index Data */
"use strict"; // HTML5: disable for debug_level >= 2
"use strict"; // HTML5: disable for debug_level >= 2
@@
-16,8
+15,9
@@
var mkws = {
* Needs to be defined in the HTML header before including this JS file.
* Define empty mkws_config for simple applications that don't define it.
*/
* Needs to be defined in the HTML header before including this JS file.
* Define empty mkws_config for simple applications that don't define it.
*/
-if (!mkws_config)
+if (mkws_config == null || typeof mkws_config != 'object')) {
var mkws_config = {};
var mkws_config = {};
+}
// Wrapper for jQuery
(function ($) {
// Wrapper for jQuery
(function ($) {
@@
-89,7
+89,7
@@
mkws.debug_function = function (string) {
}
var now = $.now();
}
var now = $.now();
- var timestamp = (now - mkws.debug_time.start)/1000 + " (+" + (now - mkws.debug_time.last)/1000 + ") "
+ var timestamp = ((now - mkws.debug_time.start)/1000).toFixed(3) + " (+" + ((now - mkws.debug_time.last)/1000).toFixed(3) + ") "
mkws.debug_time.last = now;
// you need to disable use strict at the top of the file!!!
mkws.debug_time.last = now;
// you need to disable use strict at the top of the file!!!
@@
-104,7
+104,7
@@
var debug = mkws.debug_function; // local alias
Handlebars.registerHelper('json', function(obj) {
Handlebars.registerHelper('json', function(obj) {
- return JSON.stringify(obj);
+ return $.toJSON(obj);
});
});
@@
-157,6
+157,7
@@
Handlebars.registerHelper('commaList', function(items, options) {
{
{
+
/* default mkws config */
var config_default = {
use_service_proxy: true,
/* default mkws config */
var config_default = {
use_service_proxy: true,
@@
-186,6
+187,12
@@
Handlebars.registerHelper('commaList', function(items, options) {
mkws.debug_level = config_default.debug_level;
}
mkws.debug_level = config_default.debug_level;
}
+ // make sure the mkws_config is a valid hash
+ if (!$.isPlainObject(mkws_config)) {
+ debug("ERROR: mkws_config is not an JS object, ignore it....");
+ mkws_config = {};
+ }
+
/* override standard config values by function parameters */
for (var k in config_default) {
if (typeof mkws_config[k] === 'undefined')
/* override standard config values by function parameters */
for (var k in config_default) {
if (typeof mkws_config[k] === 'undefined')
@@
-422,7
+429,9
@@
function onFormSubmitEventHandler()
function newSearch(query, sort, targets)
{
function newSearch(query, sort, targets)
{
- if (!mkws.authenticated) {
+ debug("newSearch: " + query);
+
+ if (mkws_config.use_service_proxy && !mkws.authenticated) {
alert("searching before authentication");
return;
}
alert("searching before authentication");
return;
}
@@
-486,7
+495,7
@@
function triggerSearch (query, sort, targets)
}
}
}
}
- debug("triggerSearch(" + mkws.query + "): filters = " + JSON.stringify(mkws.filters) + ", pp2filter = " + pp2filter + ", pp2limit = " + pp2limit);
+ debug("triggerSearch(" + mkws.query + "): filters = " + $.toJSON(mkws.filters) + ", pp2filter = " + pp2filter + ", pp2limit = " + pp2limit);
my_paz.search(mkws.query, recPerPage, mkws.sort, pp2filter, undefined, { limit: pp2limit });
}
my_paz.search(mkws.query, recPerPage, mkws.sort, pp2filter, undefined, { limit: pp2limit });
}
@@
-533,9
+542,9
@@
mkws.delimitQuery = function (field, value)
if (filter.field &&
field == filter.field &&
value == filter.value) {
if (filter.field &&
field == filter.field &&
value == filter.value) {
- debug("delimitTarget() removing filter " + JSON.stringify(filter));
+ debug("delimitTarget() removing filter " + $.toJSON(filter));
} else {
} else {
- debug("delimitTarget() keeping filter " + JSON.stringify(filter));
+ debug("delimitTarget() keeping filter " + $.toJSON(filter));
newFilters.push(filter);
}
}
newFilters.push(filter);
}
}
@@
-556,9
+565,9
@@
mkws.delimitTarget = function (id)
for (var i in mkws.filters) {
var filter = mkws.filters[i];
if (filter.id) {
for (var i in mkws.filters) {
var filter = mkws.filters[i];
if (filter.id) {
- debug("delimitTarget() removing filter " + JSON.stringify(filter));
+ debug("delimitTarget() removing filter " + $.toJSON(filter));
} else {
} else {
- debug("delimitTarget() keeping filter " + JSON.stringify(filter));
+ debug("delimitTarget() keeping filter " + $.toJSON(filter));
newFilters.push(filter);
}
}
newFilters.push(filter);
}
}
@@
-904,9
+913,14
@@
function mkws_html_all() {
mkws_html_switch();
mkws_html_switch();
- if (mkws_config.use_service_proxy)
+ if (mkws_config.use_service_proxy) {
mkws_service_proxy_auth(mkws_config.service_proxy_auth,
mkws_service_proxy_auth(mkws_config.service_proxy_auth,
- mkws_config.service_proxy_auth_domain);
+ mkws_config.service_proxy_auth_domain,
+ mkws_config.pazpar2_url);
+ } else {
+ // raw pp2
+ run_auto_searches();
+ }
if (mkws_config.responsive_design_width) {
// Responsive web design - change layout on the fly based on
if (mkws_config.responsive_design_width) {
// Responsive web design - change layout on the fly based on
@@
-931,6
+945,8
@@
function mkws_html_all() {
function run_auto_searches() {
function run_auto_searches() {
+ debug("run auto searches");
+
var node = $('#mkwsRecords');
if (node.attr('autosearch')) {
var query = node.attr('autosearch');
var node = $('#mkwsRecords');
if (node.attr('autosearch')) {
var query = node.attr('autosearch');
@@
-1015,9
+1031,14
@@
function mkws_html_perpage() {
* The username/password is configured in the apache config file
* for the site.
*/
* The username/password is configured in the apache config file
* for the site.
*/
-function mkws_service_proxy_auth(auth_url, auth_domain) {
+function mkws_service_proxy_auth(auth_url, auth_domain, pp2_url) {
debug("Run service proxy auth URL: " + auth_url);
debug("Run service proxy auth URL: " + auth_url);
+ if (!auth_domain) {
+ auth_domain = pp2_url.replace(/^http:\/\/(.*?)\/.*/, '$1');
+ debug("guessed auth_domain '" + auth_domain + "' from pp2_url '" + pp2_url + "'");
+ }
+
var request = new pzHttpRequest(auth_url, function(err) {
alert("HTTP call for authentication failed: " + err)
return;
var request = new pzHttpRequest(auth_url, function(err) {
alert("HTTP call for authentication failed: " + err)
return;