Mercurial > kallithea
view pylons_app/templates/settings/repo_settings.html @ 367:a26f48ad7a8a
fixes issue #16 reimplementation of database repository, for using generic pk instead of repo naming as pk. Which caused to many problems.
Fixed issue when redirecting after repo name change to 404.
Removed update hook from basic app setup
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Tue, 27 Jul 2010 14:53:22 +0200 |
parents | 0f35fa0f4eb8 |
children | f5c1eec9f376 |
line wrap: on
line source
## -*- coding: utf-8 -*- <%inherit file="/base/base.html"/> <%def name="title()"> ${_('Repositories administration')} </%def> <%def name="breadcrumbs_links()"> ${h.link_to(c.repo_info.repo_name,h.url('summary_home',repo_name=c.repo_info.repo_name))} » ${_('Settings')} </%def> <%def name="page_nav()"> ${self.menu('settings')} </%def> <%def name="main()"> <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="repo_name">${_('Name')}:</label> </div> <div class="input input-medium"> ${h.text('repo_name')} </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 for="">${_('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="4"> <span class="private_repo_msg"> ${_('private repository')} </span> </td> <td class="private_repo_msg">${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);},failure:function(o){ alert("${_('Failed to remove user')}");},}; 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"> <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; if(!D.hasClass('perm_new_user_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 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>