Skip to content

Commit 378a26a

Browse files
committed
Finish migrating most everything to TS
1 parent 0407e97 commit 378a26a

File tree

13 files changed

+209
-263
lines changed

13 files changed

+209
-263
lines changed

resources/assets/scripts/components/server/Server.ts

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -93,21 +93,21 @@ export default Vue.component('server', {
9393
<router-link :to="{ name: 'server-files' }">
9494
<icon name="folder" class="h-4"></icon> Files
9595
</router-link>
96-
<router-link :to="{ name: 'server-subusers' }">
97-
<icon name="users" class="h-4"></icon> Subusers
98-
</router-link>
99-
<router-link :to="{ name: 'server-schedules' }">
100-
<icon name="calendar" class="h-4"></icon> Schedules
101-
</router-link>
96+
<!--<router-link :to="{ name: 'server-subusers' }">-->
97+
<!--<icon name="users" class="h-4"></icon> Subusers-->
98+
<!--</router-link>-->
99+
<!--<router-link :to="{ name: 'server-schedules' }">-->
100+
<!--<icon name="calendar" class="h-4"></icon> Schedules-->
101+
<!--</router-link>-->
102102
<router-link :to="{ name: 'server-databases' }">
103103
<icon name="database" class="h-4"></icon> Databases
104104
</router-link>
105-
<router-link :to="{ name: 'server-allocations' }">
106-
<icon name="globe" class="h-4"></icon> Allocations
107-
</router-link>
108-
<router-link :to="{ name: 'server-settings' }">
109-
<icon name="settings" class="h-4"></icon> Settings
110-
</router-link>
105+
<!--<router-link :to="{ name: 'server-allocations' }">-->
106+
<!--<icon name="globe" class="h-4"></icon> Allocations-->
107+
<!--</router-link>-->
108+
<!--<router-link :to="{ name: 'server-settings' }">-->
109+
<!--<icon name="settings" class="h-4"></icon> Settings-->
110+
<!--</router-link>-->
111111
</div>
112112
</div>
113113
<div class="h-full w-full">

resources/assets/scripts/components/server/ServerAllocations.vue

Lines changed: 0 additions & 13 deletions
This file was deleted.

resources/assets/scripts/components/server/ServerSchedules.vue

Lines changed: 0 additions & 13 deletions
This file was deleted.

resources/assets/scripts/components/server/ServerSettings.vue

Lines changed: 0 additions & 13 deletions
This file was deleted.

resources/assets/scripts/components/server/ServerSubusers.vue

Lines changed: 0 additions & 13 deletions
This file was deleted.

resources/assets/scripts/components/server/components/filemanager/FileContextMenu.ts

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,15 @@ import Vue from 'vue';
22
import Icon from "../../../core/Icon";
33

44
export default Vue.component('file-context-menu', {
5-
components: {
6-
Icon,
7-
},
5+
components: { Icon },
86

97
template: `
108
<div class="context-menu">
119
<div>
1210
<div class="context-row">
1311
<div class="icon">
14-
<icon name="edit3"/>
15-
</div>
12+
<icon name="edit-3"/>
13+
</div>
1614
<div class="action"><span>Rename</span></div>
1715
</div>
1816
<div class="context-row">

resources/assets/scripts/components/server/components/filemanager/FolderRow.ts

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
import Vue from 'vue';
2-
import { formatDate } from "../../../../helpers";
3-
import Icon from "../../../core/Icon";
2+
import { formatDate } from "@/helpers";
3+
import Icon from "@/components/core/Icon";
44

55
export default Vue.component('folder-row', {
6-
components: {
7-
Icon,
8-
},
6+
components: { Icon },
97

108
props: {
119
directory: {type: Object, required: true},
@@ -34,7 +32,7 @@ export default Vue.component('folder-row', {
3432
:to="{ name: 'server-files', params: { path: getClickablePath(directory.name).replace(/^\\//, '') }}"
3533
>
3634
<div class="flex-none icon">
37-
<folder-icon/>
35+
<icon name="folder"/>
3836
</div>
3937
<div class="flex-1">{{directory.name}}</div>
4038
<div class="flex-1 text-right text-grey-dark"></div>
Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,4 @@
11
export {default as Server} from './Server';
2-
export {default as ServerAllocations} from './ServerAllocations.vue';
32
export {default as ConsolePage} from './subpages/Console';
4-
export {default as DatabasesPage} from './subpages/Databases.vue';
5-
export {default as FileManagerPage} from './subpages/FileManager.vue';
6-
export {default as ServerSchedules} from './ServerSchedules.vue';
7-
export {default as ServerSettings} from './ServerSettings.vue';
8-
export {default as ServerSubusers} from './ServerSubusers.vue';
3+
export {default as DatabasesPage} from './subpages/Databases';
4+
export {default as FileManagerPage} from './subpages/FileManager';
Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
import Vue from 'vue';
2+
import { map, filter } from 'lodash';
3+
import Modal from '@/components/core/Modal';
4+
import CreateDatabaseModal from './../components/database/CreateDatabaseModal.vue';
5+
import DatabaseRow from './../components/database/DatabaseRow.vue';
6+
import Icon from "@/components/core/Icon";
7+
8+
type DataStructure = {
9+
loading: boolean,
10+
showCreateModal: boolean,
11+
databases: Array<any>,
12+
}
13+
14+
export default Vue.component('server-databases', {
15+
components: {DatabaseRow, CreateDatabaseModal, Modal, Icon },
16+
17+
data: function (): DataStructure {
18+
return {
19+
databases: [],
20+
loading: true,
21+
showCreateModal: false,
22+
};
23+
},
24+
25+
mounted: function () {
26+
this.getDatabases();
27+
28+
window.events.$on('server:deleted-database', this.removeDatabase);
29+
},
30+
31+
methods: {
32+
/**
33+
* Get all of the databases that exist for this server.
34+
*/
35+
getDatabases: function () {
36+
this.$flash.clear();
37+
this.loading = true;
38+
39+
window.axios.get(this.route('api.client.servers.databases', {
40+
server: this.$route.params.id,
41+
include: 'password'
42+
}))
43+
.then(response => {
44+
this.databases = map(response.data.data, (object) => {
45+
const data = object.attributes;
46+
47+
data.password = data.relationships.password.attributes.password;
48+
data.showPassword = false;
49+
delete data.relationships;
50+
51+
return data;
52+
});
53+
})
54+
.catch(err => {
55+
this.$flash.error('There was an error encountered while attempting to fetch databases for this server.');
56+
console.error(err);
57+
})
58+
.then(() => {
59+
this.loading = false;
60+
});
61+
},
62+
63+
/**
64+
* Add the database to the list of existing databases automatically when the modal
65+
* is closed with a successful callback.
66+
*/
67+
handleModalCallback: function (object: any) {
68+
const data = object;
69+
data.password = data.relationships.password.attributes.password;
70+
data.showPassword = false;
71+
72+
delete data.relationships;
73+
74+
this.databases.push(data);
75+
},
76+
77+
/**
78+
* Handle event that is removing a database.
79+
*/
80+
removeDatabase: function (databaseId: number) {
81+
this.databases = filter(this.databases, (database) => {
82+
return database.id !== databaseId;
83+
});
84+
}
85+
},
86+
87+
template: `
88+
<div>
89+
<div v-if="loading">
90+
<div class="spinner spinner-xl blue"></div>
91+
</div>
92+
<div class="animate fadein" v-else>
93+
<div class="content-box mb-6" v-if="!databases.length">
94+
<div class="flex items-center">
95+
<icon name="database" class="flex-none text-grey-darker"></icon>
96+
<div class="flex-1 px-4 text-grey-darker">
97+
<p>You have no databases.</p>
98+
</div>
99+
</div>
100+
</div>
101+
<div v-else>
102+
<database-row v-for="database in databases" :database="database" :key="database.name"/>
103+
</div>
104+
<div>
105+
<button class="btn btn-blue btn-lg" v-on:click="showCreateModal = true">Create new database</button>
106+
</div>
107+
<modal :show="showCreateModal" v-on:close="showCreateModal = false">
108+
<create-database-modal
109+
v-on:close="showCreateModal = false"
110+
v-on:database="handleModalCallback"
111+
v-if="showCreateModal"
112+
/>
113+
</modal>
114+
</div>
115+
</div>
116+
`,
117+
});

resources/assets/scripts/components/server/subpages/Databases.vue

Lines changed: 0 additions & 116 deletions
This file was deleted.

0 commit comments

Comments
 (0)