diff -r fd8fb93e1b6a -r a361355b55c7 src/pyams_skin/resources/js/ext/tinymce/dev/classes/ui/Path.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/pyams_skin/resources/js/ext/tinymce/dev/classes/ui/Path.js Wed Jun 17 10:00:10 2015 +0200 @@ -0,0 +1,140 @@ +/** + * Path.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Creates a new path control. + * + * @-x-less Path.less + * @class tinymce.ui.Path + * @extends tinymce.ui.Widget + */ +define("tinymce/ui/Path", [ + "tinymce/ui/Widget" +], function(Widget) { + "use strict"; + + return Widget.extend({ + /** + * Constructs a instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + * @setting {String} delimiter Delimiter to display between items in path. + */ + init: function(settings) { + var self = this; + + if (!settings.delimiter) { + settings.delimiter = '\u00BB'; + } + + self._super(settings); + self.addClass('path'); + self.canFocus = true; + + self.on('click', function(e) { + var index, target = e.target; + + if ((index = target.getAttribute('data-index'))) { + self.fire('select', {value: self.data()[index], index: index}); + } + }); + }, + + /** + * Focuses the current control. + * + * @method focus + * @return {tinymce.ui.Control} Current control instance. + */ + focus: function() { + var self = this; + + self.getEl().firstChild.focus(); + + return self; + }, + + /** + * Sets/gets the data to be used for the path. + * + * @method data + * @param {Array} data Array with items name is rendered to path. + */ + data: function(data) { + var self = this; + + if (typeof data !== "undefined") { + self._data = data; + self.update(); + + return self; + } + + return self._data; + }, + + /** + * Updated the path. + * + * @private + */ + update: function() { + this.innerHtml(this._getPathHtml()); + }, + + /** + * Called after the control has been rendered. + * + * @method postRender + */ + postRender: function() { + var self = this; + + self._super(); + + self.data(self.settings.data); + }, + + /** + * Renders the control as a HTML string. + * + * @method renderHtml + * @return {String} HTML representing the control. + */ + renderHtml: function() { + var self = this; + + return ( + '
' + + self._getPathHtml() + + '
' + ); + }, + + _getPathHtml: function() { + var self = this, parts = self._data || [], i, l, html = '', prefix = self.classPrefix; + + for (i = 0, l = parts.length; i < l; i++) { + html += ( + (i > 0 ? '' : '') + + '
' + parts[i].name + '
' + ); + } + + if (!html) { + html = '
\u00a0
'; + } + + return html; + } + }); +}); \ No newline at end of file