mirror of
https://github.com/cosmocode/dokuwiki-plugin-struct.git
synced 2025-08-13 13:37:20 +00:00
72 lines
1.9 KiB
JavaScript
72 lines
1.9 KiB
JavaScript
/**
|
|
* Simplyfies AJAX requests for types
|
|
*
|
|
* @param {string} column A configured column in the form schema.name
|
|
* @param {function} fn Callback on success
|
|
* @param {object} data Additional data to pass
|
|
*/
|
|
function struct_ajax(column, fn, data) {
|
|
if (!data) data = {};
|
|
|
|
data['call'] = 'plugin_struct';
|
|
data['column'] = column;
|
|
data['id'] = JSINFO.id;
|
|
data['ns'] = JSINFO.namespace;
|
|
|
|
jQuery.post(DOKU_BASE + 'lib/exe/ajax.php', data, fn, 'json')
|
|
.fail(function (result) {
|
|
if (result.responseJSON) {
|
|
if (result.responseJSON.stacktrace) {
|
|
console.error(result.responseJSON.error + "\n" + result.responseJSON.stacktrace);
|
|
}
|
|
alert(result.responseJSON.error);
|
|
} else {
|
|
// some fatal error occured, get a text only version of the response
|
|
alert(jQuery(result.responseText).text());
|
|
}
|
|
});
|
|
}
|
|
|
|
/**
|
|
* @param {string} val
|
|
* @return {Array}
|
|
*/
|
|
function split(val) {
|
|
return val.split(/,\s*/);
|
|
}
|
|
|
|
/**
|
|
* @param {string} term
|
|
* @returns {string}
|
|
*/
|
|
function extractLast(term) {
|
|
return split(term).pop();
|
|
}
|
|
|
|
|
|
/**
|
|
* Replace numbered placeholders in a string with the given arguments
|
|
*
|
|
* Example formatString('{0} is dead, but {1} is alive! {0} {2}', 'ASP', 'ASP.NET');
|
|
*
|
|
* adapted from http://stackoverflow.com/a/4673436/3293343
|
|
* @param format
|
|
* @returns {*}
|
|
*/
|
|
function formatString(format) {
|
|
var args = Array.prototype.slice.call(arguments, 1);
|
|
return format.replace(/{(\d+)}/g, function (match, number) {
|
|
return typeof args[number] != 'undefined'
|
|
? args[number]
|
|
: match
|
|
;
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Custom onSelect handler for struct img button
|
|
*/
|
|
window.insertStructMedia = function (edid, mediaid, opts, align) {
|
|
jQuery(document.getElementById(edid)).val(mediaid).change();
|
|
};
|