changeset 1705:5e4827a8e942 beta

added reply comment button on top of inline comments fixed some issues with interactive file filter on files
author Marcin Kuzminski <marcin@python-works.com>
date Mon, 21 Nov 2011 00:29:14 +0200
parents 3efc47f59639
children 07c8838ebfd3
files rhodecode/public/css/style.css rhodecode/public/js/rhodecode.js rhodecode/templates/changeset/changeset.html rhodecode/templates/files/files.html
diffstat 4 files changed, 41 insertions(+), 29 deletions(-) [+]
line wrap: on
line diff
--- a/rhodecode/public/css/style.css	Sun Nov 20 23:53:25 2011 +0200
+++ b/rhodecode/public/css/style.css	Mon Nov 21 00:29:14 2011 +0200
@@ -2655,7 +2655,7 @@
 	border-radius: 4px 4px 4px 4px !important;
 	box-shadow: 0 1px 0 #ececec !important;
 	cursor: pointer !important;
-	padding: 0px 2px 1px 2px;
+	padding: 3px 3px 3px 3px;
 }
 
 input.ui-button-small:hover,.ui-button-small:hover {
--- a/rhodecode/public/js/rhodecode.js	Sun Nov 20 23:53:25 2011 +0200
+++ b/rhodecode/public/js/rhodecode.js	Mon Nov 21 00:29:14 2011 +0200
@@ -328,6 +328,32 @@
 	});
 	return form
 };
+var injectInlineForm = function(tr){
+	  if(YUD.hasClass(tr,'form-open') || YUD.hasClass(tr,'context')){
+		  return
+	  }	
+	  YUD.addClass(tr,'form-open');
+	  var node = tr.parentNode.parentNode.parentNode.getElementsByClassName('full_f_path')[0];
+	  var f_path = YUD.getAttribute(node,'path');
+	  var lineno = getLineNo(tr);
+	  var form = createInlineForm(tr, f_path, lineno);
+	  var target_tr = tr;
+	  if(YUD.hasClass(YUD.getNextSibling(tr),'inline-comments')){
+		  target_tr = YUD.getNextSibling(tr);
+	  }
+	  YUD.insertAfter(form,target_tr);
+	  YUD.get('text_'+lineno).focus();	
+};
+
+var createInlineAddButton = function(tr,label){
+	var html = '<div class="add-comment"><span class="ui-button-small">{0}</span></div>'.format(label);
+        
+	var add = new YAHOO.util.Element(tableTr('inline-comments-button',html));
+	add.on('click', function(e) {
+		injectInlineForm(tr);
+	});
+	return add;
+};
 
 var getLineNo = function(tr) {
 	var line;
@@ -344,7 +370,8 @@
 };
 
 
-var fileBrowserListeners = function(current_url, node_list_url, url_base){
+var fileBrowserListeners = function(current_url, node_list_url, url_base,
+									truncated_lbl, nomatch_lbl){
 	var current_url_branch = +"?branch=__BRANCH__";
 	var url = url_base;
 	var node_url = node_list_url;	
@@ -363,13 +390,6 @@
 	var n_filter = YUD.get('node_filter');
 	var F = YAHOO.namespace('node_filter');
 	
-	url  = url.replace('__REPO__','${c.repo_name}');
-	url  = url.replace('__REVISION__','${c.changeset.raw_id}');
-	url  = url.replace('__FPATH__','${c.files_list.path}');
-
-	node_url  = node_url.replace('__REPO__','${c.repo_name}');
-	node_url  = node_url.replace('__REVISION__','${c.changeset.raw_id}');
-
 	F.filterTimeout = null;
 	var nodes = null;
 
@@ -417,18 +437,17 @@
 	                    match.push('<tr><td><a class="browser-file" href="{0}">{1}</a></td><td colspan="5"></td></tr>'.format(node_url.replace('__FPATH__',n),n_hl));
 	                }
 	                if(match.length >= matches_max){
-	                    match.push('<tr><td>{0}</td><td colspan="5"></td></tr>'.format("${_('search truncated')}"));
+	                    match.push('<tr><td>{0}</td><td colspan="5"></td></tr>'.format(truncated_lbl));
 	                }
 	                
 	            }                       
 	        }
