Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
 
 
 
 
 
 

86 righe
1.6 KiB

  1. // PAGE
  2. var pages=[];
  3. var stylesheets = [];
  4. function Page(page_name, content) {
  5. var me = this;
  6. this.name = page_name;
  7. this.trigger = function(event) {
  8. try {
  9. if(pscript[event+'_'+this.name])
  10. pscript[event+'_'+this.name](this.wrapper);
  11. } catch(e) {
  12. console.log(e);
  13. }
  14. }
  15. this.onshow = function() {
  16. // default set_title
  17. set_title(me.doc.title ? me.doc.title : me.name);
  18. if(!me.onload_complete) {
  19. me.trigger('onload');
  20. me.onload_complete = true;
  21. }
  22. me.trigger('onshow');
  23. // clear cur_frm
  24. cur_frm = null;
  25. }
  26. this.wrapper = page_body.add_page(page_name, this.onshow);
  27. this.cont = this.wrapper // bc
  28. if(content)
  29. this.wrapper.innerHTML = content;
  30. if(page_name == home_page)
  31. pages['_home'] = this;
  32. return this;
  33. }
  34. function render_page(page_name, menuitem) {
  35. if(!page_name)return;
  36. if((!locals['Page']) || (!locals['Page'][page_name])) {
  37. // no page, go home
  38. loadpage('_home');
  39. return;
  40. }
  41. var pdoc = locals['Page'][page_name];
  42. // style
  43. if(pdoc.style) set_style(pdoc.style)
  44. // stylesheet
  45. if(pdoc.stylesheet) {
  46. set_style(locals.Stylesheet[pdoc.stylesheet].stylesheet);
  47. stylesheets.push(pdoc.stylesheet);
  48. }
  49. // create page
  50. var p = new Page(page_name, pdoc._Page__content?pdoc._Page__content:pdoc.content);
  51. // script
  52. var script = pdoc.__script ? pdoc.__script : pdoc.script;
  53. p.doc = pdoc;
  54. if(script) {
  55. eval(script);
  56. }
  57. // change
  58. page_body.change_to(page_name);
  59. return p;
  60. }
  61. function refresh_page(page_name) {
  62. var fn = function(r, rt) {
  63. render_page(page_name)
  64. }
  65. $c('webnotes.widgets.page.getpage', {'name':page_name, stylesheets:JSON.stringify(stylesheets)}, fn);
  66. }