diff pylons_app/templates/settings/repo_settings.html @ 362:558eb7c5028f rhodecode-0.0.0.8.0

version bump to 0.8 hg app 0.8 new template. Add yui flot and graph into summary page. + various tweeks and patches into look of application
author Marcin Kuzminski <marcin@python-works.com>
date Sat, 24 Jul 2010 02:17:48 +0200
parents 05b212954275
children 0f35fa0f4eb8
line wrap: on
line diff
--- a/pylons_app/templates/settings/repo_settings.html	Sat Jul 24 00:53:43 2010 +0200
+++ b/pylons_app/templates/settings/repo_settings.html	Sat Jul 24 02:17:48 2010 +0200
@@ -2,239 +2,256 @@
 <%inherit file="/base/base.html"/>
 
 <%def name="title()">
-    ${_('Repository settings')}
+    ${_('Repositories administration')}
 </%def>
-<%def name="breadcrumbs()">
-    ${h.link_to(u'Home',h.url('/'))}
-    / 
-    ${h.link_to(c.repo_name,h.url('shortlog_home',repo_name=c.repo_name))}
-    /
-    ${_('settings')}
+
+<%def name="breadcrumbs_links()">
+    ${h.link_to(c.repo_info.repo_name,h.url('summary_home',repo_name=c.repo_info.repo_name))} 
+    &raquo; 
+    ${_('Settings')} 
+    
 </%def>
 <%def name="page_nav()">
-	${self.menu('settings')}     
+    ${self.menu('settings')}
 </%def>
 <%def name="main()">
-	<h2 class="no-link no-border">${_('Settings')}</h2>
-	<div>
-        ${h.form(url('repo_settings_update', repo_name=c.repo_info.repo_name),method='put')}
-        <table>
-        	<tr>
-        		<td>${_('Name')}</td>
-        		<td>${h.text('repo_name',size="28")}</td>
-        		<td>${self.get_form_error('repo_name')}</td>
-        	</tr>
-        	<tr>
-        		<td>${_('Description')}</td>
-        		<td>${h.textarea('description',cols=32,rows=5)}</td>
-        		<td>${self.get_form_error('description')}</td>
-        	</tr>
-        	<tr>
-        		<td>${_('Private')}</td>
-        		<td>${h.checkbox('private',value="True")}</td>
-        		<td>${self.get_form_error('private')}</td>
-        	</tr>
-        	<tr>
-        		<td>${_('Permissions')}</td>
-        		<td>
-        			<table>
-        				<tr>
-        					<td>${_('none')}</td>
-        					<td>${_('read')}</td>
-        					<td>${_('write')}</td>
-        					<td>${_('admin')}</td>
-        					<td>${_('user')}</td>
-        				</tr>
-        				
-        				%for r2p in c.repo_info.repo2perm:
-        					%if r2p.user.username =='default' and c.repo_info.private:
-        						<tr>
-									<td colspan="4">
-										<span style="font-size: 0.8em">${_('disabled for private repository')}</span></td>
-									<td>${r2p.user.username}</td>
-								</tr>
-							%else:
-	        				<tr id=${id(r2p.user.username)}>
-	        					<td>${h.radio('perm_%s' % r2p.user.username,'repository.none')}</td>
-	        					<td>${h.radio('perm_%s' % r2p.user.username,'repository.read')}</td>
-	        					<td>${h.radio('perm_%s' % r2p.user.username,'repository.write')}</td>
-	        					<td>${h.radio('perm_%s' % r2p.user.username,'repository.admin')}</td>
-	        					<td>${r2p.user.username}</td>
-	        					<td>
-	        					  %if r2p.user.username !='default':
-				                  	<span class="delete_icon action_button" onclick="ajaxAction(${r2p.user.user_id},${id(r2p.user.username)})">
-				                  		<script type="text/javascript">
-											function ajaxAction(user_id,field_id){
-												var sUrl = "${h.url('delete_repo_user',repo_name=c.repo_name)}";
-												var callback = { success:function(o){
-																YAHOO.util.Dom.get(String(field_id)).innerHTML = '<td colspan="6"></td>';
-															 }};
-												var postData = '_method=delete&user_id='+user_id; 
-												var request = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData); 
-						                	};
-										</script>       	
-				                  	</span>
-				                  %endif					
-	        					</td>
-	        				</tr>
-	        				%endif
-						%endfor
-						<%
-							if not hasattr(c,'form_errors'):
-								d = 'display:none;'
-							else:
-								d=''
-						%>
+<div class="box">
+    <!-- box / title -->
+    <div class="title">
+        ${self.breadcrumbs()}      
+    </div>
+    ${h.form(url('repo_settings_update', repo_name=c.repo_info.repo_name),method='put')}
+    <div class="form">
+        <!-- fields -->
+        <div class="fields">
+            <div class="field">
+                <div class="label">
+                    <label for="input-medium">${_('Name')}:</label>
+                </div>
+                <div class="input">
+                    ${h.text('repo_name')}
+                </div>
+             </div>
+             
+            <div class="field">
+                <div class="label label-textarea">
+                    <label for="input-small">${_('Description')}:</label>
+                </div>
+                <div class="textarea text-area editor">
+                    ${h.textarea('description',cols=23,rows=5)}
+                </div>
+            </div>
+            
+            <div class="field">
+                <div class="label label-checkbox">
+                    <label for="input-small">${_('Private')}:</label>
+                </div>
+                <div class="checkboxes">
+                    ${h.checkbox('private',value="True")}
+                </div>
+            </div>
+             
+             <div class="field">
+                <div class="label">
+                    <label for="input-small">${_('Permissions')}:</label>
+                </div>
+                <div class="input">
+                    <table id="permissions_manage">
+                        <tr>
+                            <td>${_('none')}</td>
+                            <td>${_('read')}</td>
+                            <td>${_('write')}</td>
+                            <td>${_('admin')}</td>
+                            <td>${_('user')}</td>
+                            <td></td>
+                        </tr>
+                        
+                        %for r2p in c.repo_info.repo2perm:
+                            %if r2p.user.username =='default' and c.repo_info.private:
+                                <tr>
+                                    <td colspan="6">
+                                        <span class="private_repo_msg">
+                                        ${_('disabled for private repository')}
+                                        </span>
+                                    </td>
+                                    <td>${r2p.user.username}</td>
+                                </tr>
+                            %else:
+                            <tr id="id${id(r2p.user.username)}">
+                                <td>${h.radio('perm_%s' % r2p.user.username,'repository.none')}</td>
+                                <td>${h.radio('perm_%s' % r2p.user.username,'repository.read')}</td>
+                                <td>${h.radio('perm_%s' % r2p.user.username,'repository.write')}</td>
+                                <td>${h.radio('perm_%s' % r2p.user.username,'repository.admin')}</td>
+                                <td>${r2p.user.username}</td>
+                                <td>
+                                  %if r2p.user.username !='default':
+                                    <span class="delete_icon action_button" onclick="ajaxAction(${r2p.user.user_id},'${'id%s'%id(r2p.user.username)}')">
+                                        <script type="text/javascript">
+                                            function ajaxAction(user_id,field_id){
+                                                var sUrl = "${h.url('delete_repo_user',repo_name=c.repo_name)}";
+                                                var callback = { success:function(o){
+                                                var tr = YAHOO.util.Dom.get(String(field_id));
+                                                tr.parentNode.removeChild(tr);}};
+                                                var postData = '_method=delete&user_id='+user_id; 
+                                                var request = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData);};
+                                        </script>           
+                                    </span>
+                                  %endif                    
+                                </td>
+                            </tr>
+                            %endif
+                        %endfor
 
