Changeset 307


Ignore:
Timestamp:
Feb 1, 2010, 7:56:41 AM (14 years ago)
Author:
gav
Message:

Asset tree taglib now saves it's status in the http session along with some improvement to the button css.

Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/grails-app/controllers/AppCoreController.groovy

    r298 r307  
    3434    */
    3535    def start = {
     36    }
     37
     38    /**
     39    * Save the asset Tree status in the current http session.
     40    */
     41    def saveAssetTreeStatus = {
     42        session.assetTreeVisibleBranches = params.assetTreeVisibleBranches
    3643    }
    3744
     
    6471    def changePassword = {
    6572        //def principal = authenticateService.principal()
    66         //println principal.getAuthorities()
     73        //log.info principal.getAuthorities()
    6774
    6875        if (request.method == 'GET') {
  • trunk/grails-app/taglib/AssetTreeTagLib.groovy

    r306 r307  
    2424        def sites = Site.list()
    2525
     26        def visibleBranches = session.assetTreeVisibleBranches ? session.assetTreeVisibleBranches.tokenize(',') : []
     27
     28        def branchStyle = { branchId ->
     29            if(visibleBranches.contains(branchId))
     30                ''
     31            else
     32                'display:none;'
     33        }
     34
     35        def branchImg = { branchId ->
     36            if(visibleBranches.contains(branchId))
     37                bulletTreeMinusImg()
     38            else
     39                bulletTreePlusImg()
     40        }
     41
    2642        def divIdCount = 0
    2743        def divId = ''
     
    3652        /// @todo: use a loop for the subItem levels.
    3753        mkp.div(class: 'overlayPane', id: 'assetTreePane', style: 'display:none;') {
    38             div(class: 'tree') {
     54            div(class: 'tree', id: 'assetTreeTable') {
    3955                table() {
    4056                    tr() {
     
    4662                                        if(site.sections) {
    4763                                            a(href: toggleBranch(nextDivId()) ) {
    48                                                 img( src: bulletTreePlusImg(), id: divId+'img' )
     64                                                img( src: branchImg(divId), id: divId+'img' )
    4965                                            }
    5066                                        }
    5167                                        else
    5268                                            img(src: dashImg())
    53                                         a( href: siteShowLink(site.id) ) {
     69                                        a( href: siteShowLink(site.id), onclick: hideAssetTreePane() ) {
    5470                                            yieldUnescaped( site.encodeAsHTML() )
    5571                                        }
    56                                         a(href: sectionCreateLink(site.id)) {
     72                                        a(href: sectionCreateLink(site.id), onclick: hideAssetTreePane()) {
    5773                                            img(src: addImg(), alt: 'Add', title: 'Add Section')
    5874                                        }
    5975                                    }
    6076                                    if(site.sections) {
    61                                         div(id: divId, style: 'display:none;') {
     77                                        div( id: divId, style: branchStyle(divId) ) {
    6278                                            ul() {
    6379                                                for(section in site.sections.sort { p1, p2 -> p1.name.compareToIgnoreCase(p2.name) }) {
    6480                                                    li() {
    6581                                                        if(section.assets) {
    66                                                             a(href: toggleBranch(nextDivId()) ) {
    67                                                                 img(src: bulletTreePlusImg(), id: divId+'img' )
     82                                                            a( href: toggleBranch(nextDivId()) ) {
     83                                                                img(src: branchImg(divId), id: divId+'img' )
    6884                                                            }
    6985                                                        }
    7086                                                        else
    7187                                                            img(src: dashImg())
    72                                                         a( href: sectionShowLink(section.id) ) {
     88                                                        a( href: sectionShowLink(section.id), onclick: hideAssetTreePane() ) {
    7389                                                            yieldUnescaped( section.encodeAsHTML() )
    7490                                                        }
    75                                                         a(href: assetCreateLink(section.id)) {
     91                                                        a(href: assetCreateLink(section.id), onclick: hideAssetTreePane()) {
    7692                                                            img(src: addImg(), alt: 'Add', title: 'Add Asset')
    7793                                                        }
     
    7995
    8096                                                    if(section.assets) {
    81                                                         div(id: divId, style: 'display:none;') {
     97                                                        div( id: divId, style: branchStyle(divId) ) {
    8298                                                            ul() {
    8399                                                                for(asset in section.assets.sort { p1, p2 -> p1.name.compareToIgnoreCase(p2.name) }) {
    84100                                                                    li() {
    85101                                                                        if(asset.assetSubItems) {
    86                                                                             a(href: toggleBranch(nextDivId()) ) {
    87                                                                                 img(src: bulletTreePlusImg(), id: divId+'img' )
     102                                                                            a( href: toggleBranch(nextDivId()) ) {
     103                                                                                img(src: branchImg(divId), id: divId+'img' )
    88104                                                                            }
    89105                                                                        }
    90106                                                                        else
    91107                                                                            img(src: dashImg())
    92                                                                         a( href: assetShowLink(asset.id) ) {
     108                                                                        a( href: assetShowLink(asset.id), onclick: hideAssetTreePane() ) {
    93109                                                                            yieldUnescaped( asset.encodeAsHTML() )
    94110                                                                        }
    95                                                                         a(href: assetSubItemCreateLink(asset.id)) {
     111                                                                        a(href: assetSubItemCreateLink(asset.id), onclick: hideAssetTreePane()) {
    96112                                                                            img(src: addImg(), alt: 'Add', title: 'Add Sub Item')
    97113                                                                        }
    98                                                                         a(href: assetCopyLink(asset.id)) {
     114                                                                        a(href: assetCopyLink(asset.id), onclick: hideAssetTreePane()) {
    99115                                                                            img(src: copyImg(), alt: 'Add', title: 'Copy Asset')
    100116                                                                        }
     
    102118
    103119                                                                    if(asset.assetSubItems) {
    104                                                                         div(id: divId, style: 'display:none;') {
     120                                                                        div( id: divId, style: branchStyle(divId) ) {
    105121                                                                            ul() {
    106122                                                                                for(assetSubItemL1 in asset.assetSubItems.sort { p1, p2 -> p1.name.compareToIgnoreCase(p2.name) }) {
    107123                                                                                    li() {
    108124                                                                                        if(assetSubItemL1.subItems) {
    109                                                                                             a(href: toggleBranch(nextDivId()) ) {
    110                                                                                                 img(src: bulletTreePlusImg(), id: divId+'img' )
     125                                                                                            a( href: toggleBranch(nextDivId()) ) {
     126                                                                                                img(src: branchImg(divId), id: divId+'img' )
    111127                                                                                            }
    112128                                                                                        }
    113129                                                                                        else
    114130                                                                                            img(src: dashImg())
    115                                                                                         a( href: assetSubItemShowLink(assetSubItemL1.id) ) {
     131                                                                                        a( href: assetSubItemShowLink(assetSubItemL1.id), onclick: hideAssetTreePane() ) {
    116132                                                                                            yieldUnescaped( assetSubItemL1.encodeAsHTML() )
    117133                                                                                        }
    118                                                                                         a(href: assetSubItemCreateWithParentLink(assetSubItemL1.id)) {
     134                                                                                        a(href: assetSubItemCreateWithParentLink(assetSubItemL1.id), onclick: hideAssetTreePane()) {
    119135                                                                                            img(src: addImg(), alt: 'Add', title: 'Add Sub Item')
    120136                                                                                        }
     
    122138
    123139                                                                                    if(assetSubItemL1.subItems) {
    124                                                                                         div(id: divId, style: 'display:none;') {
     140                                                                                        div( id: divId, style: branchStyle(divId) ) {
    125141                                                                                            ul() {
    126142                                                                                                for(assetSubItemL2 in assetSubItemL1.subItems.sort { p1, p2 -> p1.name.compareToIgnoreCase(p2.name) }) {
    127143                                                                                                    li() {
    128144                                                                                                        if(assetSubItemL2.subItems) {
    129                                                                                                             a(href: toggleBranch(nextDivId()) ) {
    130                                                                                                                 img( src: bulletTreePlusImg(), id: divId+'img' )
     145                                                                                                            a( href: toggleBranch(nextDivId()) ) {
     146                                                                                                                img( src: branchImg(divId), id: divId+'img' )
    131147                                                                                                            }
    132148                                                                                                        }
    133149                                                                                                        else
    134150                                                                                                            img(src: dashImg())
    135                                                                                                         a( href: assetSubItemShowLink(assetSubItemL2.id) ) {
     151                                                                                                        a( href: assetSubItemShowLink(assetSubItemL2.id), onclick: hideAssetTreePane() ) {
    136152                                                                                                            yieldUnescaped( assetSubItemL2.encodeAsHTML() )
    137153                                                                                                        }
    138                                                                                                         a(href: assetSubItemCreateWithParentLink(assetSubItemL2.id)) {
     154                                                                                                        a(href: assetSubItemCreateWithParentLink(assetSubItemL2.id), onclick: hideAssetTreePane()) {
    139155                                                                                                            img(src: addImg(), alt: 'Add', title: 'Add Sub Item')
    140156                                                                                                        }
     
    142158
    143159                                                                                                    if(assetSubItemL2.subItems) {
    144                                                                                                         div(id: divId, style: 'display:none;') {
     160                                                                                                        div( id: divId, style: branchStyle(divId) ) {
    145161                                                                                                            ul() {
    146162                                                                                                                for(assetSubItemL3 in assetSubItemL2.subItems.sort { p1, p2 -> p1.name.compareToIgnoreCase(p2.name) }) {
    147163                                                                                                                    li() {
    148164                                                                                                                        if(assetSubItemL3.subItems) {
    149                                                                                                                             a(href: toggleBranch(nextDivId()) ) {
    150                                                                                                                                 img( src: bulletTreePlusImg(), id: divId+'img' )
     165                                                                                                                            a( href: toggleBranch(nextDivId()) ) {
     166                                                                                                                                img( src: branchImg(divId), id: divId+'img' )
    151167                                                                                                                            }
    152168                                                                                                                        }
    153169                                                                                                                        else
    154170                                                                                                                            img(src: dashImg())
    155                                                                                                                         a( href: assetSubItemShowLink(assetSubItemL3.id) ) {
     171                                                                                                                        a( href: assetSubItemShowLink(assetSubItemL3.id), onclick: hideAssetTreePane() ) {
    156172                                                                                                                            yieldUnescaped( assetSubItemL3.encodeAsHTML() )
    157173                                                                                                                        }
    158                                                                                                                         a(href: assetSubItemCreateWithParentLink(assetSubItemL3.id)) {
     174                                                                                                                        a(href: assetSubItemCreateWithParentLink(assetSubItemL3.id), onclick: hideAssetTreePane()) {
    159175                                                                                                                            img(src: addImg(), alt: 'Add', title: 'Add Sub Item')
    160176                                                                                                                        }
     
    162178
    163179                                                                                                                    if(assetSubItemL3.subItems) {
    164                                                                                                                         div(id: divId, style: 'display:none;') {
     180                                                                                                                        div( id: divId, style: branchStyle(divId) ) {
    165181                                                                                                                            ul() {
    166182                                                                                                                                for(assetSubItemL4 in assetSubItemL3.subItems.sort { p1, p2 -> p1.name.compareToIgnoreCase(p2.name) }) {
    167183                                                                                                                                    li() {
    168184                //                                                                                                                         if(assetSubItemL4.subItems) {
    169                 //                                                                                                                             a(href: toggleBranch(nextDivId()) ) {
    170                 //                                                                                                                                 img( src: bulletTreePlusImg(), id: divId+'img' )
     185                //                                                                                                                             a( href: toggleBranch(nextDivId()) ) {
     186                //                                                                                                                                 img( src: branchImg(divId), id: divId+'img' )
    171187                //                                                                                                                             }
    172188                //                                                                                                                         }
    173189                //                                                                                                                         else
    174190                                                                                                                                        img(src: dashImg())
    175                                                                                                                                         a( href: assetSubItemShowLink(assetSubItemL4.id) ) {
     191                                                                                                                                        a( href: assetSubItemShowLink(assetSubItemL4.id), onclick: hideAssetTreePane() ) {
    176192                                                                                                                                            yieldUnescaped( assetSubItemL4.encodeAsHTML() )
    177193                                                                                                                                        }
    178                 //                                                                                                                         a(href: assetSubItemCreateWithParentLink(assetSubItemL4.id)) {
     194                //                                                                                                                         a(href: assetSubItemCreateWithParentLink(assetSubItemL4.id), onclick: hideAssetTreePane()) {
    179195                //                                                                                                                             img(src: addImg(), alt: 'Add', title: 'Add Sub Item')
    180196                //                                                                                                                         }
     
    220236            div( class: 'buttons') {
    221237                span(class: 'button') {
    222                     input(type: 'button', value: 'Close', onclick: 'return hideElement("assetTreePane");')
     238                    input( type: 'button', value: 'Close', onclick: hideAssetTreePane() )
    223239                }
    224240            }
     
    227243
    228244    } // assetTree
    229 
    230245
    231246
     
    258273    }
    259274
     275    def hideAssetTreePane() {
     276        def saveUrl = createLink(controller: 'appCore', action: 'saveAssetTreeStatus').toString()
     277        'return hideAssetTreePane(\"assetTreePane\", \"assetTreeTable' + '\", \"' + saveUrl + '\");'
     278    }
     279
    260280    def toggleBranch(divId) {
    261281        /// @todo: toggleBranch is in overlayPane.js and should be moved to tree.js
  • trunk/web-app/css/main.css

    r306 r307  
    585585
    586586div.tree_button {
    587     text-align: left;
    588     padding-top: 4px;
    589 }
     587    float: left;
     588}
     589div.tree_button a {
     590}
     591div.tree_button img {
     592    padding: 0.3em 0.5em 0 0.3em;
     593}
     594div.tree_button img:hover {
     595    padding: 0.5em 0.5em 0 0.3em;
     596}
     597
    590598div.tree {
    591599}
  • trunk/web-app/js/overlayPane.js

    r306 r307  
    11function toggleDiv(id) {
    2             $(divId).toggle();
     2    $(divId).toggle();
    33}
    44
    55function showDiv(id) {
    6             Effect.Appear(id,{duration:0.4,queue:'end'});
     6    Effect.Appear(id,{duration:0.4,queue:'end'});
     7}
     8
     9function hideAssetTreePane(paneDivId, tableDivId, saveUrl) {
     10
     11    // Hide the pane.
     12    $(paneDivId).toggle();
     13
     14    var visibleDivs = $(tableDivId).select('div').findAll(function(el) { return el.visible(); })
     15    var params = "assetTreeVisibleBranches=";
     16
     17    // Add the id of each visible div.
     18    visibleDivs.each(function(it) {
     19        params += it.identify();
     20        params += ","
     21    });
     22
     23    // Remove the trailing comma.
     24    params = params.slice(0,params.length-1);
     25
     26    // Post the id's of all visible divs.
     27    new Ajax.Request(saveUrl, {parameters: params});
    728}
    829
    930function toggleBranch(divId, imageId, openImgUrl, closedImgUrl) {
    1031
    11         $(divId).toggle();
     32    $(divId).toggle();
    1233
    13         if( $(divId).visible() ) {
    14             $(imageId).src= openImgUrl;
    15         }
    16         else {
    17             $(imageId).src= closedImgUrl;
    18         }
     34    if( $(divId).visible() ) {
     35        $(imageId).src= openImgUrl;
     36    }
     37    else {
     38        $(imageId).src= closedImgUrl;
     39    }
    1940
    20 //         return false;
    2141}
    2242
Note: See TracChangeset for help on using the changeset viewer.