Now all modules are in core modules folder

This commit is contained in:
Manuel Cillero 2017-08-08 12:14:45 +02:00
parent 5ba1cdfa0b
commit 05b6a91b0c
1907 changed files with 0 additions and 0 deletions

View file

@ -0,0 +1,213 @@
/**
* @file
* Written by Henri MEDOT <henri.medot[AT]absyx[DOT]fr>
* http://www.absyx.fr
*
* Portions of code:
* Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.html or http://ckeditor.com/license
*/
(function($) {
// Get a CKEDITOR.dialog.contentDefinition object by its ID.
var getById = function(array, id, recurse) {
for (var i = 0, item; (item = array[i]); i++) {
if (item.id == id) return item;
if (recurse && item[recurse]) {
var retval = getById(item[recurse], id, recurse);
if (retval) return retval;
}
}
return null;
};
var resetInitValues = function(dialog) {
dialog.foreach(function(contentObj) {
contentObj.setInitValue && contentObj.setInitValue();
});
};
var initAutocomplete = function(input, uri) {
input.setAttribute('autocomplete', 'OFF');
var jsAC = new Drupal.jsAC(input, new Drupal.ACDB(uri));
// Override Drupal.jsAC.prototype.onkeydown().
// @see https://drupal.org/node/1991076
var _onkeydown = jsAC.onkeydown;
jsAC.onkeydown = function(input, e) {
if (!e) {
e = window.event;
}
switch (e.keyCode) {
case 13: // Enter.
this.hidePopup(e.keyCode);
return true;
default: // All other keys.
return _onkeydown.call(this, input, e);
}
};
};
var extractPath = function(value) {
value = CKEDITOR.tools.trim(value);
var match;
match = /\(([^\(]*?)\)$/i.exec(value);
if (match && match[1]) {
value = match[1];
}
var basePath = Drupal.settings.basePath;
if (value.indexOf(basePath) == 0) {
value = value.substr(basePath.length);
}
if (/^[a-z][\w\/\.-]*$/i.test(value)) {
return value;
}
return false;
};
var cache = {}, revertPath = function(value, callback) {
var path = extractPath(value);
if (!path) {
return false;
}
if (cache[path] !== undefined) {
return cache[path];
}
$.getJSON(Drupal.settings.ckeditor_link.revert_path + '/' + Drupal.encodeURIComponent(path), function(data) {
cache[path] = data;
callback();
});
};
CKEDITOR.plugins.add('drupal_path', {
init: function(editor, pluginPath) {
CKEDITOR.on('dialogDefinition', function(e) {
if ((e.editor != editor) || (e.data.name != 'link') || !Drupal.settings.ckeditor_link) return;
// Overrides definition.
var definition = e.data.definition;
definition.onFocus = CKEDITOR.tools.override(definition.onFocus, function(original) {
return function() {
original.call(this);
if (this.getValueOf('info', 'linkType') == 'drupal') {
this.getContentElement('info', 'drupal_path').select();
}
};
});
definition.onOk = CKEDITOR.tools.override(definition.onOk, function(original) {
return function() {
var process = false;
if ((this.getValueOf('info', 'linkType') == 'drupal') && !this._.selectedElement) {
var ranges = editor.getSelection().getRanges(true);
if ((ranges.length == 1) && ranges[0].collapsed) {
process = true;
}
}
original.call(this);
if (process) {
var value = this.getValueOf('info', 'drupal_path');
var index = value.lastIndexOf('(');
if (index != -1) {
var text = CKEDITOR.tools.trim(value.substr(0, index));
if (text) {
CKEDITOR.plugins.link.getSelectedLink(editor).setText(text);
}
}
}
};
});
// Overrides linkType definition.
var infoTab = definition.getContents('info');
var content = getById(infoTab.elements, 'linkType');
content.items.unshift([Drupal.settings.ckeditor_link.type_name, 'drupal']);
infoTab.elements.push({
type: 'vbox',
id: 'drupalOptions',
children: [{
type: 'text',
id: 'drupal_path',
label: editor.lang.link.title,
required: true,
onLoad: function() {
this.getInputElement().addClass('form-autocomplete');
initAutocomplete(this.getInputElement().$, Drupal.settings.ckeditor_link.autocomplete_path);
},
setup: function(data) {
this.setValue(data.drupal_path || '');
},
validate: function() {
var dialog = this.getDialog();
if (dialog.getValueOf('info', 'linkType') != 'drupal') {
return true;
}
var func = CKEDITOR.dialog.validate.notEmpty(editor.lang.link.noUrl);
if (!func.apply(this)) {
return false;
}
if (!extractPath(this.getValue())) {
alert(Drupal.settings.ckeditor_link.msg_invalid_path);
this.focus();
return false;
}
return true;
}
}]
});
content.onChange = CKEDITOR.tools.override(content.onChange, function(original) {
return function() {
original.call(this);
var dialog = this.getDialog();
var element = dialog.getContentElement('info', 'drupalOptions').getElement().getParent().getParent();
if (this.getValue() == 'drupal') {
element.show();
if (editor.config.linkShowTargetTab) {
dialog.showPage('target');
}
var uploadTab = dialog.definition.getContents('upload');
if (uploadTab && !uploadTab.hidden) {
dialog.hidePage('upload');
}
}
else {
element.hide();
}
};
});
content.setup = function(data) {
if (!data.type || (data.type == 'url') && !data.url) {
if (Drupal.settings.ckeditor_link.type_selected) {
data.type = 'drupal';
}
}
else if (data.url && !data.url.protocol && data.url.url) {
var dialog = this.getDialog();
var path = revertPath(data.url.url, function() {
dialog.setupContent(data);
resetInitValues(dialog);
});
if (path) {
data.type = 'drupal';
data.drupal_path = path;
delete data.url;
}
}
this.setValue(data.type || 'url');
};
content.commit = CKEDITOR.tools.override(content.commit, function(original) {
return function(data) {
original.call(this, data);
if (data.type == 'drupal') {
data.type = 'url';
var dialog = this.getDialog();
dialog.setValueOf('info', 'protocol', '');
dialog.setValueOf('info', 'url', Drupal.settings.basePath + extractPath(dialog.getValueOf('info', 'drupal_path')));
}
};
});
});
}
});
})(jQuery);