@@ -630,11 +630,11 @@
630 630 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
this.setMessage() after initialization.
631 631 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
632 632 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const cf = function(){
633 633 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
this.e = {
634 634 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
body: D.addClass(D.div(), 'message-widget'),
635 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- tab: D.addClass(D.span(), 'message-widget-tab'),
635 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ tab: D.addClass(D.div(), 'message-widget-tab'),
636 636 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
content: D.addClass(D.div(), 'message-widget-content')
637 637 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
638 638 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
D.append(this.e.body, this.e.tab, this.e.content);
639 639 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
this.e.tab.setAttribute('role', 'button');
640 640 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(arguments.length){
@@ -692,14 +692,14 @@
692 692 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
D.clearElement(this.e.tab);
693 693 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
var contentTarget = this.e.content;
694 694 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
var eXFrom /* element holding xfrom name */;
695 695 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(m.xfrom){
696 696 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
eXFrom = D.append(D.addClass(D.span(), 'xfrom'), m.xfrom);
697 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- D.append(
698 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- this.e.tab, eXFrom,
699 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- D.text(" #",(m.msgid||'???'),' @ ',theTime(d))
700 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- );
697 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const wrapper = D.append(
698 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ D.span(), eXFrom,
699 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ D.text(" #",(m.msgid||'???'),' @ ',theTime(d)))
700 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ D.append(this.e.tab, wrapper);
701 701 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{/*notification*/
702 702 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
D.addClass(this.e.body, 'notification');
703 703 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(m.isError){
704 704 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
D.addClass([contentTarget, this.e.tab], 'error');
705 705 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -751,25 +751,25 @@
751 751 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(F.pikchr){
752 752 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
F.pikchr.addSrcView(contentTarget.querySelectorAll('svg.pikchr'));
753 753 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
754 754 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
755 755 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
756 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- this.e.tab.addEventListener('click', this._handleLegendClicked, false);
757 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(eXFrom){
756 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ this.e.tab.firstElementChild.addEventListener('click', this._handleLegendClicked, false);
757 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*if(eXFrom){
758 758 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
eXFrom.addEventListener('click', ()=>this.e.tab.click(), false);
759 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
759 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }*/
760 760 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return this;
761 761 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
},
762 762 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Event handler for clicking .message-user elements to show their
763 763 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
timestamps. */
764 764 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
_handleLegendClicked: function f(ev){
765 765 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(!f.popup){
766 766 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Timestamp popup widget */
767 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- f.popup = new F.PopupWidget({
768 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cssClass: ['fossil-tooltip', 'chat-message-popup'],
767 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ f.popup = {
768 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ e: D.addClass(D.div(), 'chat-message-popup'),
769 769 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
refresh:function(){
770 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const eMsg = this._eMsg;
770 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const eMsg = this.$eMsg/*.message-widget element*/;
771 771 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(!eMsg) return;
772 772 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
D.clearElement(this.e);
773 773 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const d = new Date(eMsg.dataset.timestamp);
774 774 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(d.getMinutes().toString()!=="NaN"){
775 775 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
// Date works, render informative timestamps
@@ -802,22 +802,27 @@
802 802 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Chat.deleteMessageElem(eMsg);
803 803 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
});
804 804 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(Chat.userMayDelete(eMsg)){
805 805 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const btnDeleteGlobal = D.button("Delete globally");
806 806 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
D.append(toolbar, btnDeleteGlobal);
807 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- btnDeleteGlobal.addEventListener('click', function(){
808 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- self.hide();
809 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Chat.deleteMessage(eMsg);
807 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ F.confirmer(btnDeleteGlobal,{
808 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pinSize: true,
809 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ticks: F.config.confirmerButtonTicks,
810 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ confirmText: "Confirm delete?",
811 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ onconfirm:function(){
812 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ self.hide();
813 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Chat.deleteMessage(eMsg);
814 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
810 815 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
});
811 816 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
812 817 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const toolbar2 = D.addClass(D.div(), 'toolbar');
813 818 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
D.append(this.e, toolbar2);
814 819 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const btnToggleText = D.button("Toggle text mode");
815 820 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
btnToggleText.addEventListener('click', function(){
816 821 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
self.hide();
817 822 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Chat.toggleTextMode(eMsg);
818 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- });
823 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ },false);
819 824 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
D.append(toolbar2, btnToggleText);
820 825 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(eMsg.dataset.xfrom){
821 826 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Add a link to the /timeline filtered on this user. */
822 827 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const timelineLink = D.attr(
823 828 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
D.a(F.repoUrl('timeline',{
@@ -826,32 +831,35 @@
826 831 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}), "User's Timeline"),
827 832 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
'target', '_blank'
828 833 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
829 834 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
D.append(toolbar2, timelineLink);
830 835 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
831 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }/*refresh()*/
832 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- });
833 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- f.popup.installHideHandlers();
834 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- f.popup.hide = function(){
835 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- delete this._eMsg;
836 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- D.clearElement(this.e);
837 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return this.show(false);
838 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- };
836 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const tab = eMsg.querySelector('.message-widget-tab');
837 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ D.append(tab, this.e);
838 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ D.removeClass(this.e, 'hidden');
839 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }/*refresh()*/,
840 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ hide: function(){
841 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ D.addClass(D.clearElement(this.e), 'hidden');
842 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ delete this.$eMsg;
843 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ },
844 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ show: function(tgtMsg){
845 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if(tgtMsg === this.$eMsg){
846 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ this.hide();
847 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return;
848 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
849 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ this.$eMsg = tgtMsg;
850 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ this.refresh();
851 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
852 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }/*f.popup*/;
839 853 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}/*end static init*/
840 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const rect = ev.target.getBoundingClientRect();
841 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const eMsg = ev.target.parentNode/*the owning .message-widget element*/;
842 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- f.popup._eMsg = eMsg;
843 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- let x = rect.left, y = rect.topm;
844 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- f.popup.show(ev.target)/*so we can get its computed size*/;
845 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(eMsg.dataset.xfrom===Chat.me
846 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- && document.body.classList.contains('my-messages-right')){
847 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- // Shift popup to the left for right-aligned messages to avoid
848 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- // truncation off the right edge of the page.
849 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const pRect = f.popup.e.getBoundingClientRect();
850 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- x = rect.right - pRect.width;
851 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
852 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- f.popup.show(x, y);
854 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ console.debug("event =",ev);
855 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ console.debug("event.target =",ev.target);
856 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ let theMsg = ev.target;
857 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ while( theMsg && !theMsg.classList.contains('message-widget')){
858 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ theMsg = theMsg.parentNode;
859 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
860 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if(theMsg) f.popup.show(theMsg);
853 861 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}/*_handleLegendClicked()*/
854 862 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
855 863 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return cf;
856 864 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
})()/*MessageWidget*/;
857 865 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
858 866 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!