Committer: szhirkov
LJSUP-7800: close event for "delete comment" popupU trunk/htdocs/js/commentmanage.js
Modified: trunk/htdocs/js/commentmanage.js =================================================================== --- trunk/htdocs/js/commentmanage.js 2011-02-07 05:14:31 UTC (rev 18220) +++ trunk/htdocs/js/commentmanage.js 2011-02-07 05:44:33 UTC (rev 18221) @@ -230,7 +230,7 @@ // we didn't handle anything, who are we kidding } -function createDeleteFunction (ae, dItemid, isS1) { +function createDeleteFunction(ae, dItemid, isS1) { return function (e) { e = jQuery.event.fix(e || window.event); @@ -279,7 +279,8 @@ var de = jQuery('<div class="ljcmtmanage b-popup" style="text-align:left;position:absolute;visibility:hidden;width:250px;left:0;top:0;z-index:3"><div class="b-popup-outer"><div class="b-popup-inner"><div class="ljcmtmanage-content"></div><i class="i-popup-arr i-popup-arrt"></i><i class="i-popup-close"></i></div></div></div>') .click(function(e){ e.stopPropagation() - }); + }) + .delegate('.i-popup-close', 'click', killPopup); var inHTML = "<form style='display: inline' id='ljdelopts" + dItemid + "'><span style='font-face: Arial; font-size: 8pt'><strong>" + getLocalizedStr( 'comment.delete.q', com.u ) + "</strong><br />"; var lbl; @@ -321,7 +322,8 @@ left: left, top: top, height: 10, - visibility: 'visible' + visibility: 'visible', + overflow: 'hidden' }); curPopup = de[0]; @@ -404,13 +406,16 @@ } var tsInProg = {} // dict of { ditemid => 1 } -function createModerationFunction(ae, dItemid, isS1) +function createModerationFunction(ae, dItemid, isS1, action) { + var action = action || 'screen'; // "screen" action by default + return function(e) { var e = jQuery.event.fix(e || window.event); pos = { x: e.pageX, y: e.pageY }, - postUrl = ae.href.replace(/.+talkscreen\.bml/, LiveJournal.getAjaxUrl('talkscreen')), + bmlName = { 'screen' : 'talkscreen', 'spam' : 'spamcomment' }[action], + postUrl = ae.href.replace(new RegExp('.+' + bmlName + '\.bml'), LiveJournal.getAjaxUrl(bmlName)), hourglass = jQuery(e).hourglass()[0]; var xhr = jQuery.post(postUrl + '&jsmode=1', @@ -477,12 +482,13 @@ } newNode = ExpanderEx.prepareCommentBlock( - result[i].html, - result[ i ].thread, + result[i].html || '', + result[i].thread || '', showExpand ); setupAjax( newNode[0], isS1 ); + jQuery("#ljcmtxt" + result[i].thread).replaceWith( newNode ); } } @@ -559,7 +565,7 @@ var id = reMatch[1]; if (!document.getElementById('ljcmt' + id)) continue; - ae.onclick = createModerationFunction(ae, id, isS1); + ae.onclick = createModerationFunction(ae, id, isS1, 'screen'); } else if (ae.href.indexOf('delcomment.bml') != -1) { if (LJ_cmtinfo && LJ_cmtinfo.disableInlineDelete) continue; @@ -570,21 +576,34 @@ if (!document.getElementById('ljcmt' + id)) continue; ae.onclick = createDeleteFunction(ae, id, isS1); - } + } else if (ae.href.indexOf('spamcomment.bml') != -1) { + var reMatch = rex_id.exec(ae.href); + if (!reMatch) continue; + + var id = reMatch[1]; + if (!document.getElementById('ljcmt' + id)) continue; + + ae.onclick = createModerationFunction(ae, id, isS1, 'spam'); + } } } function getThreadJSON(threadId, success, getSingle) { var postid = location.href.match(/\/(\d+).html/)[1], + modeParam = LiveJournal.parseGetArgs(location.href).mode, params = [ 'journal=' + Site.currentJournal, 'itemid=' + postid, 'thread=' + threadId, 'depth=' + LJ_cmtinfo[ threadId ].depth ]; - if( getSingle) + + if (getSingle) params.push( 'single=1' ); + + if (modeParam) + params.push( 'mode=' + modeParam ) var url = LiveJournal.getAjaxUrl('get_thread') + '?' + params.join( '&' ); jQuery.get( url, success, 'json' ); @@ -593,3 +612,4 @@ jQuery(function(){setupAjax( false, ("is_s1" in LJ_cmtinfo ) )}); DOM.addEventListener(document, 'click', docClicked); +document.write("<style> div.ljcmtmanage { color: #000; background: #e0e0e0; border: 2px solid #000; padding: 3px; }</style>");