diff --git a/vsms.js b/vsms.js
index dfdc848..4a90551 100644
--- a/vsms.js
+++ b/vsms.js
@@ -1,104 +1,104 @@
-var _code = {
-prevodi: [],
-zgledi: [],
-vecjez: [],
-indikatorji: [],
-xml: null,
-original: null,
-freq_start: null,
+var plugin_code = {
+ prevodi: [],
+ zgledi: [],
+ vecjez: [],
+ indikatorji: [],
+ xml: null,
+ original: null,
+ freq_start: null,
-empty_prevod: function() {
- var result = '';
- for(let oznaka_tip in constants.oznake) {
- result += ``;
- }
- result += '';
- return result;
-},
-storeXml: function(xml) {
+ empty_prevod: function () {
+ var result = '';
+ for (let oznaka_tip in constants.oznake) {
+ result += ``;
+ }
+ result += '';
+ return result;
+ },
+ storeXml: function (xml) {
this.xml = xml;
- for(let loznaka of xml.find("prevod > oznaka")) {
+ for (let loznaka of xml.find("prevod > oznaka")) {
var oznaka = $(loznaka);
var tip = oznaka.attr('tip');
if (!(tip in constants.oznake)) {
oznaka.attr('tip', 'star');
}
}
-
- for(let fstring of constants.prevod_locations) {
- for(let vecjez of xml.find(fstring)) {
- for(let pp of $(vecjez).find('pp')) {
- $(pp).parent().attr('semicolon', 'true');
- }
-
- for(let lprevod of $(vecjez).find("prevod")) {
- var prevod = $(lprevod);
- if(true) {
- prevod.attr('prevod_id', this.prevodi.length);
- this.prevodi.push(prevod);
- }
- prevod.attr('line_num', this.vecjez.length);
- prevod.attr('semicolon', prevod.attr('semicolon') || false);
- for(let oznaka_tip in constants.oznake) {
- var old = prevod.find(`oznaka[tip="${ oznaka_tip }"]`);
- if(!old.length) {
- to_prepend = ``;
- prevod.prepend($(to_prepend, xml));
- }
- }
-
- if(prevod.find('rzg').length == 0) {
- prevod.append($("", xml));
- }
- }
- this.vecjez.push($(vecjez));
+ for (let fstring of constants.prevod_locations) {
+ for (let vecjez of xml.find(fstring)) {
+ for (let pp of $(vecjez).find('pp')) {
+ $(pp).parent().attr('semicolon', 'true');
}
- }
-
- for(let fstring of constants.zgledi_locations) {
- for(let zgledi of xml.find(fstring)) {
- for(let lzgled of $(zgledi).find('zgled')) {
- var zgled = $(lzgled);
- zgled.attr('jezik', zgled.attr('ime_korpusa') == "hunTenTen12" ? "hun" : "slo");
- zgled.attr('zgled_id', this.zgledi.length);
- this.zgledi.push(zgled);
- }
- for(let lprevod of $(zgledi).find('prevod')) {
- if(!$(lprevod).text().trim().length) {
- $(lprevod).remove();
- }
+
+ for (let lprevod of $(vecjez).find("prevod")) {
+ var prevod = $(lprevod);
+ if (true) {
+ prevod.attr('prevod_id', this.prevodi.length);
+ this.prevodi.push(prevod);
+ }
+ prevod.attr('line_num', this.vecjez.length);
+ prevod.attr('semicolon', prevod.attr('semicolon') || false);
+
+ for (let oznaka_tip in constants.oznake) {
+ var old = prevod.find(`oznaka[tip="${oznaka_tip}"]`);
+ if (!old.length) {
+ to_prepend = ``;
+ prevod.prepend($(to_prepend, xml));
}
+ }
+
+ if (prevod.find('rzg').length == 0) {
+ prevod.append($("", xml));
+ }
}
+ this.vecjez.push($(vecjez));
+ }
}
-
- for(let lpomen of xml.find("pomen")) {
- var pomen = $(lpomen);
- var indikator = pomen.children(':first');
- if(indikator.prop("tagName") != "indikator") {
- indikator = $(``, xml)
- pomen.prepend(indikator);
+
+ for (let fstring of constants.zgledi_locations) {
+ for (let zgledi of xml.find(fstring)) {
+ for (let lzgled of $(zgledi).find('zgled')) {
+ var zgled = $(lzgled);
+ zgled.attr('jezik', zgled.attr('ime_korpusa') == "hunTenTen12" ? "hun" : "slo");
+ zgled.attr('zgled_id', this.zgledi.length);
+ this.zgledi.push(zgled);
}
-
- indikator.attr('indikator_id', this.indikatorji.length);
- this.indikatorji.push(indikator);
+ for (let lprevod of $(zgledi).find('prevod')) {
+ if (!$(lprevod).text().trim().length) {
+ $(lprevod).remove();
+ }
+ }
+ }
}
-
+
+ for (let lpomen of xml.find("pomen")) {
+ var pomen = $(lpomen);
+ var indikator = pomen.children(':first');
+ if (indikator.prop("tagName") != "indikator") {
+ indikator = $(``, xml)
+ pomen.prepend(indikator);
+ }
+
+ indikator.attr('indikator_id', this.indikatorji.length);
+ this.indikatorji.push(indikator);
+ }
+
var opomba = xml.find('glava > opomba');
- if(!opomba.length) {
- var zaglavje = xml.find('glava > zaglavje');
- zaglavje.after($('', xml));
+ if (!opomba.length) {
+ var zaglavje = xml.find('glava > zaglavje');
+ zaglavje.after($('', xml));
}
- for(let lclanek of xml.find('clanek')) {
- var clanek = $(lclanek);
- if(!clanek.find('status').length) {
- clanek.prepend($("A-HU", xml));
+ for (let lclanek of xml.find('clanek')) {
+ var clanek = $(lclanek);
+ if (!clanek.find('status').length) {
+ clanek.prepend($("A-HU", xml));
+ }
}
- }
-},
-render_freq_start: function() {
+ },
+ render_freq_start: function () {
var element = $("#myed-freq-start");
var freq = element.attr("freq");
element.text('FREKVENCA: ' + freq);
@@ -108,456 +108,456 @@ render_freq_start: function() {
element.append($(`*`));
}
*/
-},
-isLast: function(el) {
+ },
+ isLast: function (el) {
return el.next().hasClass("myed-prevod-add") || el.next().hasClass('myed-prevod-bin');
-},
-isFirst: function(el) {
+ },
+ isFirst: function (el) {
return !el.prev().hasClass('myed-prevod-div') || el.prev().is(':hidden');
-},
-moveLeft: function(el) {
- if(!this.isFirst(el)) {
- var xml_el = this.prevodi[el.attr('prevod_id')];
-
- el.prev().before(el);
- xml_el.prev().before(xml_el);
- Screenful.Editor.changed();
+ },
+ moveLeft: function (el) {
+ if (!this.isFirst(el)) {
+ var xml_el = this.prevodi[el.attr('prevod_id')];
+
+ el.prev().before(el);
+ xml_el.prev().before(xml_el);
+ Screenful.Editor.changed();
}
-},
-moveRight: function(el) {
- if(el.next().length && !this.isLast(el)) {
- var xml_el = this.prevodi[el.attr('prevod_id')];
-
- el.next().after(el);
- xml_el.next().after(xml_el);
- Screenful.Editor.changed();
+ },
+ moveRight: function (el) {
+ if (el.next().length && !this.isLast(el)) {
+ var xml_el = this.prevodi[el.attr('prevod_id')];
+
+ el.next().after(el);
+ xml_el.next().after(xml_el);
+ Screenful.Editor.changed();
}
-},
-cut: function(el) {
+ },
+ cut: function (el) {
var xml_el = this.prevodi[el.attr('prevod_id')];
el.toggleClass('myed-prevod-cut');
xml_el.attr('cut', el.hasClass('myed-prevod-cut'));
-
+
// move to end if cutted
- if(el.hasClass('myed-prevod-cut')) {
- this.move_to_end(el);
+ if (el.hasClass('myed-prevod-cut')) {
+ this.move_to_end(el);
}
Screenful.Editor.changed();
-},
-move_to_end: function(el) {
+ },
+ move_to_end: function (el) {
var xml_el = this.prevodi[el.attr('prevod_id')];
- while(el.next().length && !this.isLast(el)) {
- el.next().after(el);
- xml_el.next().after(xml_el);
+ while (el.next().length && !this.isLast(el)) {
+ el.next().after(el);
+ xml_el.next().after(xml_el);
}
-},
-bin: function(el) {
+ },
+ bin: function (el) {
el.toggleClass('myed-prevod-bin');
this.move_to_end(el);
this.prevodi[el.attr('prevod_id')].attr('bin', el.hasClass('myed-prevod-bin'));
Screenful.Editor.changed();
-},
-change: function(el, func_after) {
+ },
+ change: function (el, func_after) {
var text_el = el.find('.myed-prevod-text');
var razlaga_el = el.find('.myed-prevod-razlaga');
- var oznake_el = el.find('.myed-oznaka').map(function() {
- var result = $(this).text();
- if(result.length)
- return result;
+ var oznake_el = el.find('.myed-oznaka').map(function () {
+ var result = $(this).text();
+ if (result.length)
+ return result;
});
var self = this;
-
- self.show_modal(text_el.text(), razlaga_el, oznake_el, function(status, data) {
- var text = data["prevedek"];
- var razlaga = data['razlaga'];
- var razlaga_tax = data['razlaga_tax'];
- var deleteOld = data['remove_old'];
- var oznake = data['oznake'];
-
- if(status) {
- text_el.text(text);
- razlaga_el.text(razlaga);
- razlaga_el.attr('taksonomija', razlaga_tax);
-
- var xml_el = self.prevodi[el.attr('prevod_id')];
- xml_el.find('tekst').text(text);
-
- if(xml_el.find('rzg').length == 0) {
- xml_el.append("", this.xml);
- }
- xml_el.find('rzg').text(razlaga);
- xml_el.find('rzg').attr('taksonomija', razlaga_tax);
- for (let oznaka of oznake) {
- var tip = oznaka[0];
- var value = oznaka[1];
+ self.show_modal(text_el.text(), razlaga_el, oznake_el, function (status, data) {
+ var text = data["prevedek"];
+ var razlaga = data['razlaga'];
+ var razlaga_tax = data['razlaga_tax'];
+ var deleteOld = data['remove_old'];
+ var oznake = data['oznake'];
- // remove --
- while(value.startsWith('-') || value.startsWith(' ')) {
- value = value.substring(1, );
- }
+ if (status) {
+ text_el.text(text);
+ razlaga_el.text(razlaga);
+ razlaga_el.attr('taksonomija', razlaga_tax);
- // write into xml
- var oznaka_xml = xml_el.find(`oznaka[tip="${ tip }"]`);
- oznaka_xml.text(value);
+ var xml_el = self.prevodi[el.attr('prevod_id')];
+ xml_el.find('tekst').text(text);
- // write into html
- var oznaka_html = el.find(`span[title="${ tip }"]`);
- oznaka_html.text(value);
- }
-
- if(deleteOld) {
- xml_el.find(`oznaka[tip="star"]`).text("");
- el.find(`span[title="star"]`).text("");
- }
-
- Screenful.Editor.changed();
+ if (xml_el.find('rzg').length == 0) {
+ xml_el.append("", this.xml);
}
-
- if(func_after) {
- func_after(status);
+ xml_el.find('rzg').text(razlaga);
+ xml_el.find('rzg').attr('taksonomija', razlaga_tax);
+
+ for (let oznaka of oznake) {
+ var tip = oznaka[0];
+ var value = oznaka[1];
+
+ // remove --
+ while (value.startsWith('-') || value.startsWith(' ')) {
+ value = value.substring(1);
+ }
+
+ // write into xml
+ var oznaka_xml = xml_el.find(`oznaka[tip="${tip}"]`);
+ oznaka_xml.text(value);
+
+ // write into html
+ var oznaka_html = el.find(`span[title="${tip}"]`);
+ oznaka_html.text(value);
}
- el.focus();
+
+ if (deleteOld) {
+ xml_el.find(`oznaka[tip="star"]`).text("");
+ el.find(`span[title="star"]`).text("");
+ }
+
+ Screenful.Editor.changed();
+ }
+
+ if (func_after) {
+ func_after(status);
+ }
+ el.focus();
});
-},
-add: function(el) {
+ },
+ add: function (el) {
var self = this;
-
+
var to_clone = $('.myed-prevod-div').first();
var clone = $('
' + to_clone.html() + "
");
clone.attr('tabindex', '1');
clone.attr('prevod_id', this.prevodi.length);
clone.find('.myed-clanek-select').prop("selectedIndex", -1);
-
+
clone.insertBefore(el);
var xml_container = this.vecjez[el.attr('line_num')];
var new_child = $(this.empty_prevod(), this.xml);
-
+
xml_container.append(new_child);
this.prevodi.push(new_child);
- this.change(clone, function(result) { if(!result) { self.bin(clone); }});
-},
-semicolon: function(el) {
+ this.change(clone, function (result) { if (!result) { self.bin(clone); } });
+ },
+ semicolon: function (el) {
var scel = el.find('.myed-prevod-semicolon');
-
+
scel.toggleClass('myed-prevod-semicolon-hidden');
var xml_el = this.prevodi[el.attr('prevod_id')];
xml_el.attr('semicolon', !scel.hasClass('myed-prevod-semicolon-hidden'));
-},
-action: function(el, action) {
- if(action == 'left') {
- this.moveLeft(el);
+ },
+ action: function (el, action) {
+ if (action == 'left') {
+ this.moveLeft(el);
}
- else if(action == 'right') {
- this.moveRight(el);
+ else if (action == 'right') {
+ this.moveRight(el);
}
- else if(action == "cut") {
- this.cut(el);
+ else if (action == "cut") {
+ this.cut(el);
}
- else if(action == "bin") {
- this.bin(el);
+ else if (action == "bin") {
+ this.bin(el);
}
- else if(action == "edit") {
- this.change(el, null);
+ else if (action == "edit") {
+ this.change(el, null);
}
- else if(action == "semicolon") {
- this.semicolon(el);
+ else if (action == "semicolon") {
+ this.semicolon(el);
}
-},
-indikatorEdit: function(el, val) {
+ },
+ indikatorEdit: function (el, val) {
this.indikatorji[$(el).attr('indikator_id')].text(val);
$(el).text(val);
Screenful.Editor.changed();
-},
-zgledPrevod: function(el, val) {
+ },
+ zgledPrevod: function (el, val) {
var zgled_id = el.attr('zgled_id');
var zgled = this.zgledi[zgled_id];
- var new_el = $(`${ val }`);
-
+ var new_el = $(`${val}`);
+
el.parent().text(val);
el.remove();
-
+
zgled.after(new_el);
Screenful.Editor.changed();
-},
-registerCallbacks: function() {
+ },
+ registerCallbacks: function () {
var self = this;
var root = $(".clanek");
-
+
function get_prevod_div(element) {
- while(element.parent().length) {
- if(element.hasClass('myed-prevod-div')) {
- return element;
- }
- element = element.parent();
+ while (element.parent().length) {
+ if (element.hasClass('myed-prevod-div')) {
+ return element;
}
- return null;
+ element = element.parent();
+ }
+ return null;
}
-
- root.on('change', '.myed-clanek-select', function(e) {
- var el = get_prevod_div($(this));
- var action = $(this).find(":selected").val();
- self.action(el, action);
- $(this).prop("selectedIndex", -1);
+
+ root.on('change', '.myed-clanek-select', function (e) {
+ var el = get_prevod_div($(this));
+ var action = $(this).find(":selected").val();
+ self.action(el, action);
+ $(this).prop("selectedIndex", -1);
});
-
- root.on('click', '.myed-prevod-add', function(e) {
- self.add($(this));
+
+ root.on('click', '.myed-prevod-add', function (e) {
+ self.add($(this));
});
-
- root.on('click', '.myed-indikator', function() {
- var el = $(this);
- $.sweetModal.prompt('Indikator', 'Vstavi:', el.text(), function(val) {
- self.indikatorEdit(el, val);
- });
+
+ root.on('click', '.myed-indikator', function () {
+ var el = $(this);
+ $.sweetModal.prompt('Indikator', 'Vstavi:', el.text(), function (val) {
+ self.indikatorEdit(el, val);
+ });
});
-
- root.on('keydown', '.myed-prevod-div', function(e) {
- var action = {
- 13: "edit",
- 37: "left",
- 39: "right",
- 46: "cut"
- }[e.keyCode];
-
- if(action) {
- self.action($(this), action);
- $(this).focus();
- }
+
+ root.on('keydown', '.myed-prevod-div', function (e) {
+ var action = {
+ 13: "edit",
+ 37: "left",
+ 39: "right",
+ 46: "cut"
+ }[e.keyCode];
+
+ if (action) {
+ self.action($(this), action);
+ $(this).focus();
+ }
});
-
- root.on('click', '.myed-zgled-prevod-btn', function(e) {
- var el = $(this);
- $.sweetModal.prompt('Prevod Zgleda', 'Vstavi:', '', function(val) {
- self.zgledPrevod(el, val);
- });
+
+ root.on('click', '.myed-zgled-prevod-btn', function (e) {
+ var el = $(this);
+ $.sweetModal.prompt('Prevod Zgleda', 'Vstavi:', '', function (val) {
+ self.zgledPrevod(el, val);
+ });
});
-
- root.on('click', '#myed-opomba', function() {
- var el = $(this);
- $.sweetModal.prompt('Opomba', 'Opomba', el.text(), function(val) {
- el.text(val);
- self.xml.find('glava > opomba').text(val);
- Screenful.Editor.changed();
- });
+
+ root.on('click', '#myed-opomba', function () {
+ var el = $(this);
+ $.sweetModal.prompt('Opomba', 'Opomba', el.text(), function (val) {
+ el.text(val);
+ self.xml.find('glava > opomba').text(val);
+ Screenful.Editor.changed();
+ });
});
// fixing modal stuff
- $('body').on('keydown', '.sweet-modal-prompt', function(e) {
- if(e.keyCode == 13) {
- $('.greenB').first().trigger('click')
- return false;
- }
- else if(e.keyCode == 27) {
- $('.redB').first().trigger('click')
- return false;
- }
+ $('body').on('keydown', '.sweet-modal-prompt', function (e) {
+ if (e.keyCode == 13) {
+ $('.greenB').first().trigger('click')
+ return false;
+ }
+ else if (e.keyCode == 27) {
+ $('.redB').first().trigger('click')
+ return false;
+ }
});
-},
-clanekOldCode: function() {
+ },
+ clanekOldCode: function () {
// script from original xslt, don't really wanna touch this!
- var clanekShowHide = function(button) {
- if(button.target.tagName !== "INPUT") {
- // this actually triggers a few times, so...
- return;
- }
-
- var clanek = $('.clanek');
- var boolCollocations = clanek.find(".lblCollocations input").prop("checked");
- var boolExamples = clanek.find(".lblExamples input").prop("checked");
-
- if(boolExamples) {
- clanek.find(".hiddenExample").slideDown();
- }
- else {
- clanek.find(".hiddenExample").slideUp();
- }
- if(boolCollocations) {
- clanek.find(".hiddenBlock").slideDown();
- }
- else {
- clanek.find(".hiddenBlock").slideUp();
- }
+ var clanekShowHide = function (button) {
+ if (button.target.tagName !== "INPUT") {
+ // this actually triggers a few times, so...
+ return;
+ }
+
+ var clanek = $('.clanek');
+ var boolCollocations = clanek.find(".lblCollocations input").prop("checked");
+ var boolExamples = clanek.find(".lblExamples input").prop("checked");
+
+ if (boolExamples) {
+ clanek.find(".hiddenExample").slideDown();
+ }
+ else {
+ clanek.find(".hiddenExample").slideUp();
+ }
+ if (boolCollocations) {
+ clanek.find(".hiddenBlock").slideDown();
+ }
+ else {
+ clanek.find(".hiddenBlock").slideUp();
+ }
};
-
+
var clanek = $('.clanek');
var lblCollocations = clanek.find(".lblCollocations");
var lblExamples = clanek.find(".lblExamples");
-
+
lblExamples.hide();
lblCollocations.hide()
-
- if(clanek.find(".hiddenBlock").length > 0) {
- lblCollocations.show()
- lblCollocations.first().on("click", clanekShowHide);
- clanek.find(".buttons").show();
+
+ if (clanek.find(".hiddenBlock").length > 0) {
+ lblCollocations.show()
+ lblCollocations.first().on("click", clanekShowHide);
+ clanek.find(".buttons").show();
}
- if(clanek.find("*:visible > .hiddenExample").length > 0) {
- lblExamples.show()
- lblExamples.first().on("click", clanekShowHide);
- clanek.find(".buttons").show();
+ if (clanek.find("*:visible > .hiddenExample").length > 0) {
+ lblExamples.show()
+ lblExamples.first().on("click", clanekShowHide);
+ clanek.find(".buttons").show();
}
-
+
// this is actually new but belongs here
- $(".lblPrevodi").first().on('click', function(e) {
- if(e.target.tagName !== "INPUT") {
- return;
- }
- $('.myed-zgled-prevod-btn').parent().toggle();
+ $(".lblPrevodi").first().on('click', function (e) {
+ if (e.target.tagName !== "INPUT") {
+ return;
+ }
+ $('.myed-zgled-prevod-btn').parent().toggle();
});
$('.myed-zgled-prevod-btn').parent().toggle();
-},
-editor: function(div, entry, uneditable) {
+ },
+ editor: function (div, entry, uneditable) {
var xml = $($.parseXML(entry.content));
-
+
// for "dodajanje prevodov" we need a model div to copy.
// we create one here, that is then made invisible, but is
// available for copying
$(this.empty_prevod(), xml).insertBefore(xml.find('prevod').first());
-
+
// adding prevod_id to prevodi
this.storeXml(xml);
sessionStorage.myed_original = entry.content;
-
+
var xsltProcessor = new XSLTProcessor();
xsltProcessor.importStylesheet(plugin_xslt);
resultDocument = xsltProcessor.transformToFragment(xml[0], document);
$(div).append(resultDocument);
-
+
// now I need to hide first prevod that was inserted into
// xml by this script, in order to be able to clone it
- $('.myed-prevod-div').first().hide();
+ $('.myed-prevod-div').first().hide();
xml.find('prevod').first().remove();
-
+
this.render_freq_start();
this.clanekOldCode();
this.registerCallbacks();
-
+
// select nothing in all hamburger dropdowns
$('.myed-clanek-select').prop("selectedIndex", -1);
-},
-oznaka_callback: function(el) {
- var select = el.parent().find('select');
- var text = window.prompt("Nova oznaka");
- select.append($('