source: trunk/grails-app/taglib/AssetTreeTagLib.groovy @ 312

Last change on this file since 312 was 312, checked in by gav, 14 years ago

Refactor asset tree taglib to populate the asset tree table via an ajax call to AssetTreeService.
Move assetTree javascript to it's own js file and util javascript to a util.js file and service.

File size: 1.9 KB
Line 
1/**
2* Asset Tree tags.
3* Specific to gnuMims hence the namespace.
4*/
5class AssetTreeTagLib {
6    static namespace = 'gnuMims'
7
8    def js = new JavascriptService()
9    def ts = new AssetTreeService()
10
11    /**
12    * Include required javascript and do setup here.
13    */
14    def resources = { attrs ->
15        out << g.javascript(src: "assetTree.js")
16    }
17
18    /**
19    * Button that opens the asset tree pane and calls the javascript to populate it.
20    */
21    def assetTreeButton = { attrs ->
22        def mkp = new groovy.xml.MarkupBuilder(out) //this line will be unnecessary in versions of Grails after version 1.2
23
24        mkp.div( class: ts.buttonHtmlClass() ) {
25            a( href: ts.hrefShowPane() ) {
26                img(src: ts.treeRootImg())
27            }
28        } // mkp
29    } // assetTreeButton
30
31    /**
32    * The asset tree pane, ready for populating by an ajax call to AssetTreeSevice.
33    */
34    def assetTreePane = { attrs ->
35        def mkp = new groovy.xml.MarkupBuilder(out) //this line will be unnecessary in versions of Grails after version 1.2
36
37        mkp.div(class: ts.paneHtmlClass(), id: ts.paneHtmlId(), style: 'display:none;') {
38            div(class: ts.paneCloseHtmlClass()) {
39                a( href: js.hrefToggle(ts.paneHtmlId()) ) {
40                    img(src: ts.closeImg())
41                }
42            }
43
44            div(class: ts.tableDivHtmlClass()) {
45                table(id: ts.tableHtmlId()) {
46                    tr() {
47                        td(valign: 'top', class: 'value') {
48                            ul() {
49                                img(src: ts.treeRootImg(), id: ts.tableLoadingImgId(), alt: 'TreeRoot')
50                                li() {
51                                } // li
52                            } // ul
53                        } // td
54                    } // tr
55                } // table
56            } // div
57        } // mkp
58    } // assetTreePane
59
60} // end class
Note: See TracBrowser for help on using the repository browser.