diff -r 000000000000 -r 40c8f766c9b8 src/cm/media/js/client/c_dlg_intercept.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/cm/media/js/client/c_dlg_intercept.js Mon Nov 23 15:14:29 2009 +0100 @@ -0,0 +1,60 @@ + +// dialog related +_afterDlg = function(args) { + var yesFunction = args[0] ; + var yesFunctionContext = args[1] ; + var yesFunctionArgs = args[2] ; + yesFunction.call(yesFunctionContext, yesFunctionArgs) ; +} +_abortNewCommentConfirmed = function(args) { + if (isICommentFormVisible()) { + if (gLayout.isInFrame()) { + gSync.hideICommentForm({fn:function(){_afterDlg(args) ;}}) ; + gSync.resume() ; + } + } +} +_abortNewReplyConfirmed = function(args) { + if (gNewReplyHost != null) { + if (gLayout.isInFrame()) { + cancelNewReplyForm() ; + _afterDlg(args) ; + } + } +} +_abortNewEditConfirmed = function(args) { + if (gEditICommentHost != null) { + if (gLayout.isInFrame()) { + cancelEditForm() ; + _afterDlg(args) ; + } + } +} + +//if topIComment != null will check if edit or new reply is hosted by a child of topIComment +//if topIComment == null will check if edit or a new reply is hosted somewhere +checkForOpenedDialog = function(topIComment, yesFunction, yesFunctionContext, yesFunctionArgs) { + var childrenIds = [] ; + if (topIComment != null) { + childrenIds = CY.Array.map(gDb.getThreads([gDb.getComment(topIComment.commentId)]), function(comment) { return comment.id ;}) ; + } + + if (isICommentFormVisible() + || + (gNewReplyHost != null && (topIComment == null || CY.Array.indexOf(childrenIds, gNewReplyHost.commentId) != -1)) + || + (gEditICommentHost != null && (topIComment == null || CY.Array.indexOf(childrenIds, gEditICommentHost.commentId) != -1))) { + if (gLayout.isInFrame()) { + if (isICommentFormVisible()) + parent.f_yesNoDialog(gettext("New comment will be canceled, continue?"), gettext("Warning"), null, null, null, _abortNewCommentConfirmed, this, [yesFunction, yesFunctionContext, yesFunctionArgs]) ; + else if (gNewReplyHost != null) + parent.f_yesNoDialog(gettext("Started reply will be canceled, continue?"), gettext("Warning"), null, null, null, _abortNewReplyConfirmed, this, [yesFunction, yesFunctionContext, yesFunctionArgs]) ; + else if (gEditICommentHost != null) + parent.f_yesNoDialog(gettext("Started comment edition will be canceled, continue?"), gettext("Warning"), null, null, null, _abortNewEditConfirmed, this, [yesFunction, yesFunctionContext, yesFunctionArgs]) ; + } + } + else { + yesFunction.call(yesFunctionContext, []) ; + } +} +