blob: 8497f13a69c18b3ef970aa0715cb23f99b49271c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
###
ownCloud - News
@author Bernhard Posselt
@copyright 2012 Bernhard Posselt dev@bernhard-posselt.com
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
License as published by the Free Software Foundation; either
version 3 of the License, or any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU AFFERO GENERAL PUBLIC LICENSE for more details.
You should have received a copy of the GNU Affero General Public
License along with this library. If not, see <http://www.gnu.org/licenses/>.
###
angular.module('News').factory 'Settings', ->
class Settings
constructor: ->
@_settings =
compact: false
preventReadOnScroll: false
oldestFirst: false
language: 'en'
@_langs = [
'ar-ma'
'ar'
'bg'
'ca'
'cs'
'cv'
'da'
'de'
'el'
'en-ca'
'en-gb'
'eo'
'es'
'et'
'eu'
'fi'
'fr-ca'
'fr'
'gl'
'he'
'hi'
'hu'
'id'
'is'
'it'
'ja'
'ka'
'ko'
'lv'
'ms-my'
'nb'
'ne'
'nl'
'pl'
'pt-br'
'pt'
'ro'
'ru'
'sk'
'sl'
'sv'
'th'
'tr'
'tzm-la'
'tzm'
'uk'
'zh-cn'
'zh-tw'
]
get: (key) ->
return @_settings[key]
set: (key, value) ->
@_settings[key] = value
getSettings: ->
return @_settings
handle: (data) ->
# fix broken server locales
language = data.language.replace('_', '-').toLowerCase()
# check if the first part is available, if so use this
if not (language in @_langs)
language = language.split('-')[0]
# if its not available default to english
if not (language in @_langs)
language = 'en'
@_settings = data
return new Settings()
|