Changeset 44
- Timestamp:
- 2008年08月25日 18时27分15秒 (4 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 6 modified
-
README.txt (modified) (1 diff)
-
development.ini (modified) (1 diff)
-
pysvnmanager/controllers/repos.py (modified) (7 diffs)
-
pysvnmanager/model/repos.py (modified) (2 diffs)
-
pysvnmanager/templates/repos/create.mako (added)
-
pysvnmanager/templates/repos/hooks.mako (modified) (7 diffs)
-
pysvnmanager/templates/repos/remove.mako (added)
-
setup.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/README.txt
r4 r44 18 18 19 19 Then you are ready to go. 20 21 Installation from Source code 22 ============================= 23 24 Check source code from sourceforge.net:: 25 26 svn co https://sourceforge.net/projects/pysvnmanager/trunk pysvnmanager 27 28 Make a config file as follows:: 29 30 cd pysvnmanager/config 31 make 32 33 Compile l18n messages:: 34 35 cd pysvnmanager 36 python setup.py compile_catalog 37 38 Start web service:: 39 40 paster serve --reload develogment.ini 41 42 -
trunk/development.ini
r41 r44 78 78 [logger_pysvnmanager] 79 79 level = DEBUG 80 handlers = 80 handlers = console 81 81 qualname = pysvnmanager 82 82 -
trunk/pysvnmanager/controllers/repos.py
r43 r44 6 6 from pysvnmanager.model import repos as _repos 7 7 from pysvnmanager.model import hooks as _hooks 8 9 8 10 9 log = logging.getLogger(__name__) … … 33 32 34 33 def init_repos_list(self): 34 filter = request.params.get('filter') 35 35 total = 0; 36 36 msg = '' … … 41 41 total += 1; 42 42 for reposname in self.repos_list: 43 if filter=='blank' and not self.repos.is_blank_svn_repos(reposname): 44 continue 43 45 msg += 'id[%d]="%s";' % (total, reposname) 44 46 msg += 'name[%d]="%s";\n' % (total, reposname) 45 47 total += 1; 46 48 msg += 'total=%d;\n' % total 47 msg += 'revision="%s";\n' % self.authz.version48 49 return msg 49 50 50 51 def get_plugin_list(self): 51 reposname = request.params.get('select') 52 reposname = request.params.get('select') 52 53 h = _hooks.Hooks(self.repos_root + reposname) 53 54 total = 0; … … 67 68 68 69 def get_remove_hook_form_content(self): 69 reposname = request.params.get('select') 70 reposname = request.params.get('select') 70 71 h = _hooks.Hooks(self.repos_root + reposname) 71 72 msg = '' 72 73 if len(h.applied_plugins) > 0: 73 msg += "Installed hooks:"74 msg += _("Installed hooks:") 74 75 msg += "<br>\n" 75 76 num = 0 … … 85 86 msg += ' - %(detail)s' % { 'detail': detail, } 86 87 msg += '<br>\n' 87 msg += '<input type="submit" name="remove_hook" value=" Remove selected hooks">\n'88 msg += '<input type="submit" name="remove_hook" value="%s">\n' % _("Remove selected hooks") 88 89 89 90 return msg … … 105 106 plugin.set_plugin(d) 106 107 except Exception, e: 107 result = "Apply plugin '%(plugin)s on '%(repos)s' Failed. Error message:<br>\n%(msg)s"% {108 result = _("Apply plugin '%(plugin)s on '%(repos)s' Failed. Error message:<br>\n%(msg)s") % { 108 109 "plugin": pluginname, "repos":reposname, "msg": e} 109 110 else: 110 result = "Apply plugin '%(plugin)s on '%(repos)s' success."% {111 result = _("Apply plugin '%(plugin)s on '%(repos)s' success.") % { 111 112 "plugin": pluginname, "repos":reposname} 112 113 return result … … 123 124 plugin.delete_plugin() 124 125 except Exception, e: 125 result = "Delete plugin '%(plugin)s on '%(repos)s' Failed. Error message:<br>\n%(msg)s"% {126 result = _("Delete plugin '%(plugin)s on '%(repos)s' Failed. Error message:<br>\n%(msg)s") % { 126 127 "plugin": pluginname, "repos":reposname, "msg": e} 127 128 else: 128 result = "Delete plugin '%(plugin)s on '%(repos)s' success."% {129 result = _("Delete plugin '%(plugin)s on '%(repos)s' success.") % { 129 130 "plugin": pluginname, "repos":reposname} 130 131 return result 131 132 133 def create_submit(self): 134 try: 135 d = request.params 136 reposname = d.get("reposname") 137 self.repos.create(reposname) 138 except Exception, e: 139 result = _("Create repository '%(repos)s' Failed. Error message:<br>\n%(msg)s") % { 140 "repos":reposname, "msg": e} 141 else: 142 result = _("Create repository '%(repos)s' success.") % {"repos":reposname} 143 return result 144 132 145 def create(self): 133 146 return render('/repos/create.mako') 134 147 148 149 def remove_submit(self): 150 try: 151 d = request.params 152 reposname = d.get("repos_list") 153 self.repos.delete(reposname) 154 except Exception, e: 155 result = _("Delete repository '%(repos)s' Failed. Error message:<br>\n%(msg)s") % { 156 "repos":reposname, "msg": e} 157 else: 158 result = _("Delete blank repository '%(repos)s' success.") % {"repos":reposname} 159 return result 160 135 161 def remove(self): 136 162 return render('/repos/remove.mako') -
trunk/pysvnmanager/model/repos.py
r42 r44 60 60 61 61 def create(self, repos_name): 62 repos_name = repos_name.strip() 63 assert repos_name != "" 64 62 65 repos_path = "%(root)s/%(entry)s" % { "root": self.repos_root, "entry": repos_name} 63 66 if os.path.exists(repos_path): … … 122 125 123 126 def delete(self, repos_name): 127 repos_name = repos_name.strip() 128 assert repos_name != "" 124 129 repos_path = "%(root)s/%(entry)s" % { "root": self.repos_root, "entry": repos_name} 125 130 if os.path.exists(repos_path): 126 131 if self.is_blank_svn_repos(repos_name): 127 132 from svn import repos as _repos 128 _repos.delete(repos_path) 129 else: 130 raise Exception, _("Repos %s is not a blank repository.") % repos_name 133 return _repos.delete(repos_path) 134 135 raise Exception, _("Repos %s is not a blank repository.") % repos_name 136 131 137 132 138 -
trunk/pysvnmanager/templates/repos/hooks.mako
r43 r44 44 44 var name = new Array(); 45 45 var total = 0; 46 var revision = '';47 46 48 47 repos_list = document.main_form.repos_list; … … 55 54 repos_list.options[i] = new Option(name[i], id[i]); 56 55 } 57 document.main_form.revision.value = revision;58 56 } 59 57 catch(exception) { … … 68 66 var name = document.main_form.repos_list.value; 69 67 var params = {select:name}; 70 var revision = '';71 68 72 69 if (name=='...'||name=='') … … 193 190 194 191 <form name="main_form" method="post"> 195 <input type="hidden" name="revision" value="${c.revision}">196 192 <DIV style="position:relative;" class=gainlayout> 197 193 … … 200 196 <select name="repos_list" size="1" onChange='repos_changed()'> 201 197 </select> 202 <a href="#" onclick='#'>[+${_("Add repository")}]</a> 203 <a href="#" onclick='#'>[-${_("Remove repository")}]</a> 198 ${h.link_to(_("Add repository"), h.url(action="create"))} 199 ${h.link_to(_("Remove repository"), h.url(action="remove"))} 200 ##<a href="#" onclick='#'>[+${_("Add repository")}]</a> 201 ##<a href="#" onclick='#'>[-${_("Remove repository")}]</a> 204 202 </DIV> 205 203 … … 218 216 html={'id':'apply_new_hook_form'}, 219 217 url=h.url(action='apply_new_hook'), 220 update= dict(success="message", failure="message"),218 update="message", 221 219 method='post', before='apply_new_hook_form_submit(this); showNoticesPopup()', 222 220 complete='hideNoticesPopup();switch_message_box();repos_changed()', … … 241 239 html={'id':'remove_hook_form'}, 242 240 url=h.url(action='remove_hook'), 243 update= dict(success="message", failure="message"),241 update="message", 244 242 method='post', before='remove_hook_form_submit(this); showNoticesPopup()', 245 243 complete='hideNoticesPopup();switch_message_box();repos_changed()', -
trunk/setup.py
r37 r44 8 8 setup( 9 9 name='pySvnManager', 10 version="0. 1.3",10 version="0.2.0", 11 11 description='SVN authz web management tools.', 12 12 author='Jiang Xin',
![(please configure the [header_logo] section in trac.ini)](/trac/pysvnmanager/chrome/common/trac_banner.png)