aboutsummaryrefslogtreecommitdiff
path: root/src/components/settings_modal/admin_tabs/frontends_tab.vue
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/settings_modal/admin_tabs/frontends_tab.vue')
-rw-r--r--src/components/settings_modal/admin_tabs/frontends_tab.vue204
1 files changed, 147 insertions, 57 deletions
diff --git a/src/components/settings_modal/admin_tabs/frontends_tab.vue b/src/components/settings_modal/admin_tabs/frontends_tab.vue
index 48649dfb..71bbfa69 100644
--- a/src/components/settings_modal/admin_tabs/frontends_tab.vue
+++ b/src/components/settings_modal/admin_tabs/frontends_tab.vue
@@ -2,67 +2,157 @@
<div class="frontends-tab" :label="$t('admin_dash.tabs.frontends')">
<div class="setting-item">
<h2>{{ $t('admin_dash.tabs.frontends') }}</h2>
- <ul class="setting-list cards-list">
- <li v-for="frontend in frontends" :key="frontend.name">
- <strong>{{ frontend.name }}</strong>
- <dl>
- <dt>{{ $t('admin_dash.frontend.repository') }}</dt>
- <dd><a :href="frontend.git">{{ frontend.git }}</a></dd>
- <dt v-if="expertLevel">{{ $t('admin_dash.frontend.versions') }}</dt>
- <dd v-if="expertLevel">{{ frontend.refs }}</dd>
- <dt v-if="expertLevel">{{ $t('admin_dash.frontend.build_url') }}</dt>
- <dd v-if="expertLevel">{{ frontend.build_url }}</dd>
- </dl>
- <div>
- <span class="btn-group">
- <button
- class="button button-default btn"
- type="button"
- :title="$t('admin_dash.frontend.update')"
- @click="update(frontend)"
- >
- {{
- frontend.installed
- ? $t('admin_dash.frontend.reinstall')
- : $t('admin_dash.frontend.install')
- }}
- </button>
- <Popover
- v-if="frontend.refs.length > 1"
- trigger="click"
- class="button-dropdown"
- placement="bottom"
+ <p>{{ $t('admin_dash.frontend.wip_notice') }}</p>
+ <ul class="setting-list">
+ <li>
+ <h3>{{ $t('admin_dash.frontend.default_frontend') }}</h3>
+ <p>{{ $t('admin_dash.frontend.default_frontend_tip') }}</p>
+ <p>{{ $t('admin_dash.frontend.default_frontend_tip2') }}</p>
+ </li>
+ <li>
+ <StringSetting path=":pleroma.:frontends.:primary.name">
+ NAME
+ </StringSetting>
+ </li>
+ <li>
+ <StringSetting path=":pleroma.:frontends.:primary.ref">
+ REF
+ </StringSetting>
+ </li>
+ <li>
+ <GroupSetting path=":pleroma.:frontends.:primary"/>
+ </li>
+ </ul>
+ <div class="setting-list">
+ <h3>{{ $t('admin_dash.frontend.available_frontends') }}</h3>
+ <ul class="cards-list">
+ <li v-for="frontend in frontends" :key="frontend.name">
+ <strong>{{ frontend.name }}</strong>
+ {{ ' ' }}
+ <span v-if="adminDraft[':pleroma'][':frontends'][':primary'].name === frontend.name">
+ <i18n-t
+ keypath="admin_dash.frontend.is_default"
+ v-if="adminDraft[':pleroma'][':frontends'][':primary'].ref === frontend.refs[0]"
+ />
+ <i18n-t
+ keypath="admin_dash.frontend.is_default_custom"
+ v-else
>
- <template #content>
- <div class="dropdown-menu">
+ <template #version>
+ <code>{{ adminDraft[':pleroma'][':frontends'][':primary'].ref }}</code>
+ </template>
+ </i18n-t>
+ </span>
+ <dl>
+ <dt>{{ $t('admin_dash.frontend.repository') }}</dt>
+ <dd><a :href="frontend.git" target="_blank">{{ frontend.git }}</a></dd>
+ <template v-if="expertLevel">
+ <dt>{{ $t('admin_dash.frontend.versions') }}</dt>
+ <dd v-for="ref in frontend.refs" :key="ref"><code>{{ ref }}</code></dd>
+ </template>
+ <dt v-if="expertLevel">{{ $t('admin_dash.frontend.build_url') }}</dt>
+ <dd v-if="expertLevel"><a :href="frontend.build_url" target="_blank">{{ frontend.build_url }}</a></dd>
+ </dl>
+ <div>
+ <span class="btn-group">
+ <button
+ class="button button-default btn"
+ type="button"
+ :title="$t('admin_dash.frontend.update')"
+ @click="update(frontend)"
+ >
+ {{
+ frontend.installed
+ ? $t('admin_dash.frontend.reinstall')
+ : $t('admin_dash.frontend.install')
+ }}
+ </button>
+ <Popover
+ v-if="frontend.refs.length > 1"
+ trigger="click"
+ class="button-dropdown"
+ placement="bottom"
+ >
+ <template #content>
+ <div class="dropdown-menu">
+ <button
+ v-for="ref in frontend.refs"
+ :key="ref"
+ class="button-default dropdown-item"
+ @click="update(frontend, ref)"
+ >
+ <i18n-t keypath="admin_dash.frontend.install_version">
+ <template #version>
+ <code>{{ ref }}</code>
+ </template>
+ </i18n-t>
+ </button>
+ </div>
+ </template>
+ <template #trigger>
<button
- v-for="ref in frontend.refs"
- :key="ref"
- class="button-default dropdown-item"
- @click="update(frontend, ref)"
+ class="button button-default btn dropdown-button"
+ type="button"
+ :title="$t('admin_dash.frontend.update')"
>
- <i18n-t keypath="admin_dash.frontend.install_version">
- <template #version>
- <code>{{ ref }}</code>
- </template>
- </i18n-t>
+ <FAIcon icon="chevron-down" />
</button>
- </div>
- </template>
- <template #trigger>
- <button
- class="button button-default btn"
- type="button"
- :title="$t('admin_dash.frontend.update')"
- >
- <FAIcon icon="chevron-down" />
- </button>
- </template>
- </Popover>
- </span>
- </div>
- </li>
- </ul>
+ </template>
+ </Popover>
+ </span>
+ <span class="btn-group" v-if="frontend.name !== 'admin-fe'">
+ <button
+ class="button button-default btn"
+ type="button"
+ :disabled="
+ adminDraft[':pleroma'][':frontends'][':primary'].name === frontend.name &&
+ adminDraft[':pleroma'][':frontends'][':primary'].ref === frontend.refs[0]
+ "
+ :title="$t('admin_dash.frontend.update')"
+ @click="setDefault(frontend)"
+ >
+ {{
+ $t('admin_dash.frontend.set_default')
+ }}
+ </button>
+ {{ ' ' }}
+ <Popover
+ v-if="frontend.refs.length > 1"
+ trigger="click"
+ class="button-dropdown"
+ placement="bottom"
+ >
+ <template #content>
+ <div class="dropdown-menu">
+ <button
+ v-for="ref in frontend.refs.slice(1)"
+ :key="ref"
+ class="button-default dropdown-item"
+ @click="setDefault(frontend, ref)"
+ >
+ <i18n-t keypath="admin_dash.frontend.set_default_version">
+ <template #version>
+ <code>{{ ref }}</code>
+ </template>
+ </i18n-t>
+ </button>
+ </div>
+ </template>
+ <template #trigger>
+ <button
+ class="button button-default btn dropdown-button"
+ type="button"
+ :title="$t('admin_dash.frontend.update')"
+ >
+ <FAIcon icon="chevron-down" />
+ </button>
+ </template>
+ </Popover>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
</div>
</div>
</template>