mirror of
https://github.com/YunoHost-Apps/piwigo_ynh.git
synced 2024-09-03 20:06:03 +02:00
117 lines
No EOL
3 KiB
JavaScript
117 lines
No EOL
3 KiB
JavaScript
jQuery.fn.pwgAddAlbum = function(options) {
|
|
options = options || {};
|
|
|
|
var $popup = jQuery('#addAlbumForm'),
|
|
$albumParent = $popup.find('[name="category_parent"]')
|
|
$button = jQuery(this),
|
|
$target = jQuery('[name="'+ $button.data('addAlbum') +'"]'),
|
|
cache = $target.data('cache');
|
|
|
|
if (!$target[0].selectize) {
|
|
jQuery.error('pwgAddAlbum: target must use selectize');
|
|
}
|
|
if (!cache) {
|
|
jQuery.error('pwgAddAlbum: missing categories cache');
|
|
}
|
|
|
|
function init() {
|
|
$popup.data('init', true);
|
|
|
|
cache.selectize($albumParent, {
|
|
'default': 0,
|
|
'filter': function(categories) {
|
|
categories.push({
|
|
id: 0,
|
|
fullname: '------------',
|
|
global_rank: 0
|
|
});
|
|
|
|
if (options.filter) {
|
|
categories = options.filter.call(this, categories);
|
|
}
|
|
|
|
return categories;
|
|
}
|
|
});
|
|
|
|
$popup.find('form').on('submit', function(e) {
|
|
e.preventDefault();
|
|
|
|
var parent_id = $albumParent.val(),
|
|
name = $popup.find('[name=category_name]').val();
|
|
|
|
jQuery('#categoryNameError').toggle(!name);
|
|
if (!name) {
|
|
return;
|
|
}
|
|
|
|
jQuery.ajax({
|
|
url: 'ws.php?format=json',
|
|
type: 'POST',
|
|
dataType: 'json',
|
|
data: {
|
|
method: 'pwg.categories.add',
|
|
parent: parent_id,
|
|
name: name
|
|
},
|
|
beforeSend: function() {
|
|
jQuery('#albumCreationLoading').show();
|
|
},
|
|
success: function(data) {
|
|
jQuery('#albumCreationLoading').hide();
|
|
$button.colorbox.close();
|
|
|
|
var newAlbum = {
|
|
id: data.result.id,
|
|
name: name,
|
|
fullname: name,
|
|
global_rank: '0',
|
|
dir: null,
|
|
nb_images: 0,
|
|
pos: 0
|
|
};
|
|
|
|
var parentSelectize = $albumParent[0].selectize;
|
|
|
|
if (parent_id != 0) {
|
|
var parent = parentSelectize.options[parent_id];
|
|
newAlbum.fullname = parent.fullname + ' / ' + newAlbum.fullname;
|
|
newAlbum.global_rank = parent.global_rank + '.1';
|
|
newAlbum.pos = parent.pos + 1;
|
|
}
|
|
|
|
var targetSelectize = $target[0].selectize;
|
|
targetSelectize.addOption(newAlbum);
|
|
targetSelectize.setValue(newAlbum.id);
|
|
|
|
parentSelectize.addOption(newAlbum);
|
|
|
|
if (options.afterSelect) {
|
|
options.afterSelect();
|
|
}
|
|
},
|
|
error: function(XMLHttpRequest, textStatus, errorThrows) {
|
|
jQuery('#albumCreationLoading').hide();
|
|
alert(errorThrows);
|
|
}
|
|
});
|
|
});
|
|
}
|
|
|
|
this.colorbox({
|
|
inline: true,
|
|
href: '#addAlbumForm',
|
|
width: 650, height: 300,
|
|
onComplete: function() {
|
|
if (!$popup.data('init')) {
|
|
init();
|
|
}
|
|
|
|
jQuery('#categoryNameError').hide();
|
|
$popup.find('[name=category_name]').val('').focus();
|
|
$albumParent[0].selectize.setValue($target.val() || 0);
|
|
}
|
|
});
|
|
|
|
return this;
|
|
}; |