Ignore:
Timestamp:
14/03/08 12:17:32 (12 years ago)
Author:
cbyrom
Message:

Complete drag and drop functionality for the View tab: add fixes to
allow overlaid maps to be properly displayed with transparancy + allow
removal of layers (NB, have to hide list items rather than remove them
otherwise the coupling with the drag and drop js control is lost and things
stop working) + allow removal of WMCs (NB, have to refresh delete event
listeners each time the tree view is redrawn, otherwise the event listeners
stop working).

Location:
TI05-delivery/ows_framework/trunk/ows_server/ows_server
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/config/routing.py

    r3606 r3607  
    1 # 
    2 # $Id$ 
    3 # 
    41""" 
    52Setup your Routes options here 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/controllers/selectedItems.py

    r3544 r3607  
    5252            # ensure selections have been made 
    5353            if 'selectedItems' in session: 
     54                 
    5455                # the view tab uses its own selections session variable 
    5556                # - this should initially match that set here 
    5657                session['viewItems'] = copy.deepcopy(session['selectedItems']) 
     58                session.save() 
     59 
     60                # redirect to the view tab index code 
     61                h.redirect_to(h.url_for(controller='viewItems',action='index')) 
    5762                 
    58                 viewController = viewItems.ViewitemsController() 
    59                 return viewController.index() 
    6063         
    6164        else: 
     
    167170                deletedItem = selection 
    168171                 
    169                  
    170172        # if the new list is empty, remove the session variable and hide the selection page 
    171173        if len(selections) == 0: 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/controllers/viewItems.py

    r3544 r3607  
     1# 
     2# Controller for the 'View' tab - allowing the display of WMC map layers 
     3# 
     4# $Id$ 
     5# 
    16from ows_server.lib.base import * 
    27from paste.request import parse_querystring 
     
    1116        self.inputs=dict(parse_querystring(request.environ)) 
    1217        c.wmcURL = "" 
     18        # check if all we're doing is removing a view item 
     19        if 'removeItem' in self.inputs: 
     20            return self.removeViewItem(self.inputs['removeItem']) 
     21         
    1322        # check if we're doing an AJAX callback to get some WMC data 
    1423        if 'REQUEST' in self.inputs and self.inputs['REQUEST'] == 'GetWebMapContext': 
    1524            return GetWebMapContext(self) 
     25         
    1626        # otherwise, we can get here by two routes: 
    1727        # i) either by clicking on the WMC icon in the details view - if so, get passed endpoint and add to 
     
    2030         
    2131        # firstly check if page has been visited before; if not display tab 
    22         if 'viewItems' not in session: 
     32        if (Utilities.isTabRequired(c.pageTabs, 'View')): 
    2333            c.pageTabs.append(('View', h.url_for(controller='viewItems',action='index'))) 
    24  
     34             
    2535        # if ENDPOINT specified, we've reached the page via the WMC icon 
    2636        if ('ENDPOINT' in self.inputs): 
     
    4656        session['viewItems'] = selections 
    4757        session.save() 
     58         
     59     
     60    # Remove view item from session data 
     61    # - NB, do this by rebuilding the session data 
     62    # without the input data included 
     63    def removeViewItem(self,endpoint): 
     64        selections = [] 
     65        for selection in session['viewItems']: 
     66            if selection.wmcURL != endpoint: 
     67                selections.append(selection) 
     68                 
     69        # if the new list is empty, remove the session variable 
     70        if len(selections) == 0: 
     71            del session['viewItems'] 
     72            c.UpdatePageTabs=1 
     73        else: 
     74            session['viewItems'] = selections 
     75 
     76        session.save() 
     77         
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/public/js/VisMapBox.js

    r2996 r3607  
    112112         
    113113 
    114 /* 
    115     updateVisLayer: function() { 
    116         this.control.agetWmsUri(this, this.updateVisLayer_cb); 
    117     }, 
    118     updateVisLayer_cb: function(response) { 
    119         var url = response.responseText; 
    120         if (this.visLayer) { 
    121             this.map.removeLayer(this.visLayer); 
    122         } 
    123         this.visLayer = new OpenLayers.Layer.WMS("Vis layer", 
    124                                                  document.location+url, 
    125                                                  {format: 'image/png', 
    126                                                   version: '1.3.0', CRS: 'CRS:84' 
    127                                                  }); 
    128         this.visLayer.setZIndex(300); 
    129         this.map.addLayer(this.visLayer); 
    130  
    131         this.loadLegend(); 
    132     }, 
    133  
    134     clearSubsel: function() { 
    135         this.subselControl.deactivateSubsel(); 
    136         this.updateSelectionForm(); 
    137     }, 
    138  
    139     loadLegend: function() { 
    140         function setLegend(response) { 
    141             $('legend').innerHTML = response.responseText; 
    142             var desc = document.createElement('p'); 
    143             desc.innerHTML = this.control.getStateDescription(); 
    144             $('legend').appendChild(desc); 
    145         } 
    146          
    147         var url = this.visLayer.getFullRequestString({ 
    148             REQUEST: 'GetLegend', 
    149             FORMAT: 'text/html', 
    150             CMAP: this.cmapName 
    151         }); 
    152         OpenLayers.loadURL(url, '', this, setLegend); 
    153     }, 
    154  
    155     makeFigure: function() { 
    156         var clim = this.visLayer; 
    157         var caption = 'IPCC Data Distribution Centre: www.ipcc-data.org\n' + this.control.getStateDescription(); 
    158         var form = $(this.control.formDiv).getElementsByTagName('form')[0]; 
    159         var typeInput = form.fig_type; 
    160         for (var i=0; i<typeInput.length; i++) { 
    161             if (typeInput[i].checked) { 
    162                 var figtype = typeInput[i].value; 
    163                 break; 
    164             } 
    165         } 
    166  
    167         var url = clim.getFullRequestString({ 
    168               REQUEST: 'GetFigure', 
    169                            BBOX: this.subselControl.getActiveBounds().toBBOX(), 
    170                            CAPTION: caption, 
    171                            TYPE: figtype, 
    172                            FORMAT: form.fig_format.value 
    173                            }); 
    174         if (form.fig_format.value == 'application/postscript') { 
    175             location.href = url; 
    176         } 
    177         else { 
    178             window.open(url, 'figure_'+this.figureCounter, 'toolbars=no,location=no,directories=no,menubar=no'); 
    179             this.figureCounter++; 
    180         } 
    181     }, 
    182   */   
    183114    updateSelectionForm: function() { 
    184115        var b = this.subselControl.getActiveBounds(); 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/public/js/dragAndDrop.js

    r3586 r3607  
     1// Customisation of the YUI drag and drop control - allowing list elements to 
     2// be reordered by dragging and dropping them. 
     3// - NB, this is used to allow map layers to be re-organised in the view tab -  
     4// hence the updateVisLayers call when an item has been dragged and dropped 
     5//  
     6// C Byrom 
    17(function() { 
    28 
     
    1117    init: function() { 
    1218 
    13         var rows=10,cols=1,i,j; 
    14         new YAHOO.util.DDTarget("ul1"); 
     19        var rows=10,i; 
    1520 
    16         for (j=1;j<rows+1;j=j+1) { 
    17                 new YAHOO.example.DDList("li" + "_" + j); 
     21        for (i=1;i<rows+1;i++) { 
     22                new YAHOO.example.DDList("li_" + i); 
    1823        } 
     24    } 
     25}; 
    1926 
    20         Event.on("showButton", "click", this.showOrder); 
    21     }, 
    22  
    23     showOrder: function() { 
    24         var parseList = function(ul, title) { 
    25             var items = ul.getElementsByTagName("li"); 
    26             var out = title + ": "; 
    27             for (i=0;i<items.length;i=i+1) { 
    28                 out += items[i].id + " "; 
    29             } 
    30             return out; 
    31         }; 
    32  
    33         var ul1=Dom.get("ul1"); 
    34         alert(parseList(ul1, "List 1")); 
    35  
    36     }, 
    37  
    38 }; 
    3927 
    4028////////////////////////////////////////////////////////////////////////////// 
     
    9684            }); 
    9785        a.animate(); 
     86         
     87        // Now update the displayed layers 
     88                app.updateVisLayer(); 
    9889    }, 
    9990 
     
    163154 
    164155})(); 
     156 
     157 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/public/js/vis-app.js

    r3547 r3607  
    4848                this.map.addControl(new OpenLayers.Control.MousePosition()); 
    4949 
    50                 // Setup a dummy baselayer.  This will be replaced asynchronously by this.updateVisLayer() 
     50                // Setup the map - initially with the basic openlayers map + coastline + boxes 
    5151                this.updateVisLayer(); 
    5252 
    53                 this.coastLayer = null; 
    54                 if (this.showCoast)  
    55                 { 
    56                 this._initCoast('coastline_01'); 
    57                 } 
    58  
    59                 this.map.addLayer(this.boxesLayer); 
    6053                this.map.zoomToExtent(new OpenLayers.Bounds(-180,-90,180,90));   
    6154    }, 
     
    6457    { 
    6558                this.layerControl.destroy(); 
    66                 //!not working 
    67                 //this.map.destroy(); 
    6859                this.boxesLayer.destroy(); 
    6960                this.subselControl.destroy(); 
     
    7263    _initCoast: function(layerName)  
    7364    { 
    74                 if (this.coastLayer)  
    75                 { 
    76                 if (this.coastLayer.params.LAYERS == layerName)  
    77                 { 
    78                                 return; 
    79                 } 
    80                 else  
    81                 { 
    82                                 this.map.removeLayer(this.coastLayer); 
    83                 } 
    84                 } 
    85                 this.coastLayer = new OpenLayers.Layer.WMS("Coastline", 
    86                                                    "http://labs.metacarta.com/wms/vmap0", 
    87                                                    {layers: layerName, format: 'image/gif', 
    88                                                     transparent: 'true'}); 
     65                // check if coast layer is loaded or if a different coast layer has been specified; reload, if so 
     66        if (!this.coastLayer || this.coastLayer.params.LAYERS != layerName)  
     67        { 
     68                        this.coastLayer = new OpenLayers.Layer.WMS("Coastline", 
     69                                           "http://labs.metacarta.com/wms/vmap0", 
     70                                           {layers: layerName, format: 'image/gif', 
     71                                            transparent: 'true'}); 
     72        } 
    8973                this.map.addLayer(this.coastLayer); 
    9074    }, 
    9175 
     76        // determine whether any layers have been added to the layerlist; if so, add these one by one 
     77        // to the map 
    9278    updateVisLayer: function()  
    9379    { 
    94                 if (this.visLayer)  
    95                 { 
    96                 this.map.removeLayer(this.visLayer); 
    97                 } 
    98                 if (this.layerControl.wmsEndpoint == null)  
    99                 { 
    100                 // Setup a dummy baselayer. 
     80        // firstly, remove any existing layers 
     81        j = this.map.getNumLayers(); 
     82                for (var i = 0; i < j; i++) 
     83                { 
     84                this.map.removeLayer(this.map.layers[0]); 
     85                } 
     86 
     87        // Setup an initial baselayer - NB, without this, the transparent layers will not display 
     88        if (!this.visLayer) 
     89        { 
    10190                this.visLayer = new OpenLayers.Layer.WMS("OpenLayers WMS", 
    102                                                      "http://labs.metacarta.com/wms/vmap0", 
    103                                                      {layers: 'basic',format: 'image/png'}); 
    104                 } 
    105                 else  
    106                 { 
    107                         // if this is a wmc layer, use the url in the layer 
    108 //                      endpoint = this.layerControl._selectedLayer.getEndpoint(); 
    109                         endpoint = this.layerControl._selectedLayer.data.wmcEndpoint; 
    110                         if (endpoint == null) 
    111                                 endpoint = this.layerControl.wmsEndpoint; 
    112                 this.visLayer = new OpenLayers.Layer.WMS("DDC-Vis layer", 
     91                             "http://labs.metacarta.com/wms/vmap0", 
     92                             {layers: 'basic',format: 'image/png'}); 
     93                        this.visLayer.mergeNewParams(this.layerControl.wmsParams); 
     94                        this.visLayer.setZIndex(300); 
     95        } 
     96                this.map.addLayer(this.visLayer); 
     97                 
     98                // retrieve the elements of the layer list and add these to the map 
     99                layerList = document.getElementById("layerlist"); 
     100                for (var i = 0; i < layerList.childNodes.length; i++) 
     101                { 
     102                        child = layerList.childNodes[i]; 
     103                        // ignore any hidden list values 
     104                        if (child.className == "hiddenList") 
     105                                continue; 
     106                         
     107                        if (child.nodeName == "LI") 
     108                        { 
     109                                // extract the required info and load the map 
     110                                // NB, these values are set in the wmscControl._updateLeafLayer() method 
     111                                endpoint = child.getAttribute("wmcURL"); 
     112                                title = child.getAttribute("title"); 
     113                                layerName = child.getAttribute("layerName"); 
     114                                         
     115                        mapLayer = new OpenLayers.Layer.WMS( 
     116                                                title, 
    113117                                                endpoint, 
    114                                                      {format: 'image/png', 
    115                                                       version: '1.3.0', CRS: 'CRS:84' 
     118                                                     {format: 'image/gif', 
     119                                                      version: '1.3.0',  
     120                                                      CRS: 'CRS:84', 
     121                                                      layers: layerName, 
     122                                                  transparent: 'true' 
    116123                                                     }); 
    117                 } 
    118                 this.visLayer.mergeNewParams(this.layerControl.wmsParams); 
    119                 this.visLayer.setZIndex(300); 
    120         this.map.addLayer(this.visLayer); 
    121                 this.loadLegend(); 
     124                                mapLayer.setZIndex(300); 
     125                        this.map.addLayer(mapLayer); 
     126                        } 
     127                } 
     128                         
     129                // add the coast outline 
     130        this._initCoast('coastline_01'); 
     131 
     132                // add layer to represent 'boxes' on the layer           
     133                this.map.addLayer(this.boxesLayer); 
     134                 
     135//              this.loadLegend(); 
    122136    },   
    123137 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/public/js/wmscControl.js

    r3588 r3607  
    3232    // The number of layers currently displayed 
    3333    layerNo: 0, 
    34  
     34     
     35    // The maximum number of layers to display at once; NB, this needs to equal the  
     36    // number of drag and drop controls created in dragAndDrop.js 
     37    MAX_LAYER_NO: 10, 
     38     
    3539    initialize: function(treeDiv, layerDiv, domainDiv)  
    3640    { 
     
    99103                        }); 
    100104    }, 
     105     
     106    // add listeners to the delete icons on the tree view nodes 
     107    // NB, these are lost each time the tree redraws itself, hence the 
     108    // need to constantly refresh this list 
     109    addListeners: function() 
     110    { 
     111        for (var i = 0; i <= this.tree.getRoot().children.length; i++) 
     112        { 
     113                // get index of child 
     114                var index = this.tree.getRoot().children[i].index; 
     115                var delIcon = document.getElementById("delIcon_" + index); 
     116                if (delIcon != null) 
     117                { 
     118                        delIcon.onclick = this._removeNode.bindAsEventListener(this); 
     119                    } 
     120        } 
     121    }, 
    101122 
    102123    addWebMapContext: function(wmsEndpoint, wmcEndpoint)  
     
    104125                var treeNode = new YAHOO.widget.TextNode( 
    105126                     {endpoint: wmsEndpoint, 
    106                       wmcEndpoint: wmcEndpoint, 
    107                               label: "...loading"},  
     127                      wmcEndpoint: wmcEndpoint},  
    108128                             this.tree.getRoot(), false); 
    109                               
     129                treeNode.label = this.createNodeLabel("...loading", treeNode.index); 
     130                                              
    110131                var bindDataToTree = function(xhr)  
    111132                { 
     
    115136                        this.tree.getRoot(),  
    116137                        treeNode); 
     138 
    117139                this.tree.draw(); 
     140                 
     141                // Add listener to delete icon to allow node to be removed 
     142                this.addListeners(); 
    118143                }; 
    119144 
     
    178203                { 
    179204                treeNode.data = nodeData; 
    180                 treeNode.label = nodeData.label; 
     205                // NB, add listener later on since the delete is not currently available in the DOM 
     206                treeNode.label = this.createNodeLabel(nodeData.label, treeNode.index); 
    181207                } 
    182208                 
     
    191217                return treeNode; 
    192218    }, 
     219     
     220    createNodeLabel: function(nodeLabel, nodeIndex) 
     221    { 
     222        return '<table><tr><td class="nodeTitle">' +  
     223                        nodeLabel + '</td><td class="delIcon">' + 
     224                        '<img id="delIcon_' + nodeIndex + '" src="js/img/close.gif" /></td></tr></table>'; 
     225    }, 
     226         
     227    // respond to the user clicking on the delete icon for node - by removing this node 
     228    _removeNode: function(evt) 
     229    { 
     230                var delIcon = Event.element(evt); 
     231 
     232                // get the node name from the icon ID 
     233                nodeIndex = delIcon.id.substring(delIcon.id.indexOf("_") + 1, delIcon.id.length);                    
     234         
     235        node = this.tree.getNodeByIndex(nodeIndex); 
     236                var params = {removeItem: node.data.wmcEndpoint}; 
     237        this.tree.removeNode(node) 
     238        // need to redraw to  
     239        this.tree.draw(); 
     240         
     241        var updateView = function(xhr)  
     242                { 
     243                        // add listeners again to the delete icons; these are lost when the tree redraws 
     244                this.addListeners(); 
     245                } 
     246         
     247        new Ajax.Request('removeViewItem',  
     248                        { 
     249                                parameters: params, 
     250                        method: "get", 
     251                                onSuccess: updateView.bindAsEventListener(this)                  
     252                        }); 
     253    }, 
     254     
    193255 
    194256 
     
    258320                        } 
    259321 
    260 /*               
    261                 new Ajax.Request(this.wmsEndpoint,  
    262                 { 
    263                                 parameters: params, 
    264                                 method: "get", 
    265                                 onSuccess: this._updateLeafLayer.bindAsEventListener(this) 
    266                 }); 
    267 */ 
    268322                // add the selected layer to the layers panel 
    269323                this._updateLeafLayer(); 
     
    288342                // get the layer number from the icon ID 
    289343                layerIndex = delIcon.id.substring(delIcon.id.indexOf("_") + 1, delIcon.id.length);                   
    290         alert('blah' + layerIndex); 
    291344         
    292345        layer = document.getElementById("li_" + layerIndex); 
    293          
    294         // now remove this layer 
    295         layer.parentNode.removeChild(layer); 
     346 
     347                // hide this layer by changing the style - NB, if the layer is removed, the  
     348                // associated drag+drop functionality will stop working if the list item is recreated 
     349        layer.className = "hiddenList"; 
     350        layer.innerHTML = ''; 
    296351         
    297352        // reduce the layer counter 
    298353        this.layerNo--; 
     354 
     355        // and reload the maps 
     356        this.events.triggerEvent('changeWMS'); 
    299357    }, 
    300358     
     
    307365                if (this.layerNo > 1) 
    308366            { 
    309                 messageText = 'Adjust display order of layers by dragging and dropping them'; 
     367                messageText = 'Adjust display order of layers by dragging and dropping them.  NB, layers are overlaid from top to bottom.'; 
    310368            } 
    311369            else if (this.layerNo == 0) 
     
    315373            message.innerHTML = messageText; 
    316374    }, 
     375 
    317376     
    318377    _updateLeafLayer: function(xhr)  
    319     { 
     378    {        
     379        var node = this._selectedTreeNode; 
     380            // check this layer isn't already present and visible 
     381                layers = document.getElementById("layerlist"); 
     382                for (var i = 0; i < layerList.childNodes.length; i++) 
     383                { 
     384                        child = layerList.childNodes[i]; 
     385                        if (child.className == "hiddenList") 
     386                                continue; 
     387                                 
     388                        if (child.nodeName == "LI") 
     389                        { 
     390                                title = child.getAttribute("title"); 
     391                                if (title == node.data.label) 
     392                                        return; 
     393                        } 
     394                }            
     395 
    320396        // check what node was selected; if this was a webmapcontext one 
    321397        // load this info, if not, load the capabilities 
    322         var node = this._selectedTreeNode; 
    323  
    324                 layers = document.getElementById("layerlist"); 
    325             this.layerNo++;// = layers.childNodes.length; 
    326             if (this.layerNo >= 10) 
     398 
     399            this.layerNo++; 
     400            if (this.layerNo > this.MAX_LAYER_NO) 
    327401            { 
    328402                alert('Can only select 10 layers at once; please delete an existing layer and try again.'); 
     
    334408                                 
    335409                // Populate the leafLayer div 
    336             leafDiv = document.createElement('div'); 
    337             leafDiv.innerHTML =  
    338                 '<li class="list" id="li_' + this.layerNo + '"><table><tr><td class="layerTitle">' + node.data.label + 
    339                 '</td><td class="delIcon"><img id="del_' + this.layerNo + '" src="js/img/close.gif" />' + 
    340                 '</td></tr></table></li>'; 
    341                 layers.appendChild(leafDiv); 
     410                // - check if there are any existing, unused lists first 
     411                layer = this.getFirstHiddenListElement(); 
     412                 
     413                listItemNumber = this.layerNo; 
     414                if (layer == null) 
     415                { 
     416                    layer = document.createElement('li'); 
     417                layer.id = "li_" + this.layerNo; 
     418                } 
     419                else 
     420                { 
     421                        // get the listItemNumber - to ensure the delete button matches 
     422                        listItemNumber = layer.id.substring(layer.id.indexOf("_") + 1, layer.id.length); 
     423                } 
     424            layer.className = "list"; 
     425            layer.setAttribute("title", node.data.label); 
     426            layer.setAttribute("layerName", node.data.layer); 
     427            layer.setAttribute("wmcURL", node.data.wmcEndpoint); 
     428                layer.innerHTML =  
     429                        '<table><tr><td class="layerTitle">' + node.data.label + 
     430                '</td><td class="delIcon"><img id="del_' + listItemNumber + '" src="js/img/close.gif" />' + 
     431                '</td></tr></table>'; 
    342432             
    343             deleteIcon = document.getElementById("del_" + this.layerNo); 
     433                layers.appendChild(layer); 
     434             
     435            // Add listener to delete icon to allow layer to be removed 
     436            deleteIcon = document.getElementById("del_" + listItemNumber); 
    344437            deleteIcon.onclick = this._removeLayer.bindAsEventListener(this); 
    345438    }, 
    346439     
    347      
     440    // iterate over the list elements and return the first hidden one - or return null if none found 
     441    getFirstHiddenListElement: function() 
     442    { 
     443        for (var i = 1; i <= this.MAX_LAYER_NO; i++) 
     444        { 
     445                layer = document.getElementById('li_' + i); 
     446                if (layer == null) 
     447                        continue; 
     448                if (layer.className == "hiddenList") 
     449                        return layer; 
     450        } 
     451        return null; 
     452    }, 
     453   
    348454    selectLeafLayer: function(layer, element)  
    349455    { 
     
    504610        return items; 
    505611    }, 
    506     getTreeNotes: function() { 
    507         var node = this._selectedTreeNode; 
    508         var items = []; 
    509  
    510         // Traverse up the tree 
    511         while (node != null) { 
    512             if (node.label) { 
    513                 items[items.length] = { 
    514                     title: node.label, 
    515                     abstract: node.data.abstract 
    516                 }; 
    517             } 
    518             node = node.parent; 
    519         } 
    520         items = items.reverse(); 
    521  
    522         return items; 
    523     }, 
    524612 
    525613    /** A hook to change the display of Dimension items. 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/public/layout/drag_drop_style.css

    r3588 r3607  
    1111} 
    1212 
     13/* Stylesheet to support the dragAndDrop javascript control 
     14        C Byrom 
     15*/ 
     16 
     17div.layerMessage 
     18{ 
     19  text-align: center; 
     20  font-size: 12px; 
     21  font-weight: bold; 
     22} 
     23 
    1324ul.draglist li  
    1425{ 
     
    2031{  
    2132    position: relative; 
    22     width: 400px;  
     33    width: 100%;  
    2334    list-style: none; 
    2435    margin:0; 
     
    3243} 
    3344 
    34  
    3545li.list  
    3646{ 
    3747    background-color: #D1E6EC; 
    3848    border:1px solid #7EA6B2; 
     49} 
     50 
     51li.hiddenList  
     52{ 
     53        display:none; 
     54        visibility = visible; 
    3955} 
    4056 
     
    4864{ 
    4965        align:left; 
    50         width:300px; 
    5166} 
     67 
     68td.nodeTitle 
     69{ 
     70        align:left; 
     71} 
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/templates/viewItems.kid

    r3588 r3607  
    6060            </span> 
    6161    </for> 
    62  
    6362    app = new WMSC.VisApp('map', control); 
    64     control.events.register('changeWMS', null, updateDescription); 
    6563} 
    6664 
     
    6866{ 
    6967    app.destroy(); 
    70 } 
    71  
    72 function updateDescription()  
    73 { 
    74     $('description').innerHTML = control.getStateDescription().join('<br/>'); 
    7568} 
    7669 
     
    136129<td class="controlPanel"> 
    137130        <div class="controlContent" id="layerLeaves"> 
    138                 <div id="layerMessage"> 
    139                         Expand a dataset and select a layer to view 
     131                <div id="layerMessage" class="layerMessage"> 
     132            <span py:if="'viewItems' not in session" py:strip="True"> 
     133                Please select a dataset to view - from the 'Selections' tab. 
     134            </span> 
     135            <span py:if="'viewItems' in session" py:strip="True"> 
     136                                Expand a dataset and select a layer to view 
     137                        </span> 
    140138                </div> 
    141139                <div class="workarea"> 
Note: See TracChangeset for help on using the changeset viewer.