diff --git a/res/app/control-panes/advanced/advanced.jade b/res/app/control-panes/advanced/advanced.jade
index 824f8775..10e5b78d 100644
--- a/res/app/control-panes/advanced/advanced.jade
+++ b/res/app/control-panes/advanced/advanced.jade
@@ -3,3 +3,5 @@
div(ng-include='"control-panes/advanced/run-js/run-js.jade"')
.col-md-6
div(ng-include='"control-panes/advanced/input/input.jade"')
+ .col-md-6
+ div(ng-include='"control-panes/advanced/port-forwarding/port-forwarding.jade"')
diff --git a/res/app/control-panes/advanced/index.js b/res/app/control-panes/advanced/index.js
index 462096a9..306d9eeb 100644
--- a/res/app/control-panes/advanced/index.js
+++ b/res/app/control-panes/advanced/index.js
@@ -3,7 +3,8 @@ require('./advanced.css')
module.exports = angular.module('stf.advanced', [
require('./input').name,
require('./run-js').name,
- require('./usb').name
+ require('./usb').name,
+ require('./port-forwarding').name
])
.run(["$templateCache", function ($templateCache) {
$templateCache.put('control-panes/advanced/advanced.jade',
diff --git a/res/app/control-panes/advanced/port-forwarding/index.js b/res/app/control-panes/advanced/port-forwarding/index.js
new file mode 100644
index 00000000..4478bff1
--- /dev/null
+++ b/res/app/control-panes/advanced/port-forwarding/index.js
@@ -0,0 +1,11 @@
+require('./port-forwarding.css')
+
+module.exports = angular.module('stf.port-forwarding', [
+])
+ .run(["$templateCache", function ($templateCache) {
+ $templateCache.put(
+ 'control-panes/advanced/port-forwarding/port-forwarding.jade',
+ require('./port-forwarding.jade')
+ )
+ }])
+ .controller('PortForwardingCtrl', require('./port-forwarding-controller'))
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
new file mode 100644
index 00000000..087d0131
--- /dev/null
+++ b/res/app/control-panes/advanced/port-forwarding/port-forwarding-controller.js
@@ -0,0 +1,21 @@
+module.exports = function PortForwardingCtrl($scope, ngTableParams) {
+
+ $scope.portSets = [
+ {
+ targetHost: '',
+ targetPort: '',
+ devicePort: ''
+ }
+ ]
+
+ $scope.portsTable = new ngTableParams({
+ }, {
+ counts: [],
+ total: 1,
+ getData: function ($defer, params) {
+ var data = $scope.portSets
+
+ $defer.resolve(data);
+ }
+ })
+}
diff --git a/res/app/control-panes/advanced/port-forwarding/port-forwarding-spec.js b/res/app/control-panes/advanced/port-forwarding/port-forwarding-spec.js
new file mode 100644
index 00000000..6945e9af
--- /dev/null
+++ b/res/app/control-panes/advanced/port-forwarding/port-forwarding-spec.js
@@ -0,0 +1,17 @@
+describe('PortForwardingCtrl', function () {
+
+ beforeEach(module('stf.port-forwarding'));
+
+ var scope, ctrl;
+
+ beforeEach(inject(function ($rootScope, $controller) {
+ scope = $rootScope.$new();
+ ctrl = $controller('PortForwardingCtrl', {$scope: scope});
+ }));
+
+ it('should ...', inject(function () {
+ expect(1).toEqual(1);
+
+ }));
+
+});
\ No newline at end of file
diff --git a/res/app/control-panes/advanced/port-forwarding/port-forwarding.css b/res/app/control-panes/advanced/port-forwarding/port-forwarding.css
new file mode 100644
index 00000000..aa0922ac
--- /dev/null
+++ b/res/app/control-panes/advanced/port-forwarding/port-forwarding.css
@@ -0,0 +1,3 @@
+.stf-port-forwarding {
+
+}
\ No newline at end of file
diff --git a/res/app/control-panes/advanced/port-forwarding/port-forwarding.jade b/res/app/control-panes/advanced/port-forwarding/port-forwarding.jade
new file mode 100644
index 00000000..189697c4
--- /dev/null
+++ b/res/app/control-panes/advanced/port-forwarding/port-forwarding.jade
@@ -0,0 +1,39 @@
+.widget-container.fluid-height.stf-port-forwarding(ng-controller='PortForwardingCtrl')
+ .heading
+ i.fa.fa-random
+ span(translate) Port forwarding
+
+ button(ng-click='forwarding = !forwarding', ng-class="{active: forwarding}").btn.btn-primary.btn-xs.pull-right
+ i.fa(ng-class="{'fa-arrow-circle-right': !forwarding, 'fa-times-circle': forwarding}")
+ span(ng-show='forwarding', translate) Unforward Ports
+ span(ng-hide='forwarding', translate) Forward Ports
+ .widget-content.padded
+
+
+ table(ng-table='portsTable').table
+ thead
+ tr
+ th
+ div {{"Target IP / Hostname"|translate}}
+ th
+ div {{"Target Port"|translate}}
+ th
+ div {{"Device Port"|translate}}
+ tbody
+ tr(ng-repeat='result in $data')
+ td(data-title="'Target IP / Hostname'")
+ input(type='text', ng-model='result.targetHost', placeholder='{{"Target host (detect if blank)"|translate}}')
+ td(data-title="'Target Port'")
+ input(type='number', ng-model='result.targetPort', ng-change='targetPortChanged(result)', placeholder='{{"Example: 3000"|translate}}')
+ td(data-title="'Device Port'")
+ input(type='number', ng-model='result.devicePort', placeholder='{{"Example: 3000"|translate}}')
+ //td(titlew)
+
+ table(ng-table='deviceStatusTable', ng-hide='!devicesStatus.length').table
+ tr(ng-repeat='result in $data')
+ td(title="'Device'")
+ p {{ result.deviceId }}
+ td(title="'Reachable'")
+ i(ng-class="{'text-status-on': result.value.connectable, 'text-status-off': !result.value.connectable}").fa.fa-circle
+ td(title="'Connected'")
+ i(ng-class="{'text-status-on': result.value.connected, 'text-status-off': !result.value.connected}").fa.fa-circle
diff --git a/res/app/control-panes/device-control/device-control.jade b/res/app/control-panes/device-control/device-control.jade
index 9ea4b7d3..ce60e8aa 100644
--- a/res/app/control-panes/device-control/device-control.jade
+++ b/res/app/control-panes/device-control/device-control.jade
@@ -18,7 +18,7 @@
i(ng-show='showScreen', tooltip-html-unsafe='{{"Just control device"|translate}}
⌘-⇧-O', tooltip-placement='left').fa.fa-eye
i(ng-show='!showScreen', tooltip-html-unsafe='{{"View device"|translate}}
⌘-⇧-O', tooltip-placement='left').fa.fa-eye-slash
- .device-name-containerX
+ .device-name-container
a.stf-vnc-device-name.pointer.unselectable.dropdown-toggle
p
.device-small-image
diff --git a/res/app/settings/settings.jade b/res/app/settings/settings.jade
index 4a5f2d0e..104a0020 100644
--- a/res/app/settings/settings.jade
+++ b/res/app/settings/settings.jade
@@ -6,46 +6,3 @@ div(pane='center')
div(ng-include='"settings/language/language.jade"')
.col-md-4
div(ng-include='"settings/notifications/notifications.jade"')
-
- //.row //(ng-controller='PortForwardingCtrl')
- .col-md-12
- .widget-container.fluid-height
- .heading
- i.fa.fa-arrow-circle-o-right
- span(translate) Reverse Port Forwarding
- .widget-content.padded
- div //(ng-controller='PortForwardingCtrl')
- .xcol-md-6
- //label.checkbox
- input(type='checkbox', ng-model='autoPortForwarding', ng-disabled='true')
- span Auto-enable reverse port forwarding on connect
- table(ng-table='portsTable').table
- thead
- tr
- th
- div {{"Target IP / Hostname"|translate}}
- th
- div {{"Target Port"|translate}}
- th
- div {{"Device Port"|translate}}
- tbody
- tr(ng-repeat='result in $data')
- td(data-title="'Target IP / Hostname'")
- input(type='text', ng-model='result.targetHost', placeholder='{{"Target host (detect if blank)"|translate}}')
- td(data-title="'Target Port'")
- input(type='number', ng-model='result.targetPort', ng-change='targetPortChanged(result)', placeholder='{{"Example: 3000"|translate}}')
- td(data-title="'Device Port'")
- input(type='number', ng-model='result.devicePort', placeholder='{{"Example: 3000"|translate}}')
- //td(titlew)
- button(ng-click='forwarding = !forwarding', ng-class="{active: forwarding}").btn.btn-primary
- i.fa(ng-class="{'fa-arrow-circle-right': !forwarding, 'fa-times-circle': forwarding}")
- span(ng-show='forwarding', translate) Unforward Ports
- span(ng-hide='forwarding', translate) Forward Ports
- table(ng-table='deviceStatusTable', ng-hide='!devicesStatus.length').table
- tr(ng-repeat='result in $data')
- td(title="'Device'")
- p {{ result.deviceId }}
- td(title="'Reachable'")
- i(ng-class="{'text-status-on': result.value.connectable, 'text-status-off': !result.value.connectable}").fa.fa-circle
- td(title="'Connected'")
- i(ng-class="{'text-status-on': result.value.connected, 'text-status-off': !result.value.connected}").fa.fa-circle