Changeset 511

Show
Ignore:
Timestamp:
08/06/07 00:39:05 (1 year ago)
Author:
ian
Message:

Refactored site tree into 'tree' and 'site_tree', allowing for more re-use, and integrated 'tree-menu' code into both as appropriate

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • pagoda/trunk/Pagoda/pagoda/widgets/admin/panels.py

    r475 r511  
    11from toscawidgets.api import Widget, JSLink, CSSLink 
    2 from pagoda.widgets.admin.widgets import admin_css, admin_base, module_name 
     2from pagoda.widgets.admin.widgets import * 
    33from turbojson import jsonify 
    44from pagoda import plugins 
     
    1616) 
    1717 
    18 tree_css = CSSLink( 
    19     modname=module_name, filename='static/css/tree.css', 
    20     css=[panels_css
     18site_tree_css = CSSLink( 
     19    modname=module_name, filename='static/css/site_tree.css', 
     20    css=[panels_css, tree_css
    2121) 
    2222 
    23 tree_base = JSLink( 
    24     modname=module_name, filename='static/javascript/tree.js', 
    25     css=[tree_css], javascript=[admin_base] 
     23site_tree_base = JSLink( 
     24    modname=module_name, filename='static/javascript/site_tree.js', 
     25    css=[site_tree_css],  
     26    javascript=[admin_base, button_item_base, tree_menu_base] 
    2627) 
    2728 
     
    2930    params = ['data_url', 'root_url', 'revision'] 
    3031    template = "genshi:pagoda.widgets.admin.templates.tree" 
    31     css = [panels_css, tree_css] 
    32     javascript = [tree_base] 
     32    css = [panels_css, site_tree_css] 
     33    javascript = [site_tree_base] 
    3334    revision = 'active' 
    3435     
  • pagoda/trunk/Pagoda/pagoda/widgets/admin/static/css/site_tree.css

    r458 r511  
    1 .x-tree-node { 
    2     white-space: nowrap; 
    3     text-align: left; 
    4     font-size: 100%; 
     1/* Site Tree should not overlap the column shadow */ 
     2#site_tree { 
     3    padding-right: 8px; 
    54} 
    65 
    7 .x-tree-node a span, .ydd-drag-ghost a span { 
    8     text-decoration: underline; 
    9     color: #01e; 
    10     font-weight: normal; 
    11     line-height: 150%; 
     6/* Site Tree nodes should have icons */ 
     7#site_tree .x-tree-node-collapsed .x-tree-node-icon, 
     8#site_tree .x-tree-node-expanded .x-tree-node-icon, 
     9#site_tree .x-tree-node-leaf .x-tree-node-icon { 
     10    height: 16px; 
     11    background-image: url("../images/layout.png"); 
    1212} 
    1313 
    14 .x-tree-node .x-tree-newest-selection { 
     14/* Selected node should display an arrow pointing towards the menu */ 
     15#site_tree .x-tree-node div.x-tree-selected { 
    1516    background-image: url("../images/arrow-panel-right.png"); 
    1617    background-repeat: no-repeat; 
     
    1819} 
    1920 
    20 .x-tree-node .x-tree-selected { 
    21     background-color: #d5e5ff; 
    22     font-weight: bold; 
     21/* Buttons in site menu have icons associated with them */ 
     22.site_tree-menu button { 
     23    background-attachment: scroll; 
     24    background-position: 8px center; 
     25    background-repeat: no-repeat; 
     26    padding: 0px 4px 0px 20px; 
     27    border-right: 1px solid #A7BBC6 
     28
     29.site_tree-menu button.add { 
     30    background-image: url(../images/add-button.png); 
     31
     32.site_tree-menu button.edit { 
     33    background-image: url(../images/edit-button.png); 
     34
     35.site_tree-menu button.duplicate { 
     36    background-image: url(../images/duplicate-button.png); 
     37
     38.site_tree-menu button.delete { 
     39    background-image: url(../images/delete-button.png); 
     40
     41.site_tree-menu button.close { 
     42    padding: 0; 
     43    border: 0; 
     44
     45.site_tree-menu button.close .x-menu-item-icon { 
     46    vertical-align: top; 
     47    background-image: url(../images/close-button.png); 
     48    background-position: center left; 
     49    margin: 0; 
    2350} 
    2451 
    25 .x-tree-node-collapsed .x-tree-node-icon { 
    26     background-image: url("../images/layout.png"); 
    27 } 
    28  
    29 .x-tree-node-expanded .x-tree-node-icon { 
    30     background-image: url("../images/layout.png"); 
    31 } 
    32  
    33 .x-tree-node-leaf .x-tree-node-icon { 
    34     background-image: url("../images/layout.png"); 
    35 } 
    36  
    37 .x-tree-node .x-tree-selected a span { 
    38     background: transparent; 
    39     color: #03f; 
    40     font-weight: bold; 
    41 } 
  • pagoda/trunk/Pagoda/pagoda/widgets/admin/static/javascript/site_tree.js

    r450 r511  
    4141        scope: this 
    4242    }); 
     43 
     44    // Create a TreeMenu to show add/delete/remove/duplicate buttons 
     45    var menu_id = tree_id + '-menu'; 
     46    this.menu = new Ext.menu.TreeMenu({ 
     47        id: menu_id, 
     48        items: [ 
     49            new Ext.menu.ButtonItem({ 
     50                text: "Add", 
     51                itemCls: 'add' 
     52            }), 
     53            new Ext.menu.ButtonItem({ 
     54                text: "Edit", 
     55                itemCls: 'edit' 
     56            }), 
     57            new Ext.menu.ButtonItem({ 
     58                text: "Duplicate", 
     59                itemCls: 'duplicate' 
     60            }), 
     61            new Ext.menu.ButtonItem({ 
     62                text: "Delete", 
     63                itemCls: 'delete' 
     64            }), 
     65            new Ext.menu.ButtonItem({ 
     66                text: "", 
     67                icon: Ext.BLANK_IMAGE_URL, 
     68                itemCls: 'close' 
     69            }) 
     70        ] 
     71    }); 
     72 
     73    // Attach TreeMenu to this tree 
     74    this.menu.attachTo(this); 
     75 
    4376} 
    4477// Subclass Ext.tree.TreePanel. 
  • pagoda/trunk/Pagoda/pagoda/widgets/admin/widgets.py

    r490 r511  
    7171    css=[admin_base] 
    7272) 
     73 
     74tree_css = CSSLink( 
     75    modname=module_name, filename='static/css/tree.css', 
     76    css=[admin_css] 
     77) 
     78 
     79tree_menu_base = JSLink( 
     80    modname=module_name, filename='static/javascript/tree_menu.js', 
     81    css=[tree_css] 
     82) 
     83 
     84button_item_base = JSLink( 
     85    modname=module_name, filename='static/javascript/button_item.js', 
     86    css=[], javascript=[admin_base] 
     87) 
     88     

Log in as guest/pagoda to create tickets