PHP Classes

File: WITheme/WICMS/admin/js/plugins/textEditor/tinymce_4.2.6_dev/tinymce/js/tinymce/classes/file/Uploader.js

Recommend this page to a friend!
  Classes of Jules Warner   WICMS   WITheme/WICMS/admin/js/plugins/textEditor/tinymce_4.2.6_dev/tinymce/js/tinymce/classes/file/Uploader.js   Download  
File: WITheme/WICMS/admin/js/plugins/textEditor/tinymce_4.2.6_dev/tinymce/js/tinymce/classes/file/Uploader.js
Role: Auxiliary data
Content type: text/plain
Description: Auxiliary data
Class: WICMS
Database driven content management system with PDO
Author: By
Last change:
Date: 7 years ago
Size: 3,398 bytes
 

Contents

Class file image Download
/** * Uploader.js * * Released under LGPL License. * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing */ /** * Upload blobs or blob infos to the specified URL or handler. * * @private * @class tinymce.file.Uploader * @example * var uploader = new Uploader({ * url: '/upload.php', * basePath: '/base/path', * credentials: true, * handler: function(data, success, failure) { * ... * } * }); * * uploader.upload(blobInfos).then(function(result) { * ... * }); */ define("tinymce/file/Uploader", [ "tinymce/util/Promise", "tinymce/util/Tools", "tinymce/util/Fun" ], function(Promise, Tools, Fun) { return function(settings) { var cachedPromises = {}; function fileName(blobInfo) { var ext, extensions; extensions = { 'image/jpeg': 'jpg', 'image/jpg': 'jpg', 'image/gif': 'gif', 'image/png': 'png' }; ext = extensions[blobInfo.blob().type.toLowerCase()] || 'dat'; return blobInfo.id() + '.' + ext; } function pathJoin(path1, path2) { if (path1) { return path1.replace(/\/$/, '') + '/' + path2.replace(/^\//, ''); } return path2; } function blobInfoToData(blobInfo) { return { id: blobInfo.id, blob: blobInfo.blob, base64: blobInfo.base64, filename: Fun.constant(fileName(blobInfo)) }; } function defaultHandler(blobInfo, success, failure) { var xhr, formData; xhr = new XMLHttpRequest(); xhr.open('POST', settings.url); xhr.withCredentials = settings.credentials; xhr.onload = function() { var json; if (xhr.status != 200) { failure("HTTP Error: " + xhr.status); return; } json = JSON.parse(xhr.responseText); if (!json || typeof json.location != "string") { failure("Invalid JSON: " + xhr.responseText); return; } success(pathJoin(settings.basePath, json.location)); }; formData = new FormData(); formData.append('file', blobInfo.blob(), fileName(blobInfo)); xhr.send(formData); } function upload(blobInfos) { var promises; // If no url is configured then resolve if (!settings.url && settings.handler === defaultHandler) { return new Promise(function(resolve) { resolve([]); }); } function uploadBlobInfo(blobInfo) { return new Promise(function(resolve) { var handler = settings.handler; handler(blobInfoToData(blobInfo), function(url) { resolve({ url: url, blobInfo: blobInfo, status: true }); }, function(failure) { resolve({ url: '', blobInfo: blobInfo, status: false, error: failure }); }); }); } promises = Tools.map(blobInfos, function(blobInfo) { var newPromise, id = blobInfo.id(); if (cachedPromises[id]) { return cachedPromises[id]; } newPromise = uploadBlobInfo(blobInfo).then(function(result) { delete cachedPromises[id]; return result; })['catch'](function(error) { delete cachedPromises[id]; return error; }); cachedPromises[id] = newPromise; return newPromise; }); return Promise.all(promises); } settings = Tools.extend({ credentials: false, handler: defaultHandler }, settings); return { upload: upload }; }; });