mirror of
https://github.com/openstf/stf
synced 2025-10-05 10:39:25 +02:00
Added Auto-route language support for documentation.
This commit is contained in:
parent
241b711c31
commit
d8bf7449d1
8 changed files with 125 additions and 35 deletions
7
res/app/components/stf/language/index.js
Normal file
7
res/app/components/stf/language/index.js
Normal file
|
@ -0,0 +1,7 @@
|
|||
module.exports = angular.module('stf-language', [
|
||||
require('stf/settings').name,
|
||||
require('gettext').name,
|
||||
require('stf/app-state').name
|
||||
])
|
||||
.factory('LanguageService', require('./language-service'))
|
||||
.provider('language', require('./language-provider'))
|
65
res/app/components/stf/language/language-provider.js
Normal file
65
res/app/components/stf/language/language-provider.js
Normal file
|
@ -0,0 +1,65 @@
|
|||
//var supportedLanguages = require('./../../../../common/lang/langs.json')
|
||||
|
||||
module.exports = function LanguageProvider(AppStateProvider) {
|
||||
var provider = {
|
||||
selectedLanguage: 'en'
|
||||
}
|
||||
|
||||
var a = AppStateProvider.$get()
|
||||
if (a && a.user && a.user.settings && a.user.settings &&
|
||||
a.user.settings.selectedLanguage) {
|
||||
provider.selectedLanguage = a.user.settings.selectedLanguage
|
||||
}
|
||||
|
||||
return {
|
||||
$get: function () {
|
||||
return provider
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//module.exports = function LanguageProvider() {
|
||||
// var LanguageService = {}
|
||||
//
|
||||
// function detectLanguage() {
|
||||
// return (navigator.language || navigator.userLanguage || 'en-US')
|
||||
// .substring(0, 2)
|
||||
// }
|
||||
//
|
||||
// function isSupported(lang) {
|
||||
// return !!supportedLanguages[lang]
|
||||
// }
|
||||
//
|
||||
// function onlySupported(lang, defaultValue) {
|
||||
// return isSupported(lang) ? lang : defaultValue
|
||||
// }
|
||||
//
|
||||
// LanguageService.settingKey = 'selectedLanguage'
|
||||
// LanguageService.supportedLanguages = supportedLanguages
|
||||
// LanguageService.defaultLanguage = 'en'
|
||||
// LanguageService.detectedLanguage =
|
||||
// onlySupported(detectLanguage(), LanguageService.defaultLanguage)
|
||||
//
|
||||
// return {
|
||||
// set: function (constants) {
|
||||
// angular.extend(LanguageService, constants)
|
||||
// },
|
||||
// $get: function (SettingsService, gettextCatalog) {
|
||||
// SettingsService.sync(
|
||||
// LanguageService, {
|
||||
// target: LanguageService.settingKey,
|
||||
// source: LanguageService.settingKey,
|
||||
// defaultValue: LanguageService.detectedLanguage
|
||||
// }, updateLanguage
|
||||
// )
|
||||
//
|
||||
// function updateLanguage() {
|
||||
// gettextCatalog.setCurrentLanguage(LanguageService.selectedLanguage)
|
||||
// }
|
||||
//
|
||||
// LanguageService.updateLanguage = updateLanguage
|
||||
//
|
||||
// return LanguageService
|
||||
// }
|
||||
// }
|
||||
//}
|
|
@ -1,4 +1,4 @@
|
|||
var supportedLanguages = require('./../../../common/lang/langs.json')
|
||||
var supportedLanguages = require('./../../../../common/lang/langs.json')
|
||||
|
||||
module.exports = function LanguageServiceFactory(
|
||||
SettingsService
|
|
@ -2,7 +2,7 @@
|
|||
.heading
|
||||
i.fa.fa-bug
|
||||
span(translate) Remote debug
|
||||
a(ng-href='/#!/docs/en/remote-debug').pull-right
|
||||
a(ng-href='/#!/docs/remote-debug').pull-right
|
||||
i.fa.fa-question-circle(tooltip='{{remoteDebugTooltip | translate}}', tooltip-placement='left')
|
||||
.widget-content.padded
|
||||
.form-inline
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
span(translate) Shell
|
||||
clear-button(ng-click='clear()', ng-disabled='!command && !data').btn-xs
|
||||
|
||||
a(ng-href='/#!/docs/ja/remote-shell').btn.btn-xs.btn-primary-outline.pull-right.transparent-border
|
||||
a(ng-href='/#!/docs/remote-shell').btn.btn-xs.btn-primary-outline.pull-right.transparent-border
|
||||
i.fa.fa-book
|
||||
.widget-content.padded
|
||||
|
||||
|
|
|
@ -1,19 +1,19 @@
|
|||
module.exports = function DocsCtrl($rootScope, $scope, $window, $location) {
|
||||
module.exports =
|
||||
function DocsCtrl($rootScope, $scope, $window, $location) {
|
||||
|
||||
$scope.goBack = function () {
|
||||
$window.history.back()
|
||||
$scope.goBack = function () {
|
||||
$window.history.back()
|
||||
}
|
||||
|
||||
$scope.goHome = function () {
|
||||
$location.path('/docs/index')
|
||||
}
|
||||
|
||||
$rootScope.$on("$routeChangeError",
|
||||
function (event, current, previous, rejection) {
|
||||
console.log("ROUTE CHANGE ERROR: " + rejection)
|
||||
console.log('event', event)
|
||||
console.log('current', current)
|
||||
console.log('previous', previous)
|
||||
})
|
||||
}
|
||||
|
||||
$scope.goHome = function () {
|
||||
$location.path('/docs/en/index')
|
||||
}
|
||||
|
||||
$rootScope.$on("$routeChangeError",
|
||||
function (event, current, previous, rejection) {
|
||||
console.log("ROUTE CHANGE ERROR: " + rejection)
|
||||
console.log('event', event)
|
||||
console.log('current', current)
|
||||
console.log('previous', previous)
|
||||
|
||||
})
|
||||
}
|
||||
|
|
|
@ -1,14 +1,34 @@
|
|||
require('./docs.css')
|
||||
|
||||
module.exports = angular.module('stf.help.docs', [])
|
||||
.config(['$routeProvider', function ($routeProvider) {
|
||||
module.exports = angular.module('stf.help.docs', [
|
||||
require('stf/language').name
|
||||
])
|
||||
.config(function ($routeProvider, languageProvider) {
|
||||
// TODO: Solutions to the lang problem
|
||||
//
|
||||
// 1) Use $route inside a controller instead of $routeProvider
|
||||
// 2) Use $routeProvider along with languageProvider
|
||||
// In this case languageProvider depends on Settings and gettext
|
||||
// which are not providers
|
||||
// 3) Easiest way is to use AppState
|
||||
// 4) It needs a fallback if the language doesn't exists, it can be made
|
||||
// in Express side.
|
||||
|
||||
$routeProvider.when('/docs/:lang/:document*', {
|
||||
templateUrl: function (params) {
|
||||
var document = params.document.replace('.md', '')
|
||||
return '/static/docs/' + params.lang + '/' + document
|
||||
}
|
||||
})
|
||||
$routeProvider
|
||||
.when('/docs/:document*', {
|
||||
templateUrl: function (params) {
|
||||
var lang = languageProvider.$get().selectedLanguage
|
||||
var document = params.document.replace('.md', '')
|
||||
return '/static/docs/' + lang + '/' + document
|
||||
}
|
||||
})
|
||||
//.when('/docs/:lang/:document*', {
|
||||
// templateUrl: function (params) {
|
||||
// var lang = params.lang
|
||||
// var document = params.document.replace('.md', '')
|
||||
// return '/static/docs/' + lang + '/' + document
|
||||
// }
|
||||
//})
|
||||
|
||||
}])
|
||||
})
|
||||
.controller('DocsCtrl', require('./docs-controller'))
|
||||
|
|
|
@ -1,12 +1,10 @@
|
|||
module.exports = angular.module('stf-ui-language', [
|
||||
require('stf/settings').name
|
||||
require('stf/settings').name,
|
||||
require('stf/language').name
|
||||
])
|
||||
.run(["$templateCache", function($templateCache) {
|
||||
.run(["$templateCache", function ($templateCache) {
|
||||
$templateCache.put(
|
||||
'settings/language/language.jade'
|
||||
, require('./language.jade')
|
||||
'settings/language/language.jade', require('./language.jade')
|
||||
)
|
||||
}])
|
||||
.factory('LanguageService', require('./language-service'))
|
||||
.controller('LanguageCtrl', require('./language-controller'))
|
||||
//.provider('language', require('./language-service'))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue