<title>MKWS demo</title>
<script type="text/javascript">
var mkws_config = {
+ sp_auth_credentials: "mkwstest/mkwstest"
}
</script>
- <link rel="stylesheet" type="text/css" href="tools/htdocs/mkws.css" />
+ <link rel="stylesheet" type="text/css" href="mkws-widget-reference.css" />
<script type="text/javascript" src="tools/htdocs/jquery-1.10.0.min.js"></script>
<script type="text/javascript" src="tools/htdocs/jquery.json-2.4.js"></script>
<script type="text/javascript" src="tools/htdocs/handlebars-v1.3.0.js"></script>
<script type="text/javascript" src="src/mkws-templates.js"></script>
</head>
<body>
- <div class="mkwsAuthname"></div>
- <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 class='mkwsReference' autosearch='!param!q' sentences='1'>result will appear here</div>
</body>
</html>
handleNodeWithTeam(this, function(tname, type) {
var myTeam = mkws.teams[tname];
if (!myTeam) {
- myTeam = mkws.teams[tname] = team($, tname);
+ myTeam = mkws.teams[tname] = mkws.makeTeam($, tname);
log("made MKWS team '" + tname + "'");
}
var now = $.now();
log("walking MKWS nodes took " + (now-then) + " ms");
-
- /*
- for (var tName in mkws.teams) {
+ for (var tName in mkws.teams) {
var myTeam = mkws.teams[tName]
- log("team '" + tName + "' = " + myTeam + " ...");
- myTeam.visitWidgets(function(t, w) {
- log(" has widget of type '" + t + "': " + w);
- });
- }
- */
+ myTeam.makePz2();
+ log("made PZ2 object for team '" + tName + "'");
+ /*
+ myTeam.visitWidgets(function(t, w) {
+ log(" has widget of type '" + t + "': " + w);
+ });
+ */
+ }
function sp_auth_url(config) {
if (config.service_proxy_auth) {
// limitCategory(), delimitTarget(), delimitQuery(), showPage(),
// pagerPrev(), pagerNext().
//
-function team($, teamName) {
+// Before the team can be used for searching and related operations,
+// its pz2 object must be created by calling team.makePz2().
+//
+mkws.makeTeam = function($, teamName) {
var that = {};
var m_teamName = teamName;
var m_submitted = false;
// team.queue("eventName").subscribe(function(param1, param2 ...) { ... });
// team.queue("eventName").publish(arg1, arg2, ...);
//
- var queues = {};
+ var m_queues = {};
function queue(id) {
- if (!queues[id]) {
+ if (!m_queues[id]) {
var callbacks = $.Callbacks();
- queues[id] = {
+ m_queues[id] = {
publish: callbacks.fire,
subscribe: callbacks.add,
unsubscribe: callbacks.remove
};
}
- return queues[id];
+ return m_queues[id];
};
that.queue = queue;
m_sortOrder = config.sort_default;
m_perpage = config.perpage_default;
-
- // create a parameters array and pass it to the pz2's constructor
- // then register the form submit event with the pz2.search function
- // autoInit is set to true on default
- m_paz = new pz2({ "windowid": teamName,
- "pazpar2path": mkws.pazpar2_url(),
- "usesessions" : config.use_service_proxy ? false : true,
- "oninit": onInit,
- "onbytarget": onBytarget,
- "onstat": onStat,
- "onterm": (config.facets.length ? onTerm : undefined),
- "onshow": onShow,
- "onrecord": onRecord,
- "showtime": 500, //each timer (show, stat, term, bytarget) can be specified this way
- "termlist": config.facets.join(',')
- });
- log("created main pz2 object");
-
+
// pz2.js event handlers:
function onInit() {
log("init");
}
+ // create a parameters array and pass it to the pz2's constructor
+ // then register the form submit event with the pz2.search function
+ // autoInit is set to true on default
+ that.makePz2 = function() {
+ log("m_queues=" + $.toJSON(m_queues));
+ var params = {
+ "windowid": teamName,
+ "pazpar2path": mkws.pazpar2_url(),
+ "usesessions" : config.use_service_proxy ? false : true,
+ "showtime": 500, //each timer (show, stat, term, bytarget) can be specified this way
+ "termlist": config.facets.join(',')
+ };
+
+ params.oninit = onInit;
+ params.onbytarget = onBytarget;
+ params.onstat = onStat;
+ params.onterm = (config.facets.length ? onTerm : undefined);
+ params.onshow = onShow;
+ params.onrecord = onRecord;
+
+ m_paz = new pz2(params);
+ log("ccreated main pz2 object");
+ }
+
+
// Used by the Records widget and onRecord()
function recordElementId(s) {
return 'mkwsRec_' + s.replace(/[^a-z0-9]/ig, '_');
return s.join('');
};
- // ### why is this a member function? It's never called from outside this file.
- that.expandValue = function(val) {
+ function expandValue(val) {
if (val.match(/^!param!/)) {
var param = val.replace(/^!param!/, '');
val = mkws.getParameterByName(param);
for (var i = 0; i < node.attributes.length; i++) {
var a = node.attributes[i];
- var val = that.expandValue(a.value);
+ var val = expandValue(a.value);
if (a.name === 'data-mkws-config') {
// Treat as a JSON fragment configuring just this widget
log(node + ": parsing config fragment '" + val + "'");