X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fmkws-widgets.js;h=d5ec237905cde966bd3e5db7ca7d62e72882495b;hb=8d9cf5ca5921f2150742c41d1cbfbd4144ed4379;hp=80fe222c737792b8b87dc9ab122cb10c923a7923;hpb=1b9f7ef174bafe09ec974c233a0494d2edf16fae;p=mkws-moved-to-github.git diff --git a/src/mkws-widgets.js b/src/mkws-widgets.js index 80fe222..d5ec237 100644 --- a/src/mkws-widgets.js +++ b/src/mkws-widgets.js @@ -457,3 +457,77 @@ mkws.registerWidgetType('Ranking', function() { }); +mkws.registerWidgetType('Lang', function() { + // dynamic URL or static page? /path/foo?query=test + /* create locale language menu */ + if (!this.config.show_lang) return; + + var lang_default = "en"; + var lang = this.config.lang || lang_default; + var list = []; + + /* display a list of configured languages, or all */ + var lang_options = this.config.lang_options || []; + var toBeIncluded = {}; + for (var i = 0; i < lang_options.length; i++) { + toBeIncluded[lang_options[i]] = true; + } + + for (var k in mkws.locale_lang) { + if (toBeIncluded[k] || lang_options.length == 0) + list.push(k); + } + + // add english link + if (lang_options.length == 0 || toBeIncluded[lang_default]) + list.push(lang_default); + + this.log("Language menu for: " + list.join(", ")); + + /* the HTML part */ + var data = ""; + for (var i = 0; i < list.length; i++) { + var l = list[i]; + if (data) + data += ' | '; + + if (lang == l) { + data += ' ' + l + ' '; + } else { + data += ' ' + l + ' ' + } + } + + $(this.node).html(data); + + + // set or re-set "lang" URL parameter + function lang_url(lang) { + var query = location.search; + // no query parameters? done + if (!query) { + return "?lang=" + lang; + } + + // parameter does not exist + if (!query.match(/[\?&]lang=/)) { + return query + "&lang=" + lang; + } + + // replace existing parameter + query = query.replace(/\?lang=([^&#;]*)/, "?lang=" + lang); + query = query.replace(/\&lang=([^&#;]*)/, "&lang=" + lang); + return query; + } +}); + + +mkws.registerWidgetType('MOTD', function() { + var container = this.team.widget('MOTDContainer'); + if (container) { + // Move the MOTD from the provided element down into the container + $(this.node).appendTo(container.node); + } +}); + +