Page MenuHomePhorge

D3373.1775816280.diff
No OneTemporary

Authored By
Unknown
Size
17 KB
Referenced Files
None
Subscribers
None

D3373.1775816280.diff

diff --git a/src/resources/js/bootstrap.js b/src/resources/js/bootstrap.js
--- a/src/resources/js/bootstrap.js
+++ b/src/resources/js/bootstrap.js
@@ -20,12 +20,14 @@
import FontAwesomeIcon from './fontawesome'
import Vue from 'vue'
import VueRouter from 'vue-router'
+import RouterLinkButton from '../vue/Widgets/RouterLinkButton'
import Toast from '../vue/Widgets/Toast'
import store from './store'
window.Vue = Vue
Vue.component('SvgIcon', FontAwesomeIcon)
+Vue.component('RouterLinkButton', RouterLinkButton)
const vTooltip = (el, binding) => {
let t = []
diff --git a/src/resources/vue/Distlist/Info.vue b/src/resources/vue/Distlist/Info.vue
--- a/src/resources/vue/Distlist/Info.vue
+++ b/src/resources/vue/Distlist/Info.vue
@@ -6,7 +6,7 @@
<div class="card-body">
<div class="card-title" v-if="list_id !== 'new'">
{{ $tc('distlist.list-title', 1) }}
- <button class="btn btn-outline-danger button-delete float-end" @click="deleteList()" tag="button">
+ <button class="btn btn-outline-danger button-delete float-end" @click="deleteList()" type="button">
<svg-icon icon="trash-alt"></svg-icon> {{ $t('distlist.delete') }}
</button>
</div>
diff --git a/src/resources/vue/Distlist/List.vue b/src/resources/vue/Distlist/List.vue
--- a/src/resources/vue/Distlist/List.vue
+++ b/src/resources/vue/Distlist/List.vue
@@ -5,9 +5,12 @@
<div class="card-title">
{{ $tc('distlist.list-title', 2) }}
<small><sup class="badge bg-primary">{{ $t('dashboard.beta') }}</sup></small>
- <router-link v-if="!$root.isDegraded()" class="btn btn-success float-end create-list" :to="{ path: 'distlist/new' }" tag="button">
- <svg-icon icon="users"></svg-icon> {{ $t('distlist.create') }}
- </router-link>
+ <router-link-button v-if="!$root.isDegraded()"
+ class="btn-success float-end"
+ to="distlist/new"
+ icon="users"
+ label="distlist.create"
+ ></router-link-button>
</div>
<div class="card-text">
<table class="table table-sm table-hover">
diff --git a/src/resources/vue/Domain/List.vue b/src/resources/vue/Domain/List.vue
--- a/src/resources/vue/Domain/List.vue
+++ b/src/resources/vue/Domain/List.vue
@@ -4,9 +4,12 @@
<div class="card-body">
<div class="card-title">
{{ $t('user.domains') }}
- <router-link v-if="!$root.isDegraded()" class="btn btn-success float-end create-domain" :to="{ path: 'domain/new' }" tag="button">
- <svg-icon icon="globe"></svg-icon> {{ $t('domain.create') }}
- </router-link>
+ <router-link-button v-if="!$root.isDegraded()"
+ class="btn-success float-end"
+ to="domain/new"
+ icon="globe"
+ label="domain.create"
+ ></router-link-button>
</div>
<div class="card-text">
<table class="table table-sm table-hover">
diff --git a/src/resources/vue/Resource/Info.vue b/src/resources/vue/Resource/Info.vue
--- a/src/resources/vue/Resource/Info.vue
+++ b/src/resources/vue/Resource/Info.vue
@@ -6,7 +6,7 @@
<div class="card-body">
<div class="card-title" v-if="resource_id !== 'new'">
{{ $tc('resource.list-title', 1) }}
- <button class="btn btn-outline-danger button-delete float-end" @click="deleteResource()" tag="button">
+ <button class="btn btn-outline-danger button-delete float-end" @click="deleteResource()" type="button">
<svg-icon icon="trash-alt"></svg-icon> {{ $t('resource.delete') }}
</button>
</div>
diff --git a/src/resources/vue/Resource/List.vue b/src/resources/vue/Resource/List.vue
--- a/src/resources/vue/Resource/List.vue
+++ b/src/resources/vue/Resource/List.vue
@@ -5,9 +5,12 @@
<div class="card-title">
{{ $tc('resource.list-title', 2) }}
<small><sup class="badge bg-primary">{{ $t('dashboard.beta') }}</sup></small>
- <router-link v-if="!$root.isDegraded()" class="btn btn-success float-end create-resource" :to="{ path: 'resource/new' }" tag="button">
- <svg-icon icon="cog"></svg-icon> {{ $t('resource.create') }}
- </router-link>
+ <router-link-button v-if="!$root.isDegraded()"
+ to="resource/new"
+ class="btn-success float-end"
+ icon="cog"
+ label="resource.create"
+ ></router-link-button>
</div>
<div class="card-text">
<table class="table table-sm table-hover">
diff --git a/src/resources/vue/SharedFolder/Info.vue b/src/resources/vue/SharedFolder/Info.vue
--- a/src/resources/vue/SharedFolder/Info.vue
+++ b/src/resources/vue/SharedFolder/Info.vue
@@ -6,7 +6,7 @@
<div class="card-body">
<div class="card-title" v-if="folder_id !== 'new'">
{{ $tc('shf.list-title', 1) }}
- <button class="btn btn-outline-danger button-delete float-end" @click="deleteFolder()" tag="button">
+ <button class="btn btn-outline-danger button-delete float-end" @click="deleteFolder()" type="button">
<svg-icon icon="trash-alt"></svg-icon> {{ $t('shf.delete') }}
</button>
</div>
diff --git a/src/resources/vue/SharedFolder/List.vue b/src/resources/vue/SharedFolder/List.vue
--- a/src/resources/vue/SharedFolder/List.vue
+++ b/src/resources/vue/SharedFolder/List.vue
@@ -5,9 +5,12 @@
<div class="card-title">
{{ $tc('shf.list-title', 2) }}
<small><sup class="badge bg-primary">{{ $t('dashboard.beta') }}</sup></small>
- <router-link v-if="!$root.isDegraded()" class="btn btn-success float-end create-folder" :to="{ path: 'shared-folder/new' }" tag="button">
- <svg-icon icon="cog"></svg-icon> {{ $t('shf.create') }}
- </router-link>
+ <router-link-button v-if="!$root.isDegraded()"
+ to="shared-folder/new"
+ class="btn-success float-end"
+ icon="cog"
+ label="shf.create"
+ ></router-link-button>
</div>
<div class="card-text">
<table class="table table-sm table-hover">
diff --git a/src/resources/vue/User/List.vue b/src/resources/vue/User/List.vue
--- a/src/resources/vue/User/List.vue
+++ b/src/resources/vue/User/List.vue
@@ -8,11 +8,12 @@
<div class="card-text">
<div class="mb-2 d-flex">
<list-search :placeholder="$t('user.search')" :on-search="searchUsers"></list-search>
- <div v-if="!$root.isDegraded()">
- <router-link class="btn btn-success ms-1 create-user" :to="{ path: 'user/new' }" tag="button">
- <svg-icon icon="user"></svg-icon> {{ $t('user.create') }}
- </router-link>
- </div>
+ <router-link-button v-if="!$root.isDegraded()"
+ to="user/new"
+ class="btn-success ms-1"
+ icon="user"
+ label="user.create"
+ ></router-link-button>
</div>
<table id="users-list" class="table table-sm table-hover">
<thead>
diff --git a/src/resources/vue/User/Profile.vue b/src/resources/vue/User/Profile.vue
--- a/src/resources/vue/User/Profile.vue
+++ b/src/resources/vue/User/Profile.vue
@@ -4,13 +4,12 @@
<div class="card-body">
<div class="card-title">
{{ $t('user.profile-title') }}
- <router-link
- v-if="$root.isController(wallet.id)"
- class="btn btn-outline-danger button-delete float-end"
- to="/profile/delete" tag="button"
- >
- <svg-icon icon="trash-alt"></svg-icon> {{ $t('user.profile-delete') }}
- </router-link>
+ <router-link-button v-if="$root.isController(wallet.id)"
+ to="profile/delete"
+ class="btn-outline-danger button-delete float-end"
+ icon="trash-alt"
+ label="user.profile-delete"
+ ></router-link-button>
</div>
<div class="card-text">
<form @submit.prevent="submit">
diff --git a/src/resources/vue/User/ProfileDelete.vue b/src/resources/vue/User/ProfileDelete.vue
--- a/src/resources/vue/User/ProfileDelete.vue
+++ b/src/resources/vue/User/ProfileDelete.vue
@@ -8,10 +8,12 @@
<p>{{ $t('user.profile-delete-text2') }}</p>
<p v-if="supportEmail" v-html="$t('user.profile-delete-support', { href: 'mailto:' + supportEmail, email: supportEmail })"></p>
<p>{{ $t('user.profile-delete-contact', { app: $root.appName }) }}</p>
- <button class="btn btn-secondary button-cancel" @click="$router.go(-1)">{{ $t('btn.cancel') }}</button>
- <button class="btn btn-danger button-delete" @click="deleteProfile">
- <svg-icon icon="trash-alt"></svg-icon> {{ $t('user.profile-delete') }}
- </button>
+ <p class="buttons">
+ <button class="btn btn-secondary button-cancel" @click="$router.go(-1)">{{ $t('btn.cancel') }}</button>
+ <button class="btn btn-danger button-delete" @click="deleteProfile">
+ <svg-icon icon="trash-alt"></svg-icon> {{ $t('user.profile-delete') }}
+ </button>
+ </p>
</div>
</div>
</div>
diff --git a/src/resources/vue/Widgets/RouterLinkButton.vue b/src/resources/vue/Widgets/RouterLinkButton.vue
new file mode 100644
--- /dev/null
+++ b/src/resources/vue/Widgets/RouterLinkButton.vue
@@ -0,0 +1,17 @@
+<template>
+ <router-link :to="to" custom v-slot="{ navigate }">
+ <button type="button" :class="['btn', label.replace('.', '-')]" @click="navigate">
+ <svg-icon :icon="icon"></svg-icon> {{ $t(label) }}
+ </button>
+ </router-link>
+</template>
+
+<script>
+ export default {
+ props: {
+ to: { type: [ Object, String ], default: () => {} },
+ icon: { type: [ Array, String ], default: '' },
+ label: { type: String, default: '' }
+ }
+ }
+</script>
diff --git a/src/tests/Browser/DegradedAccountTest.php b/src/tests/Browser/DegradedAccountTest.php
--- a/src/tests/Browser/DegradedAccountTest.php
+++ b/src/tests/Browser/DegradedAccountTest.php
@@ -76,31 +76,31 @@
->assertVisible('tbody tr:nth-child(3) td:first-child svg.text-warning') // John
->assertText('tbody tr:nth-child(3) td:first-child svg.text-warning title', 'Degraded');
})
- ->assertMissing('button.create-user');
+ ->assertMissing('button.user-create');
// Goto /domains and assert that the warning is also displayed there
$browser->visit(new DomainList())
->assertSeeIn('#status-degraded p.alert', 'The account is degraded')
->assertSeeIn('#status-degraded p.alert', 'Please, make a payment')
- ->assertMissing('button.create-domain');
+ ->assertMissing('button.domain-create');
// Goto /distlists and assert that the warning is also displayed there
$browser->visit(new DistlistList())
->assertSeeIn('#status-degraded p.alert', 'The account is degraded')
->assertSeeIn('#status-degraded p.alert', 'Please, make a payment')
- ->assertMissing('button.create-list');
+ ->assertMissing('button.distlist-create');
// Goto /resources and assert that the warning is also displayed there
$browser->visit(new ResourceList())
->assertSeeIn('#status-degraded p.alert', 'The account is degraded')
->assertSeeIn('#status-degraded p.alert', 'Please, make a payment')
- ->assertMissing('button.create-resource');
+ ->assertMissing('button.resource-create');
// Goto /shared-folders and assert that the warning is also displayed there
$browser->visit(new SharedFolderList())
->assertSeeIn('#status-degraded p.alert', 'The account is degraded')
->assertSeeIn('#status-degraded p.alert', 'Please, make a payment')
- ->assertMissing('button.create-resource');
+ ->assertMissing('button.shf-create');
// Test that /rooms is not accessible
$browser->visit('/rooms')
diff --git a/src/tests/Browser/DistlistTest.php b/src/tests/Browser/DistlistTest.php
--- a/src/tests/Browser/DistlistTest.php
+++ b/src/tests/Browser/DistlistTest.php
@@ -124,8 +124,8 @@
$this->browse(function (Browser $browser) {
// Create a group
$browser->visit(new DistlistList())
- ->assertSeeIn('button.create-list', 'Create list')
- ->click('button.create-list')
+ ->assertSeeIn('button.distlist-create', 'Create list')
+ ->click('button.distlist-create')
->on(new DistlistInfo())
->assertSeeIn('#distlist-info .card-title', 'New distribution list')
->assertSeeIn('@nav #tab-general', 'General')
diff --git a/src/tests/Browser/ResourceTest.php b/src/tests/Browser/ResourceTest.php
--- a/src/tests/Browser/ResourceTest.php
+++ b/src/tests/Browser/ResourceTest.php
@@ -125,8 +125,8 @@
$this->browse(function (Browser $browser) {
// Create a resource
$browser->visit(new ResourceList())
- ->assertSeeIn('button.create-resource', 'Create resource')
- ->click('button.create-resource')
+ ->assertSeeIn('button.resource-create', 'Create resource')
+ ->click('button.resource-create')
->on(new ResourceInfo())
->assertSeeIn('#resource-info .card-title', 'New resource')
->assertSeeIn('@nav #tab-general', 'General')
diff --git a/src/tests/Browser/SharedFolderTest.php b/src/tests/Browser/SharedFolderTest.php
--- a/src/tests/Browser/SharedFolderTest.php
+++ b/src/tests/Browser/SharedFolderTest.php
@@ -131,8 +131,8 @@
$this->browse(function (Browser $browser) {
// Create a folder
$browser->visit(new SharedFolderList())
- ->assertSeeIn('button.create-folder', 'Create folder')
- ->click('button.create-folder')
+ ->assertSeeIn('button.shf-create', 'Create folder')
+ ->click('button.shf-create')
->on(new SharedFolderInfo())
->assertSeeIn('#folder-info .card-title', 'New shared folder')
->assertSeeIn('@nav #tab-general', 'General')
diff --git a/src/tests/Browser/UsersTest.php b/src/tests/Browser/UsersTest.php
--- a/src/tests/Browser/UsersTest.php
+++ b/src/tests/Browser/UsersTest.php
@@ -405,8 +405,8 @@
$this->browse(function (Browser $browser) {
$browser->visit(new UserList())
- ->assertSeeIn('button.create-user', 'Create user')
- ->click('button.create-user')
+ ->assertSeeIn('button.user-create', 'Create user')
+ ->click('button.user-create')
->on(new UserInfo())
->assertSeeIn('#user-info .card-title', 'New user account')
->with('@general', function (Browser $browser) {
@@ -660,7 +660,7 @@
// Packages on new user page
$this->browse(function (Browser $browser) {
$browser->visit(new UserList())
- ->click('button.create-user')
+ ->click('button.user-create')
->on(new UserInfo())
->with('@general', function (Browser $browser) {
$browser->whenAvailable('@packages', function (Browser $browser) {
@@ -768,7 +768,7 @@
// Packages on new user page
$this->browse(function (Browser $browser) {
$browser->visit(new UserList())
- ->click('button.create-user')
+ ->click('button.user-create')
->on(new UserInfo())
->with('@general', function (Browser $browser) {
$browser->whenAvailable('@packages', function (Browser $browser) {

File Metadata

Mime Type
text/plain
Expires
Fri, Apr 10, 10:18 AM (2 w, 6 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
18855700
Default Alt Text
D3373.1775816280.diff (17 KB)

Event Timeline