Skip to content

Commit

Permalink
Move panel heading into seperate configurable directive
Browse files Browse the repository at this point in the history
fixes #230
  • Loading branch information
raitisbe committed Jul 20, 2019
1 parent d87da93 commit b238d6a
Show file tree
Hide file tree
Showing 24 changed files with 102 additions and 225 deletions.
43 changes: 19 additions & 24 deletions components/add-layers/partials/add-layers.directive.html
@@ -1,32 +1,27 @@
<div class="hs-panel-margin panel" ng-class="{'panel-default mainpanel' : !Core.singleDatasources}"> <div class="hs-panel-margin panel" ng-class="{'panel-default mainpanel' : !Core.singleDatasources}">
<div class="card-header" ng-show="!Core.singleDatasources" translate>Add external data <hs.layout.panel-header panel-name="ows" panel-title="'Add external data'||translate"></hs.layout.panel-header>
<button type="button" class="close" ng-click="Core.closePanel(this)">
<span aria-hidden="true">×</span>
<span class="sr-only" translate>Close</span>
</button>
</div>
<div class="card-body"> <div class="card-body">
<form name="frmConnect" role="form" class="form"> <form name="frmConnect" role="form" class="form">
<div class="form-group"> <div class="form-group">
<div class="input-group"> <div class="input-group">
<div class="input-group-prepend" id="type_label"><span class="input-group-text" translate>Choose format</span></div> <div class="input-group-prepend" id="type_label"><span class="input-group-text" translate>Choose format</span></div>
<select class="form-control" id="ows_type" ng-model="type"> <select class="form-control" id="ows_type" ng-model="type">
<option ng-repeat="type in types">{{type}}</option> <option ng-repeat="type in types">{{type}}</option>
</select> </select>
</div>
</div> </div>
</div>


<div class="form-group"> <div class="form-group">
<div class="input-group"> <div class="input-group">
<input type="url" class="form-control" name="url" ng-model="url" placeholder="{{'External data source (URL)'|translate}}" required /> <input type="url" class="form-control" name="url" ng-model="url" placeholder="{{'External data source (URL)'|translate}}" required />
<div class="input-group-append"> <div class="input-group-append">
<button type="button" class="btn btn-secondary" ng-if="frmConnect.url.$valid && isService()" ng-click="connect()"><i class="icon-link"></i></button> <button type="button" class="btn btn-secondary" ng-if="frmConnect.url.$valid && isService()" ng-click="connect()"><i class="icon-link"></i></button>
<button type="button" class="btn btn-danger" ng-if="frmConnect.url.$error.url"><i class="icon-alertalt"></i></button> <button type="button" class="btn btn-danger" ng-if="frmConnect.url.$error.url"><i class="icon-alertalt"></i></button>
</div>
</div> </div>
</div> </div>
</form> </div>
<hr/> </form>
<div class='ows-capabilities' ng-show="showDetails" compile="templateByType()"></div> <hr/>
<div class='ows-capabilities' ng-show="showDetails" compile="templateByType()"></div>
</div> </div>
</div> </div>
19 changes: 10 additions & 9 deletions components/compositions/partials/compositions.html
@@ -1,13 +1,14 @@
<div class="card panel-default mainpanel hs-comp-mainpanel"> <div class="card panel-default mainpanel hs-comp-mainpanel">
<div class="card-header"><span translate>Compositions</span><span ng-show='data.compositionsCount>0'>({{data.compositionsCount}})</span> <hs.layout.panel-header panel-name="composition_browser" panel-title="'Compositions'||translate">
<button type="button" class="close" ng-click="Core.closePanel(this)"> <extra-title>
<span aria-hidden="true">×</span> <span ng-show='data.compositionsCount>0'>({{data.compositionsCount}})</span>
<span class="sr-only" translate>Close</span> </extra-title>
</button> <extra-buttons>
<label class="btn btn-sm btn-secondary btn-file" title="Import composition from a file on device" style="margin-bottom:0; line-height: 1em; float: right; margin-right: 1em; cursor: pointer;"> <label class="btn btn-sm btn-secondary btn-file" title="Import composition from a file on device" style="margin-bottom:0; line-height: 1em; float: right; margin-right: 1em; cursor: pointer;">
<span class="icon-upload"></span><input type="file" ng-on-change="handleFileSelect($event)" accept=".json" style="display: none;"> <span class="icon-upload"></span><input type="file" ng-on-change="handleFileSelect($event)" accept=".json" style="display: none;">
</label> </label>
</div> </extra-buttons>
</hs.layout.panel-header>
<div class="card-body"> <div class="card-body">
<form id="hs-comp-filter"> <form id="hs-comp-filter">
<div class="form-group"> <div class="form-group">
Expand Down
5 changes: 4 additions & 1 deletion components/core/core.js
Expand Up @@ -295,8 +295,11 @@ angular.module('hs.core', ['hs.map', 'gettext', 'hs.drag', 'hs.layout', 'hs.api'
}); });
} }
which.unpinned = false; which.unpinned = false;
if (which.panel_name == me.mainpanel) { if (which.panelName == me.mainpanel) {
if (me.defaultPanel != '') { if (me.defaultPanel != '') {
if(which.panelName == me.defaultPanel){
me.sidebarExpanded = false;
} else
me.setMainPanel(me.defaultPanel) me.setMainPanel(me.defaultPanel)
} else { } else {
me.mainpanel = ''; me.mainpanel = '';
Expand Down
@@ -1,10 +1,5 @@
<div class="card panel-default mainpanel"> <div class="card panel-default mainpanel">
<div class="card-header"><translate>Datasources</translate> <hs.layout.panel-header panel-name="datasource_selector" panel-title="'Datasources'||translate"></hs.layout.panel-header>
<button type="button" class="close" ng-click="Core.closePanel(this)">
<span aria-hidden="true">×</span>
<span class="sr-only" translate>Close</span>
</button>
</div>
<div class="card-body"> <div class="card-body">
<!-- <div ng-if="!Core.singleDatasources" ng-include="'./datasource_search.html'"> <!-- <div ng-if="!Core.singleDatasources" ng-include="'./datasource_search.html'">
<div class="input-group col-lg-8 col-sm-12 col-xs-12" style="margin-bottom: 4px"> <div class="input-group col-lg-8 col-sm-12 col-xs-12" style="margin-bottom: 4px">
Expand Down
7 changes: 1 addition & 6 deletions components/draw/partials/draw.html
@@ -1,10 +1,5 @@
<div class="card panel-default mainpanel"> <div class="card panel-default mainpanel">
<div class="card-header"><span class="panel-title"><translate>Draw new features</translate></span> <hs.layout.panel-header panel-name="draw" panel-title="'Draw new features'||translate"></hs.layout.panel-header>
<button type="button" class="close" ng-click="Core.closePanel(this);">
<span aria-hidden="true">×</span>
<span class="sr-only" translate>Close</span>
</button>
</div>
<div class="card-body hs-dr-panel"> <div class="card-body hs-dr-panel">


<!-- Layer --> <!-- Layer -->
Expand Down
7 changes: 1 addition & 6 deletions components/feature_crossfilter/partials/f_crossfilter.html
@@ -1,10 +1,5 @@
<div class="card panel-default mainpanel" id="f_crossfilter_data_panel"> <div class="card panel-default mainpanel" id="f_crossfilter_data_panel">
<div class="card-header"><translate>Filter features</translate> <hs.layout.panel-header panel-name="feature_crossfilter" panel-title="'Filter features'||translate"></hs.layout.panel-header>
<button type="button" class="close" ng-click="Core.closePanel(this)">
<span aria-hidden="true">×</span>
<span class="sr-only" translate>Close</span>
</button>
</div>
<div class="card-body"> <div class="card-body">
<div class="form-group"> <div class="form-group">
<img ng-src="{{loaderImage}}" ng-show="loading"/> <img ng-src="{{loaderImage}}" ng-show="loading"/>
Expand Down
7 changes: 1 addition & 6 deletions components/language/partials/language.html
@@ -1,10 +1,5 @@
<div class="card panel-default mainpanel"> <div class="card panel-default mainpanel">
<div class="card-header"><translate>Change language</translate> <hs.layout.panel-header panel-name="language" panel-title="'Change language'||translate"></hs.layout.panel-header>
<button type="button" class="close" ng-click="Core.closePanel(this)">
<span aria-hidden="true">×</span>
<span class="sr-only" translate>Close</span>
</button>
</div>
<div class="card-body"> <div class="card-body">
<ul class="hs-senslog-list list-group"> <ul class="hs-senslog-list list-group">
<button ng-repeat="lang in available_languages" ng-class="'btn btn-block'+(getCurrentLanguageCode()==lang.key.substr(0,2).toUpperCase() ? ' btn-primary' : ' btn-secondary')" ng-click="setLanguage(lang.key)">{{lang.name}}</button> <button ng-repeat="lang in available_languages" ng-class="'btn btn-block'+(getCurrentLanguageCode()==lang.key.substr(0,2).toUpperCase() ? ' btn-primary' : ' btn-secondary')" ng-click="setLanguage(lang.key)">{{lang.name}}</button>
Expand Down
16 changes: 7 additions & 9 deletions components/layermanager/partials/layermanager.html
@@ -1,13 +1,11 @@
<div class="card panel-default mainpanel"> <div class="card panel-default mainpanel">
<div class="card-header"><translate>Layer manager</translate> <hs.layout.panel-header panel-name="layermanager" panel-title="'Layer manager'||translate">
<button type="button" class="close" ng-click="Core.closePanel(this)"> <extra-buttons>
<span aria-hidden="true">×</span> <button type="button" class="but-title-sm" ng-click="removeAllLayers()">
<span class="sr-only" translate>Close</span> <i class="glyphicon icon-refresh"></i>
</button> </button>
<button type="button" class="but-title-sm" ng-click="removeAllLayers()"> </extra-buttons>
<i class="glyphicon icon-refresh"></i> </hs.layout.panel-header>
</button>
</div>
<div class="card-body hs-lm-panel"> <div class="card-body hs-lm-panel">
<div class="nav nav-pills" ng-show="hasBoxImages()"> <div class="nav nav-pills" ng-show="hasBoxImages()">
<div ng-repeat="box in data.box_layers" class="col-xs-2 col-md-2 active" style="padding-right: 2px; padding-left: 2px;"> <div ng-repeat="box in data.box_layers" class="col-xs-2 col-md-2 active" style="padding-right: 2px; padding-left: 2px;">
Expand Down
16 changes: 16 additions & 0 deletions components/layout/layout-panel-header.directive.js
@@ -0,0 +1,16 @@
export default ['config', 'Core', function (config, Core) {
return {
template: require('components/layout/partials/panel-header.directive.html'),
transclude: {
'extraButtons': '?extraButtons',
'extraTitle': '?extraTitle'
},
scope: {
panelName: "@",
panelTitle: "=panelTitle"
},
controller: function ($scope) {
$scope.closePanel = Core.closePanel;
}
};
}]
10 changes: 10 additions & 0 deletions components/layout/layout.module.js
Expand Up @@ -18,6 +18,7 @@ import mdToolbarDirective from './md-toolbar.directive';
import mdOverlayDirective from './md-overlay.directive'; import mdOverlayDirective from './md-overlay.directive';
import mdSwipeAreaDirective from './md-swipe-area.directive'; import mdSwipeAreaDirective from './md-swipe-area.directive';
import layoutService from './layout.service'; import layoutService from './layout.service';
import layoutPanelHeaderDirective from './layout-panel-header.directive';


// 'material.components.bottomSheetCollapsible' // 'material.components.bottomSheetCollapsible'
angular.module('hs.layout', ['hs.core', 'hs.map', 'hs.geolocation', 'hs.layermanager', 'hs.print']) angular.module('hs.layout', ['hs.core', 'hs.map', 'hs.geolocation', 'hs.layermanager', 'hs.print'])
Expand Down Expand Up @@ -94,6 +95,15 @@ angular.module('hs.layout', ['hs.core', 'hs.map', 'hs.geolocation', 'hs.layerman
*/ */
.directive('panelCreator', panelCreatorDirective) .directive('panelCreator', panelCreatorDirective)



/**
* @memberof hs.layout
* @ngdoc directive
* @name hs.panelHeader
* @description Directive for title bar of panels
*/
.directive('hs.layout.panelHeader', layoutPanelHeaderDirective)

/** /**
* @memberof hs.layout * @memberof hs.layout
* @ngdoc service * @ngdoc service
Expand Down
4 changes: 2 additions & 2 deletions components/layout/partials/layout.html
Expand Up @@ -37,13 +37,13 @@
<div hs.routing.directive hs.draggable ng-controller="hs.routing.controller" ng-if="Core.exists('hs.routing.controller')" ng-show="Core.panelVisible('routing', this)"></div> <div hs.routing.directive hs.draggable ng-controller="hs.routing.controller" ng-if="Core.exists('hs.routing.controller')" ng-show="Core.panelVisible('routing', this)"></div>
<div hs.tracking.directive hs.draggable ng-controller="hs.tracking.controller" ng-if="Core.exists('hs.tracking.controller')" ng-show="Core.panelVisible('tracking', this)"></div> <div hs.tracking.directive hs.draggable ng-controller="hs.tracking.controller" ng-if="Core.exists('hs.tracking.controller')" ng-show="Core.panelVisible('tracking', this)"></div>
<div hs.draw.directive hs.draggable ng-controller="hs.draw.controller" ng-if="Core.exists('hs.draw.controller')" ng-show="Core.panelVisible('draw', this)"></div> <div hs.draw.directive hs.draggable ng-controller="hs.draw.controller" ng-if="Core.exists('hs.draw.controller')" ng-show="Core.panelVisible('draw', this)"></div>
<div hs.customhtml.directive ng-if="Core.exists('hs.customhtml.controller')"></div> <div hs.customhtml.directive ng-if="Core.exists('hs.customhtml')"></div>
</div> </div>
</div> </div>
</div> </div>
<div id="hs-info-container" ng-hide="Core.smallWidth && Core.sidebarExpanded"> <div id="hs-info-container" ng-hide="Core.smallWidth && Core.sidebarExpanded">
<div id="hs-info-area"> <div id="hs-info-area">
<hs.info ng-if="Core.exists('hs.info.controller')"></hs.info> <hs.info ng-if="Core.exists('hs.info')"></hs.info>
</div> </div>
</div> </div>
</div> </div>
Expand Down
7 changes: 7 additions & 0 deletions components/layout/partials/panel-header.directive.html
@@ -0,0 +1,7 @@
<div class="card-header">{{panelTitle}}<span ng-transclude="extraTitle"></span>
<button type="button" class="close" ng-click="closePanel(this)">
<span aria-hidden="true">×</span>
<span class="sr-only">Close</span>
</button>
<span ng-transclude="extraButtons"></span>
</div>
7 changes: 1 addition & 6 deletions components/legend/partials/legend.html
@@ -1,10 +1,5 @@
<div class="card panel-default mainpanel"> <div class="card panel-default mainpanel">
<div class="card-header"><translate>Legend</translate> <hs.layout.panel-header panel-name="legend" panel-title="'Legend'||translate"></hs.layout.panel-header>
<button type="button" class="close" ng-click="Core.closePanel(this)">
<span aria-hidden="true">×</span>
<span class="sr-only">Close</span>
</button>
</div>
<div class="card-body"> <div class="card-body">
<p><input type="text" class="form-control" placeholder="Filter:" ng-model="query.title"></p> <p><input type="text" class="form-control" placeholder="Filter:" ng-model="query.title"></p>
<ul class="list-group"> <ul class="list-group">
Expand Down
9 changes: 3 additions & 6 deletions components/measure/partials/measure.html
@@ -1,10 +1,7 @@
<div class="card panel-default mainpanel"> <div class="card panel-default mainpanel">
<div class="card-header"><span class="panel-title"><translate>Measure</translate> <span ng-show="data.multipleShapeMode" translate>multiple shapes</span></span> <hs.layout.panel-header panel-name="measure" panel-title="'Measure'||translate">
<button type="button" class="close" ng-click="Core.closePanel(this);"> <extra-title>&nbsp;<span ng-show="data.multipleShapeMode" translate>multiple shapes</span></extra-title>
<span aria-hidden="true">×</span> </hs.layout.panel-header>
<span class="sr-only" translate>Close</span>
</button>
</div>
<div class="card-body p-2"> <div class="card-body p-2">
<div class="btn-group btn-group-toggle" style="margin-bottom:10px"> <div class="btn-group btn-group-toggle" style="margin-bottom:10px">
<label for="distance" class="btn btn-secondary" ng-class="{active: type == 'distance'}"> <label for="distance" class="btn btn-secondary" ng-class="{active: type == 'distance'}">
Expand Down
24 changes: 12 additions & 12 deletions components/mobile_settings/partials/mobile_settings.html
@@ -1,24 +1,24 @@
<div class="card panel-default mainpanel"> <div class="card panel-default mainpanel">
<div class="card-header"><translate>Settings</translate></div> <hs.layout.panel-header panel-name="settings" panel-title="'Settings'||translate">
<button type="button" class="close" ng-click="Core.closePanel(this)"> <extra-buttons>
<span aria-hidden="true">×</span> <button type="button" class="but-title-sm" ng-click="initSettings(settingsDb)">
<span class="sr-only" translate>Close</span> <span class="icon-repeat"></span>
</button> </button>
<button type="button" class="but-title-sm" ng-click="initSettings(settingsDb)"> </extra-buttons>
<span class="icon-repeat"></span> </hs.layout.panel-header>
</button>
</div>
<div class="card-body"> <div class="card-body">
<div class="hs-settings-hostname" style="padding: 10px 15px"> <div class="hs-settings-hostname" style="padding: 10px 15px">
<div class="hs-settings-hostname-title">Data source</div> <div class="hs-settings-hostname-title">Data source</div>
<select class="form-control" id="hs-settings-hostname" ng-model="selectedHostname" ng-change="changeHostname()" style="margin-bottom: 5px"> <select class="form-control" id="hs-settings-hostname" ng-model="selectedHostname"
<option ng-repeat="host in hostnames" ng-selected="selectedHostname==host.title" value="{{ host.title }}">{{ host.title }}</option> ng-change="changeHostname()" style="margin-bottom: 5px">
<option ng-repeat="host in hostnames" ng-selected="selectedHostname==host.title"
value="{{ host.title }}">{{ host.title }}</option>
</select> </select>
<div class="hs-settings-hostname-title">{{ hostname.default.title }}</div> <div class="hs-settings-hostname-title">{{ hostname.default.title }}</div>
<div class="hs-settings-hostname-url">{{ hostname.default.url }}</div> <div class="hs-settings-hostname-url">{{ hostname.default.url }}</div>
</div> </div>


<!-- <ul class="list-group hostnames"> <!-- <ul class="list-group hostnames">
<li ng-repeat="hostname in hostnames" class="list-group-item" ng-class="hostname.editable ? 'editable' : ''"> <li ng-repeat="hostname in hostnames" class="list-group-item" ng-class="hostname.editable ? 'editable' : ''">
<div class="hs-settings-hostname-title">{{ hostname.title }}</div> <div class="hs-settings-hostname-title">{{ hostname.title }}</div>
<div class="hs-settings-hostname-url">{{ hostname.url }}</div> <div class="hs-settings-hostname-url">{{ hostname.url }}</div>
Expand Down
7 changes: 1 addition & 6 deletions components/permalink/partials/directive.html
@@ -1,10 +1,5 @@
<div class="card panel-default mainpanel"> <div class="card panel-default mainpanel">
<div class="card-header"><translate>Share map</translate> <hs.layout.panel-header panel-name="permalink" panel-title="'Share map'||translate"></hs.layout.panel-header>
<button type="button" class="close" ng-click="Core.closePanel(this)">
<span aria-hidden="true">×</span>
<span class="sr-only" translate>Close</span>
</button>
</div>
<div class="card-body"> <div class="card-body">
<div class="card-body"> <div class="card-body">


Expand Down
7 changes: 1 addition & 6 deletions components/print/partials/printdialog.html
@@ -1,10 +1,5 @@
<div class="card panel-default mainpanel"> <div class="card panel-default mainpanel">
<div class="card-header"><translate>Print</translate> <hs.layout.panel-header panel-name="print" panel-title="'Print'||translate"></hs.layout.panel-header>
<button type="button" class="close" ng-click="Core.closePanel(this)">
<span aria-hidden="true">×</span>
<span class="sr-only" translate>Close</span>
</button>
</div>
<div class="card-body"> <div class="card-body">
<div class="card-body"> <div class="card-body">
<div class="form-group"> <div class="form-group">
Expand Down
7 changes: 1 addition & 6 deletions components/query/partials/infopanel.html
@@ -1,10 +1,5 @@
<div class="card panel-default mainpanel"> <div class="card panel-default mainpanel">
<div class="card-header"><translate>Info</translate> <hs.layout.panel-header panel-name="info" panel-title="'Info'||translate"></hs.layout.panel-header>
<button type="button" class="close" ng-click="Core.closePanel(this)">
<span aria-hidden="true">×</span>
<span class="sr-only" translate>Close</span>
</button>
</div>
<div class="card-body"> <div class="card-body">
<table class="table table-compact" ng-repeat="group in data.groups | orderBy : 'name'"> <table class="table table-compact" ng-repeat="group in data.groups | orderBy : 'name'">
<tr><th colspan="2">{{group.name}}</th></tr> <tr><th colspan="2">{{group.name}}</th></tr>
Expand Down
7 changes: 1 addition & 6 deletions components/routing/partials/routing.html
@@ -1,10 +1,5 @@
<div class="card panel-default mainpanel"> <div class="card panel-default mainpanel">
<div class="card-header"><span class="panel-title"><translate>Routing</translate></span> <hs.layout.panel-header panel-name="routing" panel-title="'Routing'||translate"></hs.layout.panel-header>
<button type="button" class="close" ng-click="Core.closePanel(this); clearAll()">
<span aria-hidden="true">×</span>
<span class="sr-only" translate>Close</span>
</button>
</div>
<div class="card-body"> <div class="card-body">
<div class="card-body"> <div class="card-body">
<div class="form-group"> <div class="form-group">
Expand Down
11 changes: 0 additions & 11 deletions components/rtserver/partials/color.html

This file was deleted.

0 comments on commit b238d6a

Please sign in to comment.