OC.SetupChecks.checkSetup(),
OC.SetupChecks.checkGeneric(),
OC.SetupChecks.checkWOFF2Loading(OC.filePath('core', '', 'fonts/NotoSans-Regular-latin.woff2'), OC.theme.docPlaceholderUrl),
- OC.SetupChecks.checkDataProtected()
+ OC.SetupChecks.checkDataProtected(),
).then((check1, check2, check3, check4, check5, check6, check7, check8, check9, check10, check11) => {
const messages = [].concat(check1, check2, check3, check4, check5, check6, check7, check8, check9, check10, check11)
const $el = $('#postsetupchecks')
methods: {
async saveChanges() {
this.loading = true
- const data = {settings: this.settings}
+ const data = { settings: this.settings }
try {
await axios.put(generateUrl('/settings/api/admin/ai'), data)
} catch (err) {
<template>
- <NcSelect :input-id="setting.id"
- v-model="selected"
+ <NcSelect v-model="selected"
+ :input-id="setting.id"
class="group-select"
:placeholder="t('settings', 'None')"
label="displayName"
t('settings', 'Do you really want to wipe your data from this device?'),
t('settings', 'Confirm wipe'),
resolve,
- true
+ true,
)
})
}
'del',
'blockquote',
],
- }
+ },
)
},
},
<template>
<section id="vue-avatar-section">
- <h3 class="hidden-visually"> {{ t('settings', 'Your profile information') }} </h3>
+ <h3 class="hidden-visually">
+ {{ t('settings', 'Your profile information') }}
+ </h3>
<HeaderBar :input-id="avatarChangeSupported ? inputId : null"
:readable="avatar.readable"
:scope.sync="avatar.scope" />
<div v-if="!showCropper" class="avatar__container">
<div class="avatar__preview">
<NcAvatar v-if="!loading"
+ :key="version"
:user="userId"
:aria-label="t('settings', 'Your profile picture')"
:disabled-menu="true"
:disabled-tooltip="true"
:show-user-status="false"
- :size="180"
- :key="version" />
+ :size="180" />
<div v-else class="icon-loading" />
</div>
<template v-if="avatarChangeSupported">
</NcButton>
</div>
<span>{{ t('settings', 'The file must be a PNG or JPG') }}</span>
- <input ref="input"
- :id="inputId"
+ <input :id="inputId"
+ ref="input"
type="file"
:accept="validMimeTypes.join(',')"
@change="onChange">
<Account :size="20" />
<div class="details__groups-info">
<p>{{ t('settings', 'You are a member of the following groups:') }}</p>
- <p class="details__groups-list">{{ groups.join(', ') }}</p>
+ <p class="details__groups-list">
+ {{ groups.join(', ') }}
+ </p>
</div>
</div>
<div class="details__quota">
NcProgressBar,
},
+ data() {
+ return {
+ groups,
+ usageRelative,
+ }
+ },
+
computed: {
quotaText() {
if (quota === SPACE_UNLIMITED) {
'You are using <strong>{usage}</strong> of <strong>{totalSpace}</strong> (<strong>{usageRelative}%</strong>)',
{ usage, totalSpace, usageRelative },
)
- }
- },
-
- data() {
- return {
- groups,
- usageRelative,
- }
+ },
},
}
</script>
}
emit('settings:display-name:updated', value)
},
- }
+ },
}
</script>
this.handleResponse(
'error',
t('settings', 'Unable to update primary email address'),
- e
+ e,
)
}
},
this.handleResponse(
'error',
t('settings', 'Unable to delete additional email address'),
- e
+ e,
)
}
},
this.handleResponse(
'error',
t('settings', 'Unable to delete additional email address'),
- {}
+ {},
)
}
},
allLanguages() {
return Object.freeze(
[...this.commonLanguages, ...this.otherLanguages]
- .reduce((acc, { code, name }) => ({ ...acc, [code]: name }), {})
+ .reduce((acc, { code, name }) => ({ ...acc, [code]: name }), {}),
)
},
},
<span>{{ example.time }}</span>
</p>
<p>
- {{ t('settings', 'Week starts on {firstDayOfWeek}', { firstDayOfWeek: this.example.firstDayOfWeek }) }}
+ {{ t('settings', 'Week starts on {firstDayOfWeek}', { firstDayOfWeek: example.firstDayOfWeek }) }}
</p>
</div>
</div>
allLocales() {
return Object.freeze(
[...this.localesForLanguage, ...this.otherLocales]
- .reduce((acc, { code, name }) => ({ ...acc, [code]: name }), {})
+ .reduce((acc, { code, name }) => ({ ...acc, [code]: name }), {}),
)
},
},
autocorrect="off"
@input="onPropertyChange" />
<input v-else
- ref="input"
:id="inputId"
+ ref="input"
:placeholder="placeholder"
:type="type"
:value="value"
isHeading: {
type: Boolean,
default: false,
- }
+ },
},
data() {
--- /dev/null
+/**
+ * @copyright Copyright (c) 2016 Christoph Wurst <christoph@winzerhof-wurst.at>
+ *
+ * @author Christoph Wurst <christoph@winzerhof-wurst.at>
+ * @author John Molakvoæ <skjnldsv@protonmail.com>
+ * @author Roeland Jago Douma <roeland@famdouma.nl>
+ *
+ * @license AGPL-3.0-or-later
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program 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 program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+import Vue from 'vue'
+
+import ArtificialIntelligence from './components/AdminAI.vue'
+
+// eslint-disable-next-line camelcase
+__webpack_nonce__ = btoa(OC.requestToken)
+
+Vue.prototype.t = t
+
+// Not used here but required for legacy templates
+window.OC = window.OC || {}
+window.OC.Settings = window.OC.Settings || {}
+
+const View = Vue.extend(ArtificialIntelligence)
+new View().$mount('#ai-settings')
window.OC.Settings = window.OC.Settings || {}
store.replaceState(
- loadState('settings', 'mandatory2FAState')
+ loadState('settings', 'mandatory2FAState'),
)
const View = Vue.extend(AdminTwoFactor)