diff --git a/bower.json b/bower.json index 8b75cb8b..5572209f 100644 --- a/bower.json +++ b/bower.json @@ -13,7 +13,7 @@ "oboe": "~1.14.6", "fa-borderlayout": "git@ghe.amb.ca.local:gunther-brunner/fa-borderlayout.git", "Snap.svg": "~0.2.0", - "angular-localForage": "~0.2.3", + "angular-localForage": "~0.2.5", "ng-table": "git://github.com/esvit/ng-table.git#85fd295467211556bad433565ab332ce75ff40b7", "jquery.terminal": "~0.8.7", "stf-site": "git@ghe.amb.ca.local:stf/stf-site.git", diff --git a/res/app/components/stf/settings/index.js b/res/app/components/stf/settings/index.js index a068450c..8add0ee2 100644 --- a/res/app/components/stf/settings/index.js +++ b/res/app/components/stf/settings/index.js @@ -6,7 +6,7 @@ module.exports = angular.module('stf/settings', [ ]) .config(['$localForageProvider', function ($localForageProvider) { $localForageProvider.config({ - driver: 'localStorageWrapper', + //driver: 'localStorageWrapper', name: 'stf-v0', version: 1.0, storeName: 'settings', diff --git a/res/app/components/stf/settings/settings-service.js b/res/app/components/stf/settings/settings-service.js index e1a97504..1af128da 100644 --- a/res/app/components/stf/settings/settings-service.js +++ b/res/app/components/stf/settings/settings-service.js @@ -48,7 +48,8 @@ module.exports = function SettingsServiceFactory($localForage) { } SettingsService.driver = function () { - return $localForage.driver.apply($localForage, arguments) + ' with memory cache' + return $localForage.driver.apply($localForage, arguments) + + ' with memory cache' } SettingsService.clear = function () { diff --git a/res/app/control-panes/advanced/port-forwarding/port-forwarding-controller.js b/res/app/control-panes/advanced/port-forwarding/port-forwarding-controller.js index 79376f31..0e8c49f3 100644 --- a/res/app/control-panes/advanced/port-forwarding/port-forwarding-controller.js +++ b/res/app/control-panes/advanced/port-forwarding/port-forwarding-controller.js @@ -1,6 +1,47 @@ var _ = require('lodash') -module.exports = function PortForwardingCtrl($scope, ngTableParams) { +module.exports = function PortForwardingCtrl($scope, ngTableParams, SettingsService) { + + //$scope.forwarding = false + + SettingsService.bind($scope, { + key: 'forwarding', + storeName: 'PortForwarding.forwarding' + }) + + function getPortSets() { + return $scope.portSets.slice(0,-1) // Last item is empty + } + + function forwardPorts() { + _.forEach(getPortSets(), function (portSet) { + console.log(portSet) + $scope.control.createForward(portSet).then(function (e) { + console.log(e) + }) + }) + } + + function unforwardPorts() { + + } + + $scope.$watch('forwarding', function (newValue, oldValue) { + console.log(newValue, oldValue) + if (newValue !== oldValue) { + if (newValue) { + //forwardPorts() + } else { + if (typeof oldValue !== 'undefined') { + unforwardPorts() + } + } + } else { + // It's the first time, probably not forwarding + $scope.forwarding = false + } + }) + $scope.portSets = [ { @@ -14,6 +55,7 @@ module.exports = function PortForwardingCtrl($scope, ngTableParams) { return (_.isEmpty(ports.targetHost) && _.isEmpty(ports.targetPort) && _.isEmpty(ports.devicePort)) } + // Adds a new row whenever necessary $scope.$watch('portSets', function (newValue, oldValue) { // Remove all empty sets from the middle @@ -32,6 +74,7 @@ module.exports = function PortForwardingCtrl($scope, ngTableParams) { } $scope.portSets.push(empty) } + }, true) $scope.portsTable = new ngTableParams({ diff --git a/res/app/control-panes/advanced/port-forwarding/port-forwarding.jade b/res/app/control-panes/advanced/port-forwarding/port-forwarding.jade index e1a88303..5adc0987 100644 --- a/res/app/control-panes/advanced/port-forwarding/port-forwarding.jade +++ b/res/app/control-panes/advanced/port-forwarding/port-forwarding.jade @@ -34,26 +34,6 @@ input.form-control(type='number', min='0', ng-model='ports.targetPort', ng-change='targetPortChanged(result)', placeholder='{{"Port"|translate}}') - - // table(ng-table='portsTable').table.table-striped - - tr(ng-repeat='ports in $data') - //td(data-title='"Local" | translate').check - label - input(type='checkbox', ng-model='ports.targetLocal') - span - - td(data-title='"Device"|translate', width='28%') - i.fa.fa-arrow-right - input.form-control(type='number', min='0', ng-model='ports.devicePort', placeholder='{{"Port"|translate}}') - - td(data-title='"Host"|translate', width='44%') - input.form-control(type='text', ng-model='ports.targetHost', placeholder='{{"Hostname"|translate}}', ng-disabled='ports.targetLocal') - - td(width='28%') - input.form-control(type='number', min='0', ng-model='ports.targetPort', ng-change='targetPortChanged(result)', placeholder='{{"Port"|translate}}') - - table(ng-table='deviceStatusTable', ng-hide='!devicesStatus.length').table tr(ng-repeat='result in $data') td(data-title="'Device'|translate")