var clonos={ jsonLoad:false, start:function() { this.addEvents(); var r, res, args=[]; var hash=window.location.hash; hash=hash.replace(new RegExp(/^#/),''); var rx=new RegExp(/([^\/]+)/g); if(res=hash.match(rx)) { for(r in res) { var r1=res[r].split('-'); if(r1.length==2) args[args.length]={'var':r1[0],'val':r1[1]}; } this.route(args); } }, addEvents:function() { $('#lng-sel').bind('change',function(){document.cookie="lang="+$(this).val()+";path=/;";location.reload();}); $('#content').bind('click',$.proxy(this.tableClick,this)); }, translate:function(phrase) { if(typeof this.lang!='undefined') { if(typeof this.lang[phrase]!='undefined') return this.lang[phrase]; } return phrase; }, route:function(args) { if(typeof args=='undefined') return; //alert(args.length); }, loadData:function() { if(!this.jsonLoad) return; var path=location.pathname; var file='/json.php'; //'/pages'+path+'a.json.php'; this.loadDataJson(file,$.proxy(this.onLoadData,this),{'path':path}); }, loadDataJson:function(file,return_func,arr) //mode, { var posts=arr; /* var posts={'mode':mode,'project':this.project,'jail':this.jail,'module':this.module}; if(typeof arr=='object') { posts['form_data']={}; for(n=0,nl=arr.length;n0) { $('tr.id-'+key+' .jstatus').html(data[key].txt_status); var errmsg=$('tr.id-'+key+' .errmsg'); if(typeof data[key].errmsg!='undefined') { $(errmsg).html('Error:'+data[key].errmsg); //'+this.translate('Error')+' this.tasks[key].errmsg=data[key].errmsg; } this.tasks[key].operation=data[key].operation; this.tasks[key].task_id=data[key].task_id; this.tasks[key].status=data[key].status; if(data[key].status==2) { this.context.onTaskEnd(this.tasks[key],key); delete this.tasks[key]; } }else{ if(typeof data[-1].jails!='undefined') { this.context.jailsList=data[-1].jails; this.context.showJailsList(); } } } this.checkTasks=false; if(this.interval===null) { this.interval=setInterval($.proxy(this.start,this),1000); } }, }, tableClick:function(event) { debugger; var target=event.target; /* if(target.id=='main_chkbox') { this.mainChkBoxClick(event); return; } */ var td=$(target).closest('td'); td=td[0]; var tr=$(target).closest('tr'); /* if(target.tagName=='SPAN') { var cl=target.className; if(cl && cl.indexOf('install')>=0) { var res=cl.match(new RegExp(/helper-(\w+)/)); if(res) { this.installHelper(res[1]); return; } } if(cl && cl.indexOf('default')>=0) { var res=cl.match(new RegExp(/val-(.*)/)); if(res) { this.fillHelperDefault(target,res[1]); return; } } } */ /* if(target.tagName=='INPUT') { var cl=target.className; if(cl=='') return; if(cl=='save-helper-values') this.saveHelperValues(); if(cl=='clear-helper') this.clearHelperForm(target); return; } if(typeof td!='undefined') this.selItem(tr); if(typeof tr[0]=='undefined') return; var cl=tr[0].className; if(!$(tr).hasClass('link')) return; var rx=new RegExp(/id-(\d+)/); if(res=cl.match(rx)) { var id=res[1]; } */ //debugger; if(!td || typeof td.className=='undefined') return false; var tdc=td.className; tdc=tdc.replace(' ','-'); switch(tdc) { case 'ops': this.jailStart(tr); return;break; /* case 'sett-proj': this.lastProjectId=id; this.editMode='edit-proj'; this.projSettings(id); return;break; case 'sett': this.lastJailId=id; this.editMode='edit'; this.getJailSettings(tr); return;break; case 'jstatus': return;break; case 'info': this.loadData('getForm',$.proxy(this.loadForm,this)); return;break; case 'mod-info': alert('show info about module!'); return;break; case 'user-info': this.editMode='user-edit'; var n; data=null; for(n=0,nl=this.usersList.length;n0) this.selectedProjects[id]=$(td).children('input[type="checkbox"]').prop('checked'); if(this.currentPage=='jails') if(id>0) this.selectedJails[id]=$(td).children('input[type="checkbox"]').prop('checked'); if(this.currentPage=='modules') if(id>0) this.selectedModules[id]=$(td).children('input[type="checkbox"]').prop('checked'); return; } switch(this.currentPage) { case 'project': location.hash='#prj-'+id; break; case 'jails': location.hash='#prj-'+this.project+'/jail-'+id; break; case 'modules': location.hash='#prj-'+this.project+'/jail-'+this.jail+'/module-'+id; break; case 'log': var hid=$('td.sp-id',tr).html(); location.hash='#prj-'+this.project+'/jail-'+this.jail+'/log-'+hid; break; case 'helpers': var hid=$('td .sp-id',tr).html(); location.hash='#prj-'+this.project+'/jail-'+this.jail+'/helpers-'+hid; break; } */ }, } $(window).load(function(){clonos.start();}); $(window).unload(function(){}); /* эта функция заставляет FireFox запускать JS-функции при нажатии кнопки «Назад» http://stackoverflow.com/questions/2638292/after-travelling-back-in-firefox-history-javascript-wont-run */ $(document).ready(function(){clonos.loadData();});