View.php
[Pman.Ftp] / Pman.Tab.FtpTree.js
1 //<script type="text/javascript">
2
3 Pman.on('beforeload', function()
4 {
5     
6     // always loaded by clipping tree
7   
8     
9     Pman.register({
10         modKey : '001-pman-tab-ftptree',
11         module : Pman.Tab.FtpTree,
12         region : 'west',
13         parent : Pman.Tab.FtpTab,
14         name : "Ftp Folders"
15     });
16     
17         
18 });
19
20 Pman.Tab.FtpTree = {
21     grid : false,
22     panel : false,
23     add : function(parentLayout, region) 
24     {
25          
26         // there is no way this should be called twice!!?!?
27         //if (this.panel) {
28         //    parentLayout.getRegion(region).showPanel(this.panel);
29         //    return;
30         //}
31      
32         
33         this.innerLayout = new Ext.BorderLayout(
34             parentLayout.getEl().createChild({tag:'div'}),
35             {
36                
37                 center: {
38                     autoScroll:false,
39                     hideTabs: true
40                 }
41             }
42         );
43
44
45
46         this.tab = parentLayout.add(region,  new Ext.NestedLayoutPanel(
47             this.innerLayout, {title: "Ftp Folders", background : true}));
48         
49         var _this = this;
50         this.tab.on('activate', function() {
51             _this.delayedCreate();
52             //_this.paging.onClick('refresh');
53         });
54     },
55     delayedCreate : function()
56     {
57         if (this.grid) {
58             return;
59         }
60         this.innerLayout.beginUpdate();
61         
62         var _this = this;
63         
64         
65         var treePanelEl = this.innerLayout.getEl().createChild({tag:'div'});
66         var tb = new Roo.Toolbar(treePanelEl.createChild({tag:'div'}), [ 
67             
68         
69         
70         ]);
71         var treeEl = treePanelEl.createChild({tag:'div'});
72         
73         this.panel  = this.innerLayout.add('center',  new Roo.ContentPanel(treePanelEl, {
74                
75             fitToFrame: true,
76             fitContainer: true ,
77             autoScroll:false,
78             //autoCreate:true,
79             toolbar: tb, //,
80             //resizeEl:treeEl,
81             listeners : {
82                 resize : function (cp, w, h) {
83                     _this.tree.innerCt.setWidth(w);
84                     _this.tree.innerCt.setHeight(h);
85                     _this.tree.innerCt.setStyle('overflow-y', 'auto');
86                 }
87             }
88         }));
89
90         
91
92         
93         this.tree = new Roo.tree.TreePanel(treeEl , 
94             {
95                 loader: new Roo.tree.TreeLoader({
96                     dataUrl: baseURL + '/Ftp/List.php',
97                     requestMethod: 'GET',
98                     root: 'data',
99                     queryParam : 'name',
100                     baseParams : {
101                         start: 0,
102                         limit : 9999,
103                         person_id : Pman.Login.authUser.id
104                     },
105                     listeners : {
106                         beforeload : function(tl, n) {
107                             //tl.baseParams.is_search = n.attributes.is_search;
108                         }
109                     }
110                     
111                     //,
112                     //uiProviders: {
113                     //    default: Roo.tree.ColumnNodeUI
114                     //}
115                   
116                 }),
117                 renderer : function (ats) {
118                     return String.format('{0}', ats.name);
119                     
120                 },
121                 /*
122                 rendererTip : function (ats) {
123                     return String.format('{0}', ats.description || ats.name);
124                     
125                 },
126                 */
127                //dataUrl:'get-nodes.php',
128                 
129                 // listeners :{
130                 //        loadexception : Pman.loadException
131                 //    }
132             
133             
134                 containerScroll: true,
135             
136                     
137                /* width: 550,
138                 height: 300,
139                 */
140                 rootVisible : false,
141                     
142                  
143                 
144                 loadMask: true,
145                 listeners : {
146                      
147                     rowdblclick : function(g, ri, e) {
148                         //var s = g.getDataSource().getAt(ri).data;
149                       
150                        // _dialog.show(s, refreshPager); 
151                     } 
152
153                 }
154                 
155                 
156             
157         });
158        
159         this.tree.getSelectionModel().on('selectionchange', function(sm, n) {
160            // load file list...
161             Pman.Tab.FtpFiles.reload();
162             
163             
164         });
165
166         // let's make some standard top level ones..
167         var root = new Roo.tree.AsyncTreeNode({
168             //text: 'Saved Searches',
169             name : "/",
170             draggable:false,
171             id: '/'
172         });
173           
174         this.tree.setRootNode(root);
175
176         // render the tree
177         this.tree.render();
178         root.expand();
179
180          
181         var _dialog = Pman.Dialog.ClippingTree;
182         
183         tb.add(
184             {
185                // xtype : 'Menu',
186               //  xns : Roo.menu,
187                 text: "Manage Folders",
188                 cls: 'x-btn-text-icon',
189                 icon: Ext.rootURL + 'images/default/tree/leaf.gif',
190                 menu : {
191                     items : [
192                         
193                         {
194                             text: "Add Folder",
195                             cls: 'x-btn-text-icon',
196                             icon: Ext.rootURL + 'images/default/dd/drop-add.gif',
197                             handler : function(){
198                                  
199                             }
200                         }, 
201                         {
202                             text: "Rename Folder",
203                             cls: 'x-btn-text-icon',
204                             icon: Ext.rootURL + 'images/default/tree/leaf.gif',
205                             
206                             handler : function(){
207                             
208                             }
209                         },  
210                         {
211                             text: "Delete Folder" ,
212                             cls: 'x-btn-text-icon',
213                             icon: rootURL + '/Pman/templates/images/trash.gif',
214                             handler : function(){
215                                  
216                                 
217                                  
218                             }
219                         }, '-',  
220                         {
221                             text: "Reload Tree" ,
222                             cls: 'x-btn-text-icon',
223                             icon: rootURL + '/Pman/templates/images/view-refresh.gif',
224                             handler : function(){
225                                 _this.reloadTree();
226                                 
227                             }
228                         }  
229                     ]
230                 }
231             }
232         );
233      
234         
235         //this.toolbar = tb;
236         // add stuff to toolbar?
237         this.innerLayout.endUpdate();
238         
239         
240         
241     },
242     deleteNode : function(node)
243     {
244          /*
245         Pman.request({
246             url: baseURL + '/Roo/ClippingTree',
247             method : 'GET',
248             params : {
249                 _delete : node.id
250                 
251             },
252             success : function(data) {
253                 node.parentNode.removeChild(node);
254                 
255             },
256             failure : function ()
257             {
258                 // do nothing!!!
259                 
260             }
261         });
262         */
263     },
264     reloadTree: function()
265     {
266         /*this.tree.root.eachChild(function(n) {
267             n.collapse(false,false);
268             n.leaf = false;
269             while(n.firstChild){
270                 n.removeChild(n.firstChild);
271             }
272             n.childrenRendered = false;
273             n.loaded = false;
274             n.leaf = false;
275             n.ui.updateExpandIcon();
276             
277             //n.reload();
278         });
279         */
280     }
281     
282     
283     
284 };
285
286