Changeset 43

Show
Ignore:
Timestamp:
2008年08月25日 18时25分09秒 (4 years ago)
Author:
jiangx
Message:

See #9: add controller/view for svn plugin management.

Location:
trunk/pysvnmanager
Files:
4 added
7 modified

Legend:

Unmodified
Added
Removed
  • trunk/pysvnmanager/hooks/plugins/__init__.py

    r42 r43  
    9090        return self.description 
    9191     
     92    detail = property(show) 
     93     
    9294    def show_form(self): 
    9395        return self.description 
  • trunk/pysvnmanager/model/hooks.py

    r42 r43  
    4949     
    5050    def __get_applied_plugins(self): 
    51         return [m for m in self.pluginnames if self.plugins[m].is_set()] 
     51        result={} 
     52        for k,v in self.plugins.iteritems(): 
     53            if v.is_set(): 
     54                result[k]=v 
     55        return result 
    5256     
    5357    applied_plugins = property(__get_applied_plugins) 
    5458 
    5559    def __get_unapplied_plugins(self): 
    56         return [m for m in self.pluginnames if not self.plugins[m].is_set()] 
     60        result={} 
     61        for k,v in self.plugins.iteritems(): 
     62            if not v.is_set(): 
     63                result[k]=v 
     64        return result 
    5765     
    5866    unapplied_plugins = property(__get_unapplied_plugins) 
  • trunk/pysvnmanager/templates/authz/index.mako

    r7 r43  
    2222all_users.sort(); 
    2323 
    24 function clean_message() 
    25 { 
    26         document.getElementById('result').innerHTML = ''; 
    27 } 
    28  
    2924// Display repos list only. 
    3025function show_init_form() 
     
    5045        document.getElementById('action_box').style.visibility = 'hidden'; 
    5146        document.getElementById('action_box').style.position = 'absolute'; 
    52          
    53         document.getElementById('result').innerHTML = ''; 
    5447} 
    5548 
     
    509502        { 
    510503                message = '${_("Update ACL failed:")}' + message; 
    511                 alert(message); 
    512                 document.getElementById('result').innerHTML = message; 
    513                 document.getElementById('result').style.visibility = 'visible';  
     504                set_message_box(message); 
    514505        } 
    515506        else 
    516507        { 
    517508                message = '${_("Update ACL successfully.")}'; 
    518                 document.getElementById('result').innerHTML = message; 
    519                 alert(message); 
     509                set_message_box(message); 
    520510                if (document.main_form.repos_list.value == reposname) 
    521511                { 
     
    566556        { 
    567557                message = '${_("Can not delete module ")}' + reposname + ':' + path + ' : ' + message; 
    568                 alert(message); 
    569                 document.getElementById('result').innerHTML = message; 
    570                 document.getElementById('result').style.visibility = 'visible';  
     558                set_message_box(message); 
    571559        } 
    572560        else 
    573561        { 
    574562                message = '${_("Successfully delete module:")}' + reposname + ':' + path; 
    575                 document.getElementById('result').innerHTML = message; 
    576                 alert(message); 
     563                set_message_box(message); 
    577564                repos_changed(); 
    578565        } 
     
    688675<tr> 
    689676  <td align='center'> 
    690     <div id='result'></div> 
    691         <br> 
    692677        <input type="hidden" name="reposname"> 
    693678    <input type="button" name="save_btn"   value='${_("Save")}' onClick="save_authz(this.form)"> 
  • trunk/pysvnmanager/templates/base.mako

    r38 r43  
    1313 
    1414        ${self.nav_bar()} 
     15 
     16  <div id="message_box" style="visibility:hidden;position:absolute" class=gainlayout> 
     17  <span id="message"></span> 
     18  <br><a class="clear-link" href="#" onClick="document.getElementById('message').innerHTML='';switch_message_box()">Clear message</a> 
     19  </div> 
    1520         
    1621    ${next.body()} 
     
    2833          <td>${h.link_to(_("Role management"), h.url(controller="role", id=None))}</td> 
    2934          <td>${h.link_to(_("ACL management"), h.url(controller="authz", id=None))}</td> 
     35          <td>${h.link_to(_("Repos management"), h.url(controller="repos", id=None))}</td> 
    3036          <td>${h.link_to(_("Logs"), h.url(controller="logs", id=None))}</td> 
    3137          <td>welcome ${session.get('user')}</td> 
     
    108114  document.getElementById('popup_notices').style.display = 'none'; 
    109115} 
     116 
     117function set_message_box(message) 
     118{ 
     119        document.getElementById('message').innerHTML=message; 
     120        switch_message_box(); 
     121} 
     122 
     123function switch_message_box() 
     124{ 
     125        c=document.getElementById('message').innerHTML; 
     126        s=document.getElementById('message_box').style; 
     127        if (c) 
     128        { 
     129                s.visibility='visible'; 
     130                s.position = 'relative'; 
     131        } 
     132        else 
     133        { 
     134                s.visibility='hidden'; 
     135                s.position = 'absolute'; 
     136        } 
     137} 
    110138</script> 
    111139</%def> 
  • trunk/pysvnmanager/templates/check/index.mako

    r15 r43  
    115115            html={'id':'main_form'},  
    116116            url=h.url(action='access_map'),  
    117             update=dict(success="acl_msg", failure="acl_error"),  
     117            update=dict(success="acl_msg", failure="message"),  
    118118            method='post', before='showNoticesPopup()', 
    119119            complete='hideNoticesPopup();'+h.visual_effect("Highlight", "acl_msg", duration=1), 
     
    183183 
    184184<div id='acl_msg'></div> 
    185 <div id='acl_error'></div> 
    186185 
  • trunk/pysvnmanager/templates/role/index.mako

    r22 r43  
    356356                show_init_form(); 
    357357 
    358         document.getElementById('result').innerHTML = '';        
    359  
    360358        if(name.charAt(0) == '@') 
    361359        { 
     
    420418                message = '${_("Update group failed:")}' + message; 
    421419                alert(message); 
    422                 document.getElementById('result').innerHTML = message; 
    423                 document.getElementById('result').style.visibility = 'visible';  
     420                set_message_box(message); 
    424421        } 
    425422        else 
    426423        { 
    427424                message = '${_("Update group successfully.")}'; 
    428                 document.getElementById('result').innerHTML = message; 
    429                 alert(message); 
     425                set_message_box(message); 
    430426                if (document.main_form.role_list.value == rolename) 
    431427                { 
     
    470466        { 
    471467                message = '${_("Delete group failed:")}' + message; 
    472                 alert(message); 
    473                 document.getElementById('result').innerHTML = message; 
    474                 document.getElementById('result').style.visibility = 'visible';  
     468                set_message_box(message); 
    475469        } 
    476470        else 
    477471        { 
    478472                message = '${_("Delete group successfully.")}'; 
    479                 document.getElementById('result').innerHTML = message; 
    480                 alert(message); 
     473                set_message_box(message); 
    481474                reset_main_form(); 
    482475        } 
     
    511504        { 
    512505                message = '${_("Update alias failed:")}' + message; 
    513                 alert(message); 
    514                 document.getElementById('result').innerHTML = message; 
    515                 document.getElementById('result').style.visibility = 'visible';  
     506                set_message_box(message); 
    516507        } 
    517508        else 
    518509        { 
    519510                message = '${_("Update alias successfully.")}'; 
    520                 document.getElementById('result').innerHTML = message; 
    521                 alert(message); 
     511                set_message_box(message); 
    522512                if (document.main_form.role_list.value == aliasname) 
    523513                { 
     
    561551        { 
    562552                message = '${_("Delete alias failed:")}' + message; 
    563                 alert(message); 
    564                 document.getElementById('result').innerHTML = message; 
    565                 document.getElementById('result').style.visibility = 'visible';  
     553                set_message_box(message); 
    566554        } 
    567555        else 
    568556        { 
    569557                message = '${_("Delete alias successfully.")}'; 
    570                 document.getElementById('result').innerHTML = message; 
    571                 alert(message); 
     558                set_message_box(message); 
    572559                reset_main_form(); 
    573560        } 
     
    719706</DIV> 
    720707 
    721 <div id='result' style="position:relative;" class=gainlayout> 
    722 </div> 
    723  
    724708<!-- begin: action_box --> 
    725709<div id='action_box' style="position:relative;" class=gainlayout> 
  • trunk/pysvnmanager/tests/test_repos.py

    r42 r43  
    8888        myhooks = hooks.Hooks(self.repos_root + '/repos1') 
    8989        self.assert_(myhooks.pluginnames==['CaseInsensitive', 'EolStyleCheck'], myhooks.pluginnames) 
    90         self.assert_(myhooks.unapplied_plugins==['CaseInsensitive', 'EolStyleCheck'], myhooks.unapplied_plugins) 
     90        self.assert_(myhooks.unapplied_plugins.keys()==['CaseInsensitive', 'EolStyleCheck'], myhooks.unapplied_plugins.keys()) 
    9191         
    9292        m = myhooks.plugins['CaseInsensitive'] 
     
    9999        m = myhooks.plugins['CaseInsensitive'] 
    100100        self.assert_(m.is_set()==False) 
    101         self.assert_(myhooks.applied_plugins==[], myhooks.applied_plugins) 
    102         self.assert_(myhooks.unapplied_plugins==['CaseInsensitive', 'EolStyleCheck'], myhooks.unapplied_plugins) 
     101        self.assert_(myhooks.applied_plugins.keys()==[], myhooks.applied_plugins.keys()) 
     102        self.assert_(myhooks.unapplied_plugins.keys()==['CaseInsensitive', 'EolStyleCheck'], myhooks.unapplied_plugins.keys()) 
    103103 
    104104        m.set_plugin() 
    105105        self.assert_(m.is_set()==True) 
    106         self.assert_(myhooks.applied_plugins==['CaseInsensitive'], myhooks.applied_plugins) 
    107         self.assert_(myhooks.unapplied_plugins==['EolStyleCheck'], myhooks.unapplied_plugins) 
     106        self.assert_(myhooks.applied_plugins.keys()==['CaseInsensitive'], myhooks.applied_plugins.keys()) 
     107        self.assert_(myhooks.unapplied_plugins.keys()==['EolStyleCheck'], myhooks.unapplied_plugins.keys()) 
    108108 
    109109        m.delete_plugin() 
    110110        self.assert_(m.is_set()==False) 
    111         self.assert_(myhooks.applied_plugins==[], myhooks.applied_plugins) 
    112         self.assert_(myhooks.unapplied_plugins==['CaseInsensitive', 'EolStyleCheck'], myhooks.unapplied_plugins) 
     111        self.assert_(myhooks.applied_plugins.keys()==[], myhooks.applied_plugins.keys()) 
     112        self.assert_(myhooks.unapplied_plugins.keys()==['CaseInsensitive', 'EolStyleCheck'], myhooks.unapplied_plugins.keys()) 
    113113 
    114114