is written on the browser console, and also published to any
"log" subcribers.
+String this.value()
+ A function returning the value of the widget's HTML element.
+
TEAM METHODS
============
<table width="100%" border="0" cellpadding="6" cellspacing="0">
<tr>
<td class="mkwsTermlistContainer1" width="250" valign="top">
- <div>
+ <div class="mkwsTermlists mkwsTeam_AUTO">
<div class="title">Termlists</div>
<div class="mkwsFacet mkwsTeam_AUTO" data-mkws-facet="subject"></div>
<div class="mkwsFacet mkwsTeam_AUTO" data-mkws-facet="xtargets"></div>
</tr>
</table>
<div class="mkwsStat"></div>
+ <div class="mkwsConsoleBuilder" text="Make Widget"></div>
<div class="mkwsDone"></div>
<div class="mkwsMOTD">Speak, friend, and enter!</div>
</body>
service_proxy_auth : "/service-proxy-testauth"
};
</script>
- <script type="text/javascript" src="tools/htdocs/jquery-1.10.0.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/jquery-1.10.0.min.js"></script>
+ <script type="text/javascript" src="src/pz2.js"></script>
+ <script type="text/javascript" src="src/handlebars-v1.1.2.js"></script>
+ <script type="text/javascript" src="src/jquery.json-2.4.js"></script>
+
<!-- <script type="text/javascript" src="src/mkws.js"></script> -->
<script type="text/javascript" src="src/mkws-handlebars.js"></script>
<script type="text/javascript" src="src/mkws-core.js"></script>
</tr>
</table>
- <script type="text/javascript" src="tools/htdocs/mkws-complete.js"></script>
+ <script type="text/javascript" src="src/mkws-complete.js"></script>
<!-- <script type="text/javascript" src="https://mkws.indexdata.com/mkws-complete.js"></script> -->
<script type="text/javascript">
COMPONENTS = mkws-handlebars.js \
mkws-core.js mkws-team.js mkws-widgets.js mkws-widget-termlists.js \
- mkws-widget-authname.js mkws-widget-log.js mkws-widget-record.js
-
+ mkws-widget-authname.js mkws-widget-log.js mkws-widget-record.js \
+ mkws-widget-builder.js
INSTALLABLE = ${HANDLEBARS_FILE} ${JQUERY_FILE} ${JQUERY_JSON_FILE} ${PP2_FILE} \
mkws.js mkws-jquery.js mkws-complete.js \
// switching view between targets and records
function switchView(view) {
var targets = widgetNode('Targets');
- var results = findnode('.mkwsResults,.mkwsRecords');
+ var results = widgetNode('Results') || widgetNode('Records');
var blanket = widgetNode('Blanket');
var motd = widgetNode('MOTD');
mkwsHtmlSwitch();
findnode('.mkwsSearchForm').submit(function() {
- var val = findnode('.mkwsQuery').val();
+ var val = widgetNode('Query').val();
newSearch(val);
return false;
});
// on first page, hide the termlist
- $(document).ready(function() { findnode(".mkwsTermlists").hide(); });
+ $(document).ready(function() { widgetNode("Termlists").hide(); });
var container = findnode(".mkwsMOTDContainer");
if (container.length) {
// Move the MOTD from the provided element down into the container
// Finds the node of the specified class within the current team
- // Multiple OR-clauses separated by commas are handled
- // More complex cases may not work
- //
function findnode(selector, teamName) {
teamName = teamName || m_teamName;
- selector = $.map(selector.split(','), function(s, i) {
- if (teamName === 'AUTO') {
- return (s + '.mkwsTeam_' + teamName + ',' +
- s + ':not([class^="mkwsTeam"],[class*=" mkwsTeam"])');
- } else {
- return s + '.mkwsTeam_' + teamName;
- }
- }).join(',');
+ 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');
if (template === undefined) {
// Fall back to generic template if there is no team-specific one
- var node = findnode(".mkwsTemplate_" + name);
- if (!node.length) {
- node = findnode(".mkwsTemplate_" + name, "ALL");
+ var source;
+ var node = widgetNode("Template_" + name);
+ if (!node) {
+ node = widgetNode("Template_" + name, "ALL");
}
+ if (node) {
+ source = node.html();
+ }
- var source = node.html();
if (!source) {
source = defaultTemplate(name);
}
--- /dev/null
+mkws.registerWidgetType('Builder', function() {
+ var that = this;
+ var team = this.team;
+
+ this.button = $('<button/>', {
+ type: 'button',
+ text: this.config.text || "Build!"
+ });
+ $(this.node).append(this.button);
+ this.button.click(function() {
+ var query = team.widget('Query').value();
+ var sort = team.widget('Sort').value();
+ var perpage = team.widget('Perpage').value();
+
+ var html = ('<div class="mkwsRecords" ' +
+ 'autosearch="' + query + '" ' +
+ 'sort="' + sort + '" ' +
+ 'perpage="' + perpage + '"></div>');
+ var fn = that.callback || alert;
+ fn(html);
+ });
+});
+
+mkws.registerWidgetType('ConsoleBuilder', function() {
+ mkws.promotionFunction('Builder').call(this);
+ this.callback = function(s) {
+ console.log("Generated widget: " + s);
+ }
+});
return '[Widget ' + team.name() + ':' + type + ']';
};
+ that.value = function() {
+ return node.value;
+ }
+
for (var i = 0; i < node.attributes.length; i++) {
var a = node.attributes[i];
if (a.name === 'data-mkws-config') {