src/cm/media/js/site/c_text_view_comments.js
changeset 341 053551f213fb
parent 340 9e2b9e568e42
child 421 3ddbfa64f596
--- a/src/cm/media/js/site/c_text_view_comments.js	Mon Nov 29 15:05:21 2010 +0100
+++ b/src/cm/media/js/site/c_text_view_comments.js	Tue Nov 30 09:53:35 2010 +0100
@@ -7,7 +7,7 @@
 gGETValues = null;
 
 gConf = {'iCommentLeftPadding':4, 
-		'iCommentThreadPadding':12,
+    'iCommentThreadPadding':12,
         'defaultCommentFormat':'markdown',
         'sliderFixedMin':.9,
         'sliderFixedMax':.1,
@@ -20,277 +20,277 @@
 gTextStyles = {'text-modern-style':gettext('modern'), 'text-classic-style':gettext('classic'), 'text-code-style':gettext('code')};
 
 YUI( {
-	base :sv_media_url + "/js/lib/yui/" + c_yui_base + "/build/",
-	// filter: '{% if CLIENT_DEBUG %}debug{% else %}raw{% endif %}',
-	// filter :'raw',
-	timeout :10000
+  base :sv_media_url + "/js/lib/yui/" + c_yui_base + "/build/",
+  // filter: '{% if CLIENT_DEBUG %}debug{% else %}raw{% endif %}',
+  // filter :'raw',
+  timeout :10000
 }).use(
-	    "text-modern-style",
-		"cookie",
-		"json",
-		"overlay",
-		"io-form",
-		"async-queue",
-		"event-mouseenter",		
-		"anim",
-		"collection",
-		function(Y) {
-	        CY = Y;
-	        
+      "text-modern-style",
+    "cookie",
+    "json",
+    "overlay",
+    "io-form",
+    "async-queue",
+    "event-mouseenter",   
+    "anim",
+    "collection",
+    function(Y) {
+          CY = Y;
+          
             gPrefs = new Preferences() ;
             gPrefs.init() ;
             
             gLayout = new Layout() ;
             gLayout.init() ;
 
-    		if (sv_withComments) {
-	            gDb = new Db() ;
-	            gDb.init() ;
-	            
-	            gIComments = new IComments() ;	            	            
-	            gIComments.init() ;
-    		}
+        if (sv_withComments) {
+              gDb = new Db() ;
+              gDb.init() ;
+              
+              gIComments = new IComments() ;                            
+              gIComments.init() ;
+        }
 
             gSync = new Sync() ;
             gSync.init() ;
 
-			CY.on("domready", onDomReady, this); 
+      CY.on("domready", onDomReady, this); 
 
-		});
+    });
 
 _reinit = function(filterRes) {
-	gIComments.hide();
-	gDb.initComments(filterRes['commentIds']);
+  gIComments.hide();
+  gDb.initComments(filterRes['commentIds']);
 
-	unpaintAllComments();
-	renderCommentScopes();
-	
-	updateFilterResultsCount(filterRes['nbDiscussions'], filterRes['nbComments'], filterRes['nbReplies']);
+  unpaintAllComments();
+  renderCommentScopes();
+  
+  updateFilterResultsCount(filterRes['nbDiscussions'], filterRes['nbComments'], filterRes['nbReplies']);
 };
 
 reinit = function(filterGETValues) {
-	var filterRes = gDb.computeFilterResults(filterGETValues);
-	_reinit(filterRes);
+  var filterRes = gDb.computeFilterResults(filterGETValues);
+  _reinit(filterRes);
 };
 
 hideAll = function() {
-	_reinit({'commentIds':[],'nbDiscussions':0, 'nbComments':0, 'nbReplies':0});
+  _reinit({'commentIds':[],'nbDiscussions':0, 'nbComments':0, 'nbReplies':0});
 };
 
 updateFilterResultsCount = function(nbDiscussions, nbComments, nbReplies) {
-	var r = gDb.getCommentsAndRepliesCounts(true);
-	var nbAllComments = r[0], nbAllReplies = r[1];
-	var detailedResults = (nbComments != 0 || nbReplies != 0) && (nbAllComments != nbComments || nbAllReplies != nbReplies) ;
-	if (gLayout.isInFrame()) {
-		parent.f_updateFilterCountDetailed(detailedResults) ;
-		parent.f_updateFilterCountResult(nbDiscussions, nbComments, nbReplies, nbAllComments, nbAllReplies);
-	}
+  var r = gDb.getCommentsAndRepliesCounts(true);
+  var nbAllComments = r[0], nbAllReplies = r[1];
+  var detailedResults = (nbComments != 0 || nbReplies != 0) && (nbAllComments != nbComments || nbAllReplies != nbReplies) ;
+  if (gLayout.isInFrame()) {
+    parent.f_updateFilterCountDetailed(detailedResults) ;
+    parent.f_updateFilterCountResult(nbDiscussions, nbComments, nbReplies, nbAllComments, nbAllReplies);
+  }
 };
 
 updateResetFilterResultsCount = function() {
-	var counts = gDb.getCommentsAndRepliesCounts(false)
-	var nbComments = counts[0], nbReplies = counts[1];
+  var counts = gDb.getCommentsAndRepliesCounts(false)
+  var nbComments = counts[0], nbReplies = counts[1];
 
-	var nbDiscussions = nbComments;
-	updateFilterResultsCount(nbDiscussions, nbComments, nbReplies);
+  var nbDiscussions = nbComments;
+  updateFilterResultsCount(nbDiscussions, nbComments, nbReplies);
 };
 
 // TODO MOVE
 renderCommentScopes = function() {
-	for (var i = 0 ; i < gDb.comments.length ; i++) {
-		var comment = gDb.comments[i] ;
-		paintCommentScope(comment) ;
-	}
+  for (var i = 0 ; i < gDb.comments.length ; i++) {
+    var comment = gDb.comments[i] ;
+    paintCommentScope(comment) ;
+  }
 } ;
 
 onTextMouseUp = function(e) {
-	if (readyForAction()) {
-		var selection = getSelectionInfo() ;
-		if (selection != null) {
-			updateICommentFormSelection(selection) ;
-			if (gEditICommentHost != null) {
-				var modifyScope = CY.get("#"+gEdit['ids']['changeScopeInputId']+" input").get('checked') ;
-				if (modifyScope) {
-					gEditICommentHost.scrollIntoView() ;
-				}
-			}
-		}
-		else {
-			var node = e.target ;
-			if (node.hasClass('c-c')) {
-				var elt = CY.Node.getDOMNode(node) ;
-				var commentIds = getCommentIdsFromClasses(elt) ;
-				if (commentIds.length > 0) {
-					checkForOpenedDialog(null, function() { // will only check for reply
-						gSync.showComments(commentIds, [e.pageX, e.pageY], false) ;
-					}) ;
-				}
-			} 
-		}
-//// FIRST UPDATE SELECTION IF ANY AND SCROLL TO EDITION IF ANY		
-//		if (isICommentFormVisible() || gEditICommentHost != null) {
-//			CY.log(selection) ;
-//			updateICommentFormSelection(selection) ;
-//			
-//			if (gEditICommentHost != null) {
-//				var modifyScope = CY.get("#"+gEdit['ids']['changeScopeInputId']+" input").get('checked') ;
-//				if (modifyScope) {
-//					gEditICommentHost.scrollIntoView() ;
-//					didSomething = true ;
-//				}
-//			}
-//			if (isICommentFormVisible())
-//			didSomething = true ;
-//		}
-//		else {
-//			checkForOpenedDialog(null, function() { // will only check for reply
-//					var node = e.target ;
-//					if (node.hasClass('c-c')) {
-//						var elt = CY.Node.getDOMNode(node) ;
-//						var commentIds = getCommentIdsFromClasses(elt) ;
-//						if (commentIds.length > 0) {
-//							//hideOverlay(gICommentForm) ;
-//							// gIComments.hide() ;20080814 moved it to gSync._showComments
-//							gSync.showComments(commentIds, [e.pageX, e.pageY]) ;
-//						}
-//					}
-//				}) ;
-//		}
-	}
+  if (readyForAction()) {
+    var selection = getSelectionInfo() ;
+    if (selection != null) {
+      updateICommentFormSelection(selection) ;
+      if (gEditICommentHost != null) {
+        var modifyScope = CY.get("#"+gEdit['ids']['changeScopeInputId']+" input").get('checked') ;
+        if (modifyScope) {
+          gEditICommentHost.scrollIntoView() ;
+        }
+      }
+    }
+    else {
+      var node = e.target ;
+      if (node.hasClass('c-c')) {
+        var elt = CY.Node.getDOMNode(node) ;
+        var commentIds = getCommentIdsFromClasses(elt) ;
+        if (commentIds.length > 0) {
+          checkForOpenedDialog(null, function() { // will only check for reply
+            gSync.showComments(commentIds, [e.pageX, e.pageY], false) ;
+          }) ;
+        }
+      } 
+    }
+//// FIRST UPDATE SELECTION IF ANY AND SCROLL TO EDITION IF ANY   
+//    if (isICommentFormVisible() || gEditICommentHost != null) {
+//      CY.log(selection) ;
+//      updateICommentFormSelection(selection) ;
+//      
+//      if (gEditICommentHost != null) {
+//        var modifyScope = CY.get("#"+gEdit['ids']['changeScopeInputId']+" input").get('checked') ;
+//        if (modifyScope) {
+//          gEditICommentHost.scrollIntoView() ;
+//          didSomething = true ;
+//        }
+//      }
+//      if (isICommentFormVisible())
+//      didSomething = true ;
+//    }
+//    else {
+//      checkForOpenedDialog(null, function() { // will only check for reply
+//          var node = e.target ;
+//          if (node.hasClass('c-c')) {
+//            var elt = CY.Node.getDOMNode(node) ;
+//            var commentIds = getCommentIdsFromClasses(elt) ;
+//            if (commentIds.length > 0) {
+//              //hideOverlay(gICommentForm) ;
+//              // gIComments.hide() ;20080814 moved it to gSync._showComments
+//              gSync.showComments(commentIds, [e.pageX, e.pageY]) ;
+//            }
+//          }
+//        }) ;
+//    }
+  }
 } ;
 
 gLastScrollTime = null ;
 checkForAlignement = function () {
-	var now = (new Date()).getTime() ;
-	if ((gLastScrollTime != null) && (now - gLastScrollTime) > 200) {
-		positionICommentForm() ;			
-		gLastScrollTime = null ;
-	}
+  var now = (new Date()).getTime() ;
+  if ((gLastScrollTime != null) && (now - gLastScrollTime) > 200) {
+    positionICommentForm() ;      
+    gLastScrollTime = null ;
+  }
 };
 
 onFrameScroll = function () {
-	gLastScrollTime = (new Date()).getTime() ;
+  gLastScrollTime = (new Date()).getTime() ;
 };
 
 browse = function(order, whereto) {
-	gSync.browse(order, whereto) ; 
+  gSync.browse(order, whereto) ; 
 };
 
 initialConnect = function() {
-	CY.on("mouseup", onTextMouseUp, "#textcontainer");
-	gTimer = CY.Lang.later(200, this, checkForAlignement, [], true) ;
-	CY.on('scroll', onFrameScroll, window, this, true);
-	CY.on('resize', onFrameScroll, window, this, true);
+  CY.on("mouseup", onTextMouseUp, "#textcontainer");
+  gTimer = CY.Lang.later(200, this, checkForAlignement, [], true) ;
+  CY.on('scroll', onFrameScroll, window, this, true);
+  CY.on('resize', onFrameScroll, window, this, true);
 };
 
 preventLinksInText = function() {
-	var interceptLink = function(e) {
-		var a = e.target;
-		var href = null;
-		while (a != null && href == null) {
-			a = a.get('parentNode');
-			href = a.get("href");
-		}
-		
-		if (a != null && href != null) {
-			//alert(window.location) ;
-			var clean_window_location = window.location.href ;
-			
-			var ind = clean_window_location.indexOf('#') ;
-			if (ind != -1)
-				clean_window_location = clean_window_location.substring(0, ind) ;
-			
-			if (href.indexOf(clean_window_location) == -1 ) {
-				window.open(a.get("href"));
-				e.preventDefault(); ;
-			}
-		}
-	} ;
+  var interceptLink = function(e) {
+    var a = e.target;
+    var href = null;
+    while (a != null && href == null) {
+      a = a.get('parentNode');
+      href = a.get("href");
+    }
+    
+    if (a != null && href != null) {
+      //alert(window.location) ;
+      var clean_window_location = window.location.href ;
+      
+      var ind = clean_window_location.indexOf('#') ;
+      if (ind != -1)
+        clean_window_location = clean_window_location.substring(0, ind) ;
+      
+      if (href.indexOf(clean_window_location) == -1 ) {
+        window.open(a.get("href"));
+        e.preventDefault(); ;
+      }
+    }
+  } ;
 
-	CY.all("#textcontainer a").on("click", interceptLink);
+  CY.all("#textcontainer a").on("click", interceptLink);
 };
 
 onDomReady = function(arg1) {
-	preventLinksInText();
-	var q1 = new CY.AsyncQueue(); //  
-	// doesn't behave like the doc says :
-	// no timeout -> seems in blocking mode
-	q1.add( {
-		fn : function() {
+  preventLinksInText();
+  var q1 = new CY.AsyncQueue(); //  
+  // doesn't behave like the doc says :
+  // no timeout -> seems in blocking mode
+  q1.add( {
+    fn : function() {
 
-			if (gLayout.isInComentSite()) {
-				parent.toInitialSize();
-			}
-			if (sv_withComments) {
-				instanciateICommentForm();
-			}
-		},
-		timeout :5
-	}, {
-		fn : function() {
+      if (gLayout.isInComentSite()) {
+        parent.toInitialSize();
+      }
+      if (sv_withComments) {
+        instanciateICommentForm();
+      }
+    },
+    timeout :5
+  }, {
+    fn : function() {
 
-			gGETValues = CY.JSON.parse(sv_get_params);
-			
-			CY.get('#maincontainer').setStyle('display', 'block');
-			CY.get('#textcontainer').setStyle('display', 'block');
-			
-			var val = (sv_withComments) ? gPrefs.get('layout','comments_col_width') : 0 ; 
-			var colWidth = sliderValToPx(val) ;
-			gLayout.setLeftColumnWidth(colWidth) ;
-			
-			if (gLayout.isInFrame()) {
-				parent.f_initFrame();
-				parent.f_layoutFrames();
+      gGETValues = CY.JSON.parse(sv_get_params);
+      
+      CY.get('#maincontainer').setStyle('display', 'block');
+      CY.get('#textcontainer').setStyle('display', 'block');
+      
+      var val = (sv_withComments) ? gPrefs.get('layout','comments_col_width') : 0 ; 
+      var colWidth = sliderValToPx(val) ;
+      gLayout.setLeftColumnWidth(colWidth) ;
+      
+      if (gLayout.isInFrame()) {
+        parent.f_initFrame();
+        parent.f_layoutFrames();
 
-				if (sv_withComments) {
-					parent.f_fillTopToolbar() ;
-					if (hasPerm("can_create_comment"))  	
-						parent.$("#add_comment_btn").removeClass('initially_hidden');
-					//parent.enqueueLoadingMsg(); // no more loading message ? TODO
-					
-					parent.f_fillFilterTab() ;
-					parent.f_fillPreferencesTab() ;
-					
-//					parent.f_fillBrowseSection() ;
-					
-					var firstTimeFilterData = CY.JSON.parse(sv_filter_data);
-					parent.f_updateFilterData(firstTimeFilterData);
-					
-					parent.f_setFilterValue(gGETValues) ;					
-				}
-				parent.f_fillTextPreferencesTab() ;
-			}
-			
-			if (gLayout.isInComentSite()) 
-				parent.$("#c_fullscreen_btn").show();
-			else {
-				parent.$("#c_fullscreen_btn").hide();
-			}
+        if (sv_withComments) {
+          parent.f_fillTopToolbar() ;
+          if (hasPerm("can_create_comment"))    
+            parent.$("#add_comment_btn").removeClass('initially_hidden');
+          //parent.enqueueLoadingMsg(); // no more loading message ? TODO
+          
+          parent.f_fillFilterTab() ;
+          parent.f_fillPreferencesTab() ;
+          
+//          parent.f_fillBrowseSection() ;
+          
+          var firstTimeFilterData = CY.JSON.parse(sv_filter_data);
+          parent.f_updateFilterData(firstTimeFilterData);
+          
+          parent.f_setFilterValue(gGETValues) ;         
+        }
+        parent.f_fillTextPreferencesTab() ;
+      }
+      
+      if (gLayout.isInComentSite()) 
+        parent.$("#c_fullscreen_btn").show();
+      else {
+        parent.$("#c_fullscreen_btn").hide();
+      }
 
-		},
-		timeout :5
-	}, {
-		fn : function() {
-			if (sv_withComments) {
-				
-				reinit(gGETValues);
-				initialConnect();
-			}
-		},
-		timeout :5
-	}, {
-		fn : function() {
-			if (gLayout.isInFrame()) {
-				parent.f_interfaceUnfreeze() ;
-				parent.f_removeLoadingMsg();
-			}
-			// if there is a comment id in the url display it
-			if ("comment_id_key" in gGETValues) {
-				var id_key = gGETValues["comment_id_key"] ;
-				var comment = gDb.getCommentByIdKey(id_key) ;
-				if (comment != null) {
-					var path = gDb.getPath(comment) ;
-					var topParentComment = path[path.length - 1] ;
+    },
+    timeout :5
+  }, {
+    fn : function() {
+      if (sv_withComments) {
+        
+        reinit(gGETValues);
+        initialConnect();
+      }
+    },
+    timeout :5
+  }, {
+    fn : function() {
+      if (gLayout.isInFrame()) {
+        parent.f_interfaceUnfreeze() ;
+        parent.f_removeLoadingMsg();
+      }
+      // if there is a comment id in the url display it
+      if ("comment_id_key" in gGETValues) {
+        var id_key = gGETValues["comment_id_key"] ;
+        var comment = gDb.getCommentByIdKey(id_key) ;
+        if (comment != null) {
+          var path = gDb.getPath(comment) ;
+          var topParentComment = path[path.length - 1] ;
           var focusComment = gDb.getCommentByIdKey(id_key);
           // if comment_op=reply, show reply form
           if ("comment_op" in gGETValues && gGETValues["comment_op"] == 'reply') {
@@ -299,19 +299,19 @@
           else {
             gSync.showFocusSingleComment(topParentComment, focusComment, false) ;
           }
-				}
-			}
+        }
+      }
 
-			// if comment_auto_display: show all comments
-			if ("comments_auto_display" in gGETValues) {
-				gSync.showAllComments();
-			}
-			
-//			else {
-//			gSync.showAllComments() ;// show all
-//			}
-		}
-	});
-	q1.run();
+      // if comment_auto_display: show all comments
+      if ("comments_auto_display" in gGETValues) {
+        gSync.showAllComments();
+      }
+      
+//      else {
+//      gSync.showAllComments() ;// show all
+//      }
+    }
+  });
+  q1.run();
 };