You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

script_manager.js 1.2 KiB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. wn.ui.form.ScriptManager = Class.extend({
  2. init: function(opts) {
  3. $.extend(this, opts);
  4. this.setup();
  5. },
  6. trigger: function(event_name, doctype, name) {
  7. doctype = doctype || this.frm.doctype;
  8. name = name || this.frm.docname;
  9. try {
  10. if(this.frm.cscript[event_name])
  11. this.frm.cscript[event_name](this.frm.doc, doctype, name);
  12. if(this.frm.cscript["custom_" + event_name])
  13. this.frm.cscript["custom_" + event_name](this.frm.doc, doctype, name);
  14. } catch(e) {
  15. validated = false;
  16. // show error message
  17. this.log_error(event_name, e);
  18. }
  19. },
  20. setup: function() {
  21. var doctype = this.frm.meta;
  22. // js
  23. var cs = doctype.__js;
  24. if(cs) {
  25. try {
  26. var tmp = eval(cs);
  27. } catch(e) {
  28. this.log_error("eval", e);
  29. }
  30. }
  31. // css
  32. doctype.__css && wn.dom.set_style(doctype.__css);
  33. },
  34. log_error: function(caller, e) {
  35. show_alert("Error in Client Script.");
  36. console.group && console.group();
  37. console.log("----- error in client script -----");
  38. console.log("method: " + caller);
  39. console.log(e);
  40. console.log("error message: " + e.message);
  41. console.trace && console.trace();
  42. console.log("----- end of error message -----");
  43. console.group && console.groupEnd();
  44. }
  45. })