Adding profiles to EnodeB and IMSI
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
index 60232f7..55abba9 100644
--- a/mCordPortal/src/app/view/enode-details/e-node-details.tpl.html
+++ b/mCordPortal/src/app/view/enode-details/e-node-details.tpl.html
@@ -19,6 +19,12 @@
             </div>
             <div class="col-xs-9">
               <related-profiles model="vm.enode" config="{showHeader: false, colors: vm.colors}"></related-profiles>
+              <div class="row">
+                <div class="col-xs-12 text-right">
+                  <a ng-click="vm.addProfile()" class="btn btn-primary-border">Add Profile</a>
+                  <a href="" class="btn btn-primary-border">Create Profile</a>
+                </div>
+              </div>
             </div>
           </div>
         </uib-tab>
@@ -47,4 +53,7 @@
       </uib-tabset>
     </div>
   </div>
-</div>
\ No newline at end of file
+</div>
+<script type="text/ng-template" id="addProfileToImsi">
+  <add-profile-to-item modal="vm.modal" cb="vm.callback" item="vm.eNodeB"></add-profile-to-item>
+</script>
\ 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
index 4c93fe7..a187893 100644
--- a/mCordPortal/src/app/view/enode-details/enode-details.js
+++ b/mCordPortal/src/app/view/enode-details/enode-details.js
@@ -8,7 +8,7 @@
         scope: {},
         controllerAs: 'vm',
         templateUrl: 'app/view/enode-details/e-node-details.tpl.html',
-        controller: function($stateParams, _, Enodeb){
+        controller: function($scope, $stateParams, $uibModal, _, Enodeb){
 
           const secondsToHms = d => {
             d = Number(d);
@@ -30,12 +30,16 @@
             return this.enode.getProfiles()
           })
           .then(profiles => {
-            console.log(profiles);
+            this.profiles = profiles;
+            createChartData(profiles);
+          });
+
+          const createChartData = (profiles) => {
             this.data = _.reduce(profiles, (list, p) => {
               list.push([p.DlAllocRBRate, p.UlAllocRBRate]);
               return list;
-            }, [])
-          });
+            }, []);
+          }
 
           this.labels = ['Download', 'Upload'];
 
@@ -55,6 +59,24 @@
               }
             ]
           };
+
+          this.addProfile = () => {
+            const _this = this;
+            this.modalInstance = $uibModal.open({
+              animation: true,
+              templateUrl: 'addProfileToImsi',
+              controllerAs: 'vm',
+              controller: function ($uibModalInstance) {
+                this.modal    = $uibModalInstance;
+                this.callback = (profile) => {
+                  $scope.$broadcast('profile.add', {targetId: _this.enode.eNBId, profile: profile});
+                  _this.profiles.push(profile);
+                  createChartData(_this.profiles);
+                };
+                this.eNodeB = _this.enode;
+              }
+            });
+          };
           
         }
       }
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 37ca7a9..51bae53 100644
--- a/mCordPortal/src/app/view/home/e-node-map-panel.js
+++ b/mCordPortal/src/app/view/home/e-node-map-panel.js
@@ -11,10 +11,26 @@
         bindToController: true,
         controllerAs: 'vm',
         templateUrl: 'app/view/home/e-node-map-panel.tpl.html',
-        controller: function(){
+        controller: function($scope, $uibModal){
           this.close = () => {
             delete this.eNodeB;
           };
+
+          this.addProfile = () => {
+            const _this = this;
+            this.modalInstance = $uibModal.open({
+              animation: true,
+              templateUrl: 'addProfileToImsi',
+              controllerAs: 'vm',
+              controller: function ($uibModalInstance) {
+                this.modal    = $uibModalInstance;
+                this.callback = (profile) => {
+                  $scope.$broadcast('profile.add', {targetId: _this.eNodeB.eNBId, profile: profile});
+                };
+                this.eNodeB = _this.eNodeB;
+              }
+            });
+          };
         }
       }
     });
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 1f85893..b74dd0b 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
@@ -25,7 +25,7 @@
         <div class="panel-body">
           <div class="row text-center">
             <div class="col-xs-6">
