mirror of
https://github.com/haiwen/seahub.git
synced 2025-08-17 14:37:58 +00:00
* textcolor: fixed plugin bugs, added translation for zh * image: fixed default.jpg src bug * added 'ru' support for seaf edit * rm aloha-0.22.3 and ununsed files in aloha-0.22.7
138 lines
3.7 KiB
JavaScript
138 lines
3.7 KiB
JavaScript
/* registry.js is part of Aloha Editor project http://aloha-editor.org
|
|
*
|
|
* Aloha Editor is a WYSIWYG HTML5 inline editing library and editor.
|
|
* Copyright (c) 2010-2012 Gentics Software GmbH, Vienna, Austria.
|
|
* Contributors http://aloha-editor.org/contribution.php
|
|
*
|
|
* Aloha Editor is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License
|
|
* as published by the Free Software Foundation; either version 2
|
|
* of the License, or any later version.
|
|
*
|
|
* Aloha Editor is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
*
|
|
* As an additional permission to the GNU GPL version 2, you may distribute
|
|
* non-source (e.g., minimized or compacted) forms of the Aloha-Editor
|
|
* source code without the copy of the GNU GPL normally required,
|
|
* provided you include this license notice and a URL through which
|
|
* recipients can access the Corresponding Source.
|
|
*/
|
|
/*global define:true */
|
|
/**
|
|
* Registry base class.
|
|
* TODO: document that it also contains Observable.
|
|
*
|
|
*/
|
|
define([
|
|
'jquery',
|
|
'aloha/observable',
|
|
'util/class'
|
|
], function (
|
|
jQuery,
|
|
Observable,
|
|
Class
|
|
) {
|
|
"use strict";
|
|
|
|
return Class.extend(Observable, {
|
|
|
|
/**
|
|
* Object containing the registered entries by key.
|
|
*/
|
|
_entries: null,
|
|
|
|
/**
|
|
* Array containing the registered ids in order
|
|
* of registry
|
|
*/
|
|
_ids: null,
|
|
|
|
_constructor: function () {
|
|
this._entries = {};
|
|
this._ids = [];
|
|
},
|
|
|
|
/**
|
|
* Register an entry with an id
|
|
*
|
|
* @event register
|
|
* @param id id of the registered entry
|
|
* @param entry registered entry
|
|
*/
|
|
register: function (id, entry) {
|
|
// TODO check whether an entry with the id is already registered
|
|
this._entries[id] = entry;
|
|
this._ids.push(id);
|
|
this.trigger('register', entry, id);
|
|
},
|
|
|
|
/**
|
|
* Unregister the entry with given id
|
|
*
|
|
* @event unregister
|
|
* @param id id of the registered entry
|
|
*/
|
|
unregister: function (id) {
|
|
// TODO check whether an entry was registered
|
|
var i, oldEntry = this._entries[id];
|
|
delete this._entries[id];
|
|
for (i in this._ids) {
|
|
if (this._ids.hasOwnProperty(i) && this._ids[i] === id) {
|
|
this._ids.splice(i, 1);
|
|
break;
|
|
}
|
|
}
|
|
this.trigger('unregister', oldEntry, id);
|
|
},
|
|
|
|
/**
|
|
* Get the entry registered with the given id
|
|
*
|
|
* @param id id of the registered entry
|
|
* @return registered entry
|
|
*/
|
|
get: function (id) {
|
|
return this._entries[id];
|
|
},
|
|
|
|
/**
|
|
* Check whether an entry was registered with given id
|
|
*
|
|
* @param id id to check
|
|
* @return true if an entry was registered, false if not
|
|
*/
|
|
has: function (id) {
|
|
return (this._entries[id] ? true : false);
|
|
},
|
|
|
|
/**
|
|
* Get an object mapping the ids (properties) to the registered entries
|
|
* Note, that iterating over the properties of the returned object
|
|
* will return the entries in an unspecified order
|
|
*
|
|
* @return object containing the registered entries
|
|
*/
|
|
getEntries: function () {
|
|
// clone the entries so the user does not accidentally modify our _entries object.
|
|
return jQuery.extend({}, this._entries);
|
|
},
|
|
|
|
/**
|
|
* Get the ids of the registered objects as array.
|
|
* The array will contain the ids in order of registry
|
|
*
|
|
* @return array if registered ids
|
|
*/
|
|
getIds: function () {
|
|
return jQuery.extend([], this._ids);
|
|
}
|
|
});
|
|
});
|