1 /** 2 * Copyright (C) 2013 KO GmbH <copyright@kogmbh.com> 3 * 4 * @licstart 5 * This file is part of WebODF. 6 * 7 * WebODF is free software: you can redistribute it and/or modify it 8 * under the terms of the GNU Affero General Public License (GNU AGPL) 9 * as published by the Free Software Foundation, either version 3 of 10 * the License, or (at your option) any later version. 11 * 12 * WebODF is distributed in the hope that it will be useful, but 13 * WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU Affero General Public License for more details. 16 * 17 * You should have received a copy of the GNU Affero General Public License 18 * along with WebODF. If not, see <http://www.gnu.org/licenses/>. 19 * @licend 20 * 21 * @source: http://www.webodf.org/ 22 * @source: https://github.com/kogmbh/WebODF/ 23 */ 24 25 /*global ops, runtime*/ 26 27 /** 28 * @constructor 29 * @implements ops.Operation 30 */ 31 ops.OpRemoveMember = function OpRemoveMember() { 32 "use strict"; 33 34 var memberid, timestamp; 35 36 /** 37 * @param {!ops.OpRemoveMember.InitSpec} data 38 */ 39 this.init = function (data) { 40 memberid = data.memberid; 41 timestamp = parseInt(data.timestamp, 10); 42 }; 43 44 this.isEdit = false; 45 this.group = undefined; 46 47 /** 48 * @param {!ops.Document} document 49 */ 50 this.execute = function (document) { 51 var odtDocument = /**@type{ops.OdtDocument}*/(document); 52 if (!odtDocument.getMember(memberid)) { 53 return false; 54 } 55 56 odtDocument.removeMember(memberid); 57 odtDocument.emit(ops.Document.signalMemberRemoved, memberid); 58 59 return true; 60 }; 61 62 /** 63 * @return {!ops.OpRemoveMember.Spec} 64 */ 65 this.spec = function () { 66 return { 67 optype: "RemoveMember", 68 memberid: memberid, 69 timestamp: timestamp 70 }; 71 }; 72 }; 73 /**@typedef{{ 74 optype:string, 75 memberid:string, 76 timestamp:number 77 }}*/ 78 ops.OpRemoveMember.Spec; 79 /**@typedef{{ 80 memberid:string, 81 timestamp:(number|undefined) 82 }}*/ 83 ops.OpRemoveMember.InitSpec; 84