-
- // switching view between targets and records
- function switchView(view) {
- var targets = widgetNode('Targets');
- var results = widgetNode('Results') || widgetNode('Records');
- var blanket = widgetNode('Blanket');
- var motd = widgetNode('MOTD');
-
- switch(view) {
- case 'targets':
- if (targets) targets.css('display', 'block');
- if (results) results.css('display', 'none');
- if (blanket) blanket.css('display', 'none');
- if (motd) motd.css('display', 'none');
- break;
- case 'records':
- if (targets) targets.css('display', 'none');
- if (results) results.css('display', 'block');
- if (blanket) blanket.css('display', 'block');
- if (motd) motd.css('display', 'none');
- break;
- default:
- alert("Unknown view '" + view + "'");
- }
- }
- that.switchView = switchView;
-
-
- // detailed record drawing
- that.showDetails = function(recId) {
- var oldRecordId = m_currentRecordId;
- m_currentRecordId = recId;
-
- // remove current detailed view if any
- findnode('#' + recordDetailsId(oldRecordId)).remove();
-
- // if the same clicked, just hide
- if (recId == oldRecordId) {
- m_currentRecordId = '';
- m_currentRecordData = null;
- return;
- }
- // request the record
- log("showDetails() requesting record '" + recId + "'");
- m_paz.record(recId);
- };
-
-
- // Translation function. At present, this is properly a
- // global-level function (hence the assignment to mkws.M) but we
- // want to make it per-team so different teams can operate in
- // different languages.
- //
- mkws.M = function (word) {
- var lang = mkws.config.lang;
- log("in M('" + word + "'), lang=" + lang);
-
- if (!lang || !mkws.locale_lang[lang])
- return word;
-
- return mkws.locale_lang[lang][word] || word;
- };
- var M = mkws.M;
-
-
- // Finds the node of the specified class within the current team
- function findnode(selector, teamName) {
- teamName = teamName || m_teamName;
-
- if (teamName === 'AUTO') {
- selector = (selector + '.mkwsTeam_' + teamName + ',' +
- selector + ':not([class^="mkwsTeam"],[class*=" mkwsTeam"])');
- } else {
- selector = selector + '.mkwsTeam_' + teamName;
- }
-
- var node = $(selector);
- //log('findnode(' + selector + ') found ' + node.length + ' nodes');
- return node;
+ m_filterSet.removeMatching(function(f) { return f.type !== 'category' });
+ triggerSearch(query, sortOrder, maxrecs, perpage, limit, targets, torusquery);
+ switchView('records'); // In case it's configured to start off as hidden
+ m_submitted = true;
+ }
+ that.newSearch = newSearch;
+
+
+ function triggerSearch(query, sortOrder, maxrecs, perpage, limit, targets, torusquery) {
+ resetPage();
+ queue("navi").publish();
+
+ // Continue to use previous query/sort-order unless new ones are specified
+ if (query) m_query = query;
+ if (sortOrder) m_sortOrder = sortOrder;
+ if (perpage) m_perpage = perpage;
+ if (targets) m_filterSet.add(targetFilter(targets, targets));
+
+ var pp2filter = m_filterSet.pp2filter();
+ var pp2limit = m_filterSet.pp2limit(limit);
+ var pp2catLimit = m_filterSet.pp2catLimit();
+ if (pp2catLimit) {
+ pp2filter = pp2filter ? pp2filter + "," + pp2catLimit : pp2catLimit;