Files @ c1eda8ec4a46
Branch filter:

Location: kallithea/rhodecode/templates/admin/repos/repo_edit.html - annotation

Marcin Kuzminski
added clone_uri,api_key into models. Fixed models for mysql compatibilty
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
a1ec653f5f95
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
17721a2dfadb
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
52da7cba88a6
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
9c1ed03ef5db
52da7cba88a6
1e757ac98988
6d0a7284949d
6d0a7284949d
6d0a7284949d
6d0a7284949d
6d0a7284949d
6d0a7284949d
6d0a7284949d
6d0a7284949d
6d0a7284949d
6d0a7284949d
6d0a7284949d
6d0a7284949d
6d0a7284949d
6d0a7284949d
6d0a7284949d
6d0a7284949d
6d0a7284949d
6d0a7284949d
758f64f3fbda
758f64f3fbda
758f64f3fbda
758f64f3fbda
758f64f3fbda
52da7cba88a6
758f64f3fbda
6d0a7284949d
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
bd57d1cb9dc3
bd57d1cb9dc3
bd57d1cb9dc3
bd57d1cb9dc3
bd57d1cb9dc3
bd57d1cb9dc3
bd57d1cb9dc3
72f008ed9b18
72f008ed9b18
72f008ed9b18
72f008ed9b18
72f008ed9b18
72f008ed9b18
72f008ed9b18
72f008ed9b18
72f008ed9b18
1e757ac98988
136ad719d9e2
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
65129c332d37
65129c332d37
1e757ac98988
1e757ac98988
6b40654afa1e
6b40654afa1e
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
551c7d5ae89d
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
551c7d5ae89d
551c7d5ae89d
1e757ac98988
551c7d5ae89d
551c7d5ae89d
1e757ac98988
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
1e757ac98988
1e757ac98988
1e757ac98988
551c7d5ae89d
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
1e757ac98988
551c7d5ae89d
551c7d5ae89d
1e757ac98988
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
1e757ac98988
1e757ac98988
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
1e757ac98988
551c7d5ae89d
551c7d5ae89d
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
1e757ac98988
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
1e757ac98988
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
1e757ac98988
1e757ac98988
551c7d5ae89d
551c7d5ae89d
1e757ac98988
1e757ac98988
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
551c7d5ae89d
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
52da7cba88a6
52da7cba88a6
52da7cba88a6
52da7cba88a6
52da7cba88a6
52da7cba88a6
b9bbc0d6e9f3
b9bbc0d6e9f3
b9bbc0d6e9f3
b9bbc0d6e9f3
b9bbc0d6e9f3
b9bbc0d6e9f3
b9bbc0d6e9f3
b9bbc0d6e9f3
b9bbc0d6e9f3
b9bbc0d6e9f3
b9bbc0d6e9f3
b9bbc0d6e9f3
b9bbc0d6e9f3
b9bbc0d6e9f3
b9bbc0d6e9f3
b9bbc0d6e9f3
b9bbc0d6e9f3
b9bbc0d6e9f3
b9bbc0d6e9f3
b9bbc0d6e9f3
b9bbc0d6e9f3
b9bbc0d6e9f3
b9bbc0d6e9f3
b9bbc0d6e9f3
b9bbc0d6e9f3
52da7cba88a6
3fe3285868d1
3fe3285868d1
3fe3285868d1
3fe3285868d1
3fe3285868d1
3fe3285868d1
3fe3285868d1
3fe3285868d1
3fe3285868d1
3fe3285868d1
3fe3285868d1
3fe3285868d1
3fe3285868d1
52da7cba88a6
b9bbc0d6e9f3
b9bbc0d6e9f3
b9bbc0d6e9f3
b9bbc0d6e9f3
b9bbc0d6e9f3
b9bbc0d6e9f3
b9bbc0d6e9f3
b9bbc0d6e9f3
52da7cba88a6
52da7cba88a6
52da7cba88a6
52da7cba88a6
1e757ac98988
## -*- coding: utf-8 -*-
<%inherit file="/base/base.html"/>

<%def name="title()">
    ${_('Edit repository')} ${c.repo_info.repo_name} - ${c.rhodecode_name}
</%def>

<%def name="breadcrumbs_links()">
    ${h.link_to(_('Admin'),h.url('admin_home'))} 
    &raquo; 
    ${h.link_to(_('Repositories'),h.url('repos'))} 
    &raquo;
    ${_('edit')} &raquo; ${h.link_to(c.repo_name,h.url('summary_home',repo_name=c.repo_name))}
</%def>

<%def name="page_nav()">
	${self.menu('admin')}
</%def>

