src/myams/resources/js/ext/tinymce/dev/classes/ui/FilePicker.js
changeset 0 f05d7aea098a
equal deleted inserted replaced
-1:000000000000 0:f05d7aea098a
       
     1 /**
       
     2  * FilePicker.js
       
     3  *
       
     4  * Copyright, Moxiecode Systems AB
       
     5  * Released under LGPL License.
       
     6  *
       
     7  * License: http://www.tinymce.com/license
       
     8  * Contributing: http://www.tinymce.com/contributing
       
     9  */
       
    10 
       
    11 /*global tinymce:true */
       
    12 
       
    13 /**
       
    14  * This class creates a file picker control.
       
    15  *
       
    16  * @class tinymce.ui.FilePicker
       
    17  * @extends tinymce.ui.ComboBox
       
    18  */
       
    19 define("tinymce/ui/FilePicker", [
       
    20 	"tinymce/ui/ComboBox",
       
    21 	"tinymce/util/Tools"
       
    22 ], function(ComboBox, Tools) {
       
    23 	"use strict";
       
    24 
       
    25 	return ComboBox.extend({
       
    26 		/**
       
    27 		 * Constructs a new control instance with the specified settings.
       
    28 		 *
       
    29 		 * @constructor
       
    30 		 * @param {Object} settings Name/value object with settings.
       
    31 		 */
       
    32 		init: function(settings) {
       
    33 			var self = this, editor = tinymce.activeEditor, editorSettings = editor.settings;
       
    34 			var actionCallback, fileBrowserCallback, fileBrowserCallbackTypes;
       
    35 
       
    36 			settings.spellcheck = false;
       
    37 
       
    38 			fileBrowserCallbackTypes = editorSettings.file_picker_types || editorSettings.file_browser_callback_types;
       
    39 			if (fileBrowserCallbackTypes) {
       
    40 				fileBrowserCallbackTypes = Tools.makeMap(fileBrowserCallbackTypes, /[, ]/);
       
    41 			}
       
    42 
       
    43 			if (!fileBrowserCallbackTypes || fileBrowserCallbackTypes[settings.filetype]) {
       
    44 				fileBrowserCallback = editorSettings.file_picker_callback;
       
    45 				if (fileBrowserCallback && (!fileBrowserCallbackTypes || fileBrowserCallbackTypes[settings.filetype])) {
       
    46 					actionCallback = function() {
       
    47 						var meta = self.fire('beforecall').meta;
       
    48 
       
    49 						meta = Tools.extend({filetype: settings.filetype}, meta);
       
    50 
       
    51 						// file_picker_callback(callback, currentValue, metaData)
       
    52 						fileBrowserCallback.call(
       
    53 							editor,
       
    54 							function(value, meta) {
       
    55 								self.value(value).fire('change', {meta: meta});
       
    56 							},
       
    57 							self.value(),
       
    58 							meta
       
    59 						);
       
    60 					};
       
    61 				} else {
       
    62 					// Legacy callback: file_picker_callback(id, currentValue, filetype, window)
       
    63 					fileBrowserCallback = editorSettings.file_browser_callback;
       
    64 					if (fileBrowserCallback && (!fileBrowserCallbackTypes || fileBrowserCallbackTypes[settings.filetype])) {
       
    65 						actionCallback = function() {
       
    66 							fileBrowserCallback(
       
    67 								self.getEl('inp').id,
       
    68 								self.value(),
       
    69 								settings.filetype,
       
    70 								window
       
    71 							);
       
    72 						};
       
    73 					}
       
    74 				}
       
    75 			}
       
    76 
       
    77 			if (actionCallback) {
       
    78 				settings.icon = 'browse';
       
    79 				settings.onaction = actionCallback;
       
    80 			}
       
    81 
       
    82 			self._super(settings);
       
    83 		}
       
    84 	});
       
    85 });