OXIESEC PANEL
- Current Dir:
/
/
home
/
cubot
/
docroot
/
showcase
/
js
/
jpolite
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
12/31/2022 06:53:36 AM
rwxr-xr-x
📄
exportGraphAsImage.js
9.11 KB
08/14/2022 11:05:24 AM
rw-r--r--
📄
graph.drill.js
194 bytes
08/14/2022 11:05:23 AM
rw-r--r--
📄
jpolite.core.js
15.75 KB
08/14/2022 11:05:23 AM
rw-r--r--
📄
jpolite.ext.js
115.09 KB
08/14/2022 11:05:23 AM
rw-r--r--
📄
jpolite.ext.js_09jan18
105.94 KB
08/14/2022 11:05:23 AM
rw-r--r--
📄
jpolite.ext.js_14Dec2019
110.24 KB
08/14/2022 11:05:23 AM
rw-r--r--
📄
jpolite.ext.js_27.22.17
105.91 KB
08/14/2022 11:05:23 AM
rw-r--r--
📄
jpoliteAll.js
188.35 KB
08/14/2022 11:05:23 AM
rw-r--r--
📄
jqModal-1.4.0.js
10.86 KB
08/14/2022 11:05:22 AM
rw-r--r--
📄
jqModal.js
3.37 KB
08/14/2022 11:05:23 AM
rw-r--r--
📄
json.js
23.93 KB
08/14/2022 11:05:23 AM
rw-r--r--
📄
s.log
6.61 KB
08/14/2022 11:05:23 AM
rw-r--r--
Editing: jpolite.core.js
Close
/** * JPolite V2 * http://www.trilancer.com/jpolite214 * * Copyright (c) 2009 Wayne Lee * Dual licensed under the MIT and GPL licenses. * * Date: January 28, 2010 * Version: 2.14 - for jQuery 1.4.1 */ (function($){ /** * Extensions to jQuery to apply widgetization actions on newly DOM nodes, * module_content, helper, dynamic content ... */ $.extend({ /** * Handy alert alternative based on Gritter (http://boedesign.com/blog/2009/07/11/growl-for-jquery-gritter/) */ alert: function(msg) { this.gritter.add(msg); }, //Registry of controls that may appear in modules _widgetControls:{}, /** * Register Controls into the Control registry * @param {Object} ctrls - hash key:value pairs wherein * key: jQuery selector, e.g., ".class" * value: jQuery plugin function Array * [$.fn.plugin_func] or * [$.fn.plugin_func, settings_obj] */ regControls: function(ctrls) { //{selector:handler} this.extend(this._widgetControls, ctrls); }, /** * Search and initialize controls on a given DOM node */ widgetize: function() { //Make external links open in new window $("a[href^=http]", this).prop("target", "_blank"); for (var c in $._widgetControls) { //c is the key, a.k.a., selector var f = $._widgetControls[c][0], //Function p = $._widgetControls[c][1]; //Settings if ($.isArray(p)) f.apply($(c, this), p); else f.call($(c, this), p); } }, //A message registry and handling system to handle server side messages //Can be used for local messaging as well _MsgRegistry: { //find out what the target: header, tab#id, helper, container#id, module#id jpolite: [], //update content of a module module: [], //find out which XDO to handle, name#url resource: [], //show some alerts to user (after success) msg: [ function(msg) { $.alert({title:'System Notification', text:msg}); return true; } ] }, /** * Register Controls into the Control registry * @param {Object} handlers - hash key:value pairs wherein * key: message name, e.g., "greeting" * value: message processing function */ regMsgHandlers: function(handlers) { var mr = this._MsgRegistry; for (var x in handlers) { if (!mr[x]) mr[x]=[]; mr[x].push(handlers[x]) } }, /** * Process a given message * @param {Object} m - message hash key:value pairs wherein * key: message name, e.g., "greeting" * value: content of the message, e.g., "hello" */ handleMessage: function(m) { var rv = true; for (var k in m) { var x = this._MsgRegistry[k]; if (x) for (var i in x) x[i](m[k]) }; return rv; }, //A global custom event processing mechanism _DOC: $(document), /** * Register custom events onto document * @param {Object} evt - event hash key:value pairs wherein * key: event name, e.g., "moduleLoadedEvent" * value: event processing function */ regEvent: function(evt){ for (var e in evt) this._DOC.bind(e, evt[e]); }, /** * Trigger a given event * @param {string} e - name of the custom event * @param {object} data - event associated data */ triggerEvent: function(e, data){ this._DOC.trigger(e, data); } }); /** * Utility functions added to jQuery.fn */ $.fn.extend({ // Shortcut function to for tab / menu item switching cub_on: function() { if (this.is(".on")) return false; $(this).siblings(".on").addBack().toggleClass("on"); return true; } }); /** * JPolite Core Features and Functions */ $.jpolite = { /** * Main Navigator Object & Methods */ Nav: { its: null, //A jQuery collection of tab items, set in init() tabs: {}, //Hash for tabs, tabs[tab_x_id] => tab_x DOM node ct: null, //Current tab id cc: $("#content"), //Content container t1: $.fn.fadeOut, //Content transition out function t2: $.fn.fadeIn, //Content transition in function showModules: function() { //Utility function to show all modules under a certain main nav item if(Object.keys(this.modules).length == 0){ $("#no_reports").show(); }else{ $("#no_reports").hide(); } for (var i in this.modules) { var m = this.modules[i]; $(m).show(); m.loadContent(); }; }, /** * Initialization method * @param {String} cts - main nav selector object, "#main_nav" by default * @param {String} its - main nav item selector, "li" by default * @param {Function} func - optional init method to be applied upon main nav * @param {Object} p - optional parameter for the init method */ init: function(cts, its, func, p){ var t = this.tabs; func.call($(cts), p); //Pre-process main nav this.its = $(its, cts).each(function(){ this.modules = {}; //Modules fall logically under this main nav item this.showModules = $.jpolite.Nav.showModules; t[this.id] = this; //"this" is a main nav item DOM node //alert(this.id+"---"+this+"---"+t[this.id]); $(".arrow", this).click(function (){ $("#pageConfId").toggle(); $("ul.layout li a").removeClass('selected'); $("#"+multiDash.getPageLayout()).addClass('selected'); }); $(".hover", this).click(function (){ if($(this).text().length >0 && $(this).parents().hasClass('on') && multiDash.isShared!=1) { $(this).html("<input type=textbox value='"+$(this).text()+"' class=tabTxt id=tabTxtId Maxlength='16' onkeyup='vPageName(this.value, this.id)'>"); $(".tabTxt", this).focus(); $(".tabTxt", this).focusout(function(i){ if(this.value){ multiDash.renamePage(this.parentNode.parentNode.id, this.value); $(this).parent().html(this.value); } }); $(".tabTxt", this).keydown(function(i){ if(i.keyCode == 13){ multiDash.renamePage(this.parentNode.parentNode.id, this.value); $(this).parent().html(this.value); } }); } }); $(this).click(function(e){ //If click on an active item without submenu, then return if (!$(this).cub_on() && !$(".on",this).length){ return false; } if(getPopulateLoadPage(this.id)=== true){ console.log("getPopulateLoadPage passed..."); return true; }else{ console.log("getPopulateLoadPage failed..."); } //If click on a leaf menu item => switch it on, and off others if (e.originalEvent || $(".on",this).length == 0) { $.jpolite.Nav.switchTab(this.id); $(".on", $.jpolite.Nav.its).not(this).not($(this).parents()).removeClass("on"); } $(this.parentNode).click(); return false; }); }); }, /** * Switch to designated main nav item * @param {String} id - main nav item's ID */ switchTab: function(id){ //getPopulateLoadPage(id); multiDash.setDefaultPage(id); var cc = this.cc, x = this.tabs[id], t2 = this.t2, mv = $(".module:visible"), //Call back function to be executed after tab switching f = function(){ mv.hide(); $.jpolite.Content.switchTab(x.id); x.showModules(); t2.call(cc, 0) }; this.ct = id; this.t1.apply(cc, [0, f]); setNotesCount('P'); }, /** * Retrieve the DOM node * @param {String} id - main nav item ID * "tab_id" ==> return tab#tab_id DOM node * null ==> return current active tab node */ getTab: function(id) { return this.tabs[id || this.ct]; }, /** * Link modules statically defined in index.html to designated tab item * @param {DOM node} m - static module DOM node * @param {String} tid - main nav item ID */ addStaticModule: function(m, tid){ m.tab = this.tabs[tid]; //Link tab to module m.tab.modules[m.id] = m; //Add module to tab }, /** * Unlink modules from tab item * @param {DOM node} m - static module DOM node */ removeModule: function(m){ delete m.tab.modules[m.id]; delete _modules[m.id]; // multiDash.removeReportFromPage(m.id);//TODO getting saved multiple times } }, /** * Content Area (module container) - Object and Methods */ Content: { _loadLayout: function(){}, //Customizable Method to load layout _saveLayout: function(){}, //Customizable Method to save layout cc: $(".cc"), //Containers jQuery object MTS: {}, //Module Templates //Actions to be assigned upon each module moduleActions: { loadContent: function(url, forced) { var x = this; var refresh = 0; if (typeof url === "boolean") { forced = url; url = x.url; } else url = url || x.url; if( forced != undefined && !forced) refresh=1; //if (!url || (x.loaded)) return; var spanarray=x.parentNode.className.split("span-"); var span=0; if(spanarray[1]){ span=spanarray[1].replace("last",""); } var format=_modules[x.id].f; //var divId='div'+url; var divId='div'+x.id; if(refresh ==1){ $('div#'+divId).html('<center><img src=./css/g/loading.gif></img></center>'); getReport(url, divId, format, span, x.id, refresh); //Will not return any HTML string } else if(url.indexOf("html") != -1){ if(url == "ReportList.html"){ /*CUBOT:Condition added to print the CUBOT report List */ $(".moduleContent", this).html(getAccordian()); $.widgetize.apply(this); x.loaded = true; } else{ $(".moduleContent", this).load(url, function(){ $.widgetize.apply(this); x.loaded = true; }); } } else{ $(".moduleContent", this).html(function(){ $.widgetize.apply(this); x.loaded = true; $(".tableIconsGroup", this).hide(); return getDivHtml(divId, format, span, refresh); //Will return a HTML string }); getReport(url, divId, format, span, x.id, refresh); //Put Report in above HTML string } }, openFullScreen: function(){ $(".moduleContent,.actionFullScreen", this).show(); $(".actionFullScreen",this).hide(); }, max: function(){ $(".moduleContent,.actionMin", this).show(); $(".actionMax",this).hide(); }, min: function(){ $(".moduleContent,.actionMin", this).hide(); $(".actionMax",this).show(); }, close: function(){ $(this).remove(); $.jpolite.Nav.removeModule(this); $.jpolite.Content.saveLayout(); } }, /** * Initialization method * @param {Boolean} moduleSortable - if true, enable module drag & drop */ init: function(moduleSortable) { var x = this.cc; if (moduleSortable) x.sortable({ start: function(){ $.jpolite.Content.cc.addClass("dragging") }, stop: function(e, u){ $.jpolite.Content.cc.removeClass("dragging"); var m = u.item[0]; if (m.c) m.c = m.parentNode.id; //Change module container ID $.jpolite.Content.saveLayout(); }, connectWith: '.cc', handle: '.moduleHeader', cancel:'.moduleActions b', opacity: .5, placeholder: 'ui-sortable-placeholder', tolerance: 'pointer', revert: true }); x = x.toArray(); for (var i in x) this[x[i].id] = $(x[i]); //Now Content has properties c1, c2, c3 ... each is an jQuery object //Detach module templates from index.html and put into MTS x = $(".module_template").toArray(); if(x.length>0){ /* Chek if already detached */ for (var i in x){ var id = x[i].id || 0; //MTS[0] => default template this.MTS[id] = $(x[i]).prop("class","module").remove(); }; } this.loadStatic(); this.loadLayout(); }, /** * Content area change (column class) according to tab_id * @param {String} tab_id - new ID of tab */ switchTab: function (tab_id) { var x = $.extend({}, _columnLayout._default, _columnLayout[tab_id]), bc = $('body').prop('class') || 'normal'; if (bc != x.bg) $('body').switchClass(bc, x.bg); delete x.bg; for (var c in x) this[c].prop('class', 'cc ' + x[c]); }, /** * Add a new module to a given tab * @param {Object} m - module definition, properties include * id: unique ID of the module defined in modules.js, e.g., m101 * c: container ID, e.g., c1, c2 ... * mc: (optional) module color class, e.g., 'red' * mt: (optional) module template name as defined in index.html * @param {DOM node} t - target tab */ addModule: function(m, t) { var c = this[m.c]; if (!c) return; //return if invalid column ID given if (!_modules[m.id]) return; //return if nothing saved for user //Check for duplicate module, and refuse if (t.modules[m.id]) { $(t.modules[m.id]).fadeTo(200,0.5).fadeTo(200,1) return; }; //Load module definition var y = _modules[m.id]; var x = this.MTS[m.mt || 0].clone()[0]; $.extend(x, {mc:'', mt:''}, this.moduleActions, m, { loaded: false, url: y.url, tab: t }); t.modules[m.id] = x; //$(".moduleTitle", x).text(y.t); if (m.mc) $(x).addClass(m.mc); c.append(x); if (t.id == $.jpolite.Nav.ct) { $(x).show(); x.loadContent(); } }, /** * Make DIV.module sections preloaded in index.html active modules */ loadStatic: function(){ var ma = this.moduleActions; $(".module").each(function(){ var p = this.id.split(":"); //e.g., m101:t1 $.extend(this, { id: p[0], tab: p[1], //url: _modules[p[0]], loaded: true }, ma); $.widgetize.apply(this); $.jpolite.Nav.addStaticModule(this, p[1]) }); }, /** * Load layout defined in modules.js */ loadLayout: function() { //Load layout via custom method or _moduleLayout variable defined in modules.js var l = this._loadLayout() || _moduleLayout; for (var t in l) { var tab = $.jpolite.Nav.getTab(t); if (tab) for (var i in l[t]) { var s = l[t][i].split(":"); this.addModule({ id: s[0], c: s[1], mc: s[2] || '', mt: s[3] || '' }, tab) } } }, /** * Retrieve current layout and save via customizable method */ saveLayout: function() { var r = "{" + $.jpolite.Nav.its.map(function(){ var t = [], m = this.modules; for (var i in m) // if (m[i].c) //Skip static modules t.push("'".concat(m[i].id, ":", m[i].c, ":", m[i].mc, ":", m[i].mt, "'")); return "'" + this.id + "':[" + t.toString() + "]"; }).get().join(",") + "}"; if (this._saveLayout) this._saveLayout(r); } }, /** * JPolite initialization method * @param {Object} options - initialization parameters, with default values * cts: "#main_nav", //Navigation Tab container id * its: "li", //Navigation Tab selector * t1: $.fn.fadeOut, //Content transition Out callback * t2: $.fn.fadeIn, //Content transition In callback * navInit: TraditionalTabs, //Navigation Tab Initialization callback * navInitArguments: {}, //Navigation Tab Initialization parameters * moduleSortable: true //Whether to allow module drag-n-drop * layoutPersistence: [] //Methods to load/save layout of modules */ init: function(options){ var s = $.extend({ cts: "#main_nav", its: "li", t1: $.fn.fadeOut, t2: $.fn.fadeIn, navInit: TraditionalTabs, navInitArguments: {}, moduleSortable: true }, options); this.Nav.init(s.cts, s.its, s.navInit, s.navInitArguments); this.Nav.t1 = s.t1; this.Nav.t2 = s.t2; if (s.layoutPersistence) { this.Content._loadLayout = s.layoutPersistence[0]; this.Content._saveLayout = s.layoutPersistence[1]; } this.Content.init(s.moduleSortable); /*delete this.Nav.init; delete this.Nav.addStaticModule; delete this.Content.init; delete this.Content.loadStatic; delete $.jpolite.init;*/ }, gotoTab: function(id) { $(this.Nav.getTab(id)).click(); }, addModule: function(m) { this.Content.addModule(m, this.Nav.getTab()); }, replaceModule: function(col, ids) { var x = $(".module:visible", this.Content[col]).get(); var t = this.Nav.getTab(); for (var i in x) x[i].close(); for (i in ids) this.Content.addModule({id: ids[i], c: col}, t); this.Content.saveLayout(); } } })(jQuery);