Skip to content

Commit e66dd91

Browse files
author
jneen
committed
rewrite the css and add a version dropdown with main version
1 parent 11e14df commit e66dd91

10 files changed

Lines changed: 638 additions & 346 deletions

File tree

app.rb

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,13 @@ class Dingus < Sinatra::Base
6363
end
6464

6565
content_type :json
66-
{ ver: demo.version, source: demo.source, result: demo.result }.to_json
66+
67+
{
68+
ver: demo.version,
69+
display_ver: demo.display_version,
70+
source: demo.source,
71+
result: demo.result,
72+
}.to_json
6773
else
6874
halt 400 if params['parse'].nil?
6975

assets/javascripts/application.js.erb

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ const result = document.getElementById("parse_result");
1010
const code = document.getElementById("parse_code");
1111
const save = document.getElementById("save_button");
1212
const tip = document.getElementById("save_message");
13+
const versionDisplay = document.getElementById("version_display");
1314

1415
// Submit function
1516
let submitTimer;
@@ -59,6 +60,8 @@ const update = function(endpoint, payload, overwrite) {
5960
code.innerHTML = data.result;
6061
result.dataset.lang = payload.lang;
6162
result.scrollTop = source.scrollTop;
63+
64+
versionDisplay.innerText = data.display_ver;
6265
} else if (request.readyState === XMLHttpRequest.DONE && request.status !== 200) {
6366
const data = JSON.parse(request.responseText);
6467
flash.innerHTML = data.message;
@@ -70,15 +73,18 @@ const update = function(endpoint, payload, overwrite) {
7073
};
7174

7275
// Reset on language change
73-
lang.addEventListener("change", function(e) {
76+
function doReset(e) {
7477
(source.value === "") ? (editing = false) : null;
7578
const content = editing ? source.value : null;
7679
const payload = { ver: ver.value, lang: lang.value, source: content };
7780
submit("/parse", payload, !editing);
7881
history.pushState({}, "", "/" + encodeURIComponent(ver.value) +
7982
"/" + encodeURIComponent(lang.value) +
8083
"/");
81-
}, { capture: false, passive: true });
84+
}
85+
86+
lang.addEventListener("change", doReset, { capture: false, passive: true });
87+
ver.addEventListener("change", doReset, { capture: false, passive: true });
8288

8389
// Update on source change
8490
source.addEventListener("input", function(e) {
@@ -91,14 +97,19 @@ source.addEventListener("input", function(e) {
9197
if (window.location.pathname !== draft_path) {
9298
history.pushState({}, "", draft_path);
9399
}
100+
101+
checkLength();
102+
}, { capture: false, passive: true });
103+
104+
function checkLength() {
94105
if (source.value.length > <%= Dingus::MAX_BODY_SIZE %>) {
95106
save.disabled = true;
96107
save.classList.add("disabled");
97108
} else {
98109
save.disabled = false;
99110
save.classList.remove("disabled");
100111
}
101-
}, { capture: false, passive: true });
112+
}
102113

103114
// Scroll the highlighted window
104115
source.addEventListener("scroll", function(e) {
@@ -158,3 +169,5 @@ save.addEventListener("click", function(e) {
158169
tip.classList.add("show");
159170
}
160171
}, { capture: false, passive: false });
172+
173+
checkLength();

0 commit comments

Comments
 (0)