-              <a class="btn btn-primary-border">Add Profile</a>
+              <a ng-click="vm.addProfile()" class="btn btn-primary-border">Add Profile</a>
             </div>
             <div class="col-xs-6">
               <a class="btn btn-primary-border">Create Profile</a>
@@ -47,5 +47,7 @@
       </div>
     </div>
   </div>
-  <!-- <pre>{{vm.eNodeB | json}}</pre> -->
-</div>
\ No newline at end of file
+</div>
+<script type="text/ng-template" id="addProfileToImsi">
+  <add-profile-to-item modal="vm.modal" cb="vm.callback" item="vm.eNodeB"></add-profile-to-item>
+</script>
\ No newline at end of file
diff --git a/mCordPortal/src/app/view/imsi-details/imsi-details.js b/mCordPortal/src/app/view/imsi-details/imsi-details.js
index 0628601..99204c4 100644
--- a/mCordPortal/src/app/view/imsi-details/imsi-details.js
+++ b/mCordPortal/src/app/view/imsi-details/imsi-details.js
@@ -8,7 +8,7 @@
         scope: {},
         controllerAs: 'vm',
         templateUrl: 'app/view/imsi-details/imsi-details.tpl.html',
-        controller: function($stateParams, _, Imsi){
+        controller: function($scope, $stateParams, $uibModal, _, Imsi){
 
           Imsi.get({id: $stateParams.id}).$promise
           .then((imsi) => {
@@ -16,10 +16,7 @@
             return imsi.getProfiles()
           })
           .then(profiles => {
-            this.data = _.reduce(profiles, (list, p) => {
-              list.push([p.DlAllocRBRate, p.UlAllocRBRate]);
-              return list;
-            }, [])
+            this.profiles = profiles;
           });
 
           this.config = {
@@ -29,14 +26,30 @@
               {
                 label: 'Update',
                 icon: 'ok',
-                cb: (enode) => {
-                  enode.$save();
+                cb: (imsi) => {
+                  imsi.$save();
                 },
                 class: 'primary-border'
               }
             ]
           };
-          
+
+          this.addProfile = () => {
+            const _this = this;
+            this.modalInstance = $uibModal.open({
+              animation: true,
+              templateUrl: 'addProfileToImsi',
+              controllerAs: 'vm',
+              controller: function ($uibModalInstance) {
+                this.modal    = $uibModalInstance;
+                this.callback = (profile) => {
+                  console.log(_this.imsi);
+                  $scope.$broadcast('profile.add', {targetId: _this.imsi.IMSI, profile: profile});
+                };
+                this.imsi = _this.imsi;
+              }
+            });
+          };
         }
       }
     });
diff --git a/mCordPortal/src/app/view/imsi-details/imsi-details.tpl.html b/mCordPortal/src/app/view/imsi-details/imsi-details.tpl.html
index 7238856..f6b0947 100644
--- a/mCordPortal/src/app/view/imsi-details/imsi-details.tpl.html
+++ b/mCordPortal/src/app/view/imsi-details/imsi-details.tpl.html
@@ -15,7 +15,7 @@
       <related-profiles model="vm.imsi" config="{showHeader: false, delete: true}"></related-profiles>
     </div>
     <div class="col-xs-12 text-right">
-      <a href="" class="btn btn-primary-border">
+      <a ng-click="vm.addProfile()" href="" class="btn btn-primary-border">
         Add Profile
       </a>
       <a href="" class="btn btn-primary-border">
@@ -23,4 +23,8 @@
       </a>
     </div>
   </div>
-</div>
\ No newline at end of file
+</div>
+
+<script type="text/ng-template" id="addProfileToImsi">
+  <add-profile-to-item modal="vm.modal" cb="vm.callback" item="vm.imsi"></add-profile-to-item>
+</script>
\ No newline at end of file