-        				<tr id="add_perm_input" style="${d}">
-        					<td>${h.radio('perm_new_user','repository.none')}</td>
-        					<td>${h.radio('perm_new_user','repository.read')}</td>
-        					<td>${h.radio('perm_new_user','repository.write')}</td>
-        					<td>${h.radio('perm_new_user','repository.admin')}</td>
-        					<td class='ac'>
-        						<div id="perm_ac">
-        							${h.text('perm_new_user_name',class_='yui-ac-input')}
-									<div id="perm_container"></div>
-        						</div>
-        					</td>
-        					<td>${self.get_form_error('perm_new_user_name')}</td>     					
-        				</tr>
-        				<tr>
-        					<td colspan="4">
-        						<span id="add_perm" class="add_icon" style="cursor: pointer;">
-        						${_('Add another user')}
-        						</span>
-        					</td>
-        				</tr>
-        			</table>
-        		</td>
-        		
-        	</tr>
-        	<tr>
-        		<td></td>
-        		<td>${h.submit('update','update')}</td>
-        	</tr>
-        	        	        	
-        </table>
-        ${h.end_form()}
+
+                        <tr id="add_perm_input">
+                            <td>${h.radio('perm_new_user','repository.none')}</td>
+                            <td>${h.radio('perm_new_user','repository.read')}</td>
+                            <td>${h.radio('perm_new_user','repository.write')}</td>
+                            <td>${h.radio('perm_new_user','repository.admin')}</td>
+                            <td class='ac'>
+                                <div class="perm_ac" id="perm_ac">
+                                    ${h.text('perm_new_user_name',class_='yui-ac-input')}
+                                    <div id="perm_container"></div>
+                                </div>
+                            </td>
+                            <td></td>
+                        </tr>
+                        <tr>
+                            <td colspan="6">
+                                <span id="add_perm" class="add_icon" style="cursor: pointer;">
+                                ${_('Add another user')}
+                                </span>
+                            </td>
+                        </tr>
+                    </table>             
+             </div>
+             
+            <div class="buttons">
+              ${h.submit('update','update',class_="ui-button ui-widget ui-state-default ui-corner-all")}
+            </div>                                                          
+        </div>
+    </div>    
+    ${h.end_form()}
         <script type="text/javascript">
