diff --git a/src/lang/en.js b/src/lang/en.js index e21a156d87c9ebbfc813e3db3466ca43946e6751..227eb2db04d9995fccdc1ed28388b42bb7d351b0 100644 --- a/src/lang/en.js +++ b/src/lang/en.js @@ -455,7 +455,13 @@ export default { uploadImage: 'Upload image', remove: 'Remove', instancePanel: 'Instance Panel Document', - termsOfServices: 'Terms of Service' + termsOfServices: 'Terms of Service', + availableFrontends: 'Available Frontends', + installFrontends: 'This is the list of available frontends. You can switch to one of the listed frontends or specify all the required options and install another frontend', + install: 'Install', + installed: 'Installed', + name: 'Name', + git: 'Git' }, invites: { inviteTokens: 'Invite tokens', @@ -540,6 +546,5 @@ export default { emptyPack: 'This emoji pack is empty', emojiWarning: 'Pack names cannot include any of the following characters: # / < > & +', image: 'Image' - } } diff --git a/src/views/settings/components/Frontend.vue b/src/views/settings/components/Frontend.vue index ea3414985da3232d9bdbda79f6f48f9a3de51a78..ee01e3cd379143b6a9b14f24da63ebcb6c9ef4ec 100644 --- a/src/views/settings/components/Frontend.vue +++ b/src/views/settings/components/Frontend.vue @@ -1,5 +1,44 @@ <template> <div v-if="!loading" :class="isSidebarOpen" class="form-container"> + <el-form :label-position="labelPosition" :label-width="labelWidth"> + <el-form-item class="description-container"> + <span class="setting-label">{{ $t('settings.availableFrontends') }}</span> + <span class="expl no-top-margin"><p>{{ $t('settings.installFrontends') }}</p></span> + </el-form-item> + <el-form-item> + <el-table + :data="availableFrontends" + class="frontends-table"> + <el-table-column + :label="$t('settings.name')" + prop="name" + width="120"/> + <el-table-column + :label="$t('settings.git')" + prop="git"/> + <el-table-column + :label="$t('settings.installed')" + prop="installed"> + <template slot-scope="scope"> + <el-button + v-if="!scope.row.installed" + disabled + type="text" + size="small"> + {{ $t('settings.installed') }} + </el-button> + <el-button + v-else + type="text" + size="small" + @click="installFrontend(scope.row)"> + {{ $t('settings.install') }} + </el-button> + </template> + </el-table-column> + </el-table> + </el-form-item> + </el-form> <el-form :model="frontendData" :label-position="labelPosition" :label-width="labelWidth"> <setting :setting-group="frontend" :data="frontendData"/> </el-form> @@ -56,6 +95,9 @@ export default { assetsData() { return _.get(this.settings.settings, [':pleroma', ':assets']) || {} }, + availableFrontends() { + return this.settings.frontends + }, chat() { return this.settings.description.find(setting => setting.key === ':chat') }, diff --git a/src/views/settings/styles/main.scss b/src/views/settings/styles/main.scss index c55208ad22c33523707066a6970bede0b685e858..48c7973a5bd8982c21abdf5f24fd0c0678366e8f 100644 --- a/src/views/settings/styles/main.scss +++ b/src/views/settings/styles/main.scss @@ -75,6 +75,10 @@ .form-container { margin-bottom: 80px; } + .frontends-table { + width: 100%; + margin-right: 30px; + } .grouped-settings-header { margin: 0 0 14px 0; }