<%def name="main()">
<div class="box box-left">
    <!-- box / title -->
    <div class="title">
        ${self.breadcrumbs()}      
    </div>
    ${h.form(url('repo', repo_name=c.repo_info.repo_name),method='put')}
    <div class="form">
        <!-- fields -->
        <div class="fields">
            <div class="field">
                <div class="label">
                    <label for="repo_name">${_('Name')}:</label>
                </div>
                <div class="input">
                    ${h.text('repo_name',class_="medium")}
                </div>
           </div>
	       <div class="field">
	           <div class="label">
	               <label for="clone_uri">${_('Clone uri')}:</label>
	           </div>
	           <div class="input">
	               ${h.text('clone_uri',class_="small")}
	           </div>
	        </div>             
	        <div class="field">
	            <div class="label">
	                <label for="repo_group">${_('Repository group')}:</label>
	            </div>
	            <div class="input">
	                ${h.select('repo_group','',c.repo_groups,class_="medium")}
	            <span>${h.link_to(_('add new group'),h.url(''))}</span>
	            </div>
	        </div>         
            <div class="field">
                <div class="label">
                    <label for="repo_type">${_('Type')}:</label>
                </div>
                <div class="input">
                    ${h.select('repo_type','hg',c.backends,class_="medium")}
                </div>
            </div>             
            <div class="field">
                <div class="label label-textarea">
                    <label for="description">${_('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="private">${_('Private')}:</label>
                </div>
                <div class="checkboxes">
                    ${h.checkbox('private',value="True")}
                </div>
            </div>
            <div class="field">
                <div class="label label-checkbox">
                    <label for="enable_statistics">${_('Enable statistics')}:</label>
                </div>
                <div class="checkboxes">
                    ${h.checkbox('enable_statistics',value="True")}
                </div>
            </div>     
            <div class="field">
                <div class="label label-checkbox">
                    <label for="enable_downloads">${_('Enable downloads')}:</label>
                </div>
                <div class="checkboxes">
                    ${h.checkbox('enable_downloads',value="True")}
                </div>
            </div>                      
            <div class="field">
                <div class="label">
                    <label for="user">${_('Owner')}:</label>
                </div>
                <div class="input input-small ac">
                    <div class="perm_ac">
                       ${h.text('user',class_='yui-ac-input')}
                       <div id="owner_container"></div>
                    </div>
                </div>
             </div>                
             
            <div class="field">
                <div class="label">
                    <label for="input">${_('Permissions')}:</label>
                </div>
                <div class="input">
                    <%include file="repo_edit_perms.html"/>
                </div>
             
            <div class="buttons">
              ${h.submit('save','Save',class_="ui-button")}
              ${h.reset('reset','Reset',class_="ui-button")}
            </div>                                                          
        </div>
    </div>
    </div>    
    ${h.end_form()}
        <script type="text/javascript">
            YAHOO.util.Event.onDOMReady(function(){
                var D = YAHOO.util.Dom;
                if(!D.hasClass('perm_new_member_name','error')){
                    D.setStyle('add_perm_input','display','none');
                }
                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 myUsers = ${c.users_array|n};
        	var myGroups = ${c.users_groups_array|n};
            
            // Define a custom search function for the DataSource of users
            var matchUsers = function(sQuery) {
                // Case insensitive matching
                var query = sQuery.toLowerCase();
                var i=0;
                var l=myUsers.length;
                var matches = [];
                
                // Match against each name of each contact
                for(; i<l; i++) {
                    contact = myUsers[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;
            };

            // Define a custom search function for the DataSource of usersGroups
            var matchGroups = function(sQuery) {
                // Case insensitive matching
                var query = sQuery.toLowerCase();
                var i=0;
                var l=myGroups.length;
                var matches = [];
                
                // Match against each name of each contact
                for(; i<l; i++) {
                    matched_group = myGroups[i];
                    if(matched_group.grname.toLowerCase().indexOf(query) > -1) {
                        matches[matches.length] = matched_group;
                    }
                }
                return matches;
            };         
            
            //match all
            var matchAll = function(sQuery){
            	u = matchUsers(sQuery);
            	g = matchGroups(sQuery);
            	return u.concat(g);
            };
            
            // DataScheme for members
            var memberDS = new YAHOO.util.FunctionDataSource(matchAll);
            memberDS.responseSchema = {
                fields: ["id", "fname", "lname", "nname", "grname", "grmembers"]
            };

            // DataScheme for owner
            var ownerDS = new YAHOO.util.FunctionDataSource(matchUsers);
            ownerDS.responseSchema = {
                fields: ["id", "fname", "lname", "nname"]
            };          
            
            // Instantiate AutoComplete for perms
            var membersAC = new YAHOO.widget.AutoComplete("perm_new_member_name", "perm_container", memberDS);
            membersAC.useShadow = false;
            membersAC.resultTypeList = false;
            
            // Instantiate AutoComplete for owner
            var ownerAC = new YAHOO.widget.AutoComplete("user", "owner_container", ownerDS);
            ownerAC.useShadow = false;
            ownerAC.resultTypeList = false;
            

            // Helper highlight 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);
            };
            
            // Custom formatter to highlight the matching letters
            var custom_formatter = function(oResultData, sQuery, sResultMatch) {
            	var query = sQuery.toLowerCase();
            	
            	if (oResultData.grname != undefined){
            		var grname = oResultData.grname;
            		var grmembers = oResultData.grmembers;
            		var grnameMatchIndex = grname.toLowerCase().indexOf(query);
            		var grprefix = "${_('Group')}: ";
            		var grsuffix = " ("+grmembers+"  ${_('members')})";
            		
            		if (grnameMatchIndex > -1){
            			return grprefix+highlightMatch(grname,query,grnameMatchIndex)+grsuffix;
            		}
            		
            		return grprefix+oResultData.grname+grsuffix;
            	}
            	else if(oResultData.fname != undefined){
	                
	                var fname = oResultData.fname,
	                    lname = oResultData.lname,
	                    nname = oResultData.nname || "", // Guard against null value
	                    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;
            	}
            	else{
            		return '';
            	}
            };
            membersAC.formatResult = custom_formatter; 
            ownerAC.formatResult = custom_formatter;
                            
            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
                
                //fill the autocomplete with value
                if(oData.nname != undefined){
                	//users
                	myAC.getInputEl().value = oData.nname;
                	YUD.get('perm_new_member_type').value = 'user';
                }
                else{
                	//groups
                	myAC.getInputEl().value = oData.grname;
                	YUD.get('perm_new_member_type').value = 'users_group';
                }
                
            };

            membersAC.itemSelectEvent.subscribe(myHandler);
            ownerAC.itemSelectEvent.subscribe(myHandler);
            
            return {
                memberDS: memberDS,
                ownerDS:  ownerDS,
                membersAC: membersAC,
                ownerAC: ownerAC, 
            };
        }();
            
        </script>      

</div>

<div class="box box-right">
    <div class="title">
        <h5>${_('Administration')}</h5>    
    </div>
    
        <h3>${_('Statistics')}</h3>
        
        ${h.form(url('repo_stats', repo_name=c.repo_info.repo_name),method='delete')}
        <div class="form">
           <div class="fields">
               ${h.submit('reset_stats_%s' % c.repo_info.repo_name,_('Reset current statistics'),class_="refresh_icon action_button",onclick="return confirm('Confirm to remove current statistics');")}
               <div class="field">
               <ul>
                    <li>${_('Fetched to rev')}: ${c.stats_revision}/${c.repo_last_rev}</li>
                    <li>${_('Percentage of stats gathered')}: ${c.stats_percentage} %</li>
               </ul>
               </div>
               
           </div>
        </div>                    
        ${h.end_form()}
        
        <h3>${_('Cache')}</h3>
        ${h.form(url('repo_cache', repo_name=c.repo_info.repo_name),method='delete')}
        <div class="form">
           <div class="fields">
               ${h.submit('reset_cache_%s' % c.repo_info.repo_name,_('Invalidate repository cache'),class_="refresh_icon action_button",onclick="return confirm('Confirm to invalidate repository cache');")}
           </div>
        </div>                    
        ${h.end_form()}
        
        <h3>${_('Public journal')}</h3>
        ${h.form(url('repo_public_journal', repo_name=c.repo_info.repo_name),method='put')}
        <div class="form">
            <div class="fields">
                ${h.hidden('auth_token',str(h.get_token()))}
                %if c.in_public_journal:
                    ${h.submit('set_public_%s' % c.repo_info.repo_name,_('Remove from public journal'),class_="stop_following_icon action_button")}
                %else:
		            ${h.submit('set_public_%s' % c.repo_info.repo_name,_('Add to public journal'),class_="start_following_icon action_button")}
		        %endif
	         </div>        
        </div>
        ${h.end_form()}
        
        <h3>${_('Delete')}</h3>
        ${h.form(url('repo', repo_name=c.repo_info.repo_name),method='delete')}
        <div class="form">
           <div class="fields">
               ${h.submit('remove_%s' % c.repo_info.repo_name,_('Remove this repository'),class_="delete_icon action_button",onclick="return confirm('Confirm to delete this repository');")}
           </div>
        </div>                    
        ${h.end_form()}
    
</div>


</%def>