-	        
 	        if(query != ""){
 	            YUD.setStyle('tbody','display','none');
 	            YUD.setStyle('tbody_filtered','display','');
 	            
 	            if (match.length==0){
-	              match.push('<tr><td>{0}</td><td colspan="5"></td></tr>'.format("${_('no matching files')}"));
+	              match.push('<tr><td>{0}</td><td colspan="5"></td></tr>'.format(nomatch_lbl));
 	            }                           
 	            
 	            YUD.get('tbody_filtered').innerHTML = match.join("");   
--- a/rhodecode/templates/changeset/changeset.html	Sun Nov 20 23:53:25 2011 +0200
+++ b/rhodecode/templates/changeset/changeset.html	Mon Nov 21 00:29:14 2011 +0200
@@ -220,20 +220,7 @@
           
           YUE.on(YUQ('.line'),'click',function(e){
         	  var tr = e.currentTarget;
-        	  if(YUD.hasClass(tr,'form-open') || YUD.hasClass(tr,'context')){
-        		  return
-        	  }
-        	  YUD.addClass(tr,'form-open');
-        	  var node = tr.parentNode.parentNode.parentNode.getElementsByClassName('full_f_path')[0];
-        	  var f_path = YUD.getAttribute(node,'path');
-        	  var lineno = getLineNo(tr);
-        	  var form = createInlineForm(tr, f_path, lineno);
-        	  var target_tr = tr;
-        	  if(YUD.hasClass(YUD.getNextSibling(tr),'inline-comments')){
-        		  target_tr = YUD.getNextSibling(tr);
-        	  }
-        	  YUD.insertAfter(form,target_tr);
-        	  YUD.get('text_'+lineno).focus()
+        	  injectInlineForm(tr);
           });
           
           // inject comments into they proper positions
@@ -249,6 +236,10 @@
           		    var lineno = YUD.getAttribute(inlines[i],'line');
           		    var lineid = "{0}_{1}".format(YUD.getAttribute(inline,'target_id'),lineno);
                     var target_line = YUD.get(lineid);
+                    
+                    var add = createInlineAddButton(target_line.parentNode,'${_("add another comment")}');
+                    YUD.insertAfter(add,target_line.parentNode);
+                    
                     var comment = new YAHOO.util.Element(tableTr('inline-comments',inline.innerHTML))
                     YUD.insertAfter(comment,target_line.parentNode);
         		  }catch(e){}
--- a/rhodecode/templates/files/files.html	Sun Nov 20 23:53:25 2011 +0200
+++ b/rhodecode/templates/files/files.html	Mon Nov 21 00:29:14 2011 +0200
@@ -39,8 +39,10 @@
 <script type="text/javascript">
 var YPJAX_TITLE = "${c.repo_name} ${_('Files')} - ${c.rhodecode_name}";
 var current_url = "${h.url.current()}";
-var node_list_url = '${h.url("files_home",repo_name="__REPO__",revision="__REVISION__",f_path="__FPATH__")}';
-var url_base = '${h.url("files_nodelist_home",repo_name="__REPO__",revision="__REVISION__",f_path="__FPATH__")}';
-fileBrowserListeners(current_url, node_list_url, url_base);
+var node_list_url = '${h.url("files_home",repo_name=c.repo_name,revision=c.changeset.raw_id,f_path=c.files_list.path)}';
+var url_base = '${h.url("files_nodelist_home",repo_name=c.repo_name,revision=c.changeset.raw_id,f_path=c.files_list.path)}';
+var truncated_lbl = "${_('search truncated')}";
+var nomatch_lbl = "${_('no matching files')}";
+fileBrowserListeners(current_url, node_list_url, url_base, truncated_lbl, nomatch_lbl);
 </script>
 </%def>
\ No newline at end of file