11<template >
22 <div id =" accessibility" class =" section" >
3- <h2 >{{t('accessibility', 'Accessibility')}}</h2 >
3+ <h2 >{{ t('accessibility', 'Accessibility') }}</h2 >
44 <p v-html =" description" />
55 <p v-html =" descriptionDetail" />
66
77 <div class =" preview-list" >
8- <preview :preview =" highcontrast"
9- :key =" highcontrast.id" :selected =" selected.highcontrast"
10- v-on:select =" selectHighContrast" ></preview >
11- <preview v-for =" preview in themes" :preview =" preview"
12- :key =" preview.id" :selected =" selected.theme"
13- v-on:select =" selectTheme" ></preview >
14- <preview v-for =" preview in fonts" :preview =" preview"
15- :key =" preview.id" :selected =" selected.font"
16- v-on:select =" selectFont" ></preview >
8+ <ItemPreview :key =" highcontrast.id"
9+ :preview =" highcontrast"
10+ :selected =" selected.highcontrast"
11+ @select =" selectHighContrast" />
12+ <ItemPreview v-for =" preview in themes"
13+ :key =" preview.id"
14+ :preview =" preview"
15+ :selected =" selected.theme"
16+ @select =" selectTheme" />
17+ <ItemPreview v-for =" preview in fonts"
18+ :key =" preview.id"
19+ :preview =" preview"
20+ :selected =" selected.font"
21+ @select =" selectFont" />
1722 </div >
1823 </div >
1924</template >
2025
2126<script >
22- import preview from ' ./components/itemPreview ' ;
23- import axios from ' nextcloud-axios' ;
27+ import ItemPreview from ' ./components/ItemPreview '
28+ import axios from ' nextcloud-axios'
2429
2530export default {
2631 name: ' Accessibility' ,
27- components: { preview },
28- beforeMount () {
29- // importing server data into the app
30- const serverDataElmt = document .getElementById (' serverData' );
31- if (serverDataElmt !== null ) {
32- this .serverData = JSON .parse (
33- document .getElementById (' serverData' ).dataset .server
34- );
35- }
36- },
32+ components: { ItemPreview },
3733 data () {
3834 return {
3935 serverData: []
40- };
36+ }
4137 },
4238 computed: {
4339 themes () {
44- return this .serverData .themes ;
40+ return this .serverData .themes
4541 },
4642 highcontrast () {
47- return this .serverData .highcontrast ;
43+ return this .serverData .highcontrast
4844 },
4945 fonts () {
50- return this .serverData .fonts ;
46+ return this .serverData .fonts
5147 },
5248 selected () {
5349 return {
5450 theme: this .serverData .selected .theme ,
5551 highcontrast: this .serverData .selected .highcontrast ,
5652 font: this .serverData .selected .font
57- };
53+ }
5854 },
5955 description () {
6056 // using the `t` replace method escape html, we have to do it manually :/
@@ -66,7 +62,7 @@ export default {
6662 We aim to be compliant with the {guidelines} 2.1 on AA level,
6763 with the high contrast theme even on AAA level.`
6864 )
69- .replace (' {guidelines}' , this .guidelinesLink )
65+ .replace (' {guidelines}' , this .guidelinesLink )
7066 },
7167 guidelinesLink () {
7268 return ` <a target="_blank" href="https://www.w3.org/WAI/standards-guidelines/wcag/" rel="noreferrer nofollow">${ t (' accessibility' , ' Web Content Accessibility Guidelines' )} </a>`
@@ -77,8 +73,8 @@ export default {
7773 ` If you find any issues, don’t hesitate to report them on {issuetracker}.
7874 And if you want to get involved, come join {designteam}!`
7975 )
80- .replace (' {issuetracker}' , this .issuetrackerLink )
81- .replace (' {designteam}' , this .designteamLink )
76+ .replace (' {issuetracker}' , this .issuetrackerLink )
77+ .replace (' {designteam}' , this .designteamLink )
8278 },
8379 issuetrackerLink () {
8480 return ` <a target="_blank" href="https://github.com/nextcloud/server/issues/" rel="noreferrer nofollow">${ t (' accessibility' , ' our issue tracker' )} </a>`
@@ -87,19 +83,28 @@ export default {
8783 return ` <a target="_blank" href="https://nextcloud.com/design" rel="noreferrer nofollow">${ t (' accessibility' , ' our design team' )} </a>`
8884 }
8985 },
86+ beforeMount () {
87+ // importing server data into the app
88+ const serverDataElmt = document .getElementById (' serverData' )
89+ if (serverDataElmt !== null ) {
90+ this .serverData = JSON .parse (
91+ document .getElementById (' serverData' ).dataset .server
92+ )
93+ }
94+ },
9095 methods: {
9196 selectHighContrast (id ) {
92- this .selectItem (' highcontrast' , id);
97+ this .selectItem (' highcontrast' , id)
9398 },
9499 selectTheme (id , idSelectedBefore ) {
95- this .selectItem (' theme' , id);
96- document .body .classList .remove (idSelectedBefore);
100+ this .selectItem (' theme' , id)
101+ document .body .classList .remove (idSelectedBefore)
97102 if (id) {
98- document .body .classList .add (id);
103+ document .body .classList .add (id)
99104 }
100105 },
101106 selectFont (id ) {
102- this .selectItem (' font' , id);
107+ this .selectItem (' font' , id)
103108 },
104109
105110 /**
@@ -110,43 +115,40 @@ export default {
110115 * @param {string} id the data of the change
111116 */
112117 selectItem (type , id ) {
113- axios .post (
114- OC .linkToOCS (' apps/accessibility/api/v1/config' , 2 ) + type,
115- { value: id }
116- )
118+ axios .post (OC .linkToOCS (' apps/accessibility/api/v1/config' , 2 ) + type, { value: id })
117119 .then (response => {
118- this .serverData .selected [type] = id;
120+ this .serverData .selected [type] = id
119121
120122 // Remove old link
121- let link = document .querySelector (' link[rel=stylesheet][href*=accessibility][href*=user-]' );
123+ let link = document .querySelector (' link[rel=stylesheet][href*=accessibility][href*=user-]' )
122124 if (! link) {
123125 // insert new css
124- let link = document .createElement (' link' );
125- link .rel = ' stylesheet' ;
126- link .href = OC .generateUrl (' /apps/accessibility/css/user-style.css' ) + ' ?v=' + new Date ().getTime ();
127- document .head .appendChild (link);
126+ let link = document .createElement (' link' )
127+ link .rel = ' stylesheet'
128+ link .href = OC .generateUrl (' /apps/accessibility/css/user-style.css' ) + ' ?v=' + new Date ().getTime ()
129+ document .head .appendChild (link)
128130 } else {
129131 // compare arrays
130132 if (
131- JSON .stringify (Object .values (this .selected )) ===
132- JSON .stringify ([false , false ])
133+ JSON .stringify (Object .values (this .selected ))
134+ === JSON .stringify ([false , false ])
133135 ) {
134136 // if nothing is selected, blindly remove the css
135- link .remove ();
137+ link .remove ()
136138 } else {
137139 // force update
138- link .href =
139- link .href .split (' ?' )[0 ] +
140- ' ?v=' +
141- new Date ().getTime ();
140+ link .href
141+ = link .href .split (' ?' )[0 ]
142+ + ' ?v='
143+ + new Date ().getTime ()
142144 }
143145 }
144146 })
145147 .catch (err => {
146- console .log (err, err .response );
147- OC .Notification .showTemporary (t (' accessibility' , err .response .data .ocs .meta .message + ' . Unable to apply the setting.' ));
148- });
148+ console .error (err, err .response )
149+ OC .Notification .showTemporary (t (' accessibility' , err .response .data .ocs .meta .message + ' . Unable to apply the setting.' ))
150+ })
149151 }
150152 }
151- };
153+ }
152154 </script >
0 commit comments