Skip to content

Commit 619c846

Browse files
committed
fix(theming): user background picker
Signed-off-by: John Molakvoæ <[email protected]>
1 parent 8a50cf9 commit 619c846

File tree

5 files changed

+94
-21
lines changed

5 files changed

+94
-21
lines changed

apps/theming/src/admin-settings.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,14 @@
1919
* along with this program. If not, see <http://www.gnu.org/licenses/>.
2020
*
2121
*/
22-
22+
import { getRequestToken } from '@nextcloud/auth'
2323
import Vue from 'vue'
24-
import App from './AdminTheming.vue'
24+
2525
import { refreshStyles } from './helpers/refreshStyles.js'
26+
import App from './AdminTheming.vue'
27+
28+
// eslint-disable-next-line camelcase
29+
__webpack_nonce__ = btoa(getRequestToken())
2630

2731
Vue.prototype.OC = OC
2832
Vue.prototype.t = t

apps/theming/src/components/BackgroundSettings.vue

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -91,17 +91,18 @@
9191

9292
<script>
9393
import { generateFilePath, generateRemoteUrl, generateUrl } from '@nextcloud/router'
94+
import { getCurrentUser } from '@nextcloud/auth'
95+
import { getFilePickerBuilder, showError } from '@nextcloud/dialogs'
9496
import { loadState } from '@nextcloud/initial-state'
97+
import { Palette } from 'node-vibrant/lib/color.js'
9598
import axios from '@nextcloud/axios'
96-
import Check from 'vue-material-design-icons/Check.vue'
97-
import Close from 'vue-material-design-icons/Close.vue'
98-
import ImageEdit from 'vue-material-design-icons/ImageEdit.vue'
9999
import debounce from 'debounce'
100100
import NcColorPicker from '@nextcloud/vue/dist/Components/NcColorPicker.js'
101101
import Vibrant from 'node-vibrant'
102-
import { Palette } from 'node-vibrant/lib/color.js'
103-
import { getFilePickerBuilder } from '@nextcloud/dialogs'
104-
import { getCurrentUser } from '@nextcloud/auth'
102+
103+
import Check from 'vue-material-design-icons/Check.vue'
104+
import Close from 'vue-material-design-icons/Close.vue'
105+
import ImageEdit from 'vue-material-design-icons/ImageEdit.vue'
105106
106107
const backgroundImage = loadState('theming', 'backgroundImage')
107108
const shippedBackgroundList = loadState('theming', 'shippedBackgrounds')
@@ -110,9 +111,10 @@ const defaultShippedBackground = loadState('theming', 'defaultShippedBackground'
110111
111112
const prefixWithBaseUrl = (url) => generateFilePath('theming', '', 'img/background/') + url
112113
const picker = getFilePickerBuilder(t('theming', 'Select a background from your files'))
114+
.allowDirectories(false)
115+
.setMimeTypeFilter(['image/png', 'image/gif', 'image/jpeg', 'image/svg+xml', 'image/svg'])
113116
.setMultiSelect(false)
114117
.setType(1)
115-
.setMimeTypeFilter(['image/png', 'image/gif', 'image/jpeg', 'image/svg+xml', 'image/svg'])
116118
.build()
117119
118120
export default {
@@ -257,6 +259,12 @@ export default {
257259
258260
async pickFile() {
259261
const path = await picker.pick()
262+
if (!path || typeof path !== 'string' || path.trim().length === 0 || path === '/') {
263+
console.error('No valid background have been selected', { path })
264+
showError(t('theming', 'No background have been selected'))
265+
return
266+
}
267+
260268
this.loading = 'custom'
261269
262270
// Extract primary color from image

apps/theming/src/personal-settings.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,14 @@
1919
* along with this program. If not, see <http://www.gnu.org/licenses/>.
2020
*
2121
*/
22-
22+
import { getRequestToken } from '@nextcloud/auth'
2323
import Vue from 'vue'
24-
import App from './UserThemes.vue'
24+
2525
import { refreshStyles } from './helpers/refreshStyles.js'
26+
import App from './UserThemes.vue'
27+
28+
// eslint-disable-next-line camelcase
29+
__webpack_nonce__ = btoa(getRequestToken())
2630

2731
Vue.prototype.OC = OC
2832
Vue.prototype.t = t

package-lock.json

Lines changed: 66 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
"@nextcloud/capabilities": "^1.0.4",
4646
"@nextcloud/dialogs": "^5.0.0-beta.1",
4747
"@nextcloud/event-bus": "^3.1.0",
48-
"@nextcloud/files": "^3.0.0-beta.14",
48+
"@nextcloud/files": "^3.0.0-beta.19",
4949
"@nextcloud/initial-state": "^2.0.0",
5050
"@nextcloud/l10n": "^2.1.0",
5151
"@nextcloud/logger": "^2.5.0",

0 commit comments

Comments
 (0)