<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>MKWS demo jasmine test framework</title>
- <script type="text/javascript">
- var mkws_config = {
- use_service_proxy: false,
- disable_facet_authors_search: true, // does not work with raw pazpar2
- pazpar2_url : "/pazpar2/",
- perpage_default: 10
- };
+ <title>MKWS demo: jQuery popup plugin with jasmine test framework</title>
- var jasmine_config = {
- "show_record_url": false // URLs not configured for pp2
- };
- </script>
- <script type="text/javascript" src="//code.jquery.com/jquery-1.7.2.min.js"></script>
+ <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="tools/htdocs/mkws.css" />
+
+ <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-v2.0.0.js"></script>
<script type="text/javascript" src="tools/htdocs/jquery.json-2.4.js"></script>
<script type="text/javascript" src="tools/htdocs/jsnlog.min.js"></script>
- <script type="text/javascript" src="tools/htdocs/mkws.js"></script>
+ <script type="text/javascript" src="tools/htdocs/handlebars-v2.0.0.js"></script>
- <link rel="stylesheet" type="text/css" href="tools/htdocs/mkws.css" />
- <style type="text/css">
- .mkws-facets div.facet {
- float:left;
- width: 30%;
- margin: 0.3em;
- }
- .mkws-stat {
- text-align: right;
- }
- </style>
+ <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-widget.js"></script>
+ <script type="text/javascript" src="src/mkws-widget-main.js"></script>
+ <script type="text/javascript" src="src/mkws-widget-facets.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="src/mkws-templates.js"></script>
+ <script type="text/javascript" src="src/mkws-popup.js"></script>
- <!-- SECTION jasmine -->
<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="jasmine/lib/jasmine-1.3.1/jasmine.js"></script>
<script type="text/javascript" src="jasmine/lib/jasmine-1.3.1/jasmine-html.js"></script>
- <!-- include MKWS spec files ... -->
<script type="text/javascript" src="test/spec/true.spec.js"></script>
<script type="text/javascript" src="test/spec/mkws-config.js"></script>
<script type="text/javascript" src="test/spec/mkws-pazpar2.js"></script>
- <!-- init and run jasmine -->
<script type="text/javascript" src="test/js/mkws-jasmine-run.js"></script>
- <!-- EOF jasmine -->
+ <style type="text/css">
+ body > div > form > input.ui-state-default { background: none; }
+ </style>
</head>
+
<body>
- <table width="100%" border="0">
- <tr>
- <td>
- <div class="mkws-switch"></div>
- <div class="mkws-lang"></div>
- <div class="mkws-search"></div>
- </td>
- </tr>
- <tr>
- <td>
- <div style="height:500px; overflow: auto">
- <div class="mkws-pager"></div>
- <div class="mkws-navi"></div>
- <div class="mkws-records"></div>
- <div class="mkws-targets"></div>
- <div class="mkws-ranking"></div>
- </div>
- </td>
- </tr>
- <tr>
- <td>
- <div style="height:300px; overflow: hidden">
- <div class="mkws-facets"></div>
- </div>
- </td>
- </tr>
- <tr>
- <td>
- <div class="mkws-stat"></div>
- </td>
- </tr>
- </table>
+ <script type="text/javascript">
+ var mkws_config = {
+ use_service_proxy: false,
+ disable_facet_authors_search: true, // does not work with raw pazpar2
+ pazpar2_url : "/pazpar2/",
+ perpage_default: 10
+ };
+
+ var jasmine_config = {
+ search_query: "freebsd",
+ expected_hits: 20,
+ active_clients: 16,
+ check_motd: false,
+ show_record_url: false // URLs not configured for pp2
+ };
+ </script>
+
+
+ <h2>MKWS Jasmine regression tests</h2>
+ <div class="mkws-search"></div>
+ <div class="mkws-popup" popup_width="990" popup_height="760" popup_modal="0" popup_autoOpen="0" popup_button="input.mkws-button">
+ <div class="mkws-switch"></div>
+ <div class="mkws-lang"></div>
+ <div class="mkws-results"></div>
+ <div class="mkws-targets"></div>
+ <div class="mkws-stat"></div>
+ </div>
- <div id="testMOTD"><div class="mkws-motd">This is the mkws-motd div</div></div>
</body>
</html>
--- /dev/null
+mkws.registerWidgetType('wikicategories', function() {
+ $.ajax({
+ url: mkws.pazpar2_url() + "?command=wiki&query=" + this.config.autosearch,
+ context: this
+ })
+ .done(function(data) {
+ outstr = new XMLSerializer().serializeToString(data.getElementsByTagName("targetcategories").item(0));
+ this.node.html(outstr.replace("targetcategories", "ul").replace(/targetcategory/g, "li"));
+ });
+});
+
+
--- /dev/null
+<!doctype html>
+<html>
+
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<title>MKWS demo: Reference & Credo, and popup widget, development</title>
+<link rel="stylesheet" type="text/css" href="tools/htdocs/mkws.css" />
+<link rel="stylesheet" type="text/css" href="//code.jquery.com/ui/1.11.2/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 = {
+ sp_auth_url: "http://mkwsex.local/service-proxy/?command=auth&action=login&username=mkctest&password=mkctestallcon",
+ pazpar2_url: "http://mkwsex.local/service-proxy/"
+ };
+</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.11.2/jquery-ui.min.js"></script>
+
+<script type="text/javascript" src="tools/htdocs/pz2.js"></script>
+<script type="text/javascript" src="tools/htdocs/handlebars-v2.0.0.js"></script>
+<script type="text/javascript" src="tools/htdocs/jquery.json-2.4.js"></script>
+<script type="text/javascript" src="tools/htdocs/jsnlog.min.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-widget.js"></script>
+<script type="text/javascript" src="src/mkws-widget-main.js"></script>
+<script type="text/javascript" src="src/mkws-widget-facets.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="src/mkws-templates.js"></script>
+<script type="text/javascript" src="src/mkws-popup.js"></script>
+
+<script type="text/javascript" src="mkws-widget-wikicat.js"></script>
+
+<style>
+.dialog > textarea {
+ height: 100%;
+ width: 100%;
+}
+html {
+ margin: 0;
+ height: 100%;
+}
+body {
+ background-color: #bbbbbb;
+ margin: 0;
+ padding: 0;
+ display: flex;
+ flex-direction: column;
+ height: 100%;
+}
+header {
+ font-size: 1.3em;
+}
+header button, #note > input {
+ margin-left: 1em;
+ border-radius: 4px;
+ background-color: #4368a1;
+ color: #dbe9ff;
+ font: inherit;
+ font-weight: normal;
+ border: 1px solid #7492c3;
+ padding: 0.15em 0.25em;
+}
+header button:hover, header button:active, header button:focus {
+ background-color: #2f5591;
+}
+#top-bar, #current-bar, #note {
+ display: flex;
+ flex-wrap: wrap;
+ align-items: center;
+ justify-content: space-between;
+}
+#top-bar {
+ background-color: #002868;
+ color: white;
+}
+#current-bar {
+ background-color: #54d8a8;
+ color: #002868;
+}
+#note {
+ width: 100%;
+ padding: .5em;
+}
+#note > input {
+ flex: 1;
+ background-color: #7de3be;
+ border-color: #7ed6b6;
+ color: #002868;
+}
+#maybe {
+ background-color: #F0AD4E;
+ border-color: #EEA236;
+ color: #664009;
+ color: white;
+}
+#maybe:hover, #maybe:active, #maybe:focus {
+ background-color: #EC971F;
+ border-color: #D58512;
+}
+#yes {
+ background-color: #5CB85C;
+ border-color: #4CAE4C;
+ color: #214d21;
+ color: white;
+}
+#yes:hover, #yes:focus, #yes:active {
+ background-color: #449D44;
+ border-color: #398439;
+}
+#no {
+ background-color: #D9534F;
+ border-color: #D43F3A;
+ color: #4f1311;
+ color: white;
+}
+#no:hover, #no:focus, #no:active {
+ background-color: #C9302C;
+ border-color: #AC2925;
+}
+#query {
+ font-weight: bold;
+ font-size: 110%;
+}
+#settings, #judiciary {
+ padding: .5em;
+ display: flex;
+ align-items: center;
+}
+#results, #query-info {
+ padding: .5em;
+ display: flex;
+ text-align: right;
+ align-items: center;
+ justify-content: flex-end;
+}
+#count {
+ font-size: 120%;
+}
+#test-area {
+ flex: 1;
+ padding: 2em;
+ display: flex;
+ justify-content: center;
+ overflow: auto;
+}
+#test-subject {
+ margin: auto;
+}
+#results-table {
+ flex: 1;
+ padding: 1em;
+ display: flex;
+ justify-content: center;
+}
+#results-table table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
+#results-table td, #results-table th {
+ padding: .25em 1.25em;
+ font-size: .9em;
+}
+#results-table tr:first-child {
+ border-bottom: 1px solid black;
+}
+#results-table tr {
+ border-bottom: 1px dotted black;
+}
+#results-table tr:last-child {
+ border-bottom: none;
+}
+
+</style>
+
+</head>
+
+<body>
+<header>
+ <div id="top-bar">
+ <span id="settings">
+ Settings:
+ <button id="widget-markup-button">Widget</button>
+ <button id="mkws-config-button">MKWS config</button>
+ <button id="queries-button">Queries</button>
+ </span>
+ <span id="results">
+ Results:
+ <button id="results-table-button">Table</button>
+ <button id="results-csv-button">| delimited</button>
+ </span>
+ </div>
+</header>
+
+<header id="current-bar">
+ <span id="judiciary">
+ Relevant to query <span id="query"></span>?
+ <button id="yes" class="judgement">Yes</button>
+ <button id="no" class="judgement">No</button>
+ <button id="maybe" class="judgement">Maybe</button>
+ </span>
+ <span id="query-info">
+ <span id="count"></span>
+ </span>
+ <span id="note">
+ Note: <input type="text"></input>
+ </span>
+</header>
+
+<div id="widget-markup" class="dialog" title="Widget markup">
+ <textarea></textarea>
+</div>
+<div id="mkws-config" class="dialog" title="MKWS configuration">
+ <textarea></textarea>
+</div>
+<div id="queries" class="dialog" title="Queries">
+ <textarea></textarea>
+</div>
+<div id="results-csv" class="dialog" title="| delimited results">
+ <textarea readonly></textarea>
+</div>
+<div id="results-table" class="dialog" title="Results as table">
+ <table></table>
+</div>
+
+<div id="test-area">
+ <div id="test-subject"></div>
+</div>
+
+<script>
+(function () { // wrapper
+// Initial data
+this.queries = ["sushi", "wurst", "berlin", "hammer", "bristol", "copenhagen", "tea", "latte"];
+this.widgetMarkup = '<div class="mkws-reference" autosearch="{{query}}">Loading..</div>';
+if (localStorage.getItem('mkwstest-queries')) {
+ this.queries = JSON.parse(localStorage.getItem('mkwstest-queries'));
+}
+if (localStorage.getItem('mkwstest-widget-markup')) {
+ this.widgetMarkup = localStorage.getItem('mkwstest-widget-markup');
+}
+if (localStorage.getItem('mkwstest-mkws-config')) {
+ mkws_config = JSON.parse(localStorage.getItem('mkwstest-mkws-config'));
+}
+$("#queries > textarea").html(this.queries.join("\n"));
+$("#widget-markup > textarea").html(this.widgetMarkup);
+$("#mkws-config > textarea").html(JSON.stringify(mkws_config));
+mkws.setMkwsConfig(mkws_config);
+mkws.authenticated = false;
+mkws.authenticating = false;
+
+this.results = {};
+var next = 0;
+if (localStorage.getItem('mkwstest-results')) {
+ this.results = JSON.parse(localStorage.getItem('mkwstest-results'));
+}
+if (localStorage.getItem('mkwstest-next') !== null) {
+ next = parseInt(localStorage.getItem('mkwstest-next'));
+}
+
+var context = this;
+
+var showNext = function () {
+ if (next < this.queries.length) {
+ $('#note > input').val("");
+ $('#test-subject').html(this.widgetMarkup.replace("{{query}}", this.queries[next]));
+ $('#query').html('"' + this.queries[next] + '"');
+ localStorage.setItem("mkwstest-next", next);
+ next++;
+ $('#count').html(next + " / " + this.queries.length);
+ mkws.init('#test-subject');
+ } else {
+ $("#results-table").dialog("open");
+ }
+}
+var startEval = function () {
+ $(".dialog").dialog("close");
+ next = 0;
+ context.results = {};
+ showNext();
+}
+var judge = function (e) {
+ var query = $('#test-subject > div').attr('autosearch');
+ context.results[query] = {judgement: $(this).html(), note: $("#note > input").val() || ""};
+ localStorage.setItem("mkwstest-results", JSON.stringify(context.results));
+ showNext();
+}
+
+// Set up dialogs
+$(".dialog").dialog({
+ autoOpen: false,
+ height: 600,
+ width: 600,
+ modal: true,
+ open: function(event, ui) {
+ $(this).parent().css('position', 'fixed');
+ }
+});
+
+// Markup dialog
+var updateMarkup = function () {
+ context.widgetMarkup = $("#widget-markup > textarea").val();
+ localStorage.setItem("mkwstest-widget-markup", context.widgetMarkup);
+ startEval();
+}
+$("#widget-markup-button").click(function () {
+ $("#widget-markup").dialog("open");
+});
+$("#widget-markup").dialog("option", "buttons", [
+ {text: "Start new evaluation", click: updateMarkup},
+ {text: "Cancel", click: function() { $(this).dialog("close"); }}
+]);
+
+// MKWS config dialog
+var updateConfig = function () {
+ mkws.setMkwsConfig(JSON.parse($("#mkws-config > textarea").val()));
+ mkws.authenticated = false;
+ mkws.authenticating = false;
+ localStorage.setItem("mkwstest-mkws-config", $("#mkws-config > textarea").val());
+ startEval();
+}
+$("#mkws-config-button").click(function () {
+ $("#mkws-config").dialog("open");
+});
+$("#mkws-config").dialog("option", "buttons", [
+ {text: "Start new evaluation", click: updateConfig},
+ {text: "Cancel", click: function() { $(this).dialog("close"); }}
+]);
+
+// Queries dialog
+var updateQueries = function () {
+ context.queries = $("#queries > textarea").val().split("\n");
+ localStorage.setItem("mkwstest-queries", JSON.stringify(context.queries));
+ startEval();
+}
+$("#queries-button").click(function () {
+ $("#queries").dialog("open");
+});
+$("#queries").dialog("option", "buttons", [
+ {text: "Start new evaluation", click: updateQueries},
+ {text: "Cancel", click: function() { $(this).dialog("close"); }}
+]);
+
+// Results dialogs
+$("#results-table-button").click(function () {
+ $("#results-table").dialog("open");
+});
+$("#results-csv-button").click(function () {
+ $("#results-csv").dialog("open");
+});
+$("#results-table").dialog("option", "open", function () {
+ var html = "<tr><th>Query</th><th>Relevant?</th><th>Note</th><tr>";
+ for (var i = 0; i < context.queries.length; i++) {
+ var q = context.queries[i];
+ var r = context.results;
+ if (r[q]) {
+ html += "<tr><td>" + q + "</td><td>" + r[q].judgement + "</td><td>" + r[q].note + "</td></tr>\n";
+ }
+ }
+ $("#results-table > table").html(html);
+});
+$("#results-csv").dialog("option", "open", function () {
+ var csv = "Query|Relevant?|Note\n";
+ for (var i = 0; i < context.queries.length; i++) {
+ var q = context.queries[i];
+ var r = context.results;
+ if (r[q]) {
+ csv += [q, r[q].judgement, r[q].note].join("|") + "\n";
+ }
+ }
+ $("#results-csv > textarea").html(csv);
+});
+
+$('button.judgement').click(judge);
+showNext();
+})();// wrapper
+</script>
+
+</body>
+</html>
+
<script type="text/javascript">
var mkws_config = {
+ // target: 'wikimedia_wikipedia_single_result',
sp_auth_credentials: "mkwstest/mkwstest"
};
</script>
header {
font-size: 1.3em;
}
-#top-bar, #current-bar {
+header button, #note > input {
+ margin-left: 1em;
+ border-radius: 4px;
+ background-color: #4368a1;
+ color: #dbe9ff;
+ font: inherit;
+ font-weight: normal;
+ border: 1px solid #7492c3;
+ padding: 0.15em 0.25em;
+}
+header button:hover, header button:active, header button:focus {
+ background-color: #2f5591;
+}
+#top-bar, #current-bar, #note {
display: flex;
flex-wrap: wrap;
align-items: center;
background-color: #54d8a8;
color: #002868;
}
-header button {
- margin-left: 1em;
- border-radius: 4px;
- background-color: #4368a1;
- color: #dbe9ff;
- font: inherit;
- font-weight: normal;
- border: 1px solid #7492c3;
- padding: 0.15em 0.25em;
+#note {
+ width: 100%;
+ padding: .5em;
}
-header button:hover, header button:active, header button:focus {
- background-color: #2f5591;
+#note > input {
+ flex: 1;
+ background-color: #7de3be;
+ border-color: #7ed6b6;
+ color: #002868;
}
#maybe {
background-color: #F0AD4E;
<span id="settings">
Settings:
<button id="widget-markup-button">Widget</button>
+ <button id="mkws-config-button">MKWS config</button>
<button id="queries-button">Queries</button>
</span>
<span id="results">
<span id="query-info">
<span id="count"></span>
</span>
+ <span id="note">
+ Note: <input type="text"></input>
+ </span>
</header>
<div id="widget-markup" class="dialog" title="Widget markup">
<textarea></textarea>
</div>
+<div id="mkws-config" class="dialog" title="MKWS configuration">
+ <textarea></textarea>
+</div>
<div id="queries" class="dialog" title="Queries">
<textarea></textarea>
</div>
<script>
(function () { // wrapper
// Initial data
-this.queries = ["sushi", "wurst", "berlin", "hammer", "bristol", "copenhagen", "tea", "latte"];
+this.queries = ["sushi", "wurst", "tea", "latte"];
this.widgetMarkup = '<div class="mkws-reference" autosearch="{{query}}">Loading..</div>';
if (localStorage.getItem('mkwstest-queries')) {
this.queries = JSON.parse(localStorage.getItem('mkwstest-queries'));
if (localStorage.getItem('mkwstest-widget-markup')) {
this.widgetMarkup = localStorage.getItem('mkwstest-widget-markup');
}
+if (localStorage.getItem('mkwstest-mkws-config')) {
+ mkws_config = JSON.parse(localStorage.getItem('mkwstest-mkws-config'));
+}
$("#queries > textarea").html(this.queries.join("\n"));
$("#widget-markup > textarea").html(this.widgetMarkup);
+$("#mkws-config > textarea").html(JSON.stringify(mkws_config));
+mkws.setMkwsConfig(mkws_config);
+mkws.authenticated = false;
+mkws.authenticating = false;
this.results = {};
var next = 0;
var showNext = function () {
if (next < this.queries.length) {
+ $('#note > input').val("");
$('#test-subject').html(this.widgetMarkup.replace("{{query}}", this.queries[next]));
$('#query').html('"' + this.queries[next] + '"');
localStorage.setItem("mkwstest-next", next);
}
var judge = function (e) {
var query = $('#test-subject > div').attr('autosearch');
- context.results[query] = {judgement: $(this).html()};
+ context.results[query] = {judgement: $(this).html(), note: $("#note > input").val() || ""};
localStorage.setItem("mkwstest-results", JSON.stringify(context.results));
showNext();
}
{text: "Cancel", click: function() { $(this).dialog("close"); }}
]);
+// MKWS config dialog
+var updateConfig = function () {
+ mkws.setMkwsConfig(JSON.parse($("#mkws-config > textarea").val()));
+ mkws.authenticated = false;
+ mkws.authenticating = false;
+ localStorage.setItem("mkwstest-mkws-config", $("#mkws-config > textarea").val());
+ startEval();
+}
+$("#mkws-config-button").click(function () {
+ $("#mkws-config").dialog("open");
+});
+$("#mkws-config").dialog("option", "buttons", [
+ {text: "Start new evaluation", click: updateConfig},
+ {text: "Cancel", click: function() { $(this).dialog("close"); }}
+]);
+
// Queries dialog
var updateQueries = function () {
context.queries = $("#queries > textarea").val().split("\n");
+ // ignore empty query values
+ context.queries = $.grep(context.queries, function (query, index) { return query.match(/^\s*\S+/) } );
localStorage.setItem("mkwstest-queries", JSON.stringify(context.queries));
startEval();
}
$("#results-csv").dialog("open");
});
$("#results-table").dialog("option", "open", function () {
- var html = "<tr><th>Query</th><th>Relevant?</th><tr>";
+ var html = "<tr><th>Query</th><th>Relevant?</th><th>Note</th><tr>";
for (var i = 0; i < context.queries.length; i++) {
var q = context.queries[i];
var r = context.results;
if (r[q]) {
- html += "<tr><td>" + q + "</td><td>" + r[q].judgement + "</td></tr>\n";
+ html += "<tr><td>" + q + "</td><td>" + r[q].judgement + "</td><td>" + r[q].note + "</td></tr>\n";
}
}
$("#results-table > table").html(html);
});
$("#results-csv").dialog("option", "open", function () {
- var csv = "Query|Relevant?\n";
+ var csv = "Query|Relevant?|Note\n";
for (var i = 0; i < context.queries.length; i++) {
var q = context.queries[i];
var r = context.results;
if (r[q]) {
- csv += [q, r[q].judgement].join("|") + "\n";
+ csv += [q, r[q].judgement, r[q].note].join("|") + "\n";
}
}
$("#results-csv > textarea").html(csv);
if (!this.config.template) this.config.template = 'reference';
this.config.template_vars.paragraphs = this.config.paragraphs || 0;
this.config.template_vars.sentences = this.config.sentences || 0;
+ this.config.template_vars.credit = this.config.credit || "Wikipedia";
});
<i>{{md-title-responsibility}}</i>
{{/if}}
{{{mkws-paragraphs md-description paragraphs sentences}}}
-<p class="mkws-credit mkwsCredit">Wikipedia</p>
+<p class="mkws-credit mkwsCredit">{{credit}}</p>
done; wait
ls -l ${IMAGES}
-screenshots:
+screenshots: check
${MAKE} -C ./widgets $@
jsbeautifier jsb indent:
{
"name": "MKWS",
- "version": "0.9.1",
+ "version": "1.0.0",
"license": "GPL, http://www.indexdata.com/licences/gpl",
"contributors": [{
"name": "Mike Taylor",
"email": "wosch@indexdata.com"
}],
"devDependencies": {
- "jQuery": "*",
+ "jquery": "*",
+ "jsdom": "*",
"xmlhttprequest": "*",
- "jsdom": "<= 0.11.1",
- "cssstyle": "<= 0.2.14",
+ "cssstyle": "*",
"request": "*",
- "jasmine-reporters": "<= 0.4.1",
+ "jasmine-reporters": "*",
"jasmine-node": "*",
"phantomjs": "*",
- "handlebars": "= 2.0.0",
- "uglify-js": "> 2.0.0"
+ "handlebars": "*",
+ "uglify-js": "*"
},
"repository": {
"type": "git",
-/* Copyright (c) 2013 Index Data ApS. http://indexdata.com
+/* Copyright (c) 2013-2015 Index Data ApS. http://indexdata.com
*
- * jQuery test
+ * jquery test
*
*/
-describe("jQuery suite simple", function () {
- var $ = require('jQuery');
+describe("jquery suite simple", function () {
+ var $ = require('jquery')(require("jsdom").jsdom().parentWindow);
- it("jQuery append test", function () {
+ it("jquery append test", function () {
$("body").append("<h1>test passes h1</h1>");
expect($("body").html()).toMatch(/<h1>/);
$("<p>this is a paragraph</p>").appendTo("h1");
+++ /dev/null
-/* Copyright (c) 2013 Index Data ApS. http://indexdata.com
- *
- * jQuery test with DOM/windows object
- *
- */
-
-describe("jQuery suite", function () {
- var jsdom = require('jsdom').jsdom;
- var myWindow = jsdom().createWindow();
-
- var $ = require('jQuery');
- var jq = require('jQuery').create();
- var jQuery = require('jQuery').create(myWindow);
-
- it("jQuery append test", function () {
- jQuery("<h1>test passes h1</h1>").appendTo("body");
- expect(jQuery("body").html()).toMatch(/<h1>/);
- });
-
- it("$ append test", function () {
- $("<h2>test passes h2</h2>").appendTo("body");
- expect($("body").html()).toMatch(/<h2>/);
- });
-
- it("jq append test", function () {
- jq("<h2>test passes h2</h2>").appendTo("body");
- expect(jq("body").html()).toMatch(/<h2>/);
- });
-
- it("window test", function () {
- expect(myWindow).toBeDefined();
- });
-});
set -e; \
for t in ${TESTS}; do \
for i in $$(cat url.$$t); do \
- ${MAKE} PHANTOMJS_URL="$$i" TIMEOUT=4 PREFIX=$$t screenshot; \
- done; \
+ ${MAKE} PHANTOMJS_URL="$$i" TIMEOUT=4 PREFIX=$$t screenshot & sleep 1; \
+ done; wait; \
${MAKE} PREFIX=$$t index; \
done
+ ${MAKE} tidy help-url
+
+help-url:
+ @echo ""
+ @echo "Please check now: http://localhost/test/widgets/"
estimate-time:
- @wc -l url.* | tail -n1 | awk '{print "Estimeate run time: " $$1 * (1 + '${TIMEOUT}'), "seconds" }'
+ @wc -l url.* | tail -n1 | awk '{print "Estimeate run time: " $$1 * (1 + '${TIMEOUT}') * 0.5, "seconds" }'
@echo ""
index:
index-iframe-demo:
( cat url.demos | perl -ne 'chomp; print qq{<h2>$$_</h2><iframe width="900px" height="600px" src="$$_"></iframe>\n}' ) > iframe-demos.html
+tidy:
+ for i in iframe-demos.html index-*.html; do \
+ tidy -i -m $$i >/dev/null 2>&1; \
+ perl -i -npe 's,(^\s*</head>),<link type="text/css" rel="stylesheet" href="screenshots.css" /> $$1,' $$i; \
+ done
+
help:
@echo "make [ all | clean | distclean ]"
@echo " [ screenshots ]"
- @echo " [ screenshot | index | iframe ]"
+ @echo " [ screenshot | index | iframe | tidy ]"
@echo ""
@echo "Examples: "
@echo ""
--- /dev/null
+/*
+ * screen shots have usually a white background
+ *
+ * change the default browser background to orange
+ * to make the screen shots more visible
+ */
+
+body {
+ background-color: darkorange;
+}
+
http://example.indexdata.com/topic.html?q=sushi
http://example.indexdata.com/prettysimple.html
http://example.indexdata.com/mkws-widget-wimp.html?q=faubus
+http://example.indexdata.com/tester.html