1
0
mirror of https://github.com/hotomoe/hotomoe synced 2024-12-12 13:48:12 +09:00
This commit is contained in:
syuilo 2018-06-06 02:48:26 +09:00
parent f88fb9bc1d
commit f918081168
3 changed files with 67 additions and 48 deletions

View File

@ -76,6 +76,50 @@ import Vue from 'vue';
import * as XDraggable from 'vuedraggable'; import * as XDraggable from 'vuedraggable';
import * as uuid from 'uuid'; import * as uuid from 'uuid';
const defaultDesktopHomeWidgets = {
left: [
'profile',
'calendar',
'activity',
'rss',
'trends',
'photo-stream',
'version'
],
right: [
'broadcast',
'notifications',
'users',
'polls',
'server',
'donation',
'nav',
'tips'
]
};
//#region Construct home data
const _defaultDesktopHomeWidgets = [];
defaultDesktopHomeWidgets.left.forEach(widget => {
_defaultDesktopHomeWidgets.push({
name: widget,
id: uuid(),
place: 'left',
data: {}
});
});
defaultDesktopHomeWidgets.right.forEach(widget => {
_defaultDesktopHomeWidgets.push({
name: widget,
id: uuid(),
place: 'right',
data: {}
});
});
//#endregion
export default Vue.extend({ export default Vue.extend({
components: { components: {
XDraggable XDraggable
@ -119,6 +163,14 @@ export default Vue.extend({
} }
}, },
created() {
if (this.$store.state.i.clientSettings == null || this.$store.state.i.clientSettings.home == null) {
this.api('i/update_home', {
home: _defaultDesktopHomeWidgets
});
}
},
mounted() { mounted() {
this.connection = (this as any).os.stream.getConnection(); this.connection = (this as any).os.stream.getConnection();
this.connectionId = (this as any).os.stream.use(); this.connectionId = (this as any).os.stream.use();

View File

@ -7,6 +7,20 @@ import { hostname } from './config';
const defaultSettings = { const defaultSettings = {
home: [], home: [],
mobileHome: [], mobileHome: [],
deck: {
columns: [/*{
type: 'widgets',
widgets: []
}, */{
type: 'home'
}, {
type: 'notifications'
}, {
type: 'local'
}, {
type: 'global'
}]
},
fetchOnScroll: true, fetchOnScroll: true,
showMaps: true, showMaps: true,
showPostFormOnTopOfTl: false, showPostFormOnTopOfTl: false,
@ -156,6 +170,7 @@ export default (os: MiOS) => new Vuex.Store({
actions: { actions: {
merge(ctx, settings) { merge(ctx, settings) {
if (settings == null) return;
Object.entries(settings).forEach(([key, value]) => { Object.entries(settings).forEach(([key, value]) => {
ctx.commit('set', { key, value }); ctx.commit('set', { key, value });
}); });

View File

@ -1,4 +1,3 @@
import * as uuid from 'uuid';
import * as Koa from 'koa'; import * as Koa from 'koa';
import * as bcrypt from 'bcryptjs'; import * as bcrypt from 'bcryptjs';
import { generate as generateKeypair } from '../../../crypto_key'; import { generate as generateKeypair } from '../../../crypto_key';
@ -11,28 +10,6 @@ recaptcha.init({
secret_key: config.recaptcha.secret_key secret_key: config.recaptcha.secret_key
}); });
const home = {
left: [
'profile',
'calendar',
'activity',
'rss',
'trends',
'photo-stream',
'version'
],
right: [
'broadcast',
'notifications',
'users',
'polls',
'server',
'donation',
'nav',
'tips'
]
};
export default async (ctx: Koa.Context) => { export default async (ctx: Koa.Context) => {
// Verify recaptcha // Verify recaptcha
// ただしテスト時はこの機構は障害となるため無効にする // ただしテスト時はこの機構は障害となるため無効にする
@ -82,28 +59,6 @@ export default async (ctx: Koa.Context) => {
// Generate secret // Generate secret
const secret = generateUserToken(); const secret = generateUserToken();
//#region Construct home data
const homeData = [];
home.left.forEach(widget => {
homeData.push({
name: widget,
id: uuid(),
place: 'left',
data: {}
});
});
home.right.forEach(widget => {
homeData.push({
name: widget,
id: uuid(),
place: 'right',
data: {}
});
});
//#endregion
// Create account // Create account
const account: IUser = await User.insert({ const account: IUser = await User.insert({
avatarId: null, avatarId: null,
@ -135,9 +90,6 @@ export default async (ctx: Koa.Context) => {
}, },
settings: { settings: {
autoWatch: true autoWatch: true
},
clientSettings: {
home: homeData
} }
}); });