log_filter.min.js 57 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063
  1. (function($){var LogFilter=function($){var self=this,_name="LogFilter",_errorCodes={unknown:1,algo:100,use:101,perm_general:200,form_expired:201,perm_filter_crud:202,perm_filter_restricted:203,db_general:500,filter_name_composition:1001,filter_name_nonunique:1002,filter_doesnt_exist:1003,bad_filter_condition:1010},_={errors:[],dateFormat:"YYYY-MM-DD",dateFormat_datepicker:"yy-mm-dd",mode:"default",modePrevious:"default",name:"",origin:"",crudFilters:false,recordedValues:{time_range:"",uid:"",hostname:"",location:"",referer:"",orderBy:[],type_options:[]},deleteLogs_allowed:false,saveEditFilterAjaxed:false,listMessageTruncate:250,adminOverlayOffset:80,currentOffset:0,currentMax:100,logs:{},library_judy_version:2.1,library_judy_compatible:true},_severity=["emergency","alert","critical","error","warning","notice","info","debug"],_submitted,_ajaxRequestingBlocking,_local={},_selectors={page:"div#page",form:"form#log-filter-form",settings:{mode:"input[name='log_filter_mode']",onlyOwn:"input[name='log_filter_only_own']",delete_logs_max:"input[name='log_filter_delete_logs_max']",translate:"input[name='log_filter_translate']",pager_range:"input[name='log_filter_pager_range']"},filter:{filter:"select[name='log_filter_filter']",name:"input[name='log_filter_name']",origin:"input[name='log_filter_origin']",name_suggest:"input[name='log_filter_name_suggest']",description:"textarea[name='log_filter_description']",require_admin:"input[name='log_filter_require_admin']"},conditions:{time_range:"input[name='log_filter_time_range']",time_from:"input[name='log_filter_time_from']",time_from_proxy:"input[name='log_filter_time_from_proxy']",time_to:"input[name='log_filter_time_to']",time_to_proxy:"input[name='log_filter_time_to_proxy']",severity_any:"input[name='log_filter_severity[-1]']",severity_some:"div#edit-log-filter-severity input:not([name='log_filter_severity[-1]'])",type_any:"input[name='log_filter_type_wildcard']",type_some:"textarea[name='log_filter_type']",type_proxy:"div#edit-log-filter-type-proxy input",role:"select[name='log_filter_role']",uid:"input[name='log_filter_uid']",username:"input[name='log_filter_username']",hostname:"input[name='log_filter_hostname']",location:"input[name='log_filter_location']",referer:"input[name='log_filter_referer']"},orderBy:{options:"div.filter-orderby select",bools:"div.filter-orderby input[type='checkbox']"},buttons:{submit:"input#edit-submit",update_list:"input[name='log_filter_update_list']",reset:"input[name='log_filter_reset']",create:"input[name='log_filter_create']",edit:"input[name='log_filter_edit']",delete_filter:"input[name='log_filter_delete']",cancel:"input[name='log_filter_cancel']",save:"input[name='log_filter_save']",delete_logs_button:"input[name='log_filter_delete_logs_button']"},pager:{first:"div#log_filter_pager_first",previous:"div#log_filter_pager_previous",current:"div#log_filter_pager_current",progress:"div#log_filter_pager_progress",next:"div#log_filter_pager_next",last:"div#log_filter_pager_last"},misc:{title:"#log_filter_title_display"}},_elements={settings:{},filter:{},conditions:{},orderBy:[],buttons:{crudFilters:[]},pager:{},misc:{}},_filters=[],_logs={},_errorHandler,_oGet,_toAscii,_textareaRemoveWrapper,_machineNameConvert,_machineNameIllegals,_machineNameValidate,_validateTimeSequence,_url,_submit,_typeProxyHandler,_prepareForm,_setMode,_crudRelay,_changedCriterion,_resetCriteria,_deleteLogs,_filterByEventColumn,_getLogList,_listLogs,_ajaxResponse,_ajaxRequest;
  2. _errorHandler=function(error,variable,options){var u=options,o={},t;
  3. if(typeof window.inspect==="function"&&inspect.tcepsni){if(typeof inspect.errorHandler==="function"){if(u){if((t=typeof u)==="string"){o.message=u;
  4. o.wrappers=1;
  5. }else{if(t==="object"){o=u;
  6. o.wrappers=!u.wrappers?1:(u.wrappers+1);
  7. }}}o.category="log_filter";
  8. inspect.errorHandler(error,variable,o);
  9. }else{inspect.console("Please update Inspect.");
  10. }}};
  11. _oGet=function(o,k0,k1){var t=typeof o;
  12. return o&&(t==="object"||t==="function")&&o.hasOwnProperty(k0)?(k1===undefined?o[k0]:((o=o[k0])&&((t=typeof o)==="object"||t==="function")&&o.hasOwnProperty(k1)?o[k1]:undefined)):undefined;
  13. };
  14. _toAscii=function(s){var ndl=_toAscii.needles,rpl=_toAscii.replacers,le=ndl.length,i,u;
  15. if(typeof ndl[0]==="string"){u=ndl.concat();
  16. for(i=0;
  17. i<le;
  18. i++){ndl[i]=new RegExp("\\u"+Judy.toLeading(u[i].charCodeAt(0).toString(16),4),"g");
  19. }}for(i=0;
  20. i<le;
  21. i++){s=s.replace(ndl[i],rpl[i]);
  22. }return s;
  23. };
  24. _textareaRemoveWrapper=function(elm){var jq;
  25. if((jq=$(elm.parentNode)).hasClass("form-textarea-wrapper")){jq.after($(elm).remove());
  26. jq.remove();
  27. }};
  28. _toAscii.needles=["Ä","Æ","ä","æ","Ö","Ø","ö","ø","Ü","ü","ß","Å","å","À","Á","Â","Ã","à","á","â","ã","Ç","ç","Ð","ð","È","É","Ê","Ë","è","é","ê","ë","Ì","Í","Î","Ï","ì","í","î","ï","Ñ","ñ","Ò","Ó","Ô","Õ","ò","ó","ô","õ","Ù","Ú","Û","ù","ú","û","Ý","ý","ÿ","Þ","þ"];
  29. _toAscii.replacers=["Ae","Ae","ae","ae","Oe","Oe","oe","oe","Ue","ue","ss","Aa","aa","A","A","A","A","a","a","a","a","C","c","D","d","E","E","E","E","e","e","e","e","I","I","I","I","i","i","i","i","N","n","O","O","O","O","o","o","o","o","U","U","U","u","u","u","Y","y","y","Th","th"];
  30. _machineNameConvert=function(){var v=this.value,rgx=/^[a-z\d_]$/;
  31. if(v.length>1&&!rgx.test(v)){if(!rgx.test(v=v.toLowerCase())){if(!rgx.test(v=v.replace(/[ \-]/g,"_"))){if(!rgx.test(v=_toAscii(v))){v=v.replace(/[^a-z\d_]/g,"_");
  32. }}}this.value=v;
  33. }};
  34. _machineNameIllegals=["log_filter","default","adhoc"];
  35. _machineNameValidate=function(evt,elm,value,noFeedback){var v=evt?this.value:(elm?elm.value:value),le=v.length;
  36. if(le<2||le>32||!/[a-z_]/.test(v.charAt(0))||!/[a-z\d_]/.test(v)||$.inArray(v.toLowerCase(),_machineNameIllegals)>-1){if(!noFeedback){self.Message.set(self.local("error_machine_name_composition",{"!illegals":_machineNameIllegals.join(", ")}),"warning",{modal:true,close:function(){Judy.focus(_elements.filter.name_suggest);
  37. }});
  38. }return false;
  39. }return true;
  40. };
  41. _validateTimeSequence=function(nm,date){var o=_elements.conditions,v,from=(v=o.time_from.value)?parseInt(v,10):0,to;
  42. if(from&&(to=(v=o.time_to.value)?parseInt(v,10):0)&&from>to){if(date&&$.trim(o.time_to_proxy.value)===$.trim(o.time_from_proxy.value)){return true;
  43. }o["time_"+nm].value=o["time_"+nm+"_proxy"].value=o["time_"+nm+"_time"].value="";
  44. self.Message.set(self.local("invalid_timeSequence_"+nm),"warning",{modal:true});
  45. return false;
  46. }return true;
  47. };
  48. _url=function(top){var loc=(!top?window:top).location,v;
  49. return loc.protocol+"//"+loc.hostname+(!(v=loc.port)?"":(":"+v))+loc.pathname.replace(/\/dblog(\/.+)?$/,"/dblog/log_filter");
  50. };
  51. _submit=function(){var nm="",elm;
  52. if(_submitted){return;
  53. }_submitted=true;
  54. switch(_.mode){case"adhoc":nm="adhoc";
  55. break;
  56. case"stored":nm=_.name;
  57. break;
  58. }_elements.form.setAttribute("action",_elements.form.getAttribute("action").replace(/\/dblog(\/[^\?&]+)([\?&].+)?$/,"/dblog/log_filter/"+nm+"$2"));
  59. setTimeout(function(){$(_elements.buttons.submit).trigger("click");
  60. },100);
  61. };
  62. _typeProxyHandler=function(){var v,i;
  63. if(this.checked){_elements.conditions.type_any.checked=false;
  64. if(Judy.arrayIndexOf(v=$.trim(_elements.conditions.type_some.value).split(/\n/),this.value)===-1){v.push(this.value);
  65. _elements.conditions.type_some.value=$.trim(v.join("\n"));
  66. }}else{if((i=Judy.arrayIndexOf(v=$.trim(_elements.conditions.type_some.value).split(/\n/),this.value))>-1){v.splice(i,1);
  67. if(v.length){_elements.conditions.type_some.value=$.trim(v.join("\n"));
  68. }else{_elements.conditions.type_some.value="";
  69. _elements.conditions.type_any.checked="checked";
  70. }}}_changedCriterion();
  71. };
  72. _prepareForm=function(){var oSels,oElms,nm,jq,elm,par,aElms,a,le,i,v,nOrderBy,u,elm2,d;
  73. try{_elements.page=$(_selectors.page).get(0);
  74. _elements.form=$(_selectors.form).get(0);
  75. oSels=_selectors.filter;
  76. oElms=_elements.filter;
  77. for(nm in oSels){if(oSels.hasOwnProperty(nm)&&(elm=(jq=$(oSels[nm])).get(0))){oElms[nm]=elm;
  78. switch(nm){case"filter":jq.change(function(){var v;
  79. _elements.filter.name.value=_.name=v=Judy.fieldValue(this);
  80. _elements.settings.mode.value=_.mode=v?"stored":"default";
  81. if(!v){_resetCriteria(null,"default");
  82. return;
  83. }Judy.overlay(1,false,self.local("wait"));
  84. _submit();
  85. });
  86. break;
  87. case"name_suggest":jq.keyup(_machineNameConvert);
  88. break;
  89. case"description":_textareaRemoveWrapper(elm);
  90. jq.change(function(){var v;
  91. if((v=this.value)){this.value=Judy.stripTags(v);
  92. }});
  93. break;
  94. }}}_.name=_elements.filter.name.value;
  95. _.origin=_elements.filter.origin.value;
  96. oSels=_selectors.settings;
  97. oElms=_elements.settings;
  98. for(nm in oSels){if(oSels.hasOwnProperty(nm)&&(elm=(jq=$(oSels[nm])).get(0))){oElms[nm]=elm;
  99. switch(nm){case"mode":_.mode=elm.value;
  100. break;
  101. case"onlyOwn":jq.change(function(){if(_.mode==="stored"){_elements.settings.mode.value="adhoc";
  102. Judy.fieldValue(_elements.filter.filter,null,"");
  103. _elements.filter.origin.value=_.name;
  104. _elements.filter.name.value="";
  105. }Judy.overlay(1,false,self.local("wait"));
  106. _submit();
  107. });
  108. break;
  109. case"delete_logs_max":jq.change(function(){var v=this.value;
  110. if(v!==""){if((v=$.trim(v))!==""&&!/^[1-9]\d*$/.test(v)){v="";
  111. }this.value=v;
  112. }});
  113. break;
  114. case"pager_range":_.currentMax=parseInt(elm.value,10);
  115. if($(_selectors.buttons.delete_logs_button).get(0)){oElms.delete_logs_max.value=_.currentMax;
  116. }jq.change(function(){var v=this.value,n,m;
  117. if(v!==""){if((v=$.trim(v))!==""&&/^\d+$/.test(v)){_.currentMax=n=parseInt(v,10);
  118. if(_.deleteLogs_allowed&&((m=_elements.settings.delete_logs_max.value)===""||(m=parseInt(m,10))>n)){_elements.settings.delete_logs_max.value=n;
  119. }}else{v="";
  120. }this.value=v;
  121. }});
  122. break;
  123. }}}oSels=_selectors.conditions;
  124. oElms=_elements.conditions;
  125. for(nm in oSels){if(oSels.hasOwnProperty(nm)&&(elm=(jq=$(oSels[nm])).get(0))){switch(nm){case"time_range":oElms[nm]=elm;
  126. _.recordedValues[nm]=elm.value;
  127. jq.change(function(){var v=this.value,o;
  128. if(v!==""){this.value=v=$.trim(v);
  129. }if(v!==""){if(v==="0"||!/^[1-9]\d*$/.test(v)){this.value=v="";
  130. }else{if(v.length>4){this.value=v="9999";
  131. }(o=_elements.conditions).time_from.value=o.time_from_proxy.value=o.time_from_time.value=o.time_to.value=o.time_to_proxy.value=o.time_to_time.value="";
  132. }}if(v!==_.recordedValues.time_range){_.recordedValues.time_range=v;
  133. _changedCriterion();
  134. }});
  135. break;
  136. case"time_from":case"time_to":oElms[nm]=elm;
  137. break;
  138. case"time_from_proxy":case"time_to_proxy":oElms[nm]=elm;
  139. u=nm==="time_from_proxy"?"from":"to";
  140. jq.after('<input class="form-text" type="text" maxlength="8" size="8" value="" name="log_filter_time_'+u+'_time" autocomplete="off" />');
  141. jq.datepicker({dateFormat:_.dateFormat_datepicker});
  142. oElms["time_"+u+"_time"]=elm2=$("input[name='log_filter_time_"+u+"_time']").get(0);
  143. if((v=_elements.conditions[u==="from"?"time_from":"time_to"].value)&&(v=parseInt(v,10))){jq.datepicker("setDate",d=new Date(v*1000));
  144. elm2.value=Judy.timeFormat(d);
  145. }jq.change(function(){var v,d,nm=this.name.indexOf("from")>1?"from":"to",r=_elements.conditions["time_"+nm],rT=_elements.conditions["time_"+nm+"_time"];
  146. if((v=$.trim(this.value)).length){if((d=Judy.dateFromFormat(v,_.dateFormat))){_.recordedValues.time_range=_elements.conditions.time_range.value="";
  147. rT.value=Judy.timeFormat(d,rT.value);
  148. r.value=v=Math.floor(d.getTime()/1000);
  149. if(nm==="to"&&(""+v)===_elements.conditions.time_from.value&&d.getHours()===0&&d.getMinutes()===0&&d.getSeconds()===0){rT.value=Judy.timeFormat(d,"24");
  150. r.value=Math.floor(d.getTime()/1000);
  151. }else{_validateTimeSequence(nm,true);
  152. }}else{self.Message.set(self.local("invalid_date",{"!date":v,"!format":_.dateFormat}),"warning",{modal:true});
  153. r.value="";
  154. return;
  155. }}_changedCriterion();
  156. });
  157. $(elm2).change(function(){var nm=this.name.indexOf("from")>-1?"from":"to",rD=_elements.conditions["time_"+nm],d;
  158. if(!(d=rD.value)){this.value="";
  159. return;
  160. }d=new Date(d*1000);
  161. this.value=Judy.timeFormat(d,this.value);
  162. rD.value=Math.floor(d/1000);
  163. _validateTimeSequence(nm);
  164. _changedCriterion();
  165. });
  166. break;
  167. case"severity_any":oElms[nm]=elm;
  168. jq.change(function(){var a=_elements.conditions.severity_some,le=a.length,i,v;
  169. if(this.checked){for(i=0;
  170. i<le;
  171. i++){a[i].checked=false;
  172. }}else{for(i=0;
  173. i<le;
  174. i++){if(a[i].checked){v=true;
  175. break;
  176. }}if(!v){this.checked="checked";
  177. return;
  178. }}_changedCriterion();
  179. });
  180. break;
  181. case"severity_some":oElms[nm]=jq.get();
  182. jq.change(function(){var a,le,i,someChecked;
  183. if(this.checked){_elements.conditions.severity_any.checked=false;
  184. }else{le=(a=_elements.conditions.severity_some).length;
  185. for(i=0;
  186. i<le;
  187. i++){if(a[i].checked){someChecked=true;
  188. break;
  189. }}if(!someChecked){_elements.conditions.severity_any.checked="checked";
  190. }}_changedCriterion();
  191. });
  192. break;
  193. case"type_any":oElms[nm]=elm;
  194. jq.change(function(){var elm;
  195. if(this.checked){_elements.conditions.type_some.value="";
  196. Judy.fieldValue(_elements.conditions.type_proxy,null,"","checkboxes");
  197. }_changedCriterion();
  198. });
  199. break;
  200. case"type_some":oElms[nm]=elm;
  201. _textareaRemoveWrapper(elm);
  202. elm.value=elm.value.replace(/\r/g,"");
  203. break;
  204. case"type_proxy":oElms[nm]=elm;
  205. $("input[type='checkbox']",par=Judy.ancestor(elm,"div.form-checkboxes")).each(function(){this.id="";
  206. this.setAttribute("name","");
  207. _.recordedValues.type_options.push(this.value);
  208. });
  209. Judy.fieldValue(_elements.conditions.type_proxy,_elements.form,$.trim(_elements.conditions.type_some.value).split(/\n/),"checkboxes");
  210. jq.change(_typeProxyHandler);
  211. $(par).prepend('<div class="form-item form-type-checkbox"><input type="checkbox" class="form-checkbox" value="" name="log_filter_type_proxy_add_item" autocomplete="off" /> <input type="text" value="" name="log_filter_type_proxy_add_item_value" autocomplete="off" class="form-text" placeholder="'+self.local("add_type_item")+'" /></div>');
  212. $('input[name="log_filter_type_proxy_add_item"]',_elements.form).change(function(){var elm,v;
  213. if(this.checked){elm=$('input[name="log_filter_type_proxy_add_item_value"]',_elements.form).get(0);
  214. if((v=elm.value)&&(v=$.trim(Judy.stripTags(v.replace(/[\r\n]/g,""))))){if(Judy.arrayIndexOf(_.recordedValues.type_options,v)===-1){_.recordedValues.type_options.push(v);
  215. _elements.conditions.type_some.value+=(_elements.conditions.type_some.value?"\n":"")+v;
  216. $(elm.parentNode).after('<div class="form-item form-type-checkbox"><input type="checkbox" class="form-checkbox" value="'+v+'" checked="checked" /> <label class="option">'+v+"</label></div>");
  217. $('input[value="'+v+'"]',par).change(_typeProxyHandler);
  218. _elements.conditions.type_any.checked=false;
  219. }else{self.Message.set(self.local("type_option_dupe",{"!option":v}),"warning",{modal:true,close:function(){Judy.focus(elm);
  220. }});
  221. }}this.checked=false;
  222. elm.value="";
  223. }});
  224. break;
  225. case"role":oElms[nm]=elm;
  226. jq.change(function(){if(Judy.fieldValue(this)){_elements.conditions.uid.value=_elements.conditions.username.value="";
  227. }_changedCriterion();
  228. });
  229. break;
  230. case"uid":oElms[nm]=elm;
  231. _.recordedValues[nm]=elm.value;
  232. jq.change(function(){var v=this.value;
  233. if(v!==""){this.value=v=$.trim(v);
  234. }if(v!==""){if(!/^\d+$/.test(v)){self.Message.set(self.local("invalid_uid"),"warning",{modal:true,close:function(){Judy.focus(_elements.conditions.uid);
  235. }});
  236. this.value=v="";
  237. }else{Judy.fieldValue(_elements.conditions.role,null,"");
  238. _elements.conditions.username.value="";
  239. }}_elements.conditions.username.value="";
  240. if(v!==_.recordedValues.uid){_.recordedValues.uid=v;
  241. _changedCriterion();
  242. }});
  243. break;
  244. case"username":oElms[nm]=elm;
  245. $(elm).autocomplete({source:"/log_filter/ajax/username_autocomplete",minLength:2,select:function(event,ui){var v;
  246. if(ui.item){_elements.conditions.uid.value=(v=ui.item.value);
  247. _elements.conditions.username.value=ui.item.label;
  248. if(v!==_.recordedValues.uid){_.recordedValues.uid=v;
  249. Judy.fieldValue(_elements.conditions.role,null,"");
  250. _changedCriterion();
  251. }}return false;
  252. }}).bind("autocompletesearch",function(){$(this).addClass("throbbing");
  253. }).bind("autocompleteresponse",function(){$(this).removeClass("throbbing");
  254. });
  255. Judy.ajaxcomplete(_selectors.conditions.username,"/log_filter/ajax/username_autocomplete",function(event){$(this).removeClass("throbbing");
  256. });
  257. break;
  258. case"hostname":oElms[nm]=elm;
  259. _.recordedValues[nm]=elm.value;
  260. jq.change(function(){var v=this.value;
  261. if(v!==""){this.value=v=Judy.stripTags(v);
  262. }if(v!==_.recordedValues.hostname){_.recordedValues.hostname=v;
  263. _changedCriterion();
  264. }});
  265. break;
  266. case"location":case"referer":oElms[nm]=elm;
  267. _.recordedValues[nm]=elm.value;
  268. jq.change(function(){var v=$.trim(this.value),nm=this.name==="log_filter_location"?"location":"referer";
  269. if(nm==="referer"&&(v==="none"||v==="<none>")){this.value="none";
  270. }else{if(v!==""){this.value=v=Judy.stripTags(v);
  271. }if(v!==""&&v!=="*"&&!/^https?:\/\/.+$/.test(v)){if(!/^https?:\/\/.+$/.test(v="http://"+v)){self.Message.set(self.local(nm==="location"?"invalid_location":"invalid_referer"),"warning",{modal:true,close:function(){Judy.focus(_elements.conditions[nm]);
  272. }});
  273. this.value=v="";
  274. }else{this.value=v;
  275. }}}if(v!==_.recordedValues[nm]){_.recordedValues[nm]=v;
  276. _changedCriterion();
  277. }});
  278. break;
  279. default:oElms[nm]=elm;
  280. jq.change(_changedCriterion);
  281. }}}oElms=_elements.orderBy;
  282. if((nOrderBy=(aElms=$(_selectors.orderBy.options).get()).length)){for(i=0;
  283. i<nOrderBy;
  284. i++){oElms.push([elm=aElms[i]]);
  285. _.recordedValues.orderBy.push(Judy.fieldValue(elm));
  286. $(elm).change(function(){var v,index,i,a;
  287. if((v=Judy.fieldValue(this))&&v!=="_none"){index=parseInt(this.name.replace(/^log_filter_orderby_/,""),10)-1;
  288. a=_elements.orderBy;
  289. for(i=0;
  290. i<nOrderBy;
  291. i++){if(i!==index&&Judy.fieldValue(a[i][0])===v){Judy.fieldValue(this,null,v="");
  292. break;
  293. }}}if(v!==_.recordedValues.orderBy[index]){_.recordedValues.orderBy[index]=v;
  294. _changedCriterion();
  295. }});
  296. }if((le=(aElms=$(_selectors.orderBy.bools).get()).length)){for(i=0;
  297. i<le;
  298. i++){oElms[i].push(elm=aElms[i]);
  299. $(elm).change(_changedCriterion);
  300. }}}oSels=_selectors.pager;
  301. oElms=_elements.pager;
  302. for(nm in oSels){if(oSels.hasOwnProperty(nm)&&(elm=(jq=$(oSels[nm])).get(0))){oElms[nm]=elm;
  303. switch(nm){case"first":jq.click(function(){_ajaxRequestingBlocking=true;
  304. _getLogList(0,0);
  305. });
  306. break;
  307. case"previous":jq.click(function(){_ajaxRequestingBlocking=true;
  308. _getLogList(0,(v=_.currentOffset-_.currentMax)>0?v:0);
  309. });
  310. break;
  311. case"current":jq.click(function(){_ajaxRequestingBlocking=true;
  312. _getLogList();
  313. });
  314. break;
  315. case"next":jq.click(function(){_ajaxRequestingBlocking=true;
  316. _getLogList(0,_.currentOffset+_.currentMax);
  317. });
  318. break;
  319. case"last":jq.click(function(){_ajaxRequestingBlocking=true;
  320. _getLogList(0,-1);
  321. });
  322. break;
  323. }}}oSels=_selectors.misc;
  324. oElms=_elements.misc;
  325. for(nm in oSels){if(oSels.hasOwnProperty(nm)&&(elm=(jq=$(oSels[nm])).get(0))){oElms[nm]=elm;
  326. }}oSels=_selectors.buttons;
  327. oElms=_elements.buttons;
  328. for(nm in oSels){if(oSels.hasOwnProperty(nm)&&(elm=(jq=$(oSels[nm])).get(0))){switch(nm){case"submit":oElms[nm]=elm;
  329. break;
  330. case"update_list":oElms[nm]=elm;
  331. elm.setAttribute("type","button");
  332. jq.unbind();
  333. jq.click(function(){_ajaxRequestingBlocking=true;
  334. _getLogList();
  335. });
  336. Judy.keydown(document.documentElement,"ctr+u cmd+u",function(event){event.preventDefault();
  337. _ajaxRequestingBlocking=true;
  338. _getLogList();
  339. });
  340. break;
  341. default:oElms[nm]=elm;
  342. elm.setAttribute("type","button");
  343. jq.unbind();
  344. switch(nm){case"create":case"edit":case"delete_filter":case"cancel":case"save":_.crudFilters=true;
  345. oElms.crudFilters.push(elm);
  346. jq.click(_crudRelay);
  347. break;
  348. case"delete_logs_button":_.deleteLogs_allowed=true;
  349. Judy.disable(elm,null,self.local("deleteLogs_prohibit"));
  350. jq.click(_crudRelay);
  351. break;
  352. case"reset":jq.click(_resetCriteria);
  353. break;
  354. }}}}$("label span").click(function(evt){evt.stopPropagation();
  355. return false;
  356. });
  357. }catch(er){_errorHandler(er,0,_name+"._prepareForm()");
  358. }};
  359. self.inspector=function(u){inspect(u,{wrappers:1});
  360. };
  361. _setMode=function(mode,submit,initially){var fromMode=_.mode,doSubmit,elm,nm;
  362. try{if(_submitted){return;
  363. }if(!initially&&mode!=="delete_filter"){if(!submit&&_.crudFilters){$(_elements.buttons.crudFilters).hide();
  364. }}switch(mode){case"default":$("option[value='']",_elements.filter.filter).html(self.local("default"));
  365. $(_elements.misc.title).html(self.local("default"));
  366. if(!initially){Judy.fieldValue(_elements.filter.filter,null,"");
  367. _elements.filter.name.value=_.name=_elements.filter.origin.value=_.origin="";
  368. }if(_.crudFilters){$(_elements.settings.onlyOwn.parentNode).show();
  369. $(_elements.buttons.create).show();
  370. if((elm=_elements.filter.require_admin)){$(elm.parentNode).hide();
  371. }$(_elements.filter.name_suggest.parentNode).hide();
  372. $(_elements.filter.description.parentNode).hide();
  373. }if(_.deleteLogs_allowed){$(_elements.settings.delete_logs_max).show();
  374. $(elm=_elements.buttons.delete_logs_button).show();
  375. $(elm.parentNode).show();
  376. }if(fromMode==="create"){fromMode="";
  377. }break;
  378. case"adhoc":if(!initially){Judy.fieldValue(_elements.filter.filter,null,"");
  379. }if(fromMode==="stored"){_elements.filter.origin.value=_.origin=nm=_.name;
  380. _elements.filter.name.value=_.name="";
  381. $("option[value='']",_elements.filter.filter).html("("+nm+")");
  382. $(_elements.misc.title).html(self.local("adhocForOrigin",{"!origin":nm}));
  383. }else{fromMode="";
  384. $("option[value='']",_elements.filter.filter).html(self.local("adhoc"));
  385. $(_elements.misc.title).html(self.local("adhoc"));
  386. }if(_.crudFilters){$(_elements.settings.onlyOwn.parentNode).show();
  387. $(_elements.buttons.create).show();
  388. if((elm=_elements.filter.require_admin)){$(elm.parentNode).hide();
  389. }$(_elements.filter.name_suggest.parentNode).hide();
  390. $(_elements.filter.description.parentNode).hide();
  391. }if(_.deleteLogs_allowed){$(_elements.settings.delete_logs_max).show();
  392. $(elm=_elements.buttons.delete_logs_button).show();
  393. $(elm.parentNode).show();
  394. }break;
  395. case"stored":if(!initially){if(fromMode==="create"){_elements.filter.name.value=_.name=_.origin;
  396. _elements.filter.origin.value=_.origin="";
  397. }Judy.fieldValue(elm=_elements.filter.filter,null,nm=_.name);
  398. $("option[value='']",elm).html(self.local("default"));
  399. $(_elements.misc.title).html(nm);
  400. if(_.crudFilters){if((elm=_elements.filter.require_admin)){$(elm.parentNode).hide();
  401. }$(_elements.filter.name_suggest.parentNode).hide();
  402. $(_elements.filter.description.parentNode).hide();
  403. }}if(_.crudFilters){$(_elements.settings.onlyOwn.parentNode).show();
  404. $(_elements.buttons.create).show();
  405. $(_elements.buttons.edit).show();
  406. $(_elements.buttons.delete_filter).show();
  407. }if(_.deleteLogs_allowed){$(_elements.settings.delete_logs_max).show();
  408. $(elm=_elements.buttons.delete_logs_button).show();
  409. $(elm.parentNode).show();
  410. }switch(fromMode){case"create":case"edit":fromMode="stored";
  411. break;
  412. }break;
  413. case"create":if(!_.crudFilters){throw new Error("Mode["+mode+"] not allowed.");
  414. }switch(fromMode){case"default":case"adhoc":$("option[value='']",_elements.filter.filter).html("("+self.local("newName")+")");
  415. $(_elements.misc.title).html(self.local("newTitle"));
  416. break;
  417. case"stored":Judy.fieldValue(_elements.filter.filter,null,"");
  418. _elements.filter.origin.value=_.origin=nm=_.name;
  419. _elements.filter.name.value=_.name="";
  420. $("option[value='']",_elements.filter.filter).html("("+nm+")");
  421. $(_elements.misc.title).html(self.local("newForOrigin",{"!origin":nm}));
  422. break;
  423. default:throw new Error("Cant create from mode["+fromMode+"].");
  424. }$(_elements.settings.onlyOwn.parentNode).hide();
  425. $(_elements.filter.name_suggest.parentNode).show();
  426. if((elm=_elements.filter.require_admin)){$(elm.parentNode).show();
  427. }$(_elements.filter.description.parentNode).show();
  428. $(_elements.buttons.save).show();
  429. $(_elements.buttons.cancel).show();
  430. if(_.deleteLogs_allowed){$(_elements.buttons.delete_logs_button.parentNode).hide();
  431. }break;
  432. case"edit":if(!_.crudFilters){throw new Error("Mode["+mode+"] not allowed.");
  433. }if(fromMode==="create"){fromMode=_.modePrevious;
  434. $("option[value='']",elm=_elements.filter.filter).after('<option value="'+(nm=_.name)+'">'+nm+"</option>");
  435. $("option[value='']",elm).html(self.local("default"));
  436. Judy.fieldValue(elm,null,nm);
  437. }if((elm=_elements.filter.require_admin)){$(elm.parentNode).show();
  438. }$(_elements.filter.name_suggest.parentNode).hide();
  439. $(_elements.filter.description.parentNode).show();
  440. $(_elements.buttons.cancel).show();
  441. $(_elements.buttons.save).show();
  442. $(_elements.settings.onlyOwn.parentNode).hide();
  443. if(_.deleteLogs_allowed){$(_elements.buttons.delete_logs_button.parentNode).hide();
  444. }break;
  445. case"delete_filter":if(!_.crudFilters){throw new Error("Mode["+mode+"] not allowed.");
  446. }Judy.overlay(1,true);
  447. if(_elements.filter.name.value){if(!confirm(self.local("confirmDelete",{"!filter":_elements.filter.name.value}))){Judy.overlay(0);
  448. return;
  449. }doSubmit=true;
  450. Judy.overlay(1,false,self.local("wait"));
  451. }else{throw new Error("Cant delete filter having empty name["+_elements.filter.name.value+"].");
  452. }break;
  453. default:throw new Error("Mode["+mode+"] not supported.");
  454. }_.modePrevious=fromMode;
  455. _elements.settings.mode.value=_.mode=mode;
  456. if(submit||doSubmit){_submit();
  457. }}catch(er){_errorHandler(er,0,_name+"._setMode()");
  458. }};
  459. _crudRelay=function(){var nm=this.name,elm,v,rqa;
  460. try{switch(nm){case"log_filter_reset":_resetCriteria();
  461. break;
  462. case"log_filter_create":_setMode("create");
  463. Judy.focus(_elements.filter.name_suggest);
  464. break;
  465. case"log_filter_edit":_setMode("edit");
  466. break;
  467. case"log_filter_delete":_setMode("delete_filter");
  468. break;
  469. case"log_filter_cancel":switch(_.mode){case"create":case"edit":switch(_.modePrevious){case"default":case"adhoc":break;
  470. case"stored":break;
  471. default:throw new Error("Previous mode["+_.modePrevious+"] not supported when cancelling.");
  472. }_setMode(_.modePrevious);
  473. break;
  474. default:throw new Error("Cant cancel in mode["+_.mode+"].");
  475. }break;
  476. case"log_filter_save":if(_.mode==="edit"&&!_.saveEditFilterAjaxed){Judy.overlay(1,false,self.local("wait_"+_.mode));
  477. _submit();
  478. return false;
  479. }else{if(_ajaxRequestingBlocking){return false;
  480. }if(_.mode==="create"){if(!_machineNameValidate(null,null,v=(elm=_elements.filter.name_suggest).value)){Judy.focus(elm);
  481. return false;
  482. }if($.inArray(v,_filters)>-1){Judy.overlay(1,true);
  483. if(!confirm(self.local("error_filter_name_nonunique",{"!name":v}))){Judy.overlay(0);
  484. return false;
  485. }else{Judy.overlay(1,false,self.local("wait_edit"));
  486. _elements.settings.mode.value=_.mode="edit";
  487. _elements.filter.name.value=v;
  488. _submit();
  489. return false;
  490. }}nm=v;
  491. rqa=_elements.filter.require_admin?1:0;
  492. }else{nm=_.name;
  493. rqa=(elm=_elements.filter.require_admin)&&Judy.fieldValue(elm);
  494. }Judy.overlay(1,false,self.local("wait_"+_.mode));
  495. _ajaxRequestingBlocking=true;
  496. v=self.getCriteria();
  497. _ajaxRequest("filter_"+_.mode,{name:nm,filter:{require_admin:rqa,description:$.trim(Judy.stripTags(_elements.filter.description.value).replace(/[\r\n\t]/g," ").replace(/\ +/g," ")).substr(0,255)},conditions:v.conditions,order_by:v.order_by});
  498. }break;
  499. case"log_filter_delete_logs_button":if(_.deleteLogs_allowed){Judy.overlay(1,false,self.local("wait"));
  500. setTimeout(_deleteLogs,200);
  501. }else{throw new Error("Button name["+nm+"] not allowed.");
  502. }break;
  503. default:throw new Error("Unsupported button name["+nm+"].");
  504. }}catch(er){_errorHandler(er,0,_name+"._crudRelay()");
  505. }return false;
  506. };
  507. _changedCriterion=function(){if(_.deleteLogs_allowed){Judy.disable(_elements.buttons.delete_logs_button,null,self.local("deleteLogs_prohibit"));
  508. }try{switch(_.mode){case"default":_setMode("adhoc");
  509. break;
  510. case"adhoc":break;
  511. case"stored":_setMode(!_.crudFilters?"adhoc":"edit");
  512. break;
  513. case"create":break;
  514. case"edit":break;
  515. case"delete_filter":break;
  516. default:throw new Error("Mode["+_.mode+"] not supported.");
  517. }}catch(er){_errorHandler(er,0,_name+"._changedCriterion()");
  518. }};
  519. _resetCriteria=function(evt,mode,noModeChange){var o=_elements.conditions,nm,r,a,le,i;
  520. if(_.deleteLogs_allowed){Judy.disable(_elements.buttons.delete_logs_button,null,self.local("deleteLogs_prohibit"));
  521. }for(nm in o){if(o.hasOwnProperty(nm)){r=o[nm];
  522. switch(nm){case"severity_any":case"type_any":r.checked=true;
  523. break;
  524. case"severity_some":le=r.length;
  525. for(i=0;
  526. i<le;
  527. i++){r[i].checked=false;
  528. }break;
  529. case"type_proxy":if(r){Judy.fieldValue(r,null,"","checkboxes");
  530. }break;
  531. default:r.value="";
  532. }}}le=(a=_elements.orderBy).length;
  533. for(i=0;
  534. i<le;
  535. i++){Judy.fieldValue(a[i][0],null,i?"":"time");
  536. a[i][1].checked=i?false:"checked";
  537. }if(!noModeChange){if(mode){_setMode(mode);
  538. }else{_setMode("default");
  539. }}};
  540. _deleteLogs=function(){var o=self.getCriteria(),v,offset=_.currentOffset,max=(v=_elements.settings.delete_logs_max.value)!==""?parseInt(v):0;
  541. if(!o.nConditions){if(!max){if(!offset){if(!confirm(self.local("deleteLogs_all"))){Judy.overlay(0);
  542. Judy.focus(_elements.settings.delete_logs_max);
  543. return;
  544. }}else{if(!confirm(self.local("deleteLogs_noMax",{"!offset":offset}))){Judy.overlay(0);
  545. Judy.focus(_elements.settings.delete_logs_max);
  546. return;
  547. }}}else{if(!offset){if(!confirm(self.local("deleteLogs_noOffset",{"!max":max}))){Judy.overlay(0);
  548. Judy.focus(_elements.settings.delete_logs_max);
  549. return;
  550. }}else{if(!confirm(self.local("deleteLogs_noConditions",{"!offset":offset,"!max":max}))){Judy.overlay(0);
  551. Judy.focus(_elements.settings.delete_logs_max);
  552. return;
  553. }}}}else{if(_.mode==="stored"){if(!max){if(!offset){if(!confirm(self.local("deleteLogs_storedAll",{"!name":_.name}))){Judy.overlay(0);
  554. Judy.focus(_elements.settings.delete_logs_max);
  555. return;
  556. }}else{if(!confirm(self.local("deleteLogs_storedNoMax",{"!offset":offset,"!name":_.name}))){Judy.overlay(0);
  557. Judy.focus(_elements.settings.delete_logs_max);
  558. return;
  559. }}}else{if(!offset){if(!confirm(self.local("deleteLogs_storedNoOffset",{"!max":max,"!name":_.name}))){Judy.overlay(0);
  560. Judy.focus(_elements.settings.delete_logs_max);
  561. return;
  562. }}else{if(!confirm(self.local("deleteLogs_stored",{"!offset":offset,"!max":max,"!name":_.name}))){Judy.overlay(0);
  563. Judy.focus(_elements.settings.delete_logs_max);
  564. return;
  565. }}}}else{if(!max){if(!offset){if(!confirm(self.local("deleteLogs_adhocAll"))){Judy.overlay(0);
  566. Judy.focus(_elements.settings.delete_logs_max);
  567. return;
  568. }}else{if(!confirm(self.local("deleteLogs_adhocNoMax",{"!offset":offset}))){Judy.overlay(0);
  569. Judy.focus(_elements.settings.delete_logs_max);
  570. return;
  571. }}}else{if(!offset){if(!confirm(self.local("deleteLogs_adhocNoOffset",{"!max":max}))){Judy.overlay(0);
  572. Judy.focus(_elements.settings.delete_logs_max);
  573. return;
  574. }}else{if(!confirm(self.local("deleteLogs_adhoc",{"!offset":offset,"!max":max}))){Judy.overlay(0);
  575. Judy.focus(_elements.settings.delete_logs_max);
  576. return;
  577. }}}}}_ajaxRequestingBlocking=true;
  578. v=self.getCriteria();
  579. _ajaxRequest("delete_logs",{conditions:v.conditions,order_by:v.order_by,offset:offset,max:max});
  580. };
  581. _filterByEventColumn=function(evt){var that=evt.target,tag,logId,col,log,u,o=_elements.conditions,elm,elm1,v,v1,a,vShow,username;
  582. if(evt.type==="contextmenu"){evt.preventDefault();
  583. }switch((tag=that.tagName||"none").toLowerCase()){case"td":break;
  584. case"a":username=$(that).text();
  585. that=that.parentNode;
  586. break;
  587. default:return;
  588. }if(!(col=that.getAttribute("log_filter_list_event_column"))){return;
  589. }if(!(logId=that.parentNode.getAttribute("log_filter_list_event_id"))||!(log=_logs["_"+logId])||!_logs.hasOwnProperty("_"+logId)){return;
  590. }switch(col){case"severity":vShow=self.local(_severity[log.severity]);
  591. v=log.severity||"zero";
  592. if((a=Judy.fieldValue(elm=o.severity_some,_elements.form,undefined,"checklist"))){a.push(v);
  593. v=a;
  594. }Judy.fieldValue(elm,_elements.form,v,"checklist");
  595. $(elm).trigger("change");
  596. break;
  597. case"type":if(Judy.arrayIndexOf(_.recordedValues.type_options,v=log.type)===-1){$('input[name="log_filter_type_proxy_add_item_value"]',_elements.form).val(v);
  598. $('input[name="log_filter_type_proxy_add_item"]',_elements.form).get(0).checked="checked";
  599. $('input[name="log_filter_type_proxy_add_item"]',_elements.form).trigger("change");
  600. }else{if((a=Judy.fieldValue(elm=o.type_proxy,_elements.form,undefined,"checklist"))){a.push(v);
  601. v=a;
  602. }Judy.fieldValue(elm,_elements.form,v,"checklist");
  603. $('div#edit-log-filter-type-proxy input[value="'+v+'"]').trigger("change");
  604. }vShow=v;
  605. break;
  606. case"time":u=evt.type==="keydown"&&evt.keystrokes!=="f"?"time_to":"time_from";
  607. (elm=o[u+"_proxy"]).value=v=log.time.substr(0,10);
  608. $(elm).trigger("change");
  609. (elm1=o[u+"_time"]).value=v1=log.time.substr(11);
  610. $(elm1).trigger("change");
  611. if(elm.value!==v||elm1.value!==v1){return;
  612. }col=u;
  613. vShow=log.time;
  614. break;
  615. default:(elm=o[col]).value=vShow=v=log[col];
  616. $(elm).trigger("change");
  617. if(col==="uid"&&username){_elements.conditions.username.value=username;
  618. }}self.Message.set(self.local("filtered_event_column",{"!column":self.local("log_"+col),"!value":vShow}),"info");
  619. };
  620. _getLogList=function(wid,offset){var v=self.getCriteria();
  621. Judy.overlay(1,false,self.local("wait"));
  622. if(wid){v.conditions={wid:wid};
  623. offset=0;
  624. }_ajaxRequest("list_logs",{conditions:v.conditions,order_by:v.order_by,offset:offset||offset===0?offset:_.currentOffset,max:_.currentMax,translate:Judy.fieldValue(_elements.settings.translate)});
  625. $(_elements.pager.first).addClass("log-filter-pager-button-disabled");
  626. $(_elements.pager.previous).addClass("log-filter-pager-button-disabled");
  627. $(_elements.pager.current).hide();
  628. $(_elements.pager.progress).show();
  629. $(_elements.pager.next).addClass("log-filter-pager-button-disabled");
  630. $(_elements.pager.last).addClass("log-filter-pager-button-disabled");
  631. };
  632. _listLogs=function(logs,conditions,offset,nTotal){var le=logs.length,i,o,v,css="log-filter-list",s,nCols=5,wid,optionalColumns={},tabindex=999;
  633. _logs={};
  634. _.currentOffset=offset||0;
  635. if(le){for(i=0;
  636. i<le;
  637. i++){o=logs[i];
  638. if(o.variables){o.message=Drupal.formatString(o.message,o.variables);
  639. }delete o.variables;
  640. o.severity=parseInt(""+o.severity,10);
  641. o.severity_string=_severity[o.severity];
  642. o.time=Judy.dateTime(new Date(o.timestamp*1000));
  643. if(!o.uid||o.uid==="0"){o.uid=0;
  644. o.name=self.local("anonymous_user");
  645. }_logs["_"+o.wid]=o;
  646. }}s='<table id="log_filter_log_list_table" class="sticky-enabled" tabindex="'+(++tabindex)+'"><thead><tr><th>'+Drupal.t("Severity")+"</th><th>"+Drupal.t("Type")+"</th><th>"+Drupal.t("Time")+"</th><th>"+Drupal.t("User")+"</th>";
  647. if(conditions.hostname||_elements.conditions.hostname.value==="*"){++nCols;
  648. optionalColumns.hostname=true;
  649. s+="<th>"+Drupal.t("Hostname")+"</th>";
  650. }if(conditions.location||_elements.conditions.location.value==="*"){++nCols;
  651. optionalColumns.location=true;
  652. s+="<th>"+Drupal.t("Location")+"</th>";
  653. }if(conditions.referer||_elements.conditions.referer.value==="*"){++nCols;
  654. optionalColumns.referer=true;
  655. s+="<th>"+Drupal.t("Referrer")+"</th>";
  656. }s+="<th>"+Drupal.t("Message")+"</th></tr></thead><tbody>";
  657. if(le){if((wid=conditions.wid)&&conditions.hasOwnProperty("wid")){s+='<tr class="even"><td class="'+css+'-event-from-url" colspan="'+nCols+'">'+self.local("event_from_url",{"!number":wid})+"</td></tr>";
  658. setTimeout(function(){self.displayLog(wid);
  659. },100);
  660. }for(i=0;
  661. i<le;
  662. i++){o=logs[i];
  663. s+='<tr id="log_filter_list_log_'+o.wid+'" log_filter_list_event_id="'+o.wid+'" onclick="LogFilter.displayLog('+o.wid+');" class="'+(i%2?"even":"odd")+'" title="'+self.local("eventItem_display",{"!logId":o.wid})+'"><td log_filter_list_event_column="severity" class="'+css+"-severity "+css+"-"+(v=o.severity_string)+'" title="'+self.local("eventItemHover_severity",{"!logId":o.wid,"!severity":self.local(v)})+'" tabindex="'+(++tabindex)+'" onmouseover="focus(this);">&#160;</td><td log_filter_list_event_column="type" class="'+css+'-type" title="'+self.local("eventItemHover_filter",{"!logId":o.wid,"!filter":self.local("log_type")})+'" tabindex="'+(++tabindex)+'" onmouseover="focus(this);">'+o.type+'</td><td log_filter_list_event_column="time" class="'+css+'-time" title="'+self.local("eventItemHover_time",{"!logId":o.wid})+'" tabindex="'+(++tabindex)+'" onmouseover="focus(this);">'+o.time+'</td><td log_filter_list_event_column="uid" class="'+css+'-user" title="'+self.local("eventItemHover_user",{"!logId":o.wid,"!uid":o.uid})+'"'+(!o.uid||o.name===null?(!o.uid?(' onmouseover="focus(this);">'+(o.name)):(">-"+self.local("deleted_user")+"-")):('><a href="/user/'+o.uid+'" onmouseover="focus(this);">'+o.name+"</a>"))+"</td>"+(!optionalColumns.hostname?"":'<td log_filter_list_event_column="hostname" class="'+css+'-hostname" title="'+self.local("eventItemHover_filter",{"!logId":o.wid,"!filter":self.local("log_hostname")})+'" tabindex="'+(++tabindex)+'" onmouseover="focus(this);">'+o.hostname+"</td>")+(!optionalColumns.location?"":'<td log_filter_list_event_column="location" class="'+css+'-location" title="'+self.local("eventItemHover_filter",{"!logId":o.wid,"!filter":self.local("log_location")})+'" tabindex="'+(++tabindex)+'" onmouseover="focus(this);">'+o.location+"</td>")+(!optionalColumns.referer?"":'<td log_filter_list_event_column="referer" class="'+css+'-referer" title="'+self.local("eventItemHover_filter",{"!logId":o.wid,"!filter":self.local("log_referer")})+'" tabindex="'+(++tabindex)+'" onmouseover="focus(this);">'+o.referer+"</td>")+'<td class="'+css+'-message"><div>'+Judy.stripTags(o.message.replace(/\r?\n/g," ")).substr(0,_.listMessageTruncate)+"</div></td></tr>";
  664. }$(_elements.pager.progress).hide();
  665. if(offset){$(_elements.pager.first).removeClass("log-filter-pager-button-disabled");
  666. $(_elements.pager.previous).removeClass("log-filter-pager-button-disabled");
  667. }$(_elements.pager.current).html(self.local("pager_current",{"!first":(offset+1),"!last":(offset+le),"!total":nTotal})).show();
  668. if(offset+le<nTotal){$(_elements.pager.next).removeClass("log-filter-pager-button-disabled");
  669. $(_elements.pager.last).removeClass("log-filter-pager-button-disabled");
  670. }}else{s+='<tr class="odd"><td class="'+css+'-no-match" colspan="'+nCols+'">'+(!conditions.wid?self.local("no_event_matches"):self.local("non_existing_event",{"!number":conditions.wid}))+"</td></tr>";
  671. $(_elements.pager.progress).hide();
  672. if(offset){$(_elements.pager.first).removeClass("log-filter-pager-button-disabled");
  673. $(_elements.pager.previous).removeClass("log-filter-pager-button-disabled");
  674. }if(!nTotal){$(_elements.pager.current).html(self.local("pager_current_none")).show();
  675. }else{$(_elements.pager.current).html(self.local("pager_current_outofrange",{"!offset":offset,"!total":nTotal})).show();
  676. }}s+="</tbody></table>";
  677. $("#log_filter_log_list").html(s);
  678. setTimeout(function(){$("#log_filter_log_list table.sticky-enabled").once("tableheader",function(){$(this).data("drupal-tableheader",new Drupal.tableHeader(this));
  679. });
  680. $("table#log_filter_log_list_table").bind("contextmenu",_filterByEventColumn);
  681. Judy.keydown("table#log_filter_log_list_table","f shift+f",_filterByEventColumn,true);
  682. },100);
  683. };
  684. _ajaxRequest=function(action,oData){$.ajax({url:"/log_filter/ajax/"+action,type:"POST",data:oData,dataType:"json",cache:false,success:function(oResp,textStatus,jqXHR){var o;
  685. if(textStatus==="success"&&typeof action==="string"&&$.type(oResp)==="object"){_ajaxResponse(action,oResp);
  686. }else{o={source:"ajax request",action:action,textStatus:textStatus,oResp:oResp};
  687. _.errors.push(o);
  688. _errorHandler(null,o,_name+"._ajaxRequest()");
  689. }},error:function(jqXHR,textStatus,errorThrown){var o;
  690. if(jqXHR&&jqXHR.status===403){_ajaxResponse(action,{success:false,error_code:_errorCodes.perm_general});
  691. }else{o={source:"ajax request",action:action,textStatus:textStatus,errorThrown:errorThrown};
  692. _.errors.push(o);
  693. _errorHandler(null,o,_name+"._ajaxRequest()");
  694. }}});
  695. };
  696. _ajaxResponse=function(action,oResp){var errorCode=oResp.error_code||0,url;
  697. if(!oResp.success||errorCode){switch(errorCode){case _errorCodes.perm_general:$(_elements.form).html("");
  698. self.Message.set(self.local("error_form_expired",{"!url":url=_url()}),"warning",{modal:true,close:function(){window.location.href=url;
  699. }});
  700. return;
  701. case _errorCodes.form_expired:self.Message.set(self.local("error_form_expired",{"!url":url=_url()}),"warning",{modal:true,close:function(){window.location.href=url;
  702. }});
  703. return;
  704. case _errorCodes.perm_filter_crud:self.Message.set(self.local("error_perm_filter_crud"),"warning",{modal:true,close:function(){window.location.href=_url();
  705. }});
  706. return;
  707. case _errorCodes.db_general:self.Message.set(self.local("error_db_general"),"error",{modal:true,close:function(){window.location.href=_url();
  708. }});
  709. break;
  710. }}if(_ajaxResponse.hasOwnProperty(action)){if(!_ajaxResponse[action](oResp)){_errorHandler(null,oResp,_name+"._ajaxResponse."+action+"()");
  711. self.Message.set(self.local("error_unknown"),"error",{modal:true,close:function(){window.location.href=_url();
  712. }});
  713. }}else{_errorHandler(null,oResp,_name+"._ajaxResponse(), unsupported action["+action+"]");
  714. }};
  715. _ajaxResponse.filter_create=function(oResp){var nm=oResp.name;
  716. if(oResp.success){_elements.filter.name_suggest.value="";
  717. _elements.filter.origin.value=_.origin=_.name;
  718. _elements.filter.name.value=_.name=nm;
  719. _filters.push(nm);
  720. _setMode("edit");
  721. $(_elements.misc.title).html(nm+"<span> - "+oResp.description+"</span>");
  722. Judy.overlay(0);
  723. self.Message.set(self.local("savedNew",{"!filter":nm}));
  724. }else{switch(oResp.error_code){case _errorCodes.filter_name_composition:Judy.overlay(0);
  725. self.Message.set(self.local("error_machine_name_composition"),"warning",{modal:true,close:function(){Judy.focus(_elements.filter.name_suggest);
  726. }});
  727. break;
  728. case _errorCodes.filter_name_nonunique:Judy.overlay(0);
  729. self.Message.set(self.local("error_filter_name_nonunique",{"!name":nm}),"warning",{modal:true,close:function(){Judy.focus(_elements.filter.name_suggest);
  730. }});
  731. break;
  732. default:return false;
  733. }}_ajaxRequestingBlocking=false;
  734. return true;
  735. };
  736. _ajaxResponse.filter_edit=function(oResp){var nm=oResp.name;
  737. if(oResp.success){$("span",_elements.misc.title).html(" - "+oResp.description);
  738. Judy.overlay(0);
  739. self.Message.set(self.local("saved",{"!filter":nm}));
  740. }else{if(oResp.error_code===_errorCodes.filter_doesnt_exist){self.Message.set(self.local("error_filter_doesnt_exist",{"!name":nm}),"warning",{modal:true,close:function(){window.location.href=_url();
  741. }});
  742. }else{if(oResp.error_code===_errorCodes.perm_filter_restricted){self.Message.set(self.local("error_perm_filter_restricted"),"error",{modal:true,close:function(){window.location.href=_url();
  743. }});
  744. }else{return false;
  745. }}}_ajaxRequestingBlocking=false;
  746. return true;
  747. };
  748. _ajaxResponse.list_logs=function(oResp){var nm=oResp.name,conditions=oResp.log_list[1];
  749. if(oResp.success){_listLogs(oResp.log_list[0],oResp.log_list[1],oResp.log_list[2],oResp.log_list[3]);
  750. if(_.deleteLogs_allowed&&(!conditions.wid||!conditions.hasOwnProperty("wid"))){Judy.enable(_elements.buttons.delete_logs_button,null,"");
  751. }Judy.overlay(0);
  752. }else{return false;
  753. }_ajaxRequestingBlocking=false;
  754. return true;
  755. };
  756. _ajaxResponse.delete_logs=function(oResp){if(oResp.success){self.Message.set(self.local("deleteLogs_success",{"!number":oResp.delete_logs}),"notice",{noFade:false});
  757. _getLogList();
  758. return true;
  759. }else{return false;
  760. }};
  761. this.inspect=function(prop){if(typeof window.inspect==="function"&&inspect.tcepsni===true){inspect(!prop?_:_[prop],_name+(!prop?"":(" - "+prop)));
  762. }};
  763. this.inspectElements=function(group){if(typeof window.inspect==="function"&&inspect.tcepsni===true){inspect(!group?_elements:_elements[group],"_elements"+(!group?"":("."+group)));
  764. }};
  765. this.local=function(name,replacers){var nm=name,s;
  766. if(!(s=_oGet(_local,nm))){switch(nm){case"default":_local[nm]=s=Drupal.t("Default");
  767. break;
  768. case"adhoc":_local[nm]=s=Drupal.t("Ad hoc");
  769. break;
  770. case"adhocForOrigin":s=Drupal.t("Ad hoc - based on !origin",replacers);
  771. break;
  772. case"newForOrigin":s=Drupal.t("New - based on !origin",replacers);
  773. break;
  774. case"newTitle":_local[nm]=s=Drupal.t("New");
  775. break;
  776. case"newName":_local[nm]=s=Drupal.t("new");
  777. break;
  778. case"savedNew":s=Drupal.t("Saved new filter '!filter'.",replacers);
  779. break;
  780. case"saved":s=Drupal.t("Saved filter '!filter'.",replacers);
  781. break;
  782. case"confirmDelete":s=Drupal.t("Are you sure you want to delete the filter!newline!filter?",replacers);
  783. break;
  784. case"invalid_date":s=Drupal.t("The date '!date' is not valid!newline- please use the format: !format",replacers);
  785. break;
  786. case"invalid_timeSequence_from":_local[nm]=s=Drupal.t("'From' time cannot be later than 'To' time.");
  787. break;
  788. case"invalid_timeSequence_to":_local[nm]=s=Drupal.t("'To' time cannot be earlier than 'From' time.");
  789. break;
  790. case"invalid_uid":_local[nm]=s=Drupal.t("User ID must be a positive number, or empty.");
  791. break;
  792. case"invalid_location":_local[nm]=s=Drupal.t("Requested URL must be a URL, or empty.");
  793. break;
  794. case"invalid_referer":_local[nm]=s=Drupal.t("Referrer URL must be a URL, 'none', or empty.");
  795. break;
  796. case"error_machine_name_composition":s=Drupal.t("The filter name:!newline- must be 2 to 32 characters long!newline- must only consist of the characters a-z, letters, and underscore (_)!newline- cannot start with a number!newline- cannot be: !illegals",replacers);
  797. break;
  798. case"error_filter_name_nonunique":s=Drupal.t("There's already a filter named!newline'!name'.!newlineDo you want to overwrite that filter?",replacers);
  799. break;
  800. case"error_filter_doesnt_exist":s=Drupal.t("There's no filter named!newline'!name'.",replacers);
  801. break;
  802. case"wait":_local[nm]=s=Drupal.t("Please wait a sec...");
  803. break;
  804. case"wait_create":_local[nm]=s=Drupal.t("Creating new filter. Please wait a sec...");
  805. break;
  806. case"wait_ereate":_local[nm]=s=Drupal.t("Saving filter changes. Please wait a sec...");
  807. break;
  808. case"deleteLogs_prohibit":_local[nm]=s=Drupal.t("Only allowed when the log list is freshly updated,!newlinereflecting current filter - press the 'Update list' button.");
  809. break;
  810. case"deleteLogs_all":_local[nm]=s=Drupal.t("Do you want to delete!newlineALL logs?");
  811. break;
  812. case"deleteLogs_noMax":s=Drupal.t("Do you want to delete!newlineALL logs after event no. !offset?",replacers);
  813. break;
  814. case"deleteLogs_noOffset":s=Drupal.t("Do you want to delete logs!newlinewithout ANY condition!newlineexcept limited by a maximum of !max?",replacers);
  815. break;
  816. case"deleteLogs_noConditions":s=Drupal.t("Do you want to delete logs after event no. !offset!newlinewithout ANY condition!newlineexcept limited by a maximum of !max?",replacers);
  817. break;
  818. case"deleteLogs_storedAll":s=Drupal.t("Do you want to delete all logs matching!newlinethe '!name' filter!newlinelimited by NO maximum?",replacers);
  819. break;
  820. case"deleteLogs_storedNoMax":s=Drupal.t("Do you want to delete all logs matching!newlinethe '!name' filter!newlineafter matching event no. !offset!newlinelimited by NO maximum?",replacers);
  821. break;
  822. case"deleteLogs_storedNoOffset":s=Drupal.t("Do you want to delete all logs matching!newlinethe '!name' filter!newlineexcept limited by a maximum of !max?",replacers);
  823. break;
  824. case"deleteLogs_stored":s=Drupal.t("Do you want to delete all logs matching!newlinethe '!name' filter!newlineafter matching event no. !offset!newlinelimited by a maximum of !max?",replacers);
  825. break;
  826. case"deleteLogs_adhocAll":_local[nm]=s=Drupal.t("Do you want to delete all logs!newlinematching current ad hoc filter!newlinelimited by NO maximum?");
  827. break;
  828. case"deleteLogs_adhocNoMax":s=Drupal.t("Do you want to delete all logs!newlinematching current ad hoc filter!newlineafter matching event no. !offset!newlinelimited by NO maximum?",replacers);
  829. break;
  830. case"deleteLogs_adhocNoOffset":s=Drupal.t("Do you want to delete all logs!newlinematching current ad hoc filter!newlineexcept limited by a maximum of !max?",replacers);
  831. break;
  832. case"deleteLogs_adhoc":s=Drupal.t("Do you want to delete all logs!newlinematching current ad hoc filter!newlineafter matching event no. !offset!newlinelimited by a maximum of !max?",replacers);
  833. break;
  834. case"deleteLogs_success":s=Drupal.t("Deleted !number log events.",replacers);
  835. break;
  836. case"error_form_expired":s=Drupal.t('The form has become outdated!newline- please <a href="!url">reload this page</a>.',replacers);
  837. break;
  838. case"error_perm_filter_crud":_local[nm]=s=Drupal.t("Sorry, you're not allowed to edit saveable filters.");
  839. break;
  840. case"error_perm_filter_restricted":_local[nm]=s=Drupal.t("You're not allowed to use that filter.");
  841. break;
  842. case"error_db_general":_local[nm]=s=Drupal.t("Sorry, failed to save data.");
  843. break;
  844. case"error_unknown":_local[nm]=s=Drupal.t("Sorry, something unexpected happened.");
  845. break;
  846. case"emergency":_local[nm]=s=Drupal.t("emergency");
  847. break;
  848. case"alert":_local[nm]=s=Drupal.t("alert");
  849. break;
  850. case"critical":_local[nm]=s=Drupal.t("critical");
  851. break;
  852. case"error":_local[nm]=s=Drupal.t("error");
  853. break;
  854. case"warning":_local[nm]=s=Drupal.t("warning");
  855. break;
  856. case"notice":_local[nm]=s=Drupal.t("notice");
  857. break;
  858. case"info":_local[nm]=s=Drupal.t("info");
  859. break;
  860. case"debug":_local[nm]=s=Drupal.t("debug");
  861. break;
  862. case"anonymous_user":_local[nm]=s=Drupal.t("anonymous");
  863. break;
  864. case"deleted_user":_local[nm]=s=Drupal.t("deleted");
  865. break;
  866. case"log_event":_local[nm]=s=Drupal.t("Event");
  867. break;
  868. case"log_severity":_local[nm]=s=Drupal.t("Severity");
  869. break;
  870. case"log_type":_local[nm]=s=Drupal.t("Type");
  871. break;
  872. case"log_time":_local[nm]=s=Drupal.t("Time");
  873. break;
  874. case"log_time_from":_local[nm]=s=Drupal.t("Time From");
  875. break;
  876. case"log_time_to":_local[nm]=s=Drupal.t("Time To");
  877. break;
  878. case"log_user":case"log_uid":_local[nm]=s=Drupal.t("User");
  879. break;
  880. case"log_location":_local[nm]=s=Drupal.t("Location");
  881. break;
  882. case"log_referer":_local[nm]=s=Drupal.t("Referrer");
  883. break;
  884. case"log_hostname":_local[nm]=s=Drupal.t("Hostname");
  885. break;
  886. case"log_message":_local[nm]=s=Drupal.t("Message");
  887. break;
  888. case"log_link":_local[nm]=s=Drupal.t("Link");
  889. break;
  890. case"eventItem_display":s=Drupal.t("Event !logId",replacers);
  891. break;
  892. case"eventItemHover_filter":s=Drupal.t("Event !logId - press F key (or right-click) to filter !filter",replacers);
  893. break;
  894. case"eventItemHover_severity":s=Drupal.t("Event !logId (!severity) - press F key (or right-click) to filter Severity",replacers);
  895. break;
  896. case"eventItemHover_time":s=Drupal.t("Event !logId!newline - press F key (or right-click) to filter Time From!newline - press shift+F to filter Time To",replacers);
  897. break;
  898. case"eventItemHover_user":s=Drupal.t("Event !logId (user !uid) - press F key (or right-click) to filter User",replacers);
  899. break;
  900. case"filtered_event_column":s=Drupal.t("Filter !column by '!value'.",replacers);
  901. break;
  902. case"event_link":_local[nm]=s=Drupal.t("Link to this log event");
  903. break;
  904. case"no_event_matches":_local[nm]=s=Drupal.t("The current filter matches no events.");
  905. break;
  906. case"non_existing_event":s=Drupal.t("Event ID !number doesn't exist.",replacers);
  907. break;
  908. case"event_from_url":s=Drupal.t("Listing event ID !number, according to URL. Press 'Update list' button to reflect current filter.",replacers);
  909. break;
  910. case"add_type_item":_local[nm]=s=Drupal.t("Add type...");
  911. break;
  912. case"type_option_dupe":s=Drupal.t("Type !option already exists.",replacers);
  913. break;
  914. case"pager_current":s=Drupal.t("!first-!last of !total",replacers);
  915. break;
  916. case"pager_current_none":_local[nm]=s=Drupal.t("None");
  917. break;
  918. case"pager_current_outofrange":s=Drupal.t("None after !offset, of !total",replacers);
  919. break;
  920. case"library_judy_incompatible":s=Drupal.t("Log Filter doesn't work without the Judy library, version !version or newer.",replacers);
  921. break;
  922. default:s="[LOCAL: "+nm+"]";
  923. }}return s.replace(/\!newline/g,"\n");
  924. };
  925. this.getCriteria=function(){var n=0,conditions={},order_by=[],oElms=_elements.conditions,nm,r,v,le,i;
  926. try{for(nm in oElms){if(oElms.hasOwnProperty(nm)){r=oElms[nm];
  927. switch(nm){case"time_from_proxy":case"time_to_proxy":case"time_from_time":case"time_to_time":break;
  928. case"time_range":case"time_from":case"time_to":case"uid":if((v=r.value)!==""&&(v=$.trim(v)).length&&(v=parseInt(v,10))>-1){++n;
  929. conditions[nm]=v;
  930. }break;
  931. case"username":break;
  932. case"role":if((v=Judy.fieldValue(r))!==""&&v!=="_none"&&(v=$.trim(v))&&(v=parseInt(v,10))){++n;
  933. conditions[nm]=v;
  934. }break;
  935. case"severity_any":case"type_any":case"type_proxy":break;
  936. case"severity_some":if(!oElms.severity_any.checked){v=[];
  937. le=r.length;
  938. for(i=0;
  939. i<le;
  940. i++){if(r[i].checked){v.push(r[i].value);
  941. }}if(v.length){++n;
  942. conditions.severity=v;
  943. }}break;
  944. case"type_some":if((v=r.value)!==""&&(v=$.trim(v))){++n;
  945. conditions.type=v.split(/\n/);
  946. }break;
  947. case"hostname":case"location":case"referer":if((v=r.value)!==""&&(v=$.trim(v))&&v!=="*"){++n;
  948. conditions[nm]=v;
  949. }break;
  950. default:throw new Error("Condition["+nm+"] not supported.");
  951. }}}le=(oElms=_elements.orderBy).length;
  952. for(i=0;
  953. i<le;
  954. i++){if((v=Judy.fieldValue(oElms[i][0]))&&v!=="_none"&&(v=$.trim(v))){order_by.push([v,oElms[i][1].checked?"DESC":"ASC"]);
  955. }}}catch(er){_errorHandler(er,0,_name+".getCriteria()");
  956. }return{nConditions:n,conditions:conditions,order_by:order_by};
  957. };
  958. this.Message=function(){var _self=this,_n=-1,_htmlList='<div id="log_filter__message"><div><div id="log_filter__message_list"></div></div></div>',_htmlItem='<div id="log_filter__message___NO__" class="log-filter-message-__TYPE__"><div class="log-filter--message-content"><span>__CONTENT__</span></div><div title="'+Drupal.t("Close")+'">x</div></div>',_list,_faders={},_close=function(){$(this.parentNode).hide();
  959. },_fader=function(selector,delay){var __self=this,_delayDefault=3000,_pause=150,_factor=1.2,_stopped,_opacity=100,_subtractor=1,_start=function(){__self._interval=setInterval(_fade,_pause);
  960. },_fade=function(){var n=_opacity,jq=__self._jq;
  961. if(!_stopped){if((_opacity=(n-=(_subtractor*=_factor)))>0){if(Judy.browserIE<11){jq.css("opacity",n/100);
  962. }else{jq.css({"-ms-filter":"progid:DXImageTransform.Microsoft.Alpha(Opacity="+(n=Math.round(n))+")",filter:"alpha(opacity="+n+")"});
  963. }}else{_stopped=true;
  964. clearInterval(__self._interval);
  965. jq.hide();
  966. }}},jq;
  967. this.stop=function(){if(!_stopped){_stopped=true;
  968. clearTimeout(__self._timeout);
  969. clearInterval(__self._interval);
  970. }};
  971. this.unfade=function(){__self.stop();
  972. if(_opacity<100){if(Judy.browserIE<11){__self._jq.css("opacity",1);
  973. }else{__self._jq.css({"-ms-filter":"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)",filter:"alpha(opacity=100)"});
  974. }}};
  975. this.destroy=function(){__self.stop();
  976. delete __self._jq;
  977. };
  978. if((jq=$(selector)).get(0)){this._jq=jq;
  979. this._timeout=setTimeout(_start,!delay?_delayDefault:(delay<1000?Math.floor(delay*_delayDefault):_delayDefault));
  980. }};
  981. this.setup=function(){var elm,jq;
  982. if((elm=document.getElementById("console"))){$(elm).after(_htmlList);
  983. }else{$("#content").prepend(_htmlList);
  984. }_list=document.getElementById("log_filter__message_list");
  985. if((jq=$(_list)).draggable){jq.draggable({handle:"div.log-filter--message-content",cancel:"span",cursor:"move"});
  986. }};
  987. this.set=function(txt,type,options){var t=type||"status",s,f,k,jq,o={noFade:true,fadeDelay:0,modal:false,close:null};
  988. switch(t){case"status":case"info":o.noFade=false;
  989. break;
  990. case"notice":case"warning":break;
  991. default:t="error";
  992. }if(options){for(k in o){if(o.hasOwnProperty(k)&&options.hasOwnProperty(k)){o[k]=options[k];
  993. }}}$(_list).prepend(_htmlItem.replace(/__NO__/,++_n).replace(/__TYPE__/,t).replace(/__CONTENT__/,txt?txt.replace(/\n/g,"<br/>"):""));
  994. (jq=$((s="#log_filter__message_"+_n)+" > div:last-child")).click(_close);
  995. if(o.modal){jq.click(Judy.overlay);
  996. Judy.overlay(1,true);
  997. }if(o.close){jq.click(o.close);
  998. }if(!o.noFade){_faders["_"+_n]=f=new _fader(s,o.fadeDelay);
  999. $(s+" > div:first-child").bind("click mousedown",f.unfade);
  1000. }$(s).show();
  1001. };
  1002. this.showAll=function(){var le=_n+1,i,f;
  1003. for(i=0;
  1004. i<le;
  1005. i++){if((f=_faders["_"+i])&&_faders.hasOwnProperty("_"+i)){f.unfade();
  1006. }$("#log_filter__message_"+i).show();
  1007. }};
  1008. };
  1009. this.displayLog=function(logId){var o,s,v,css="log-filter-log-display",dialId="log_filter_logDisplay_"+logId,elm,$dialOuter,dialInner;
  1010. if((o=_logs["_"+logId])&&_logs.hasOwnProperty("_"+logId)){if((elm=document.getElementById(dialId))){$("#log_filter_list_log_"+logId).removeClass("log-filter-list-displayed");
  1011. Judy.dialog(dialId,"close");
  1012. }else{$("#log_filter_list_log_"+logId).addClass("log-filter-list-displayed");
  1013. o=_logs["_"+logId];
  1014. s='<div class="'+css+'"><table class="dblog-event"><tbody><tr class="odd"><th>'+self.local("log_severity")+"</th><td>"+(v=o.severity_string)+'<div class="'+css+"-severity "+css+"-"+v+'">&#160;</div></td></tr><tr class="even"><th>'+self.local("log_type")+"</th><td>"+o.type+'</td></tr><tr class="odd"><th>'+self.local("log_time")+"</th><td>"+o.time+'</td></tr><tr class="even"><th>'+self.local("log_user")+"</th><td>"+(!o.uid?o.name:('<a href="/user/'+o.uid+'" title="'+o.uid+'">('+o.uid+") "+o.name+"</a>"))+" &#160; &bull; &#160; "+self.local("log_hostname")+": "+o.hostname+'</td></tr><tr class="odd"><th>'+self.local("log_location")+'</th><td><a href="'+o.location+'">'+o.location+'</a></td></tr><tr class="even"><th>'+self.local("log_referer")+"</th><td>"+(!o.referer?"&#160;":('<a href="'+o.referer+'">'+o.referer+"</a>"))+'</td></tr><tr class="odd"><th>'+self.local("log_message")+"</th><td>"+o.message+"</td></tr>"+(!o.link?"":('<tr class="even"><th>'+self.local("log_link")+'</th><td><a href="'+o.link+'">'+o.link+"</a></td></tr>"))+"</tbody></table></div>";
  1015. Judy.dialog(dialId,{title:'<a href="'+_url()+"/"+o.wid+'" title="'+self.local("event_link")+'">'+self.local("log_event")+": "+o.wid+"</a>",content:s,fixed:true,resizable:false,closeOnEscape:false,dialogClass:"log-filter-log-display-dialog",contentClass:"log-filter-log-display-content",autoOpen:false,close:function(event,ui){setTimeout(function(){$("#log_filter_logDisplay_"+logId).dialog("destroy").remove();
  1016. $("#log_filter_list_log_"+logId).removeClass("log-filter-list-displayed");
  1017. });
  1018. }});
  1019. ($dialOuter=$((dialInner=$("#"+dialId).get(0)).parentNode)).css({visibility:"hidden",overflow:"visible"});
  1020. Judy.dialog(dialId,"open");
  1021. Judy.outerWidth($dialOuter,true,Judy.innerWidth(window)-200,2);
  1022. Judy.outerHeight("#"+dialId,true,Judy.outerHeight($dialOuter,true,Judy.outerHeight(window)-10,1)-Judy.outerHeight($("div.ui-dialog-titlebar",$dialOuter))-Math.ceil(parseFloat($dialOuter.css("padding-top"))+parseFloat($dialOuter.css("padding-bottom")))-_.adminOverlayOffset,1);
  1023. $dialOuter.css({visibility:"visible",left:"150px",top:(4+_.adminOverlayOffset)+"px"});
  1024. Drupal.attachBehaviors($dialOuter.get(0));
  1025. }}};
  1026. this.init=function(useModuleCss,theme){var v;
  1027. self.init=function(){};
  1028. if(typeof window.Judy!=="object"||!(v=Judy.version)||Judy.version<_.library_judy_version){_.library_judy_compatible=false;
  1029. return;
  1030. }if((_.useModuleCss=useModuleCss)){$("div#page").addClass("theme-"+theme);
  1031. }Judy.overlay(1,false,self.local("wait"));
  1032. };
  1033. this.setup=function(filters,messages){var a=messages,le,i,o={fadeDelay:2},url,wid;
  1034. self.setup=function(){};
  1035. _filters=filters||[];
  1036. if(!_.library_judy_compatible){alert(self.local("library_judy_incompatible",{"!version":_.library_judy_version}));
  1037. return;
  1038. }_prepareForm();
  1039. _setMode(_.mode,false,true);
  1040. (self.Message=new self.Message()).setup();
  1041. if(a){le=a.length;
  1042. for(i=0;
  1043. i<le;
  1044. i++){if(a[i][1]&&a[i][1]!=="status"){o.noFade=true;
  1045. break;
  1046. }}for(i=0;
  1047. i<le;
  1048. i++){self.Message.set(a[i][0],a[i][1],o);
  1049. }}$("label > span[title]").each(function(){var t=this.getAttribute("title");
  1050. if(t){this.parentNode.setAttribute("title",t);
  1051. }});
  1052. if(!/^#overlay=admin\//.test(top.location.hash)){url=window.location.href;
  1053. _.adminOverlayOffset=0;
  1054. }else{url=top.location.href+top.location.hash;
  1055. }_getLogList(/^.+\/(\d+)\/?$/.test(url)&&(wid=parseInt(url.replace(/^.+\/(\d+)\/?$/,"$1"),10))&&wid<=Math.pow(2,31)?wid:0);
  1056. Judy.keydown(document.documentElement,"escape",function(){$("div.log-filter-log-display-content").each(function(){$(this).dialog("close");
  1057. });
  1058. });
  1059. Judy.overlay(0);
  1060. };
  1061. };
  1062. window.LogFilter=new LogFilter($);
  1063. })(jQuery);