PHANTOMJS= ./node_modules/phantomjs/bin/phantomjs
PHANTOMJS_URL= https://mkws-dev.indexdata.com/jasmine-popup.html
PHANTOMJS_TIMEOUT= 12
+IMAGES= ./images
+SCREENSHOT_WIDTH= 360 480 640 768 1024 1200 1440 2048
all: check
clean:
- rm -f mkws-error.png mkws-error.html
+ rm -f mkws-error.png mkws-error.html images/*.png
distclean: clean
rm -rf node_modules
phantomjs:
${PHANTOMJS} phantom/evaluate.js ${PHANTOMJS_URL} ${PHANTOMJS_TIMEOUT}
+screenshot:
+ ${PHANTOMJS} phantom/screenshot.js ${PHANTOMJS_URL} ${IMAGES}/screenshot.png 1200 1000
+
+screenshot-mkws:
+ for i in ${SCREENSHOT_WIDTH}; do \
+ ${PHANTOMJS} phantom/screenshot.js http://mkws.indexdata.com ${IMAGES}/mkws-$$i.png $$i 1000 & \
+ done; wait
+ ls -l ${IMAGES}
+
+screenshot-indexdata:
+ for i in ${SCREENSHOT_WIDTH}; do \
+ ${PHANTOMJS} phantom/screenshot.js http://www.indexdata.com ${IMAGES}/indexdata-$$i.png $$i 1000 & \
+ done; wait
+ ls -l ${IMAGES}
+
jsbeautifier jsb indent:
for i in ./spec*/*.js ./js/*.js ./phantom/*.js; do \
jsbeautifier -j $$i > $@.tmp && mv -f $@.tmp $$i; \
npm install ${NPM_INSTALL_FLAGS} jQuery xmlhttprequest jsdom request jasmine-node phantomjs
help:
- @echo "make [ all | check | phantomjs | clean | distclean ]"
+ @echo "make [ all | check | clean | distclean ]"
+ @echo " [ phantomjs | screenshot ]"
@echo " [ jsbeautifier | node-modules ]"
describe("Check switch menu Records/Targets", function () {
it("check mkwsSwitch", function () {
- expect($("div#mkwsSwitch").length).toBe(1);
+ expect($("div.mkwsSwitch").length).toBe(1);
// expect 2 clickable links
- expect($("div#mkwsSwitch a").length).toBe(2);
+ expect($("div.mkwsSwitch a").length).toBe(2);
});
it("switch to target view", function () {
- var click = $("a#mkwsSwitch_targets").trigger("click");
+ var click = $("div.mkwsSwitch").children('a').eq(1).trigger("click");
debug("target view click is success: " + click.length);
expect(click.length).toBe(1);
// now the target table must be visible
- expect($("div#mkwsBytarget").is(":visible")).toBe(true);
+ expect($("div.mkwsBytarget").is(":visible")).toBe(true);
expect($("div#mkwsRecords").is(":visible")).toBe(false);
// wait a half second, to show the target view
// look for table header
runs(function () {
- expect($("div#mkwsBytarget").html()).toMatch(/Target ID/);
+ expect($("div.mkwsBytarget").html()).toMatch(/Target ID/);
});
});
it("switch back to record view", function () {
- var click = $("a#mkwsSwitch_records").trigger("click");
+ var click = $("div.mkwsSwitch").children('a').eq(0).trigger("click");
debug("record view click is success: " + click.length);
expect(click.length).toBe(1);
#mkwsLang,
-#mkwsSwitch,
+#mkwsSwitch, .mkwsSwitch,
#mkwsSearch, .mkwsSearch,
#mkwsTermlists,
#mkwsRanking,
#mkwsPager,
#mkwsNavi,
#mkwsRecords,
-#mkwsTargets,
+#mkwsTargets, .mkwsTargets,
#mkwsStat,
#mkwsMOTD {
font-family: Gill Sans, "Gillius ADF", Gillius, GilliusADF, Verdana, Sans-Serif;
float: right;
}
-#mkwsSwitch {
+#mkwsSwitch, .mkwsSwitch {
float: right;
padding-left: 1em;
padding-top: 0.4em;
}
-#mkwsTargets {
+#mkwsTargets, .mkwsTargets {
background-color: #fafafa;
}
font-weight: bold;
}
-#mkwsSwitch a,
+#mkwsSwitch a, .mkwsSwitch a,
#mkwsLang a,
#mkwsTermlists a,
#mkwsRanking a,
text-decoration: none;
}
-#mkwsSwitch a:hover,
+#mkwsSwitch a:hover, .mkwsSwitch a:hover,
#mkwsLang a:hover,
#mkwsTermlists a:hover,
#mkwsPager a:hover,
padding: 0.3em;
}
-#mkwsBytarget table thead tr td {
+.mkwsBytarget table thead tr td {
background-color: #132194;
color: white;
font-weight: bold;
padding: 0.2em 0.5em;
}
-#mkwsBytarget table tbody tr:nth-child(odd) {
+.mkwsBytarget table tbody tr:nth-child(odd) {
background-color: #e0f0ff;
}
-#mkwsBytarget table tbody tr:nth-child(even) {
+.mkwsBytarget table tbody tr:nth-child(even) {
background-color: #d0e0ff;
}
-#mkwsBytarget table tbody tr td {
+.mkwsBytarget table tbody tr td {
padding: 0.2em 0.5em;
}
function my_onbytarget(data, teamName) {
debug("target for " + teamName);
- var targetDiv = document.getElementById("mkwsBytarget");
+ var targetDiv = $('.mkwsBytarget.mkwsTeam_' + teamName);
if (!targetDiv) {
// No mkwsTargets div.
return;
}
table += '</tbody></table>';
- targetDiv.innerHTML = table;
+ targetDiv.html(table);
}
////////////////////////////////////////////////////////////////////////////////
mkws.switchView = function(view) {
debug("switchView: " + view);
- var targets = document.getElementById('mkwsTargets');
- var results = document.getElementById('mkwsResults') ||
- document.getElementById('mkwsRecords');
- var blanket = document.getElementById('mkwsBlanket');
- var motd = document.getElementById('mkwsMOTD');
+ //var targets = document.getElementById('mkwsTargets');
+ var targets = $('#mkwsTargets');
+ var results = $('#mkwsResults,#mkwsRecords');
+ var blanket = $('#mkwsBlanket');
+ var motd = $('#mkwsMOTD');
switch(view) {
case 'targets':
- if (targets) targets.style.display = "block";
- if (results) results.style.display = "none";
- if (blanket) blanket.style.display = "none";
- if (motd) motd.style.display = "none";
+ 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.style.display = "none";
- if (results) results.style.display = "block";
- if (blanket) blanket.style.display = "block";
- if (motd) motd.style.display = "none";
+ 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;
case 'none':
- if (targets) targets.style.display = "none";
- if (results) results.style.display = "none";
- if (blanket) blanket.style.display = "none";
- if (motd) motd.style.display = "none";
+ alert("mkws.switchView('none') shouldn't happen");
+ if (targets) targets.css('display', 'none');
+ if (results) results.css('display', 'none');
+ if (blanket) blanket.css('display', 'none');
+ if (motd) motd.css('display', 'none');
break;
default:
alert("Unknown view '" + view + "'");
function mkws_html_switch() {
- debug("HTML switch");
+ debug("HTML switch for team " + m_teamName);
- $("#mkwsSwitch").append($('<a href="#" id="mkwsSwitch_records" onclick="mkws.switchView(\'records\')">' + M('Records') + '</a>'));
- $("#mkwsSwitch").append($("<span/>", { text: " | " }));
- $("#mkwsSwitch").append($('<a href="#" id="mkwsSwitch_targets" onclick="mkws.switchView(\'targets\')">' + M('Targets') + '</a>'));
+ var node = $(".mkwsSwitch.mkwsTeam_" + m_teamName);
+ node.append($('<a href="#" onclick="mkws.switchView(\'records\')">' + M('Records') + '</a>'));
+ node.append($("<span/>", { text: " | " }));
+ node.append($('<a href="#" onclick="mkws.switchView(\'targets\')">' + M('Targets') + '</a>'));
debug("HTML targets");
- $("#mkwsTargets").html('\
-<div id="mkwsBytarget" class="mkwsBytarget mkwsTeam_AUTO">\
+ var node = $(".mkwsTargets.mkwsTeam_" + m_teamName);
+ node.html('\
+<div class="mkwsBytarget mkwsTeam_' + m_teamName + '">\
No information available yet.\
</div>');
- $("#mkwsTargets").css("display", "none");
+ node.css("display", "none");
}
$("#mkwsTermlistContainer1").hide();
$("#mkwsTermlistContainer2").show();
for(var i = 0; i < list.length; i++) {
- $("#" + list[i]).hide();
+ $("#" + list[i]).hide(); // ### make team-aware
}
} else if ($(window).width() > width &&
parentId === "mkwsTermlistContainer2") {
$("#mkwsTermlistContainer1").show();
$("#mkwsTermlistContainer2").hide();
for(var i = 0; i < list.length; i++) {
- $("#" + list[i]).show();
+ $("#" + list[i]).show(); // ### make team-aware
}
}
};