From 5c68a09fee430553e2dce2ea300df143e0f7ae50 Mon Sep 17 00:00:00 2001 From: "Friedrich W. H. Kossebau" Date: Sun, 1 Sep 2013 18:46:47 +0200 Subject: [PATCH] Remove unused files --- js/editor/FileSaver.js | 216 ----------------------------------- js/editor/SessionList.js | 65 ----------- js/editor/SessionListView.js | 112 ------------------ 3 files changed, 393 deletions(-) delete mode 100644 js/editor/FileSaver.js delete mode 100644 js/editor/SessionList.js delete mode 100644 js/editor/SessionListView.js diff --git a/js/editor/FileSaver.js b/js/editor/FileSaver.js deleted file mode 100644 index 1d858c5a..00000000 --- a/js/editor/FileSaver.js +++ /dev/null @@ -1,216 +0,0 @@ -/* FileSaver.js - * A saveAs() FileSaver implementation. - * 2013-01-23 - * - * By Eli Grey, http://eligrey.com - * License: X11/MIT - * See LICENSE.md - */ - -/*global self */ -/*jslint bitwise: true, regexp: true, confusion: true, es5: true, vars: true, white: true, - plusplus: true */ - -/*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */ - -var saveAs = saveAs - || (navigator.msSaveBlob && navigator.msSaveBlob.bind(navigator)) - || (function(view) { - "use strict"; - var - doc = view.document - // only get URL when necessary in case BlobBuilder.js hasn't overridden it yet - , get_URL = function() { - return view.URL || view.webkitURL || view; - } - , URL = view.URL || view.webkitURL || view - , save_link = doc.createElementNS("http://www.w3.org/1999/xhtml", "a") - , can_use_save_link = "download" in save_link - , click = function(node) { - var event = doc.createEvent("MouseEvents"); - event.initMouseEvent( - "click", true, false, view, 0, 0, 0, 0, 0 - , false, false, false, false, 0, null - ); - node.dispatchEvent(event); - } - , webkit_req_fs = view.webkitRequestFileSystem - , req_fs = view.requestFileSystem || webkit_req_fs || view.mozRequestFileSystem - , throw_outside = function (ex) { - (view.setImmediate || view.setTimeout)(function() { - throw ex; - }, 0); - } - , force_saveable_type = "application/octet-stream" - , fs_min_size = 0 - , deletion_queue = [] - , process_deletion_queue = function() { - var i = deletion_queue.length; - while (i--) { - var file = deletion_queue[i]; - if (typeof file === "string") { // file is an object URL - URL.revokeObjectURL(file); - } else { // file is a File - file.remove(); - } - } - deletion_queue.length = 0; // clear queue - } - , dispatch = function(filesaver, event_types, event) { - event_types = [].concat(event_types); - var i = event_types.length; - while (i--) { - var listener = filesaver["on" + event_types[i]]; - if (typeof listener === "function") { - try { - listener.call(filesaver, event || filesaver); - } catch (ex) { - throw_outside(ex); - } - } - } - } - , FileSaver = function(blob, name) { - // First try a.download, then web filesystem, then object URLs - var - filesaver = this - , type = blob.type - , blob_changed = false - , object_url - , target_view - , get_object_url = function() { - var object_url = get_URL().createObjectURL(blob); - deletion_queue.push(object_url); - return object_url; - } - , dispatch_all = function() { - dispatch(filesaver, "writestart progress write writeend".split(" ")); - } - // on any filesys errors revert to saving with object URLs - , fs_error = function() { - // don't create more object URLs than needed - if (blob_changed || !object_url) { - object_url = get_object_url(blob); - } - if (target_view) { - target_view.location.href = object_url; - } else { - window.open(object_url, "_blank"); - } - filesaver.readyState = filesaver.DONE; - dispatch_all(); - } - , abortable = function(func) { - return function() { - if (filesaver.readyState !== filesaver.DONE) { - return func.apply(this, arguments); - } - }; - } - , create_if_not_found = {create: true, exclusive: false} - , slice - ; - filesaver.readyState = filesaver.INIT; - if (!name) { - name = "download"; - } - if (can_use_save_link) { - object_url = get_object_url(blob); - save_link.href = object_url; - save_link.download = name; - click(save_link); - filesaver.readyState = filesaver.DONE; - dispatch_all(); - return; - } - // Object and web filesystem URLs have a problem saving in Google Chrome when - // viewed in a tab, so I force save with application/octet-stream - // http://code.google.com/p/chromium/issues/detail?id=91158 - if (view.chrome && type && type !== force_saveable_type) { - slice = blob.slice || blob.webkitSlice; - blob = slice.call(blob, 0, blob.size, force_saveable_type); - blob_changed = true; - } - // Since I can't be sure that the guessed media type will trigger a download - // in WebKit, I append .download to the filename. - // https://bugs.webkit.org/show_bug.cgi?id=65440 - if (webkit_req_fs && name !== "download") { - name += ".download"; - } - if (type === force_saveable_type || webkit_req_fs) { - target_view = view; - } - if (!req_fs) { - fs_error(); - return; - } - fs_min_size += blob.size; - req_fs(view.TEMPORARY, fs_min_size, abortable(function(fs) { - fs.root.getDirectory("saved", create_if_not_found, abortable(function(dir) { - var save = function() { - dir.getFile(name, create_if_not_found, abortable(function(file) { - file.createWriter(abortable(function(writer) { - writer.onwriteend = function(event) { - target_view.location.href = file.toURL(); - deletion_queue.push(file); - filesaver.readyState = filesaver.DONE; - dispatch(filesaver, "writeend", event); - }; - writer.onerror = function() { - var error = writer.error; - if (error.code !== error.ABORT_ERR) { - fs_error(); - } - }; - "writestart progress write abort".split(" ").forEach(function(event) { - writer["on" + event] = filesaver["on" + event]; - }); - writer.write(blob); - filesaver.abort = function() { - writer.abort(); - filesaver.readyState = filesaver.DONE; - }; - filesaver.readyState = filesaver.WRITING; - }), fs_error); - }), fs_error); - }; - dir.getFile(name, {create: false}, abortable(function(file) { - // delete file if it already exists - file.remove(); - save(); - }), abortable(function(ex) { - if (ex.code === ex.NOT_FOUND_ERR) { - save(); - } else { - fs_error(); - } - })); - }), fs_error); - }), fs_error); - } - , FS_proto = FileSaver.prototype - , saveAs = function(blob, name) { - return new FileSaver(blob, name); - } - ; - FS_proto.abort = function() { - var filesaver = this; - filesaver.readyState = filesaver.DONE; - dispatch(filesaver, "abort"); - }; - FS_proto.readyState = FS_proto.INIT = 0; - FS_proto.WRITING = 1; - FS_proto.DONE = 2; - - FS_proto.error = - FS_proto.onwritestart = - FS_proto.onprogress = - FS_proto.onwrite = - FS_proto.onabort = - FS_proto.onerror = - FS_proto.onwriteend = - null; - - view.addEventListener("unload", process_deletion_queue, false); - return saveAs; -}(self)); diff --git a/js/editor/SessionList.js b/js/editor/SessionList.js deleted file mode 100644 index 8000f648..00000000 --- a/js/editor/SessionList.js +++ /dev/null @@ -1,65 +0,0 @@ -/** - * @license - * Copyright (C) 2012-2013 KO GmbH - * - * @licstart - * The JavaScript code in this page is free software: you can redistribute it - * and/or modify it under the terms of the GNU Affero General Public License - * (GNU AGPL) as published by the Free Software Foundation, either version 3 of - * the License, or (at your option) any later version. The code is distributed - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU AGPL for more details. - * - * As additional permission under GNU AGPL version 3 section 7, you - * may distribute non-source (e.g., minimized or compacted) forms of - * that code without the copy of the GNU GPL normally required by - * section 4, provided you include this license notice and a URL - * through which recipients can access the Corresponding Source. - * - * As a special exception to the AGPL, any HTML file which merely makes function - * calls to this code, and for that purpose includes it by reference shall be - * deemed a separate work for copyright law purposes. In addition, the copyright - * holders of this code give you permission to combine this code with free - * software libraries that are released under the GNU LGPL. You may copy and - * distribute such a system following the terms of the GNU AGPL for this code - * and the LGPL for the libraries. If you modify this code, you may extend this - * exception to your version of the code, but you are not obligated to do so. - * If you do not wish to do so, delete this exception statement from your - * version. - * - * This license applies to this entire compilation. - * @licend - * @source: http://www.webodf.org/ - * @source: http://gitorious.org/webodf/webodf/ - */ - -/*global ops, runtime */ - -/** - * A model which provides information about sessions. - * @interface - */ -SessionList = function SessionList() {"use strict"; }; - -/** - * @param {{onCreated:function(!Object), - * onUpdated:function(!Object), - * onRemoved:function(!string) }} subscriber - * @return {undefined} - */ -SessionList.prototype.getSessions = function (subscriber) {"use strict"; }; - -/** - * @param {{onCreated:function(!Object), - * onUpdated:function(!Object), - * onRemoved:function(!string) }} subscriber - * @return {undefined} - */ -SessionList.prototype.unsubscribe = function (subscriber) {"use strict"; }; - -/** - * Per default updates are enabled. - * @param {!boolean} enabled - * @return {undefined} - */ -SessionList.prototype.setUpdatesEnabled = function (enabled) {"use strict"; }; diff --git a/js/editor/SessionListView.js b/js/editor/SessionListView.js deleted file mode 100644 index 961e9186..00000000 --- a/js/editor/SessionListView.js +++ /dev/null @@ -1,112 +0,0 @@ -/** - * @license - * Copyright (C) 2012-2013 KO GmbH - * - * @licstart - * The JavaScript code in this page is free software: you can redistribute it - * and/or modify it under the terms of the GNU Affero General Public License - * (GNU AGPL) as published by the Free Software Foundation, either version 3 of - * the License, or (at your option) any later version. The code is distributed - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU AGPL for more details. - * - * As additional permission under GNU AGPL version 3 section 7, you - * may distribute non-source (e.g., minimized or compacted) forms of - * that code without the copy of the GNU GPL normally required by - * section 4, provided you include this license notice and a URL - * through which recipients can access the Corresponding Source. - * - * As a special exception to the AGPL, any HTML file which merely makes function - * calls to this code, and for that purpose includes it by reference shall be - * deemed a separate work for copyright law purposes. In addition, the copyright - * holders of this code give you permission to combine this code with free - * software libraries that are released under the GNU LGPL. You may copy and - * distribute such a system following the terms of the GNU AGPL for this code - * and the LGPL for the libraries. If you modify this code, you may extend this - * exception to your version of the code, but you are not obligated to do so. - * If you do not wish to do so, delete this exception statement from your - * version. - * - * This license applies to this entire compilation. - * @licend - * @source: http://www.webodf.org/ - * @source: http://gitorious.org/webodf/webodf/ - */ - -/*global Node, define, runtime */ - -define("webodf/editor/SessionListView", [], function () { - "use strict"; - - return function SessionListView(sessionList, sessionListDiv, cb) { - var self = this, - memberDataChangedHandler; - - function createSessionDescription(sessionDetails) { - return sessionDetails.title + " ("+sessionDetails.cursors.length+" members)"; - } - - /** - */ - function createSessionViewItem(sessionDetails) { - runtime.assert(sessionListDiv, "sessionListDiv unavailable"); - var doc = sessionListDiv.ownerDocument, - htmlns = doc.documentElement.namespaceURI, - sessionDiv = doc.createElementNS(htmlns, "div"), - fullnameTextNode = doc.createTextNode(createSessionDescription(sessionDetails)); - - sessionDiv.appendChild(fullnameTextNode); - sessionDiv.sessionId = sessionDetails.id; // TODO: namespace? - sessionDiv.style.cursor = "pointer"; // TODO: do not set on each element, use CSS - sessionDiv.onclick = function () { - cb(sessionDetails.id); - }; - - sessionListDiv.appendChild(sessionDiv); - } - - function updateSessionViewItem(sessionDetails) { - var node = sessionListDiv.firstChild; - while (node) { - if (node.sessionId === sessionDetails.id) { - node = node.firstChild; - while (node) { - if (node.nodeType == Node.TEXT_NODE) { - node.data = createSessionDescription(sessionDetails); - } - node = node.nextSibling; - } - return; - } - node = node.nextSibling; - } - } - - /** - * @param {!string} sessionId - */ - function removeSessionViewItem(sessionId) { - var node = sessionListDiv.firstChild; - while (node) { - if (node.sessionId === sessionId) { - sessionListDiv.removeChild(node); - return; - } - node = node.nextSibling; - } - } - - function init() { - var idx, - subscriber = {onCreated: createSessionViewItem, onUpdated: updateSessionViewItem, onRemoved: removeSessionViewItem}, - sessions = sessionList.getSessions(subscriber); - - // fill session list - for (idx = 0; idx < sessions.length; idx += 1) { - createSessionViewItem(sessions[idx]); - } - } - - init(); - }; -});