--- a/src/pyams_content/skin/resources/js/pyams_content.js Wed Apr 11 16:44:46 2018 +0200
+++ b/src/pyams_content/skin/resources/js/pyams_content.js Wed Apr 11 16:46:31 2018 +0200
@@ -32,19 +32,73 @@
TinyMCE: {
initEditor: function(settings) {
+
+ // Update TinyMCE translations
+ tinyMCE.addI18n('fr', {
+ "Link list": "Liste de liens",
+ "Toggle h3 header": "En-tête H3",
+ "Toggle h4 header": "En-tête H4",
+ "Insert internal link": "Insérer un lien interne",
+ "Link title": "Texte à afficher",
+ "Internal number": "N° interne"
+ });
+
+ // Declare internal link input plug-in
+ tinymce.PluginManager.add('internal_links', function(editor, url) {
+ editor.addButton('internal_links', {
+ icon: 'cloud-check',
+ tooltip: "Insert internal link",
+ image: '/--static--/pyams_content/img/internal-link.png',
+ onclick: function() {
+ editor.windowManager.open({
+ title: "Insert internal link",
+ body: [
+ {
+ type: 'textbox',
+ name: 'oid',
+ label:'Internal number'
+ }, {
+ type: 'textbox',
+ name: 'title',
+ label: 'Link title',
+ value: editor.selection.getContent()
+ }
+ ],
+ onsubmit: function(e) {
+ editor.insertContent('<a href="oid://' + e.data.oid + '">' + e.data.title + '</a>');
+ }
+ });
+ }
+ })
+ });
+
+ // Declare direct H3 and H4 style formatter
+ tinyMCE.PluginManager.add('headers', function (editor, url) {
+ ['h3', 'h4'].forEach(function (name) {
+ editor.addButton("header-" + name, {
+ tooltip: "Toggle " + name + " header",
+ text: name.toUpperCase(),
+ onClick: function () {
+ editor.execCommand('mceToggleFormat', false, name);
+ },
+ onPostRender: function () {
+ var self = this,
+ setup = function () {
+ editor.formatter.formatChanged(name, function (state) {
+ self.active(state);
+ });
+ };
+ editor.formatter ? setup() : editor.on('init', setup);
+ }
+ })
+ });
+ });
+
+ // Update TinyMCE settings
settings.image_list = PyAMS_content.TinyMCE.getImagesList;
settings.link_list = PyAMS_content.TinyMCE.getLinksList;
settings.style_formats = [
{
- title: 'Headings',
- items: [
- {title: 'Heading 3', format: 'h3'},
- {title: 'Heading 4', format: 'h4'},
- {title: 'Heading 5', format: 'h5'},
- {title: 'Heading 6', format: 'h6'}
- ]
- },
- {
title: 'Inline',
items: [
{title: 'Bold', icon: 'bold', format: 'bold'},
@@ -75,29 +129,13 @@
]
}
];
- // Declare direct H3 style formatter
- tinyMCE.PluginManager.add('styles', function (editor, url) {
- ['h3'].forEach(function (name) {
- editor.addButton("style-" + name, {
- tooltip: "Toggle " + name + " header",
- text: name.toUpperCase(),
- onClick: function () {
- editor.execCommand('mceToggleFormat', false, name);
- },
- onPostRender: function () {
- var self = this, setup = function () {
- editor.formatter.formatChanged(name, function (state) {
- self.active(state);
- });
- };
- editor.formatter ? setup() : editor.on('init', setup);
- }
- })
- });
- });
- settings.plugins += ' styles';
+ settings.plugins += ' internal_links headers';
if (settings.toolbar1) {
- settings.toolbar1 = "undo redo | styleselect style-h3 style-h4 | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent";
+ settings.toolbar1 = "undo redo | header-h3 header-h4 styleselect | bold italic | " +
+ "alignleft aligncenter alignright alignjustify | bullist numlist outdent indent";
+ }
+ if (settings.toolbar2) {
+ settings.toolbar2 = "forecolor backcolor | charmap internal_links link | fullscreen preview print | code";
}
return settings;
},
@@ -122,29 +160,6 @@
},
/**
- * Alerts management
- */
- alerts: {
-
- switchVisibility: function (element) {
- return function () {
- var source = $(this);
- var association = source.parents('tr');
- var container = association.parents('table');
- MyAMS.ajax.post(container.data('ams-location') + '/set-alert-visibility.json',
- {object_name: association.data('ams-element-name')},
- function (result, status) {
- if (result.visible) {
- $('i', source).attr('class', 'fa fa-fw fa-eye');
- } else {
- $('i', source).attr('class', 'fa fa-fw fa-eye-slash text-danger');
- }
- });
- };
- }
- },
-
- /**
* Galleries management
*/
galleries: {
@@ -228,39 +243,6 @@
},
/**
- * Associations management
- */
- associations: {
-
- refreshAssociations: function(options) {
- // Reload widget
- var widget = MyAMS.skin.refreshTable(options);
- // Check fieldset state
- var legend = widget.siblings('legend');
- if (legend.parents('fieldset:first').hasClass('switched')) {
- legend.click();
- }
- },
-
- switchVisibility: function (element) {
- return function () {
- var source = $(this);
- var association = source.parents('tr');
- var container = association.parents('table');
- MyAMS.ajax.post(container.data('ams-location') + '/set-association-visibility.json',
- {object_name: association.data('ams-element-name')},
- function (result, status) {
- if (result.visible) {
- $('i', source).attr('class', 'fa fa-fw fa-eye');
- } else {
- $('i', source).attr('class', 'fa fa-fw fa-eye-slash text-danger');
- }
- });
- };
- }
- },
-
- /**
* Paragraphs management
*/
paragraphs: {
@@ -277,36 +259,8 @@
delete PyAMS_content.paragraphs.switched;
},
- switchVisibility: function(element) {
- return function() {
- var source = $(this);
- var para = source.parents('tr');
- var container = para.parents('table');
- MyAMS.ajax.post(container.data('ams-location') + '/set-paragraph-visibility.json',
- {object_name: para.data('ams-element-name')},
- function(result, status) {
- if (result.visible) {
- $('i', source).attr('class', 'fa fa-fw fa-eye');
- } else {
- $('i', source).attr('class', 'fa fa-fw fa-eye-slash text-danger');
- }
- });
- };
- },
-
- refreshParagraphs: function(options) {
- // Reload widget
- var widget = MyAMS.skin.refreshTable(options);
- // Check fieldset state
- var legend = widget.siblings('legend');
- if (legend.parents('fieldset:first').hasClass('switched')) {
- legend.click();
- }
- },
-
refreshParagraph: function(changes) {
- var container = $('table[id="paragraphs_list"]');
- var para = $('tr[data-ams-element-name="' + changes.object_name + '"]', container);
+ var para = $('tr[id="' + changes.object_id + '"]');
$('span.title', para).html(changes.title || ' - - - - - - - -');
},
@@ -380,8 +334,7 @@
},
updateToolbar: function(settings) {
- var container = $('table[id="paragraphs_list"]');
- var para = $('tr[data-ams-element-name="' + settings.object_name + '"]', container);
+ var para = $('tr[id="' + settings.object_id + '"]');
var toolbar = $('.title-toolbar', para);
toolbar.replaceWith(settings.toolbar_tag);
toolbar = $('.title-toolbar', para);
@@ -389,8 +342,8 @@
},
updateMarkers: function(settings) {
- var container = $('table[id="paragraphs_list"]');
- var para = $('tr[data-ams-element-name="' + settings.object_name + '"]', container);
+ debugger;
+ var para = $('tr[id="' + settings.object_id + '"]');
var toolbar = $('.title-toolbar', para);
var marker = $('DIV.action.' + settings.marker_type, toolbar);
if (marker.exists()) {
@@ -407,39 +360,6 @@
},
/**
- * Milestones paragraph management
- */
- milestones: {
-
- refreshMilestones: function(options) {
- // Reload widget
- var widget = MyAMS.skin.refreshTable(options);
- // Check fieldset state
- var legend = widget.siblings('legend');
- if (legend.parents('fieldset:first').hasClass('switched')) {
- legend.click();
- }
- },
-
- switchVisibility: function (element) {
- return function () {
- var source = $(this);
- var milestone = source.parents('tr');
- var container = milestone.parents('table');
- MyAMS.ajax.post(container.data('ams-location') + '/set-milestone-visibility.json',
- {object_name: milestone.data('ams-element-name')},
- function (result, status) {
- if (result.visible) {
- $('i', source).attr('class', 'fa fa-fw fa-eye');
- } else {
- $('i', source).attr('class', 'fa fa-fw fa-eye-slash text-danger');
- }
- });
- };
- }
- },
-
- /**
* Pictograms management
*/
pictograms: {
@@ -461,33 +381,6 @@
} else {
$('.available-pictograms', manager).append(pictogram);
}
- },
-
- refreshPictograms: function(options) {
- // Reload widget
- var widget = MyAMS.skin.refreshTable(options);
- // Check fieldset state
- var legend = widget.siblings('legend');
- if (legend.parents('fieldset:first').hasClass('switched')) {
- legend.click();
- }
- },
-
- switchVisibility: function (element) {
- return function () {
- var source = $(this);
- var pictogram = source.parents('tr');
- var container = pictogram.parents('table');
- MyAMS.ajax.post(container.data('ams-location') + '/set-pictogram-visibility.json',
- {object_name: pictogram.data('ams-element-name')},
- function (result, status) {
- if (result.visible) {
- $('i', source).attr('class', 'fa fa-fw fa-eye');
- } else {
- $('i', source).attr('class', 'fa fa-fw fa-eye-slash text-danger');
- }
- });
- };
}
},
@@ -546,23 +439,6 @@
var container = $('table[id="form_fields_list"]');
var para = $('tr[data-ams-element-name="' + changes.object_name + '"]', container);
$('td:nth-child(4)', para).html(changes.title);
- },
-
- switchVisibility: function (element) {
- return function () {
- var source = $(this);
- var association = source.parents('tr');
- var container = association.parents('table');
- MyAMS.ajax.post(container.data('ams-location') + '/set-form-field-visibility.json',
- {object_name: association.data('ams-element-name')},
- function (result, status) {
- if (result.visible) {
- $('i', source).attr('class', 'fa fa-fw fa-eye');
- } else {
- $('i', source).attr('class', 'fa fa-fw fa-eye-slash text-danger');
- }
- });
- };
}
},
@@ -638,14 +514,12 @@
return function() {
var source = $(this);
var content = source.parents('tr').first();
- MyAMS.ajax.post(content.data('ams-location') + '/set-content-visibility.json',
+ MyAMS.ajax.post(content.data('ams-location') + '/switch-content-visibility.json',
{object_name: content.data('ams-element-name')},
function(result, status) {
- var klass;
- if (result.visible) {
- klass = 'fa-eye';
- } else {
- klass = 'fa-eye-slash';
+ var klass = 'fa-eye';
+ if (!result.visible) {
+ klass += '-slash';
}
if (!result.published) {
klass += ' text-danger';