1 // The Antville Project 2 // http://code.google.com/p/antville 3 // 4 // Copyright 2007-2011 by Tobi Schäfer. 5 // 6 // Copyright 2001–2007 Robert Gaggl, Hannes Wallnöfer, Tobi Schäfer, 7 // Matthias & Michael Platzer, Christoph Lincke. 8 // 9 // Licensed under the Apache License, Version 2.0 (the ``License''); 10 // you may not use this file except in compliance with the License. 11 // You may obtain a copy of the License at 12 // 13 // http://www.apache.org/licenses/LICENSE-2.0 14 // 15 // Unless required by applicable law or agreed to in writing, software 16 // distributed under the License is distributed on an ``AS IS'' BASIS, 17 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 // See the License for the specific language governing permissions and 19 // limitations under the License. 20 // 21 // $Revision$ 22 // $LastChangedBy$ 23 // $LastChangedDate$ 24 // $URL$ 25 26 /** 27 * @fileOverview Defines the LogEntry prototype. 28 */ 29 30 markgettext("Log Entry"); 31 markgettext("log entry"); 32 33 /** 34 * @name LogEntry 35 * @constructor 36 * @param {HopObject} context 37 * @param {String} action 38 * @property {String} action 39 * @property {HopObject} context 40 * @property {Number} context_id 41 * @property {String} context_type 42 * @property {Date} created 43 * @property {User} creator 44 * @property {String} referrer 45 * @extends HopObject 46 */ 47 LogEntry.prototype.constructor = function(context, action) { 48 this.context = context; 49 this.action = action; 50 this.referrer = req.data.http_referer; 51 this.creator = session.user; 52 this.created = new Date; 53 // Won't be stored in database 54 this.ip = req.data.http_remotehost; 55 this.site = res.handlers.site; 56 return this; 57 } 58 59 /** 60 * @returns {String} 61 */ 62 LogEntry.prototype.toString = function() { 63 return "[LogEntry #" + this._id + ": " + (this.creator || "anonymous") + 64 " requested " + this.action + " action of " + this.context_type + 65 " #" + this.context_id + " on " + formatDate(this.created) + "]"; 66 } 67 68 /** 69 * 70 * @param {String} name 71 * @returns {HopObject} 72 */ 73 LogEntry.prototype.getMacroHandler = function(name) { 74 switch (name) { 75 case "context": 76 return this.context || {name: this.context_id}; 77 } 78 return null; 79 } 80 81 /** 82 * 83 * @param {Object} param 84 */ 85 LogEntry.prototype.label_macro = function(param) { 86 if (!User.require(User.PRIVILEGED)) { 87 return; 88 } 89 switch (this.context_type) { 90 case "Site" : 91 res.write("<span class=\"flagDark\" style=\"background-color:#006600;\">SITE</span>"); 92 break; 93 case "User" : 94 res.write("<span class=\"flagDark\" style=\"background-color:#009900;\">USER</span>"); 95 break; 96 default : 97 res.write("<span class=\"flagLight\" style=\"background-color:#FFCC00;\">ROOT</span>"); 98 } 99 return; 100 } 101