src/cm/media/js/client/c_dlg_intercept.js
changeset 0 40c8f766c9b8
child 341 053551f213fb
--- /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, []) ;
+	}
+}
+