|
20 | 20 | --> |
21 | 21 |
|
22 | 22 | <template> |
23 | | - <div class="update"> |
| 23 | + <div class="body-login-container"> |
24 | 24 | <h2>{{ t('core', 'Recommended apps') }}</h2> |
25 | | - <p v-if="loadingApps" class="loading"> |
| 25 | + <p v-if="loadingApps" class="loading text-center"> |
26 | 26 | {{ t('core', 'Loading apps …') }} |
27 | 27 | </p> |
28 | | - <p v-else-if="loadingAppsError" class="loading-error"> |
| 28 | + <p v-else-if="loadingAppsError" class="loading-error text-center"> |
29 | 29 | {{ t('core', 'Could not fetch list of apps from the app store.') }} |
30 | 30 | </p> |
31 | | - <p v-else> |
32 | | - {{ t('core', 'Installing recommended apps …') }} |
| 31 | + <p v-else class="text-center"> |
| 32 | + {{ t('core', 'Installing apps …') }} |
33 | 33 | </p> |
34 | 34 | <div v-for="app in recommendedApps" :key="app.id" class="app"> |
35 | | - <img :src="customIcon(app.id)" :alt="t('core', 'Nextcloud app {app}', { app: app.name })"> |
| 35 | + <img :src="customIcon(app.id)" :alt="t('core', 'Nextcloud {app}', { app: app.name })"> |
36 | 36 | <div class="info"> |
37 | 37 | <h3> |
38 | 38 | {{ app.name }} |
39 | 39 | <span v-if="app.loading" class="icon icon-loading-small" /> |
40 | 40 | <span v-else-if="app.active" class="icon icon-checkmark-white" /> |
41 | 41 | </h3> |
42 | 42 | <p v-html="customDescription(app.id)" /> |
43 | | - <p v-if="app.installationError" class="error"> |
44 | | - {{ t('core', 'App download or installation failed') }} |
| 43 | + <p v-if="app.installationError"> |
| 44 | + <strong>{{ t('core', 'App download or installation failed') }}</strong> |
45 | 45 | </p> |
46 | | - <p v-else-if="!app.isCompatible" class="error"> |
47 | | - {{ t('core', 'Can\'t install this app because it is not compatible') }} |
| 46 | + <p v-else-if="!app.isCompatible"> |
| 47 | + <strong>{{ t('core', 'Can\'t install this app because it is not compatible') }}</strong> |
48 | 48 | </p> |
49 | | - <p v-else-if="!app.canInstall" class="error"> |
50 | | - {{ t('core', 'Can\'t install this app') }} |
| 49 | + <p v-else-if="!app.canInstall"> |
| 50 | + <strong>{{ t('core', 'Can\'t install this app') }}</strong> |
51 | 51 | </p> |
52 | 52 | </div> |
53 | 53 | </div> |
54 | | - <a :href="defaultPageUrl">{{ t('core', 'Go back') }}</a> |
| 54 | + <p class="text-center"><a :href="defaultPageUrl">{{ t('core', 'Cancel') }}</a></p> |
55 | 55 | </div> |
56 | 56 | </template> |
57 | 57 |
|
@@ -165,27 +165,42 @@ export default { |
165 | 165 | </script> |
166 | 166 |
|
167 | 167 | <style lang="scss" scoped> |
| 168 | +.body-login-container { |
| 169 | + max-width: 290px; |
| 170 | +} |
| 171 | +
|
168 | 172 | p.loading, p.loading-error { |
169 | 173 | height: 100px; |
170 | 174 | } |
| 175 | +
|
| 176 | +.text-center { |
| 177 | + text-align: center; |
| 178 | +} |
| 179 | +
|
171 | 180 | .app { |
172 | 181 | display: flex; |
173 | 182 | flex-direction: row; |
174 | 183 |
|
175 | 184 | img { |
176 | | - height: 64px; |
177 | | - width: 64px; |
| 185 | + height: 50px; |
| 186 | + width: 50px; |
| 187 | + filter: invert(1); |
178 | 188 | } |
179 | 189 |
|
180 | 190 | img, .info { |
181 | 191 | padding: 12px; |
182 | 192 | } |
183 | 193 |
|
184 | 194 | .info { |
185 | | - h3 { |
| 195 | + h3, p { |
186 | 196 | text-align: left; |
187 | 197 | } |
188 | 198 |
|
| 199 | + h3 { |
| 200 | + color: #fff; |
| 201 | + margin-top: 0; |
| 202 | + } |
| 203 | +
|
189 | 204 | h3 > span.icon { |
190 | 205 | display: inline-block; |
191 | 206 | } |
|
0 commit comments