--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/pyams_content/skin/resources/js/pyams_content.js Thu Oct 08 13:37:29 2015 +0200
@@ -0,0 +1,164 @@
+(function($) {
+
+ PyAMS_content = {
+
+ /**
+ * TinyMCE editor configuration
+ */
+ TinyMCE: {
+
+ initEditor: function(settings) {
+ settings.image_list = PyAMS_content.TinyMCE.getImagesList;
+ settings.link_list = PyAMS_content.TinyMCE.getLinksList;
+ return settings;
+ },
+
+ getImagesList: function(callback) {
+ return MyAMS.ajax.post('get-images-list.json', {}, callback);
+ },
+
+ getLinksList: function(callback) {
+ return MyAMS.ajax.post('get-links-list.json', {}, callback);
+ }
+ },
+
+ /**
+ * External files management
+ */
+ extfiles: {
+
+ refresh: function(options) {
+ if (typeof(options) == 'string')
+ options = JSON.parse(options);
+ var select = $('select[name="form.widgets.files:list"]');
+ var plugin = select.data('select2');
+ $('<option></option>').attr('value', options.new_file.id)
+ .attr('selected', 'selected')
+ .text(options.new_file.text)
+ .appendTo(select);
+ var data = select.select2('data');
+ data.push(options.new_file);
+ select.select2('data', data);
+ plugin.results.empty();
+ plugin.opts.populateResults.call(plugin, plugin.results, options.files, {term: ''});
+ }
+ },
+
+
+ /**
+ * Links management
+ */
+ links: {
+
+ refresh: function(options) {
+ if (typeof(options) == 'string')
+ options = JSON.parse(options);
+ var select = $('select[name="form.widgets.links:list"]');
+ var plugin = select.data('select2');
+ $('<option></option>').attr('value', options.new_link.id)
+ .attr('selected', 'selected')
+ .text(options.new_link.text)
+ .appendTo(select);
+ var data = select.select2('data');
+ data.push(options.new_link);
+ select.select2('data', data);
+ plugin.results.empty();
+ plugin.opts.populateResults.call(plugin, plugin.results, options.links, {term: ''});
+ }
+ },
+
+
+ /**
+ * Galleries management
+ */
+ galleries: {
+
+ refresh: function(options) {
+ if (typeof(options) == 'string')
+ options = JSON.parse(options);
+ var select = $('select[name="form.widgets.galleries:list"]');
+ var plugin = select.data('select2');
+ $('<option></option>').attr('value', options.new_gallery.id)
+ .attr('selected', 'selected')
+ .text(options.new_gallery.text)
+ .appendTo(select);
+ var data = select.select2('data');
+ data.push(options.new_gallery);
+ select.select2('data', data);
+ plugin.results.empty();
+ plugin.opts.populateResults.call(plugin, plugin.results, options.galleries, {term: ''});
+ },
+
+ setOrder: function(event, ui) {
+ if (ui && ui.item.hasClass('already-dropped'))
+ return;
+ var gallery = ui.item.parents('.gallery');
+ var ids = $('.image', gallery).listattr('data-ams-element-name');
+ MyAMS.ajax.post(gallery.data('ams-location') + '/set-images-order.json',
+ {images: JSON.stringify(ids)});
+ },
+
+ removeFile: function(element) {
+ return function() {
+ var link = $(this);
+ MyAMS.skin.bigBox({
+ title: MyAMS.i18n.WARNING,
+ content: '<i class="text-danger fa fa-2x fa-bell shake animated"></i> ' + MyAMS.i18n.DELETE_WARNING,
+ buttons: MyAMS.i18n.BTN_OK_CANCEL
+ }, function(button) {
+ if (button == MyAMS.i18n.BTN_OK) {
+ var gallery = link.parents('.gallery');
+ var location = gallery.data('ams-location');
+ var image = link.parents('.image');
+ var object_name = image.data('ams-element-name');
+ MyAMS.ajax.post(location + '/delete-element.json', {'object_name': object_name}, function(result, status) {
+ image.remove();
+ });
+ }
+ });
+ }
+ }
+ },
+
+
+ /**
+ * Themes management
+ */
+ themes: {
+
+ initExtracts: function(element) {
+ var thesaurus = $('select[name="form.widgets.thesaurus_name:list"]', element);
+ var thesaurus_name = thesaurus.val();
+ var extract = $('select[name="form.widgets.extract_name:list"]', element);
+ var extract_name = extract.val();
+ if (thesaurus_name) {
+ MyAMS.jsonrpc.post('getExtracts', {thesaurus_name: thesaurus_name}, {url: '/api/thesaurus/json'}, function(data) {
+ extract.empty();
+ $(data.result).each(function() {
+ $('<option></option>').attr('value', this.id)
+ .attr('selected', this.id == extract_name)
+ .text(this.text)
+ .appendTo(extract);
+ });
+ });
+ }
+ extract.attr('data-ams-events-handlers', '{"select2-open": "PyAMS_content.themes.getExtracts"}');
+ },
+
+ getExtracts: function(event) {
+ var select = $(event.currentTarget);
+ var form = select.parents('form');
+ var thesaurus_name = $('select[name="form.widgets.thesaurus_name:list"]', form).val();
+ if (thesaurus_name) {
+ MyAMS.jsonrpc.post('getExtracts', {thesaurus_name: thesaurus_name}, {url: '/api/thesaurus/json'}, function(data) {
+ var extract = $('select[name="form.widgets.extract_name:list"]', form);
+ var plugin = extract.data('select2');
+ plugin.results.empty();
+ plugin.opts.populateResults.call(plugin, plugin.results, data.result, {term: ''});
+ });
+ }
+ }
+ }
+ }
+
+})(jQuery);