message.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  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. 'content': opt
  21. } : opt;
  22. var message = new Message({
  23. 'timeout': opt.timeout,
  24. 'type': opt.type,
  25. 'content': opt.content,
  26. 'keepshow': opt.keepshow,
  27. 'editor': me
  28. }),
  29. mid = opt.id || ('msg_' + (+new Date()).toString(36));
  30. message.render(holder);
  31. _messageItems[mid] = message;
  32. message.reset(opt);
  33. updateHolderPos();
  34. return mid;
  35. });
  36. me.addListener('updatemessage',function(type, id, opt){
  37. opt = utils.isString(opt) ? {
  38. 'content': opt
  39. } : opt;
  40. var message = _messageItems[id];
  41. message.render(holder);
  42. message && message.reset(opt);
  43. });
  44. me.addListener('hidemessage',function(type, id){
  45. var message = _messageItems[id];
  46. message && message.hide();
  47. });
  48. function updateHolderPos(){
  49. if (!holder || !me.ui) return;
  50. var toolbarbox = me.ui.getDom('toolbarbox');
  51. if (toolbarbox) {
  52. holder.style.top = toolbarbox.offsetHeight + 3 + 'px';
  53. }
  54. holder.style.zIndex = Math.max(me.options.zIndex, me.iframe.style.zIndex) + 1;
  55. }
  56. });