-        	YAHOO.util.Event.onDOMReady(function(){
-				var D = YAHOO.util.Dom;
-				YAHOO.util.Event.addListener('add_perm','click',function(){
-					D.setStyle('add_perm_input','display','');
-					D.setStyle('add_perm','opacity','0.6');
-					D.setStyle('add_perm','cursor','default');
-				});
+            YAHOO.util.Event.onDOMReady(function(){
+                var D = YAHOO.util.Dom;
+                YAHOO.util.Event.addListener('add_perm','click',function(){
+                    D.setStyle('add_perm_input','display','');
+                    D.setStyle('add_perm','opacity','0.6');
+                    D.setStyle('add_perm','cursor','default');
+                });
             });
         </script>
-		<script type="text/javascript">    
-		YAHOO.example.FnMultipleFields = function(){
-		    var myContacts = ${c.users_array|n}
-		    
-		    // Define a custom search function for the DataSource
-		    var matchNames = function(sQuery) {
-		        // Case insensitive matching
-		        var query = sQuery.toLowerCase(),
-		            contact,
-		            i=0,
-		            l=myContacts.length,
-		            matches = [];
-		        
-		        // Match against each name of each contact
-		        for(; i<l; i++) {
-		            contact = myContacts[i];
-		            if((contact.fname.toLowerCase().indexOf(query) > -1) ||
-		                (contact.lname.toLowerCase().indexOf(query) > -1) ||
-		                (contact.nname && (contact.nname.toLowerCase().indexOf(query) > -1))) {
-		                matches[matches.length] = contact;
-		            }
-		        }
-		
-		        return matches;
-		    };
-		
-		    // Use a FunctionDataSource
-		    var oDS = new YAHOO.util.FunctionDataSource(matchNames);
-		    oDS.responseSchema = {
-		        fields: ["id", "fname", "lname", "nname"]
-		    }
-		
-		    // Instantiate AutoComplete for perms
-		    var oAC_perms = new YAHOO.widget.AutoComplete("perm_new_user_name", "perm_container", oDS);
-		    oAC_perms.useShadow = false;
-		    oAC_perms.resultTypeList = false;
-		    
-		    // Instantiate AutoComplete for owner
-		 	var oAC_owner = new YAHOO.widget.AutoComplete("user", "owner_container", oDS);
-		 	oAC_owner.useShadow = false;
-		 	oAC_owner.resultTypeList = false;
-		    
-		    
-		    // Custom formatter to highlight the matching letters
-		    var custom_formatter = function(oResultData, sQuery, sResultMatch) {
-		        var query = sQuery.toLowerCase(),
-		            fname = oResultData.fname,
-		            lname = oResultData.lname,
-		            nname = oResultData.nname || "", // Guard against null value
-		            query = sQuery.toLowerCase(),
-		            fnameMatchIndex = fname.toLowerCase().indexOf(query),
-		            lnameMatchIndex = lname.toLowerCase().indexOf(query),
-		            nnameMatchIndex = nname.toLowerCase().indexOf(query),
-		            displayfname, displaylname, displaynname;
-		            
-		        if(fnameMatchIndex > -1) {
-		            displayfname = highlightMatch(fname, query, fnameMatchIndex);
-		        }
-		        else {
-		            displayfname = fname;
-		        }
-		
-		        if(lnameMatchIndex > -1) {
-		            displaylname = highlightMatch(lname, query, lnameMatchIndex);
-		        }
-		        else {
-		            displaylname = lname;
-		        }
-		
-		        if(nnameMatchIndex > -1) {
-		            displaynname = "(" + highlightMatch(nname, query, nnameMatchIndex) + ")";
-		        }
-		        else {
-		            displaynname = nname ? "(" + nname + ")" : "";
-		        }
-		
-		        return displayfname + " " + displaylname + " " + displaynname;
-		        
-		    };
-		    oAC_perms.formatResult = custom_formatter; 
-		    oAC_owner.formatResult = custom_formatter;
-		    			    
-		    // Helper function for the formatter
-		    var highlightMatch = function(full, snippet, matchindex) {
-		        return full.substring(0, matchindex) + 
-		                "<span class='match'>" + 
-		                full.substr(matchindex, snippet.length) + 
-		                "</span>" +
-		                full.substring(matchindex + snippet.length);
-		    };
-		
-		    var myHandler = function(sType, aArgs) {
-		        var myAC = aArgs[0]; // reference back to the AC instance
-		        var elLI = aArgs[1]; // reference to the selected LI element
-		        var oData = aArgs[2]; // object literal of selected item's result data
-		        myAC.getInputEl().value = oData.nname;
-		    };
+        <script type="text/javascript">    
+        YAHOO.example.FnMultipleFields = function(){
+            var myContacts = ${c.users_array|n}
+            
+            // Define a custom search function for the DataSource
+            var matchNames = function(sQuery) {
+                // Case insensitive matching
+                var query = sQuery.toLowerCase(),
+                    contact,
+                    i=0,
+                    l=myContacts.length,
+                    matches = [];
+                
+                // Match against each name of each contact
+                for(; i<l; i++) {
+                    contact = myContacts[i];
+                    if((contact.fname.toLowerCase().indexOf(query) > -1) ||
+                        (contact.lname.toLowerCase().indexOf(query) > -1) ||
+                        (contact.nname && (contact.nname.toLowerCase().indexOf(query) > -1))) {
+                        matches[matches.length] = contact;
+                    }
+                }
+        
+                return matches;
+            };
+        
+            // Use a FunctionDataSource
+            var oDS = new YAHOO.util.FunctionDataSource(matchNames);
+            oDS.responseSchema = {
+                fields: ["id", "fname", "lname", "nname"]
+            }
+        
+            // Instantiate AutoComplete for perms
+            var oAC_perms = new YAHOO.widget.AutoComplete("perm_new_user_name", "perm_container", oDS);
+            oAC_perms.useShadow = false;
+            oAC_perms.resultTypeList = false;
+            
+            // Instantiate AutoComplete for owner
+            var oAC_owner = new YAHOO.widget.AutoComplete("user", "owner_container", oDS);
+            oAC_owner.useShadow = false;
+            oAC_owner.resultTypeList = false;
+            
+            
+            // Custom formatter to highlight the matching letters
+            var custom_formatter = function(oResultData, sQuery, sResultMatch) {
+                var query = sQuery.toLowerCase(),
+                    fname = oResultData.fname,
+                    lname = oResultData.lname,
+                    nname = oResultData.nname || "", // Guard against null value
+                    query = sQuery.toLowerCase(),
+                    fnameMatchIndex = fname.toLowerCase().indexOf(query),
+                    lnameMatchIndex = lname.toLowerCase().indexOf(query),
+                    nnameMatchIndex = nname.toLowerCase().indexOf(query),
+                    displayfname, displaylname, displaynname;
+                    
+                if(fnameMatchIndex > -1) {
+                    displayfname = highlightMatch(fname, query, fnameMatchIndex);
+                }
+                else {
+                    displayfname = fname;
+                }
+        
+                if(lnameMatchIndex > -1) {
+                    displaylname = highlightMatch(lname, query, lnameMatchIndex);
+                }
+                else {
+                    displaylname = lname;
+                }
+        
+                if(nnameMatchIndex > -1) {
+                    displaynname = "(" + highlightMatch(nname, query, nnameMatchIndex) + ")";
+                }
+                else {
+                    displaynname = nname ? "(" + nname + ")" : "";
+                }
+        
+                return displayfname + " " + displaylname + " " + displaynname;
+                
+            };
+            oAC_perms.formatResult = custom_formatter; 
+            oAC_owner.formatResult = custom_formatter;
+                            
+            // Helper function for the formatter
+            var highlightMatch = function(full, snippet, matchindex) {
+                return full.substring(0, matchindex) + 
+                        "<span class='match'>" + 
+                        full.substr(matchindex, snippet.length) + 
+                        "</span>" +
+                        full.substring(matchindex + snippet.length);
+            };
+        
+            var myHandler = function(sType, aArgs) {
+                var myAC = aArgs[0]; // reference back to the AC instance
+                var elLI = aArgs[1]; // reference to the selected LI element
+                var oData = aArgs[2]; // object literal of selected item's result data
+                myAC.getInputEl().value = oData.nname;
+            };
 
-		    oAC_perms.itemSelectEvent.subscribe(myHandler);
-		    oAC_owner.itemSelectEvent.subscribe(myHandler);
-		    
-		    return {
-		        oDS: oDS,
-		        oAC_perms: oAC_perms,
-		        oAC_owner: oAC_owner, 
-		    };
-		}();
-		    
-		</script>        
-    </div>
-</%def>   
+            oAC_perms.itemSelectEvent.subscribe(myHandler);
+            //oAC_owner.itemSelectEvent.subscribe(myHandler);
+            
+            return {
+                oDS: oDS,
+                oAC_perms: oAC_perms,
+                oAC_owner: oAC_owner, 
+            };
+        }();
+            
+        </script>      
+</div>
+</%def> 
+       
+