1
0
Fork 0
mirror of https://github.com/openstf/stf synced 2025-10-04 18:29:17 +02:00

- Adding Help page back.

- Adding Settings page back.
This commit is contained in:
Gunther Brunner 2014-03-13 15:46:36 +09:00
parent d61a70fda5
commit 7f6fa763fb
13 changed files with 249 additions and 2 deletions

View file

@ -8,7 +8,9 @@ angular.module('app', [
'gettext',
require('./layout').name,
require('./device-list').name,
require('./device-control').name
require('./device-control').name,
require('./settings').name,
require('./help').name
])
.config(['$routeProvider', '$locationProvider',
function ($routeProvider, $locationProvider) {

View file

@ -0,0 +1,6 @@
require('angular-localForage')
module.exports = angular.module('stf/settings', [
'LocalForageModule'
])
.factory('SettingsService', require('./settings-service'))

View file

@ -0,0 +1,6 @@
module.exports = function SettingsServiceFactory($rootScope, $localForage) {
return $localForage
}

View file

@ -0,0 +1,11 @@
module.exports = function HelpCtrl($scope) {
$scope.links = {
manualBasic: '/manual-basic/',
manualAdvanced: '/manual-advanced/',
wiki: 'http://amewiki.cadc.cyberagent.local/display/STF',
chat: 'https://cyberagent.hipchat.com/chat?focus_jid=44808_stf@conf.hipchat.com',
tracker: 'http://jira.amb.ca.local/browse/STF',
feedback: 'http://jira.amb.ca.local/secure/CreateIssueDetails!init.jspa?pid=10521&issuetype=14&summary=STF%E3%81%AB%E9%96%A2%E3%81%99%E3%82%8B%E3%81%8A%E5%95%8F%E3%81%84%E5%90%88%E3%82%8F%E3%81%9B&description=%E3%81%8A%E5%95%8F%E3%81%84%E5%90%88%E3%82%8F%E3%81%9B%E5%86%85%E5%AE%B9%E3%81%AF%E3%82%B3%E3%82%B3%E3%81%AB%E8%A8%98%E8%BC%89%E3%81%97%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84',
mail: 'stf@cyberagent.co.jp'
}
}

78
res/app/help/help.jade Normal file
View file

@ -0,0 +1,78 @@
.container-fluid.main-content
.page-title
//h1
| Help
ul.timeline
li
.timeline-time
strong 使い方が知りたい
| どうやって使うの?
.timeline-icon
.bg-primary
i.fa.fa-book
.timeline-content
h2 マニュアル
p マニュアルはBasicとAdvancedに分かれています。
p <strong>Basic</strong>は誰でも使える機能の説明になります。
p <strong>Advanced</strong>はエンジニア向けの高度な機能の説明になります。
p 最新の情報は<strong>コンフルスペース</strong>になります
a(ng-href='{{links.manualAdvanced}}', target='_blank', role='button').btn.btn-danger.pull-right
i.fa.fa-book
| Advanced
a(ng-href='{{links.manualBasic}}', target='_blank', role='button').btn.btn-danger.pull-right
i.fa.fa-book
| Basic
a(ng-href='{{links.wiki}}', target='_blank', role='button').btn.btn-primary
i.fa.fa-book
| コンフルスペース
.clearfix
li
.timeline-time
strong 使い方、機能追加、一般な問い合わせ
| 新しい機能が欲しい
.timeline-icon
.bg-warning
i.fa.fa-ticket
.timeline-content
h2 お問い合わせ
p お問い合わせはJIRAになります。
p 質問や疑問、改善や機能追加などの要望は大歓迎です。
p メールでも問い合わせが可能です。
a(ng-href='{{links.feedback}}', target='_blank', role='button').btn.btn-warning
i.fa.fa-ticket
| JIRAでお問い合わせ
a(ng-href='mailto:{{links.mail}}', role='button').btn.btn-default
i.fa.fa-envelope
| メールでお問い合わせ
li
.timeline-time
strong デバイスが今落ちた、よく分からない助けて
| 今すぐ聞きたい
.timeline-icon
.bg-info
i.fa.fa-comments
.timeline-content
h2 チャットお問い合わせ
p リアルタイムお問い合わせはHipChatのSTFルームになります。
p 質問や疑問、改善や機能追加などの要望は大歓迎です。
a(ng-href='{{links.chat}}', target='_blank', role='button').btn.btn-info.pull-right
i.fa.fa-comments
| HipChatでお問い合わせ
.clearfix
li
.timeline-time
strong バグを見つかった
| あのバグどうなっている?
.timeline-icon
.bg-success
i.fa.fa-bug
.timeline-content
h2 バグトラッカー
p プロジェクトのチケットトラッカーはこちらのJIRAになります。
p バグや機能のトラッカーです。
a(ng-href='{{links.tracker}}', target='_blank', role='button').btn.btn-success
i.fa.fa-bug
| JIRAチケット

8
res/app/help/index.js Normal file
View file

@ -0,0 +1,8 @@
module.exports = angular.module('help', [])
.config(['$routeProvider', function ($routeProvider) {
$routeProvider.when('/help', {
template: require('./help.jade'),
controller: 'HelpCtrl'
})
}])
.controller('HelpCtrl', require('./help-controller'))

View file

@ -1,3 +1,2 @@
module.exports = function LayoutCtrl($scope) {
}

View file

@ -0,0 +1,9 @@
module.exports = angular.module('ui-settings', [
require('./language').name
])
.config(['$routeProvider', function ($routeProvider) {
$routeProvider.when('/settings', {
template: require('./settings.jade')
})
}])
//.controller('SettingsCtrl', require('./settings-controller'))

View file

@ -0,0 +1,9 @@
module.exports = angular.module('stf-ui-language', [
// require('stf/settings').name
])
.run(["$templateCache", function($templateCache) {
$templateCache.put('language.jade', require('./language.jade'))
}])
.factory('LanguageService', require('./language-service'))
.controller('LanguageCtrl', require('./language-controller'))

View file

@ -0,0 +1,21 @@
module.exports = function LanguageCtrl($scope, LanguageService, SettingsService) { //gettextCatalog,
// SettingsService.sync($scope, 'Language', {
// language: LanguageService.detectedLanguage
// })
//SettingsService.set('')
console.log('hey')
//SettingsService.set('valueCrazy', 35)
//SettingsService.set('valueCrazyNew', {one: 1, two: 35.3, three: '日本語', four: [1, 2, 3, 4]})
//console.log('he')
//console.log(SettingsService.get('valueCrazy'))
// $scope.$watch('language', function (newValue) {
// gettextCatalog.currentLanguage = newValue
// })
//
// $scope.supportedLanguages = LanguageService.supportedLanguages
}

View file

@ -0,0 +1,25 @@
//var _ = require('lodash')
module.exports = function LanguageServiceFactory() {
alert('he')
var LanguageService = {}
LanguageService.supportedLanguages = [
{code: 'en', name: 'English'},
{code: 'ja', name: '日本語'}
]
var browserLocale = navigator.language || navigator.userLanguage || 'en-US'
var browserLanguage = browserLocale.substring(0, 2)
var detectedLanguage = _.some(LanguageService.supportedLanguages, {code: browserLanguage}) ? browserLanguage : 'en'
var defaultLanguage = 'ja'
LanguageService.detectedLanguage = defaultLanguage
LanguageService.selectedLanguage = defaultLanguage
LanguageService.getSelectedLanguage = function () {
return LanguageService.selectedLanguage = defaultLanguage //WebStorage.get('Language.language') || defaultLanguage
}
return LanguageService
}

View file

@ -0,0 +1,8 @@
.widget-container.fluid-height
.heading
i.fa.fa-flag
span(translate) Language
.widget-content.padded
.form-horizontal
.form-group
select.form-control(ng-model='language', ng-options='l.code as l.name for l in supportedLanguages')

View file

@ -0,0 +1,65 @@
div(pane='center')
.row
.col-md-4
.widget-container.fluid-height
.heading
i.fa.fa-save
span(translate) Local storage
.widget-content.padded
button(ng-click='resetSettings()').btn.btn-danger
i.fa.fa-trash-o
span(translate) Reset Settings
.col-md-4
div(ng-include='"language.jade"')
.col-md-4
.widget-container.fluid-height
.heading
i.fa.fa-exclamation-circle
span(translate) Notifications
.widget-content.padded
label.checkbox
input(type='checkbox', ng-model='notificationsEnabled', ng-click='enableNotifications()', disabled)
span(translate) Enable notifications
.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