changeset 999:1951c35483ab beta

fixed following js snipet. It' can be called multiple times now next to each repository added helper method for checking if user is following repository
author Marcin Kuzminski <marcin@python-works.com>
date Sat, 05 Feb 2011 23:58:37 +0100
parents b79e720bac0c
children 229437211bef
files rhodecode/lib/helpers.py rhodecode/model/scm.py rhodecode/templates/base/base.html rhodecode/templates/summary/summary.html
diffstat 4 files changed, 13 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/rhodecode/lib/helpers.py	Fri Feb 04 17:47:02 2011 +0100
+++ b/rhodecode/lib/helpers.py	Sat Feb 05 23:58:37 2011 +0100
@@ -387,6 +387,10 @@
     return cs
 
 
+def is_following_repo(repo_name, user_id):
+    from rhodecode.model.scm import ScmModel
+    return ScmModel().is_following_repo(repo_name, user_id)
+
 flash = _Flash()
 
 
--- a/rhodecode/model/scm.py	Fri Feb 04 17:47:02 2011 +0100
+++ b/rhodecode/model/scm.py	Sat Feb 05 23:58:37 2011 +0100
@@ -319,7 +319,7 @@
             self.sa.rollback()
             raise
 
-    def is_following_repo(self, repo_name, user_id):
+    def is_following_repo(self, repo_name, user_id, cache=False):
         r = self.sa.query(Repository)\
             .filter(Repository.repo_name == repo_name).scalar()
 
@@ -329,7 +329,7 @@
 
         return f is not None
 
-    def is_following_user(self, username, user_id):
+    def is_following_user(self, username, user_id, cache=False):
         u = UserModel(self.sa).get_by_username(username)
 
         f = self.sa.query(UserFollowing)\
--- a/rhodecode/templates/base/base.html	Fri Feb 04 17:47:02 2011 +0100
+++ b/rhodecode/templates/base/base.html	Sat Feb 05 23:58:37 2011 +0100
@@ -348,9 +348,9 @@
 var YUD = YAHOO.util.Dom;
 var YUE = YAHOO.util.Event;
 
-function onSuccess(){
+function onSuccess(target){
 	
-	var f = YUD.get('follow_toggle');
+	var f = YUD.get(target.id);
     if(f.getAttribute('class')=='follow'){
         f.setAttribute('class','following');
         f.setAttribute('title',"${_('Stop following this repository')}");
@@ -371,12 +371,13 @@
     },args); return false;
 }
 
-function toggleFollowingRepo(fallows_repo_id,token){
+function toggleFollowingRepo(target,fallows_repo_id,token){
+
     args = 'follows_repo_id='+fallows_repo_id;
     args+= '&amp;auth_token='+token;
     YUC.asyncRequest('POST',base_url,{
         success:function(o){
-        	onSuccess();
+        	onSuccess(target);
         }
     },args); return false;
 }    
--- a/rhodecode/templates/summary/summary.html	Fri Feb 04 17:47:02 2011 +0100
+++ b/rhodecode/templates/summary/summary.html	Sat Feb 05 23:58:37 2011 +0100
@@ -47,11 +47,11 @@
 			      %if c.rhodecode_user.username != 'default':
 				      %if c.following:
 	                  <span id="follow_toggle" class="following" title="${_('Stop following this repository')}"
-	                        onclick="javascript:toggleFollowingRepo(${c.repo_info.dbrepo.repo_id},'${str(h.get_token())}')">
+	                        onclick="javascript:toggleFollowingRepo(this,${c.repo_info.dbrepo.repo_id},'${str(h.get_token())}')">
 	                  </span>			      
 				      %else:
 				      <span id="follow_toggle" class="follow" title="${_('Start following this repository')}"
-				            onclick="javascript:toggleFollowingRepo(${c.repo_info.dbrepo.repo_id},'${str(h.get_token())}')">
+				            onclick="javascript:toggleFollowingRepo(this,${c.repo_info.dbrepo.repo_id},'${str(h.get_token())}')">
 				      </span>
 				      %endif
 				  %endif: