created addEnode modal, and relatedProfiles component
diff --git a/mCordPortal/src/app/view/enode-details/e-node-details.tpl.html b/mCordPortal/src/app/view/enode-details/e-node-details.tpl.html
new file mode 100644
index 0000000..a6d8452
--- /dev/null
+++ b/mCordPortal/src/app/view/enode-details/e-node-details.tpl.html
@@ -0,0 +1,24 @@
+<div class="container-fluid">
+ <div class="row">
+ <div class="col-sm-4">
+ <ng-map zoom="12" center="[{{vm.enode.GpsCoordinate.Latitude}}, {{vm.enode.GpsCoordinate.Longitude}}]" map-type-control="false" street-view-control="false" zoom-control="false" scale-control="false">
+ <marker position="[{{vm.enode.GpsCoordinate.Latitude}}, {{vm.enode.GpsCoordinate.Longitude}}]" centered="{{true}}"></marker>
+ </ng-map>
+ </div>
+ <div class="col-sm-8">
+ <xos-form ng-model="vm.enode" config="vm.config"></xos-form>
+ </div>
+ </div>
+ <div class="row">
+ <div class="col-xs-12">
+ <uib-tabset>
+ <uib-tab index="0" heading="Profiles">
+ <related-profiles model="vm.enode"></related-profiles>
+ </uib-tab>
+ <uib-tab index="1" heading="Stats">
+
+ </uib-tab>
+ </uib-tabset>
+ </div>
+ </div>
+</div>
\ No newline at end of file
diff --git a/mCordPortal/src/app/view/enode-details/enode-details.js b/mCordPortal/src/app/view/enode-details/enode-details.js
new file mode 100644
index 0000000..d05c278
--- /dev/null
+++ b/mCordPortal/src/app/view/enode-details/enode-details.js
@@ -0,0 +1,40 @@
+(function () {
+ 'use strict';
+
+ angular.module('mCord')
+ .directive('eNodeDetails', function () {
+ return {
+ restrict: 'E',
+ scope: {},
+ controllerAs: 'vm',
+ templateUrl: 'app/view/enode-details/e-node-details.tpl.html',
+ controller: function($stateParams, Enodeb, NgMap){
+ Enodeb.get({id: $stateParams.id}).$promise
+ .then((enode) => {
+ this.enode = enode;
+ return NgMap.getMap();
+ })
+ .then((map) => {
+ const center = map.getCenter();
+ console.log(center.lat(), center.lng());
+ });
+
+ this.config = {
+ exclude: ['ProfileArray', 'Status'],
+ formName: 'updateEnode',
+ actions: [
+ {
+ label: 'Save',
+ icon: 'ok', // refers to bootstraps glyphicon
+ cb: (enode) => { // receive the model
+ enode.$save();
+ },
+ class: 'success'
+ }
+ ]
+ };
+
+ }
+ }
+ });
+}());
\ No newline at end of file
diff --git a/mCordPortal/src/app/view/enode-list/e-node-list.tpl.html b/mCordPortal/src/app/view/enode-list/e-node-list.tpl.html
index a923d26..f202eb6 100644
--- a/mCordPortal/src/app/view/enode-list/e-node-list.tpl.html
+++ b/mCordPortal/src/app/view/enode-list/e-node-list.tpl.html
@@ -1,3 +1,12 @@
<div class="container-fluid">
+<div class="row">
+ <div class="col-xs-12 text-right">
+ <a href="" class="btn btn-success" ng-click="vm.addEnode()">Add E Node B</a>
+ </div>
+</div>
<xos-table config="vm.tableConfig" data="vm.enodes"></xos-table>
-</div>
\ No newline at end of file
+</div>
+
+<script type="text/ng-template" id="addEnode">
+ <add-enode-b modal="vm.modal"></add-enode-b>
+</script>
\ No newline at end of file
diff --git a/mCordPortal/src/app/view/enode-list/enode-list.js b/mCordPortal/src/app/view/enode-list/enode-list.js
index 3760223..34a280c 100644
--- a/mCordPortal/src/app/view/enode-list/enode-list.js
+++ b/mCordPortal/src/app/view/enode-list/enode-list.js
@@ -8,7 +8,7 @@
scope: {},
controllerAs: 'vm',
templateUrl: 'app/view/enode-list/e-node-list.tpl.html',
- controller: function(Enodeb){
+ controller: function($uibModal, Enodeb){
Enodeb.query().$promise
.then((enodes) => {
@@ -20,7 +20,8 @@
columns: [
{
label: '#',
- prop: 'eNBId'
+ prop: 'eNBId',
+ link: item => `#/enode/${item.eNBId}`
},
{
label: 'Ip Address',
@@ -36,7 +37,18 @@
type: 'boolean'
}
]
- }
+ };
+
+ this.addEnode = () => {
+ this.modalInstance = $uibModal.open({
+ animation: true,
+ templateUrl: 'addEnode',
+ controllerAs: 'vm',
+ controller: function($uibModalInstance){
+ this.modal = $uibModalInstance;
+ }
+ });
+ };
}
}
diff --git a/mCordPortal/src/app/view/home/e-node-map-panel.js b/mCordPortal/src/app/view/home/e-node-map-panel.js
index d691246..94383c1 100644
--- a/mCordPortal/src/app/view/home/e-node-map-panel.js
+++ b/mCordPortal/src/app/view/home/e-node-map-panel.js
@@ -18,16 +18,12 @@
$scope.$watch(() => this.eNodeB, enode => {
if(enode){
- loadProfiles();
+ loadStats();
}
});
- const loadProfiles = () => {
- this.eNodeB.getProfiles()
- .then((profiles) => {
- this.profiles = profiles;
- return this.eNodeB.getStats();
- })
+ const loadStats = () => {
+ this.eNodeB.getStats()
.then((stats) => {
this.selectedStats = 'download_data';
this.stats = formatStats(stats);
diff --git a/mCordPortal/src/app/view/home/e-node-map-panel.tpl.html b/mCordPortal/src/app/view/home/e-node-map-panel.tpl.html
index 71e2182..393a7bc 100644
--- a/mCordPortal/src/app/view/home/e-node-map-panel.tpl.html
+++ b/mCordPortal/src/app/view/home/e-node-map-panel.tpl.html
@@ -21,14 +21,7 @@
<div class="panel-heading">
<h3 class="panel-title ng-binding">Profiles</h3>
</div>
- <table class="table">
- <tr ng-repeat="profile in vm.profiles">
- <td>{{profile.Name}}</td>
- <td>{{profile.DlAllocRBRate}}</td>
- <td>{{profile.Start}}</td>
- <td>{{profile.End}}</td>
- </tr>
- </table>
+ <related-profiles model="vm.eNodeB"></related-profiles>
<div class="panel-body">
<div class="row text-center">
<div class="col-xs-6">
diff --git a/mCordPortal/src/app/view/home/e-node-map.js b/mCordPortal/src/app/view/home/e-node-map.js
index f8361de..2317276 100644
--- a/mCordPortal/src/app/view/home/e-node-map.js
+++ b/mCordPortal/src/app/view/home/e-node-map.js
@@ -3,7 +3,7 @@
'use strict';
angular.module('mCord')
- .directive('eNodeMap', function () {
+ .directive('eNodeMap', function ($uibModal) {
return {
restrict: 'E',
scope: {},
@@ -15,7 +15,6 @@
Enodeb.query().$promise
.then((enodes) => {
- this.selectedEnode = enodes[0];
this.enodes = enodes;
enodes.forEach(node => {
const latlng = new google.maps.LatLng(node.GpsCoordinate.Latitude, node.GpsCoordinate.Longitude);
@@ -31,6 +30,16 @@
this.showEnodeDetails = (marker, enode) => {
this.selectedEnode = enode;
};
+ this.addEnode = () => {
+ this.modalInstance = $uibModal.open({
+ animation: true,
+ templateUrl: 'addEnode',
+ controllerAs: 'vm',
+ controller: function($uibModalInstance){
+ this.modal = $uibModalInstance;
+ }
+ });
+ }
}
}
});
diff --git a/mCordPortal/src/app/view/home/e-node-map.tpl.html b/mCordPortal/src/app/view/home/e-node-map.tpl.html
index ed402ea..afe6735 100644
--- a/mCordPortal/src/app/view/home/e-node-map.tpl.html
+++ b/mCordPortal/src/app/view/home/e-node-map.tpl.html
@@ -1,5 +1,15 @@
<ng-map center="[0, 0]" map-type-control="false" street-view-control="false" zoom-control="false" scale-control="false">
- <marker ng-repeat="enode in vm.enodes" position="[{{enode.GpsCoordinate.Latitude}}, {{enode.GpsCoordinate.Longitude}}]" on-click="vm.showEnodeDetails(enode)"></marker>
+ <marker
+ ng-repeat="enode in vm.enodes"
+ position="[{{enode.GpsCoordinate.Latitude}}, {{enode.GpsCoordinate.Longitude}}]"
+ on-click="vm.showEnodeDetails(enode)"
+ no-watcher="false"></marker>
</ng-map>
-<e-node-map-panel e-node-b="vm.selectedEnode" ng-class="{in: vm.selectedEnode}"></e-node-map-panel>
\ No newline at end of file
+<e-node-map-panel e-node-b="vm.selectedEnode" ng-class="{in: vm.selectedEnode}"></e-node-map-panel>
+
+<a href="" class="addButton" ng-click="vm.addEnode()">+</a>
+
+<script type="text/ng-template" id="addEnode">
+ <add-enode-b modal="vm.modal"></add-enode-b>
+</script>
\ No newline at end of file