wip
This commit is contained in:
parent
f88fb9bc1d
commit
f918081168
3 changed files with 67 additions and 48 deletions
|
@ -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();
|
||||||
|
|
|
@ -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 });
|
||||||
});
|
});
|
||||||
|
|
|
@ -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
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue