205 lines
5.7 KiB
JavaScript
205 lines
5.7 KiB
JavaScript
// Generated by CoffeeScript 1.10.0
|
|
|
|
/*
|
|
LemonLDAP::NG Portal jQuery scripts
|
|
*/
|
|
|
|
(function() {
|
|
var datas, getOrder, getValues, isHiddenFormValueSet, ping, restoreOrder, setSelector, translate, translatePage, translationFields,
|
|
indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };
|
|
|
|
translationFields = {};
|
|
|
|
translatePage = function(lang) {
|
|
return $.getJSON(window.staticPrefix + "languages/" + lang + ".json", function(data) {
|
|
translationFields = data;
|
|
$("[trspan]").each(function() {
|
|
return $(this).text(translate($(this).attr('trspan')));
|
|
});
|
|
return $("[trmsg]").each(function() {
|
|
return $(this).text(translate("PE" + ($(this).attr('trmsg'))));
|
|
});
|
|
});
|
|
};
|
|
|
|
translate = function(str) {
|
|
if (translationFields[str]) {
|
|
return translationFields[str];
|
|
} else {
|
|
return str;
|
|
}
|
|
};
|
|
|
|
getValues = function() {
|
|
var values;
|
|
values = {};
|
|
$("script[type='application/init']").each(function() {
|
|
var e, error, k, results, tmp;
|
|
try {
|
|
tmp = JSON.parse($(this).text);
|
|
results = [];
|
|
for (k in tmp) {
|
|
results.push(values[k] = tmp[k]);
|
|
}
|
|
return results;
|
|
} catch (error) {
|
|
e = error;
|
|
return console.log('Parsing error', e);
|
|
}
|
|
});
|
|
return values;
|
|
};
|
|
|
|
setSelector = "#appslist";
|
|
|
|
getOrder = function() {
|
|
return $.ajax({
|
|
type: "POST",
|
|
url: datas['scriptname'],
|
|
data: {
|
|
storeAppsListOrder: $(setSelector).sortable("toArray").join()
|
|
},
|
|
dataType: 'json'
|
|
});
|
|
};
|
|
|
|
restoreOrder = function() {
|
|
var IDs, child, i, item, itemID, items, j, len, len1, list, rebuild, savedOrd, v;
|
|
list = $(setSelector);
|
|
if (!((list != null) && datas['appslistorder'])) {
|
|
return null;
|
|
}
|
|
IDs = datas['appslistorder'].split(',');
|
|
items = list.sortable("toArray");
|
|
rebuild = [];
|
|
for (i = 0, len = items.length; i < len; i++) {
|
|
v = items[i];
|
|
rebuild[v] = v;
|
|
}
|
|
for (j = 0, len1 = IDs.length; j < len1; j++) {
|
|
itemID = IDs[j];
|
|
if (indexOf.call(rebuild, itemID) >= 0) {
|
|
item = rebuild[itemID];
|
|
child = $(setSelector + ".ui-sortable").children("#" + item);
|
|
savedOrd = $(setSelector + ".ui-sortable").children("#" + itemID);
|
|
child.remove();
|
|
$(setSelector + ".ui-sortable").filter(":first").append(savedOrd);
|
|
}
|
|
}
|
|
return 1;
|
|
};
|
|
|
|
isHiddenFormValueSet = function(option) {
|
|
return $('#lmhidden_' + option).length;
|
|
};
|
|
|
|
ping = function() {
|
|
return $.ajax({
|
|
type: "POST",
|
|
url: datas['scriptname'],
|
|
data: {
|
|
ping: 1
|
|
},
|
|
dataType: 'json',
|
|
success: function(data) {
|
|
if (data.auth) {
|
|
return setTimeout(ping, datas['pingInterval']);
|
|
} else {
|
|
return location.reload(true);
|
|
}
|
|
}
|
|
});
|
|
};
|
|
|
|
window.ping = ping;
|
|
|
|
datas = {};
|
|
|
|
$(document).ready(function() {
|
|
var action, al, authMenuTabs, back_url, i, j, lang, langs, langs2, len, len1, link, menuIndex, menuTabs, method, nl, nlangs, ref;
|
|
datas = getValues();
|
|
window.datas = datas;
|
|
if (datas['antiframe'] && top !== self) {
|
|
top.location.href = location.href;
|
|
}
|
|
$("#appslist").sortable({
|
|
axis: "y",
|
|
cursor: "move",
|
|
opacity: 0.5,
|
|
revert: true,
|
|
items: "> div.category",
|
|
update: function() {
|
|
return getOrder();
|
|
}
|
|
});
|
|
restoreOrder();
|
|
$("div.message").fadeIn('slow');
|
|
$("input[name=timezone]").val(-(new Date().getTimezoneOffset() / 60));
|
|
menuTabs = $("#menu").tabs({
|
|
active: 0
|
|
});
|
|
menuIndex = $('#menu a[href="#' + datas['displaytab'] + '"]').parent().index();
|
|
if (menuIndex < 0) {
|
|
menuIndex = 0;
|
|
}
|
|
menuTabs.tabs("option", "active", menuIndex);
|
|
authMenuTabs = $("#authMenu").tabs({
|
|
active: 0
|
|
});
|
|
if (datas['choicetab']) {
|
|
authMenuTabs.tabs("option", "active", $('#authMenu a[href="#' + datas['choicetab'] + '"]').parent().index());
|
|
}
|
|
if (datas['login']) {
|
|
$("input[type=password]:first").focus();
|
|
} else {
|
|
$("input[type!=hidden]:first").focus();
|
|
}
|
|
if (datas['newwindow']) {
|
|
$('#appslist a').attr("target", "_blank");
|
|
}
|
|
if ($("p.removeOther").length) {
|
|
action = $("form.login").attr("action");
|
|
method = $("form.login").attr("method");
|
|
back_url = "";
|
|
if (action.indexOf("?") !== -1) {
|
|
action.substring(0, action.indexOf("?")) + "?";
|
|
} else {
|
|
back_url = action + "?";
|
|
}
|
|
$("form.login input[type=hidden]").each(function(index) {
|
|
return back_url += "&" + $(this).attr("name") + "=" + $(this).val();
|
|
});
|
|
link = $("p.removeOther a").attr("href") + "&method=" + method + "&url=" + btoa(back_url);
|
|
$("p.removeOther a").attr("href", link);
|
|
}
|
|
if (navigator) {
|
|
langs = [];
|
|
langs2 = [];
|
|
nlangs = [navigator.language];
|
|
if (navigator.languages) {
|
|
nlangs = navigator.languages;
|
|
}
|
|
for (i = 0, len = nlangs.length; i < len; i++) {
|
|
nl = nlangs[i];
|
|
ref = window.availableLanguages;
|
|
for (j = 0, len1 = ref.length; j < len1; j++) {
|
|
al = ref[j];
|
|
if (al === nl) {
|
|
langs.push(al);
|
|
} else if (al.substring(0, 1) === nl.substring(0, 1)) {
|
|
langs2.push(al);
|
|
}
|
|
}
|
|
}
|
|
lang = langs[0] ? langs[0] : langs2[0] ? langs2[0] : 'en';
|
|
} else {
|
|
lang = 'en';
|
|
}
|
|
if (datas['pingInterval'] && datas['pingInterval'] > 0) {
|
|
window.setTimeout(ping, datas['pingInterval']);
|
|
}
|
|
return translatePage(lang);
|
|
});
|
|
|
|
}).call(this);
|