message.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. UE.registerUI("message", function(editor) {
  2. var editorui = baidu.editor.ui;
  3. var Message = editorui.Message;
  4. var holder;
  5. var _messageItems = [];
  6. var me = editor;
  7. me.setOpt("enableMessageShow", true);
  8. if (me.getOpt("enableMessageShow") === false) {
  9. return;
  10. }
  11. me.addListener("ready", function() {
  12. holder = document.getElementById(me.ui.id + "_message_holder");
  13. updateHolderPos();
  14. setTimeout(function() {
  15. updateHolderPos();
  16. }, 500);
  17. });
  18. me.addListener("showmessage", function(type, opt) {
  19. opt = utils.isString(opt)
  20. ? {
  21. content: opt
  22. }
  23. : opt;
  24. var message = new Message({
  25. timeout: opt.timeout,
  26. type: opt.type,
  27. content: opt.content,
  28. keepshow: opt.keepshow,
  29. editor: me
  30. }),
  31. mid = opt.id || "msg_" + (+new Date()).toString(36);
  32. message.render(holder);
  33. _messageItems[mid] = message;
  34. message.reset(opt);
  35. updateHolderPos();
  36. return mid;
  37. });
  38. me.addListener("updatemessage", function(type, id, opt) {
  39. opt = utils.isString(opt)
  40. ? {
  41. content: opt
  42. }
  43. : opt;
  44. var message = _messageItems[id];
  45. message.render(holder);
  46. message && message.reset(opt);
  47. });
  48. me.addListener("hidemessage", function(type, id) {
  49. var message = _messageItems[id];
  50. message && message.hide();
  51. });
  52. function updateHolderPos() {
  53. if (!holder || !me.ui) return;
  54. var toolbarbox = me.ui.getDom("toolbarbox");
  55. if (toolbarbox) {
  56. holder.style.top = toolbarbox.offsetHeight + 3 + "px";
  57. }
  58. holder.style.zIndex =
  59. Math.max(me.options.zIndex, me.iframe.style.zIndex) + 1;
  60. }
  61. });