More loads, but really small plugin text for into lexonomy

This commit is contained in:
Ozbolt Menegatti 2019-09-23 16:01:37 +02:00
parent 476d139005
commit 46d6448e3b
2 changed files with 61 additions and 50 deletions

View File

@ -1,58 +1,48 @@
{ function plugin_load(config, div, entry) {
plugin: '//plugins.lexonomy.cjvt.si/vsms', $("#load-pre-status").text("Loading...");
editor: function(div, entry, uneditable) {
var self = this;
var div = $(div);
div.append('<p>Loading... <span id="load-status"></span></p>');
var status_span = $('#load-status'); var status_span = $('#load-status');
$.getJSON(self.plugin + "/config.json", function(config) {
var len1 = config.javascript && config.javascript.length || 0; var len1 = config.javascript && config.javascript.length || 0;
var len2 = config.globals && config.javascript.length || 0; var len2 = config.globals && config.javascript.length || 0;
var num_progress = len1 + len2; var num_progress = len1 + len2;
status_span.after(" / " + num_progress); status_span.after(" / " + num_progress);
status_span.text("0"); status_span.text("0");
var progress = 0; var progress = 0;
var check = function() { var check = function() {
if (++progress == num_progress) { if (++progress == num_progress) {
status_span.parent().empty(); status_span.parent().empty();
if(typeof plugin_init !== 'undefined') plugin_init(div, entry); if(typeof plugin_init !== 'undefined') plugin_init(div, entry);
if(typeof plugin_render !== 'undefined') plugin_render(div, entry); if(typeof plugin_render !== 'undefined') plugin_render(div, entry);
}
} }
}
config.javascript.forEach(function(script) {
$.ajax({ config.javascript.forEach(function(script) {
dataType: "script", $.ajax({
cache: true, dataType: "script",
url: script, cache: true,
success: function () { url: script,
status_span.text(progress + 1 + ""); success: function () {
check(); status_span.text(progress + 1 + "");
}
});
});
Object.keys(config.globals).forEach(function(global_name) {
$.get(config.globals[global_name], function(data) {
window[global_name] = data;
check(); check();
}); }
}); });
});
config.css.forEach(function(css_url) { Object.keys(config.globals).forEach(function(global_name) {
var link = document.createElement('link'); $.get(config.globals[global_name], function(data) {
link.rel = 'stylesheet'; window[global_name] = data;
link.type = 'text/css'; check();
link.href = css_url;
link.media = 'all';
$('head').append(link);
}); });
}); });
},
harvester: function(div) { config.css.forEach(function(css_url) {
if(typeof plugin_save !== 'undefined') return plugin_save(div); var link = document.createElement('link');
} link.rel = 'stylesheet';
link.type = 'text/css';
link.href = css_url;
link.media = 'all';
$('head').append(link);
});
} }

21
plugin.js Normal file
View File

@ -0,0 +1,21 @@
{
plugin: 'vsms',
url: '//plugins.lexonomy.cjvt.si',
editor: function(div, entry, uneditable) {
$(div).append('<p><span id="load-pre-status">INIT</span><span id="load-status"></span></p>');
var progress_ctr = 2, config = null;
$.getJSON(this.url + "/" + this.plugin + "/config.json", function(local_config) {
config = local_config;
if(--progress_ctr == 0) plugin_load(config, div, entry);
});
var script_url = this.url + "/plugin-loader.js";
$.ajax({ dataType: "script", cache: true, url: script_url, success: function () {
if(--progress_ctr == 0) plugin_load(config, div, entry);
});
},
harvester: function(div) {
if(typeof plugin_save !== 'undefined') return plugin_save(div);
}
}