Ignore:
Timestamp:
Jan 31, 2010, 10:38:12 AM (14 years ago)
Author:
gav
Message:

Move asset tree/overview to an overlay pane.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/grails-app/taglib/AssetTreeTagLib.groovy

    r286 r306  
    44*/
    55class AssetTreeTagLib {
    6     static namespace = 'gnumims'
     6    static namespace = 'gnuMims'
    77
    88    def resources = { attrs ->
     
    1010    }
    1111
     12    def assetTreeButton = {
     13        def mkp = new groovy.xml.MarkupBuilder(out) //this line will be unnecessary in versions of Grails after version 1.2
     14
     15        mkp.div(class: "tree_button") {
     16            a(href: showPane()) {
     17                img(src: treeRootImg())
     18            }
     19        }
     20    } // mkp
     21
    1222    def assetTree = { attrs ->
    1323
    1424        def sites = Site.list()
    15 
    16         def assetInstance = Asset.get(1) /// @todo: remove this.
    1725
    1826        def divIdCount = 0
     
    2735
    2836        /// @todo: use a loop for the subItem levels.
    29         mkp.div(class: 'tree') {
    30             ul() {
    31                 img(src: treeRootImg(), alt: 'TreeRoot')
    32                 for(site in sites.sort { p1, p2 -> p1.name.compareToIgnoreCase(p2.name) }) {
    33                     li() {
    34                         if(site.sections) {
    35                             a(href: toggleBranch(nextDivId()) ) {
    36                                 img( src: bulletTreePlusImg(), id: divId+'img' )
    37                             }
    38                         }
    39                         else
    40                             img(src: dashImg())
    41                         a( href: siteShowLink(site.id) ) {
    42                             yieldUnescaped( site.encodeAsHTML() )
    43                         }
    44                         a(href: sectionCreateLink(site.id)) {
    45                             img(src: addImg(), alt: 'Add', title: 'Add Section')
    46                         }
    47                     }
    48                     if(site.sections) {
    49                         div(id: divId,  style: 'display:none;') {
     37        mkp.div(class: 'overlayPane', id: 'assetTreePane', style: 'display:none;') {
     38            div(class: 'tree') {
     39                table() {
     40                    tr() {
     41                        td( valign: 'top', class: 'value') {
    5042                            ul() {
    51                                 for(section in site.sections.sort { p1, p2 -> p1.name.compareToIgnoreCase(p2.name) }) {
     43                                img(src: treeRootImg(), alt: 'TreeRoot')
     44                                for(site in sites.sort { p1, p2 -> p1.name.compareToIgnoreCase(p2.name) }) {
    5245                                    li() {
    53                                         if(section.assets) {
     46                                        if(site.sections) {
    5447                                            a(href: toggleBranch(nextDivId()) ) {
    55                                                 img(src: bulletTreePlusImg(), id: divId+'img' )
     48                                                img( src: bulletTreePlusImg(), id: divId+'img' )
    5649                                            }
    5750                                        }
    5851                                        else
    5952                                            img(src: dashImg())
    60                                         a( href: sectionShowLink(section.id) ) {
    61                                             yieldUnescaped( section.encodeAsHTML() )
     53                                        a( href: siteShowLink(site.id) ) {
     54                                            yieldUnescaped( site.encodeAsHTML() )
    6255                                        }
    63                                         a(href: assetCreateLink(section.id)) {
    64                                             img(src: addImg(), alt: 'Add', title: 'Add Asset')
     56                                        a(href: sectionCreateLink(site.id)) {
     57                                            img(src: addImg(), alt: 'Add', title: 'Add Section')
    6558                                        }
    6659                                    }
    67 
    68                                     if(section.assets) {
    69                                         div(id: divId,  style: 'display:none;') {
     60                                    if(site.sections) {
     61                                        div(id: divId, style: 'display:none;') {
    7062                                            ul() {
    71                                                 for(asset in section.assets.sort { p1, p2 -> p1.name.compareToIgnoreCase(p2.name) }) {
     63                                                for(section in site.sections.sort { p1, p2 -> p1.name.compareToIgnoreCase(p2.name) }) {
    7264                                                    li() {
    73                                                         if(asset.assetSubItems) {
     65                                                        if(section.assets) {
    7466                                                            a(href: toggleBranch(nextDivId()) ) {
    7567                                                                img(src: bulletTreePlusImg(), id: divId+'img' )
     
    7870                                                        else
    7971                                                            img(src: dashImg())
    80                                                         a( href: assetShowLink(asset.id) ) {
    81                                                             yieldUnescaped( asset.encodeAsHTML() )
     72                                                        a( href: sectionShowLink(section.id) ) {
     73                                                            yieldUnescaped( section.encodeAsHTML() )
    8274                                                        }
    83                                                         a(href: assetSubItemCreateLink(asset.id)) {
    84                                                             img(src: addImg(), alt: 'Add', title: 'Add Sub Item')
     75                                                        a(href: assetCreateLink(section.id)) {
     76                                                            img(src: addImg(), alt: 'Add', title: 'Add Asset')
    8577                                                        }
    86                                                         a(href: assetCopyLink(asset.id)) {
    87                                                             img(src: copyImg(), alt: 'Add', title: 'Copy Asset')
    88                                                         }
    89                                                     } // li
    90 
    91                                                     if(asset.assetSubItems) {
    92                                                         div(id: divId,  style: 'display:none;') {
     78                                                    }
     79
     80                                                    if(section.assets) {
     81                                                        div(id: divId, style: 'display:none;') {
    9382                                                            ul() {
    94                                                                 for(assetSubItemL1 in asset.assetSubItems.sort { p1, p2 -> p1.name.compareToIgnoreCase(p2.name) }) {
     83                                                                for(asset in section.assets.sort { p1, p2 -> p1.name.compareToIgnoreCase(p2.name) }) {
    9584                                                                    li() {
    96                                                                         if(assetSubItemL1.subItems) {
     85                                                                        if(asset.assetSubItems) {
    9786                                                                            a(href: toggleBranch(nextDivId()) ) {
    9887                                                                                img(src: bulletTreePlusImg(), id: divId+'img' )
     
    10190                                                                        else
    10291                                                                            img(src: dashImg())
    103                                                                         a( href: assetSubItemShowLink(assetSubItemL1.id) ) {
    104                                                                             yieldUnescaped( assetSubItemL1.encodeAsHTML() )
     92                                                                        a( href: assetShowLink(asset.id) ) {
     93                                                                            yieldUnescaped( asset.encodeAsHTML() )
    10594                                                                        }
    106                                                                         a(href: assetSubItemCreateWithParentLink(assetSubItemL1.id)) {
     95                                                                        a(href: assetSubItemCreateLink(asset.id)) {
    10796                                                                            img(src: addImg(), alt: 'Add', title: 'Add Sub Item')
    10897                                                                        }
     98                                                                        a(href: assetCopyLink(asset.id)) {
     99                                                                            img(src: copyImg(), alt: 'Add', title: 'Copy Asset')
     100                                                                        }
    109101                                                                    } // li
    110102
    111                                                                     if(assetSubItemL1.subItems) {
    112                                                                         div(id: divId,  style: 'display:none;') {
     103                                                                    if(asset.assetSubItems) {
     104                                                                        div(id: divId, style: 'display:none;') {
    113105                                                                            ul() {
    114                                                                                 for(assetSubItemL2 in assetSubItemL1.subItems.sort { p1, p2 -> p1.name.compareToIgnoreCase(p2.name) }) {
     106                                                                                for(assetSubItemL1 in asset.assetSubItems.sort { p1, p2 -> p1.name.compareToIgnoreCase(p2.name) }) {
    115107                                                                                    li() {
    116                                                                                         if(assetSubItemL2.subItems) {
     108                                                                                        if(assetSubItemL1.subItems) {
    117109                                                                                            a(href: toggleBranch(nextDivId()) ) {
    118                                                                                                 img( src: bulletTreePlusImg(), id: divId+'img' )
     110                                                                                                img(src: bulletTreePlusImg(), id: divId+'img' )
    119111                                                                                            }
    120112                                                                                        }
    121113                                                                                        else
    122114                                                                                            img(src: dashImg())
    123                                                                                         a( href: assetSubItemShowLink(assetSubItemL2.id) ) {
    124                                                                                             yieldUnescaped( assetSubItemL2.encodeAsHTML() )
     115                                                                                        a( href: assetSubItemShowLink(assetSubItemL1.id) ) {
     116                                                                                            yieldUnescaped( assetSubItemL1.encodeAsHTML() )
    125117                                                                                        }
    126                                                                                         a(href: assetSubItemCreateWithParentLink(assetSubItemL2.id)) {
     118                                                                                        a(href: assetSubItemCreateWithParentLink(assetSubItemL1.id)) {
    127119                                                                                            img(src: addImg(), alt: 'Add', title: 'Add Sub Item')
    128120                                                                                        }
    129121                                                                                    } // li
    130122
    131                                                                                     if(assetSubItemL2.subItems) {
    132                                                                                         div(id: divId,  style: 'display:none;') {
     123                                                                                    if(assetSubItemL1.subItems) {
     124                                                                                        div(id: divId, style: 'display:none;') {
    133125                                                                                            ul() {
    134                                                                                                 for(assetSubItemL3 in assetSubItemL2.subItems.sort { p1, p2 -> p1.name.compareToIgnoreCase(p2.name) }) {
     126                                                                                                for(assetSubItemL2 in assetSubItemL1.subItems.sort { p1, p2 -> p1.name.compareToIgnoreCase(p2.name) }) {
    135127                                                                                                    li() {
    136                                                                                                         if(assetSubItemL3.subItems) {
     128                                                                                                        if(assetSubItemL2.subItems) {
    137129                                                                                                            a(href: toggleBranch(nextDivId()) ) {
    138130                                                                                                                img( src: bulletTreePlusImg(), id: divId+'img' )
     
    141133                                                                                                        else
    142134                                                                                                            img(src: dashImg())
    143                                                                                                         a( href: assetSubItemShowLink(assetSubItemL3.id) ) {
    144                                                                                                             yieldUnescaped( assetSubItemL3.encodeAsHTML() )
     135                                                                                                        a( href: assetSubItemShowLink(assetSubItemL2.id) ) {
     136                                                                                                            yieldUnescaped( assetSubItemL2.encodeAsHTML() )
    145137                                                                                                        }
    146                                                                                                         a(href: assetSubItemCreateWithParentLink(assetSubItemL3.id)) {
     138                                                                                                        a(href: assetSubItemCreateWithParentLink(assetSubItemL2.id)) {
    147139                                                                                                            img(src: addImg(), alt: 'Add', title: 'Add Sub Item')
    148140                                                                                                        }
    149141                                                                                                    } // li
    150142
    151                                                                                                     if(assetSubItemL3.subItems) {
    152                                                                                                         div(id: divId,  style: 'display:none;') {
     143                                                                                                    if(assetSubItemL2.subItems) {
     144                                                                                                        div(id: divId, style: 'display:none;') {
    153145                                                                                                            ul() {
    154                                                                                                                 for(assetSubItemL4 in assetSubItemL3.subItems.sort { p1, p2 -> p1.name.compareToIgnoreCase(p2.name) }) {
     146                                                                                                                for(assetSubItemL3 in assetSubItemL2.subItems.sort { p1, p2 -> p1.name.compareToIgnoreCase(p2.name) }) {
    155147                                                                                                                    li() {
    156 //                                                                                                                         if(assetSubItemL4.subItems) {
    157 //                                                                                                                             a(href: toggleBranch(nextDivId()) ) {
    158 //                                                                                                                                 img( src: bulletTreePlusImg(), id: divId+'img' )
    159 //                                                                                                                             }
    160 //                                                                                                                         }
    161 //                                                                                                                         else
    162                                                                                                                         img(src: dashImg())
    163                                                                                                                         a( href: assetSubItemShowLink(assetSubItemL4.id) ) {
    164                                                                                                                             yieldUnescaped( assetSubItemL4.encodeAsHTML() )
     148                                                                                                                        if(assetSubItemL3.subItems) {
     149                                                                                                                            a(href: toggleBranch(nextDivId()) ) {
     150                                                                                                                                img( src: bulletTreePlusImg(), id: divId+'img' )
     151                                                                                                                            }
    165152                                                                                                                        }
    166 //                                                                                                                         a(href: assetSubItemCreateWithParentLink(assetSubItemL4.id)) {
    167 //                                                                                                                             img(src: addImg(), alt: 'Add', title: 'Add Sub Item')
    168 //                                                                                                                         }
     153                                                                                                                        else
     154                                                                                                                            img(src: dashImg())
     155                                                                                                                        a( href: assetSubItemShowLink(assetSubItemL3.id) ) {
     156                                                                                                                            yieldUnescaped( assetSubItemL3.encodeAsHTML() )
     157                                                                                                                        }
     158                                                                                                                        a(href: assetSubItemCreateWithParentLink(assetSubItemL3.id)) {
     159                                                                                                                            img(src: addImg(), alt: 'Add', title: 'Add Sub Item')
     160                                                                                                                        }
    169161                                                                                                                    } // li
    170162
    171                                                                                                                 } // assetSubItemL4
     163                                                                                                                    if(assetSubItemL3.subItems) {
     164                                                                                                                        div(id: divId, style: 'display:none;') {
     165                                                                                                                            ul() {
     166                                                                                                                                for(assetSubItemL4 in assetSubItemL3.subItems.sort { p1, p2 -> p1.name.compareToIgnoreCase(p2.name) }) {
     167                                                                                                                                    li() {
     168                //                                                                                                                         if(assetSubItemL4.subItems) {
     169                //                                                                                                                             a(href: toggleBranch(nextDivId()) ) {
     170                //                                                                                                                                 img( src: bulletTreePlusImg(), id: divId+'img' )
     171                //                                                                                                                             }
     172                //                                                                                                                         }
     173                //                                                                                                                         else
     174                                                                                                                                        img(src: dashImg())
     175                                                                                                                                        a( href: assetSubItemShowLink(assetSubItemL4.id) ) {
     176                                                                                                                                            yieldUnescaped( assetSubItemL4.encodeAsHTML() )
     177                                                                                                                                        }
     178                //                                                                                                                         a(href: assetSubItemCreateWithParentLink(assetSubItemL4.id)) {
     179                //                                                                                                                             img(src: addImg(), alt: 'Add', title: 'Add Sub Item')
     180                //                                                                                                                         }
     181                                                                                                                                    } // li
     182
     183                                                                                                                                } // assetSubItemL4
     184                                                                                                                            } // ul
     185                                                                                                                        } // div
     186                                                                                                                    } // if(assetSubItemL3.subItems)
     187
     188
     189                                                                                                                } // assetSubItemL3
    172190                                                                                                            } // ul
    173191                                                                                                        } // div
    174                                                                                                     } // if(assetSubItemL3.subItems)
    175 
    176 
    177                                                                                                 } // assetSubItemL3
     192                                                                                                    } // if(assetSubItemL2.subItems)
     193
     194                                                                                                } // assetSubItemL2
    178195                                                                                            } // ul
    179196                                                                                        } // div
    180                                                                                     } // if(assetSubItemL2.subItems)
    181 
    182                                                                                 } // assetSubItemL2
     197                                                                                    } // if(assetSubItemL1.subItems)
     198
     199                                                                                } // assetSubItemL1
    183200                                                                            } // ul
    184201                                                                        } // div
    185                                                                     } // if(assetSubItemL1.subItems)
    186 
    187                                                                 } // assetSubItemL1
     202                                                                    } // if(asset.assetSubItems)
     203
     204                                                                } // assets
    188205                                                            } // ul
    189206                                                        } // div
    190                                                     } // if(asset.assetSubItems)
    191 
    192                                                 } // assets
     207                                                    } // if(section.assets)
     208
     209                                                } //sections
    193210                                            } // ul
    194211                                        } // div
    195                                     } // if(section.assets)
    196 
    197                                 } //sections
     212                                    } // if(site.sections)
     213                                } // sites
    198214                            } // ul
    199                         } // div
    200                     } // if(site.sections)
    201                 } // sites
    202             } // ul
     215                        } // td
     216                    } // tr
     217                } // table
     218            } // div
     219
     220            div( class: 'buttons') {
     221                span(class: 'button') {
     222                    input(type: 'button', value: 'Close', onclick: 'return hideElement("assetTreePane");')
     223                }
     224            }
     225
    203226        } // mkp
    204227
     
    231254    /** js calls */
    232255
     256    def showPane() {
     257       'javascript: showDiv(\"assetTreePane\");'
     258    }
     259
    233260    def toggleBranch(divId) {
    234261        /// @todo: toggleBranch is in overlayPane.js and should be moved to tree.js
    235        'javascript: toggleBranch(\"' + divId + '\", \"' + divId + 'img' + '\");'
     262       'javascript: toggleBranch(\"' + divId + '\", \"' + divId + 'img' +'\", \"' + bulletTreeMinusImg() +'\", \"' + bulletTreePlusImg() + '\");'
    236263    }
    237264
Note: See TracChangeset for help on using the changeset viewer.