Переглянути джерело

fixed old recent docs

version-14
Rushabh Mehta 14 роки тому
джерело
коміт
67ef4b2ea1
3 змінених файлів з 35 додано та 18 видалено
  1. +18
    -7
      cgi-bin/webnotes/profile.py
  2. +13
    -9
      js/webpage/wntoolbar.js
  3. +4
    -2
      js/wnf.compressed.js

+ 18
- 7
cgi-bin/webnotes/profile.py Переглянути файл

@@ -177,21 +177,32 @@ class Profile:
"""
conn = webnotes.conn
from webnotes.utils import cstr
import json
# get list of child tables, so we know what not to add in the recent list
child_tables = [t[0] for t in conn.sql('select name from tabDocType where istable = 1')]
if not (dt in ['Print Format', 'Start Page', 'Event', 'ToDo Item', 'Search Criteria']) and not webnotes.is_testing and not (dt in child_tables):
r = webnotes.conn.sql("select recent_documents from tabProfile where name=%s", self.name)[0][0] or ''
new_str = dt+'~~~'+dn + '\n'
if new_str in r:
r = r.replace(new_str, '')

self.recent = new_str + r
if len(self.recent.split('\n')) > 50:
self.recent = '\n'.join(self.recent.split('\n')[:50])
# clear old style (to be removed)
if '~~' in r: r = ''
rdl = json.loads(r or '[]')
new_rd = [dt, dn]
# clear if exists
for i in range(len(rdl)):
rd = rdl[i]
if rd==new_rd:
del rdl[i]

rdl.append(new_rd)
if len(rdl) > 20:
rdl = rdl[:20]
self.recent = json.dumps(rdl)
webnotes.conn.sql("update tabProfile set recent_documents=%s where name=%s", (self.recent, self.name))
def load_profile(self):


+ 13
- 9
js/webpage/wntoolbar.js Переглянути файл

@@ -104,23 +104,27 @@ function WNToolbar(parent) {
if(it)$dh(it);
if(pscript.on_recent_update)pscript.on_recent_update();
}

this.rename_notify = function(dt, old, name) {
me.rdocs.remove(dt, old);
me.rdocs.add(dt, name, 1);
}
rename_observers.push(this);

// add menu items
var rlist = profile.recent.split('\n');
try{ var rlist = JSON.parse(profile.recent); }
catch(e) { return; /*old style-do nothing*/ }
var m = rlist.length;
if(m>15)m=15;
for (var i=0;i<m;i++) {
var t = rlist[i].split('~~~');
if(t[1]) {
var dt = t[0]; var dn = t[1];
var rd = rlist[i]
if(rd[1]) {
var dt = rd[0]; var dn = rd[1];
this.rdocs.add(dt, dn, 0);
}
}

this.rename_notify = function(dt, old, name) {
me.rdocs.remove(dt, old);
me.rdocs.add(dt, name, 1);
}
rename_observers.push(this);
}
// Tools


+ 4
- 2
js/wnf.compressed.js Переглянути файл

@@ -969,9 +969,11 @@ var tdn=dn;var rec_label='<table style="width: 100%" cellspacing=0><tr>'
+'<td style="width: 50%; text-decoration: underline; color: #22B; padding: 2px;">'+tdn+'</td>'
+'<td style="font-size: 11px;">'+get_doctype_label(dt)+'</td></tr></table>';var mi=me.menu.add_item('Recent',rec_label,fn,on_top);mi.dt=dt;mi.dn=dn;this.items[dt+'-'+dn]=mi;if(pscript.on_recent_update)pscript.on_recent_update();}}
this.rdocs.remove=function(dt,dn){var it=me.rdocs.items[dt+'-'+dn];if(it)$dh(it);if(pscript.on_recent_update)pscript.on_recent_update();}
var rlist=profile.recent.split('\n');var m=rlist.length;if(m>15)m=15;for(var i=0;i<m;i++){var t=rlist[i].split('~~~');if(t[1]){var dt=t[0];var dn=t[1];this.rdocs.add(dt,dn,0);}}
this.rename_notify=function(dt,old,name){me.rdocs.remove(dt,old);me.rdocs.add(dt,name,1);}
rename_observers.push(this);}
rename_observers.push(this);try{var rlist=JSON.parse(profile.recent);}
catch(e){return;}
var m=rlist.length;if(m>15)m=15;for(var i=0;i<m;i++){var rd=rlist[i]
if(rd[1]){var dt=rd[0];var dn=rd[1];this.rdocs.add(dt,dn,0);}}}
this.setup_help=function(){me.menu.add_top_menu('Tools',function(){},"sprite-tools");this.menu.add_item('Tools','Error Console',function(){err_console.show();});this.menu.add_item('Tools','Clear Cache',function(){$c('webnotes.session_cache.clear',{},function(r,rt){show_alert(r.message);})});if(has_common(user_roles,['Administrator','System Manager'])){this.menu.add_item('Tools','Download Backup',function(){me.download_backup();});}
this.menu.add_item('Tools','Web Notes Framework',function(){show_about();});}
this.setup_new=function(){me.menu.add_top_menu('New',function(){me.show_new();},'sprite-new');me.show_new=function(){if(!me.new_dialog){var d=new Dialog(240,140,"Create a new record");d.make_body([['HTML','Select'],['Button','Go',function(){me.new_dialog.hide();new_doc(me.new_sel.inp.value);}]]);d.onshow=function(){me.new_sel.inp.focus();}


Завантаження…
Відмінити
Зберегти