Refactor & Clean up

This commit is contained in:
syuilo
2018-11-09 08:13:34 +09:00
parent ba845f5218
commit 60ef3e3563
154 changed files with 438 additions and 481 deletions

View File

@@ -45,7 +45,7 @@ export default Vue.extend({
};
},
mounted() {
(this as any).api('charts/user/notes', {
this.$root.api('charts/user/notes', {
userId: this.user.id,
span: 'day',
limit: 7 * 20

View File

@@ -22,7 +22,7 @@ export default Vue.extend({
};
},
mounted() {
(this as any).api('drive').then(info => {
this.$root.api('drive').then(info => {
this.usage = info.usage / info.capacity * 100;
});
},

View File

@@ -155,7 +155,7 @@ export default Vue.extend({
default: this.file.name,
allowEmpty: false
}).then(name => {
(this as any).api('drive/files/update', {
this.$root.api('drive/files/update', {
fileId: this.file.id,
name: name
});
@@ -163,7 +163,7 @@ export default Vue.extend({
},
toggleSensitive() {
(this as any).api('drive/files/update', {
this.$root.api('drive/files/update', {
fileId: this.file.id,
isSensitive: !this.file.isSensitive
});
@@ -193,7 +193,7 @@ export default Vue.extend({
},
deleteFile() {
(this as any).api('drive/files/delete', {
this.$root.api('drive/files/delete', {
fileId: this.file.id
});
}

View File

@@ -132,7 +132,7 @@ export default Vue.extend({
if (driveFile != null && driveFile != '') {
const file = JSON.parse(driveFile);
this.browser.removeFile(file.id);
(this as any).api('drive/files/update', {
this.$root.api('drive/files/update', {
fileId: file.id,
folderId: this.folder.id
});
@@ -148,7 +148,7 @@ export default Vue.extend({
if (folder.id == this.folder.id) return;
this.browser.removeFolder(folder.id);
(this as any).api('drive/folders/update', {
this.$root.api('drive/folders/update', {
folderId: folder.id,
parentId: this.folder.id
}).then(() => {
@@ -201,7 +201,7 @@ export default Vue.extend({
placeholder: this.$t('contextmenu.input-new-folder-name'),
default: this.folder.name
}).then(name => {
(this as any).api('drive/folders/update', {
this.$root.api('drive/folders/update', {
folderId: this.folder.id,
name: name
});
@@ -209,7 +209,7 @@ export default Vue.extend({
},
deleteFolder() {
(this as any).api('drive/folders/delete', {
this.$root.api('drive/folders/delete', {
folderId: this.folder.id
});
}

View File

@@ -79,7 +79,7 @@ export default Vue.extend({
if (driveFile != null && driveFile != '') {
const file = JSON.parse(driveFile);
this.browser.removeFile(file.id);
(this as any).api('drive/files/update', {
this.$root.api('drive/files/update', {
fileId: file.id,
folderId: this.folder ? this.folder.id : null
});
@@ -93,7 +93,7 @@ export default Vue.extend({
// 移動先が自分自身ならreject
if (this.folder && folder.id == this.folder.id) return;
this.browser.removeFolder(folder.id);
(this as any).api('drive/folders/update', {
this.$root.api('drive/folders/update', {
folderId: folder.id,
parentId: this.folder ? this.folder.id : null
});

View File

@@ -117,7 +117,7 @@ export default Vue.extend({
};
},
mounted() {
this.connection = (this as any).os.stream.useSharedConnection('drive');
this.connection = this.$root.stream.useSharedConnection('drive');
this.connection.on('fileCreated', this.onStreamDriveFileCreated);
this.connection.on('fileUpdated', this.onStreamDriveFileUpdated);
@@ -290,7 +290,7 @@ export default Vue.extend({
const file = JSON.parse(driveFile);
if (this.files.some(f => f.id == file.id)) return;
this.removeFile(file.id);
(this as any).api('drive/files/update', {
this.$root.api('drive/files/update', {
fileId: file.id,
folderId: this.folder ? this.folder.id : null
});
@@ -306,7 +306,7 @@ export default Vue.extend({
if (this.folder && folder.id == this.folder.id) return false;
if (this.folders.some(f => f.id == folder.id)) return false;
this.removeFolder(folder.id);
(this as any).api('drive/folders/update', {
this.$root.api('drive/folders/update', {
folderId: folder.id,
parentId: this.folder ? this.folder.id : null
}).then(() => {
@@ -339,7 +339,7 @@ export default Vue.extend({
title: this.$t('url-upload'),
placeholder: this.$t('url-of-file')
}).then(url => {
(this as any).api('drive/files/upload_from_url', {
this.$root.api('drive/files/upload_from_url', {
url: url,
folderId: this.folder ? this.folder.id : undefined
});
@@ -359,7 +359,7 @@ export default Vue.extend({
title: this.$t('create-folder'),
placeholder: this.$t('folder-name')
}).then(name => {
(this as any).api('drive/folders/create', {
this.$root.api('drive/folders/create', {
name: name,
parentId: this.folder ? this.folder.id : undefined
}).then(folder => {
@@ -400,7 +400,7 @@ export default Vue.extend({
newWindow(folder) {
if (document.body.clientWidth > 800) {
(this as any).os.new(MkDriveWindow, {
this.$root.new(MkDriveWindow, {
folder: folder
});
} else {
@@ -420,7 +420,7 @@ export default Vue.extend({
this.fetching = true;
(this as any).api('drive/folders/show', {
this.$root.api('drive/folders/show', {
folderId: target
}).then(folder => {
this.folder = folder;
@@ -522,7 +522,7 @@ export default Vue.extend({
const filesMax = 30;
// フォルダ一覧取得
(this as any).api('drive/folders', {
this.$root.api('drive/folders', {
folderId: this.folder ? this.folder.id : null,
limit: foldersMax + 1
}).then(folders => {
@@ -535,7 +535,7 @@ export default Vue.extend({
});
// ファイル一覧取得
(this as any).api('drive/files', {
this.$root.api('drive/files', {
folderId: this.folder ? this.folder.id : null,
limit: filesMax + 1
}).then(files => {
@@ -565,7 +565,7 @@ export default Vue.extend({
const max = 30;
// ファイル一覧取得
(this as any).api('drive/files', {
this.$root.api('drive/files', {
folderId: this.folder ? this.folder.id : null,
untilId: this.files[this.files.length - 1].id,
limit: max + 1

View File

@@ -41,7 +41,7 @@ export default Vue.extend({
},
mounted() {
this.connection = (this as any).os.stream.useSharedConnection('main');
this.connection = this.$root.stream.useSharedConnection('main');
this.connection.on('follow', this.onFollowChange);
this.connection.on('unfollow', this.onFollowChange);
},
@@ -64,20 +64,20 @@ export default Vue.extend({
try {
if (this.u.isFollowing) {
this.u = await (this as any).api('following/delete', {
this.u = await this.$root.api('following/delete', {
userId: this.u.id
});
} else {
if (this.u.hasPendingFollowRequestFromYou) {
this.u = await (this as any).api('following/requests/cancel', {
this.u = await this.$root.api('following/requests/cancel', {
userId: this.u.id
});
} else if (this.u.isLocked) {
this.u = await (this as any).api('following/create', {
this.u = await this.$root.api('following/create', {
userId: this.u.id
});
} else {
this.u = await (this as any).api('following/create', {
this.u = await this.$root.api('following/create', {
userId: this.user.id
});
}

View File

@@ -39,7 +39,7 @@ export default Vue.extend({
this.fetching = true;
this.users = [];
(this as any).api('users/recommendation', {
this.$root.api('users/recommendation', {
limit: this.limit,
offset: this.limit * this.page
}).then(users => {

View File

@@ -168,7 +168,7 @@ export default Vue.extend({
created() {
if (this.$store.state.settings.home == null) {
this.api('i/update_home', {
this.$root.api('i/update_home', {
home: _defaultDesktopHomeWidgets
}).then(() => {
this.$store.commit('settings/setHome', _defaultDesktopHomeWidgets);
@@ -177,7 +177,7 @@ export default Vue.extend({
},
mounted() {
this.connection = (this as any).os.stream.useSharedConnection('main');
this.connection = this.$root.stream.useSharedConnection('main');
},
beforeDestroy() {
@@ -227,7 +227,7 @@ export default Vue.extend({
this.$store.commit('settings/setHome', left.concat(right));
left.forEach(w => w.place = 'left');
right.forEach(w => w.place = 'right');
(this as any).api('i/update_home', {
this.$root.api('i/update_home', {
home: this.home
});
},

View File

@@ -60,7 +60,7 @@ export default Vue.extend({
},
onClick() {
(this as any).os.new(ImageViewer, {
this.$root.new(ImageViewer, {
image: this.image
});
}

View File

@@ -53,7 +53,7 @@ export default Vue.extend({
start = videoTag.currentTime
videoTag.pause()
}
(this as any).os.new(MkMediaVideoDialog, {
this.$root.new(MkMediaVideoDialog, {
video: this.video,
start,
})

View File

@@ -14,7 +14,7 @@ export default Vue.extend({
i18n: i18n('desktop/views/components/messaging-window.vue'),
methods: {
navigate(user) {
(this as any).os.new(MkMessagingRoomWindow, {
this.$root.new(MkMessagingRoomWindow, {
user: user
});
}

View File

@@ -161,7 +161,7 @@ export default Vue.extend({
mounted() {
// Get replies
if (!this.compact) {
(this as any).api('notes/replies', {
this.$root.api('notes/replies', {
noteId: this.p.id,
limit: 8
}).then(replies => {
@@ -173,7 +173,7 @@ export default Vue.extend({
if (this.p.geo) {
const shouldShowMap = this.$store.getters.isSignedIn ? this.$store.state.settings.showMaps : true;
if (shouldShowMap) {
(this as any).os.getGoogleMaps().then(maps => {
this.$root.os.getGoogleMaps().then(maps => {
const uluru = new maps.LatLng(this.p.geo.coordinates[1], this.p.geo.coordinates[0]);
const map = new maps.Map(this.$refs.map, {
center: uluru,
@@ -193,7 +193,7 @@ export default Vue.extend({
this.conversationFetching = true;
// Fetch conversation
(this as any).api('notes/conversation', {
this.$root.api('notes/conversation', {
noteId: this.p.replyId
}).then(conversation => {
this.conversationFetching = false;
@@ -202,26 +202,26 @@ export default Vue.extend({
},
reply() {
(this as any).os.new(MkPostFormWindow, {
this.$root.new(MkPostFormWindow, {
reply: this.p
});
},
renote() {
(this as any).os.new(MkRenoteFormWindow, {
this.$root.new(MkRenoteFormWindow, {
note: this.p
});
},
react() {
(this as any).os.new(MkReactionPicker, {
this.$root.new(MkReactionPicker, {
source: this.$refs.reactButton,
note: this.p
});
},
menu() {
(this as any).os.new(MkNoteMenu, {
this.$root.new(MkNoteMenu, {
source: this.$refs.menuButton,
note: this.p
});

View File

@@ -117,14 +117,14 @@ export default Vue.extend({
created() {
if (this.detail) {
(this as any).api('notes/replies', {
this.$root.api('notes/replies', {
noteId: this.appearNote.id,
limit: 8
}).then(replies => {
this.replies = replies;
});
(this as any).api('notes/conversation', {
this.$root.api('notes/conversation', {
noteId: this.appearNote.replyId
}).then(conversation => {
this.conversation = conversation.reverse();

View File

@@ -142,13 +142,13 @@ export default Vue.extend({
},
mounted() {
this.connection = (this as any).os.stream.useSharedConnection('main');
this.connection = this.$root.stream.useSharedConnection('main');
this.connection.on('notification', this.onNotification);
const max = 10;
(this as any).api('i/notifications', {
this.$root.api('i/notifications', {
limit: max + 1
}).then(notifications => {
if (notifications.length == max + 1) {
@@ -171,7 +171,7 @@ export default Vue.extend({
const max = 30;
(this as any).api('i/notifications', {
this.$root.api('i/notifications', {
limit: max + 1,
untilId: this.notifications[this.notifications.length - 1].id
}).then(notifications => {
@@ -188,7 +188,7 @@ export default Vue.extend({
onNotification(notification) {
// TODO: ユーザーが画面を見てないと思われるとき(ブラウザやタブがアクティブじゃないなど)は送信しない
(this as any).os.stream.send('readNotification', {
this.$root.stream.send('readNotification', {
id: notification.id
});

View File

@@ -115,7 +115,7 @@ export default Vue.extend({
},
created() {
(this as any).os.getMeta().then(meta => {
this.$root.getMeta().then(meta => {
this.maxNoteTextLength = meta.maxNoteTextLength;
});
},
@@ -195,7 +195,7 @@ export default Vue.extend({
// ダイレクトへのリプライはリプライ先ユーザーを初期設定
if (this.reply && this.reply.visibility === 'specified') {
(this as any).api('users/show', { userId: this.reply.userId }).then(user => {
this.$root.api('users/show', { userId: this.reply.userId }).then(user => {
this.visibleUsers.push(user);
});
}
@@ -354,7 +354,7 @@ export default Vue.extend({
},
setVisibility() {
const w = (this as any).os.new(MkVisibilityChooser, {
const w = this.$root.new(MkVisibilityChooser, {
source: this.$refs.visibilityButton
});
w.$once('chosen', v => {
@@ -367,7 +367,7 @@ export default Vue.extend({
title: this.$t('enter-username')
}).then(acct => {
if (acct.startsWith('@')) acct = acct.substr(1);
(this as any).api('users/show', parseAcct(acct)).then(user => {
this.$root.api('users/show', parseAcct(acct)).then(user => {
this.visibleUsers.push(user);
});
});
@@ -380,7 +380,7 @@ export default Vue.extend({
post() {
this.posting = true;
(this as any).api('notes/create', {
this.$root.api('notes/create', {
text: this.text == '' ? undefined : this.text,
fileIds: this.files.length > 0 ? this.files.map(f => f.id) : undefined,
replyId: this.reply ? this.reply.id : undefined,

View File

@@ -26,19 +26,19 @@ export default Vue.extend({
};
},
mounted() {
(this as any).api('following/requests/list').then(requests => {
this.$root.api('following/requests/list').then(requests => {
this.fetching = false;
this.requests = requests;
});
},
methods: {
accept(user) {
(this as any).api('following/requests/accept', { userId: user.id }).then(() => {
this.$root.api('following/requests/accept', { userId: user.id }).then(() => {
this.requests = this.requests.filter(r => r.follower.id != user.id);
});
},
reject(user) {
(this as any).api('following/requests/reject', { userId: user.id }).then(() => {
this.$root.api('following/requests/reject', { userId: user.id }).then(() => {
this.requests = this.requests.filter(r => r.follower.id != user.id);
});
},

View File

@@ -30,7 +30,7 @@ export default Vue.extend({
methods: {
ok() {
this.wait = true;
(this as any).api('notes/create', {
this.$root.api('notes/create', {
renoteId: this.note.id
}).then(data => {
this.$emit('posted');

View File

@@ -39,7 +39,7 @@ export default Vue.extend({
title: this.$t('enter-password'),
type: 'password'
}).then(password => {
(this as any).api('i/2fa/register', {
this.$root.api('i/2fa/register', {
password: password
}).then(data => {
this.data = data;
@@ -52,7 +52,7 @@ export default Vue.extend({
title: this.$t('enter-password'),
type: 'password'
}).then(password => {
(this as any).api('i/2fa/unregister', {
this.$root.api('i/2fa/unregister', {
password: password
}).then(() => {
(this as any).apis.notify(this.$t('unregistered'));
@@ -62,7 +62,7 @@ export default Vue.extend({
},
submit() {
(this as any).api('i/2fa/done', {
this.$root.api('i/2fa/done', {
token: this.token
}).then(() => {
(this as any).apis.notify(this.$t('success'));

View File

@@ -22,7 +22,7 @@ export default Vue.extend({
};
},
mounted() {
(this as any).api('i/authorized_apps').then(apps => {
this.$root.api('i/authorized_apps').then(apps => {
this.apps = apps;
this.fetching = false;
});

View File

@@ -28,12 +28,12 @@ export default Vue.extend({
},
mounted() {
(this as any).api('i/signin_history').then(signins => {
this.$root.api('i/signin_history').then(signins => {
this.signins = signins;
this.fetching = false;
});
this.connection = (this as any).os.stream.useSharedConnection('main');
this.connection = this.$root.stream.useSharedConnection('main');
this.connection.on('signin', this.onSignin);
},

View File

@@ -500,13 +500,13 @@ export default Vue.extend({
}
},
created() {
(this as any).os.getMeta().then(meta => {
this.$root.getMeta().then(meta => {
this.meta = meta;
});
},
methods: {
readAllUnreadNotes() {
(this as any).api('i/read_all_unread_notes');
this.$root.api('i/read_all_unread_notes');
},
customizeHome() {
this.$router.push('/i/customize-home');
@@ -516,18 +516,18 @@ export default Vue.extend({
(this as any).apis.chooseDriveFile({
multiple: false
}).then(file => {
(this as any).api('i/update', {
this.$root.api('i/update', {
wallpaperId: file.id
});
});
},
deleteWallpaper() {
(this as any).api('i/update', {
this.$root.api('i/update', {
wallpaperId: null
});
},
onChangeAutoWatch(v) {
(this as any).api('i/update', {
this.$root.api('i/update', {
autoWatch: v
});
},

View File

@@ -65,32 +65,32 @@ export default Vue.extend({
this.query = {
query: this.tagTl.query
};
this.connection = (this as any).os.stream.connectToChannel('hashtag', { q: this.tagTl.query });
this.connection = this.$root.stream.connectToChannel('hashtag', { q: this.tagTl.query });
this.connection.on('note', prepend);
} else if (this.src == 'home') {
this.endpoint = 'notes/timeline';
const onChangeFollowing = () => {
this.fetch();
};
this.connection = (this as any).os.stream.useSharedConnection('homeTimeline');
this.connection = this.$root.stream.useSharedConnection('homeTimeline');
this.connection.on('note', prepend);
this.connection.on('follow', onChangeFollowing);
this.connection.on('unfollow', onChangeFollowing);
} else if (this.src == 'local') {
this.endpoint = 'notes/local-timeline';
this.connection = (this as any).os.stream.useSharedConnection('localTimeline');
this.connection = this.$root.stream.useSharedConnection('localTimeline');
this.connection.on('note', prepend);
} else if (this.src == 'hybrid') {
this.endpoint = 'notes/hybrid-timeline';
this.connection = (this as any).os.stream.useSharedConnection('hybridTimeline');
this.connection = this.$root.stream.useSharedConnection('hybridTimeline');
this.connection.on('note', prepend);
} else if (this.src == 'global') {
this.endpoint = 'notes/global-timeline';
this.connection = (this as any).os.stream.useSharedConnection('globalTimeline');
this.connection = this.$root.stream.useSharedConnection('globalTimeline');
this.connection.on('note', prepend);
} else if (this.src == 'mentions') {
this.endpoint = 'notes/mentions';
this.connection = (this as any).os.stream.useSharedConnection('main');
this.connection = this.$root.stream.useSharedConnection('main');
this.connection.on('mention', prepend);
} else if (this.src == 'messages') {
this.endpoint = 'notes/mentions';
@@ -102,7 +102,7 @@ export default Vue.extend({
prepend(note);
}
};
this.connection = (this as any).os.stream.useSharedConnection('main');
this.connection = this.$root.stream.useSharedConnection('main');
this.connection.on('mention', onNote);
}
@@ -118,7 +118,7 @@ export default Vue.extend({
this.fetching = true;
(this.$refs.timeline as any).init(() => new Promise((res, rej) => {
(this as any).api(this.endpoint, Object.assign({
this.$root.api(this.endpoint, Object.assign({
limit: fetchLimit + 1,
untilDate: this.date ? this.date.getTime() : undefined
}, this.baseQuery, this.query)).then(notes => {
@@ -138,7 +138,7 @@ export default Vue.extend({
this.moreFetching = true;
const promise = (this as any).api(this.endpoint, Object.assign({
const promise = this.$root.api(this.endpoint, Object.assign({
limit: fetchLimit + 1,
untilId: (this.$refs.timeline as any).tail().id
}, this.baseQuery, this.query));

View File

@@ -64,7 +64,7 @@ export default Vue.extend({
},
created() {
(this as any).os.getMeta().then(meta => {
this.$root.getMeta().then(meta => {
this.enableLocalTimeline = !meta.disableLocalTimeline;
});
@@ -103,7 +103,7 @@ export default Vue.extend({
},
async chooseList() {
const lists = await (this as any).api('users/lists/list');
const lists = await this.$root.api('users/lists/list');
let menu = [{
icon: 'plus',
@@ -112,7 +112,7 @@ export default Vue.extend({
(this as any).apis.input({
title: this.$t('list-name'),
}).then(async title => {
const list = await (this as any).api('users/lists/create', {
const list = await this.$root.api('users/lists/create', {
title
});
@@ -135,7 +135,7 @@ export default Vue.extend({
}
})));
this.os.new(Menu, {
this.$root.new(Menu, {
source: this.$refs.listButton,
compact: false,
items: menu
@@ -147,7 +147,7 @@ export default Vue.extend({
icon: 'plus',
text: this.$t('add-tag-timeline'),
action: () => {
(this as any).os.new(MkSettingsWindow, {
this.$root.new(MkSettingsWindow, {
initialPage: 'hashtags'
});
}
@@ -166,7 +166,7 @@ export default Vue.extend({
}
})));
this.os.new(Menu, {
this.$root.new(Menu, {
source: this.$refs.tagButton,
compact: false,
items: menu

View File

@@ -137,25 +137,25 @@ export default Vue.extend({
},
drive() {
this.close();
(this as any).os.new(MkDriveWindow);
this.$root.new(MkDriveWindow);
},
list() {
this.close();
const w = (this as any).os.new(MkUserListsWindow);
const w = this.$root.new(MkUserListsWindow);
w.$once('choosen', list => {
this.$router.push(`i/lists/${ list.id }`);
});
},
followRequests() {
this.close();
(this as any).os.new(MkFollowRequestsWindow);
this.$root.new(MkFollowRequestsWindow);
},
settings() {
this.close();
(this as any).os.new(MkSettingsWindow);
this.$root.new(MkSettingsWindow);
},
signout() {
(this as any).os.signout();
this.$root.os.signout();
},
dark() {
this.$store.commit('device/set', {

View File

@@ -58,7 +58,7 @@ export default Vue.extend({
},
mounted() {
if (this.$store.getters.isSignedIn) {
this.connection = (this as any).os.stream.useSharedConnection('main');
this.connection = this.$root.stream.useSharedConnection('main');
this.connection.on('reversiInvited', this.onReversiInvited);
this.connection.on('reversi_no_invites', this.onReversiNoInvites);
@@ -79,11 +79,11 @@ export default Vue.extend({
},
messaging() {
(this as any).os.new(MkMessagingWindow);
this.$root.new(MkMessagingWindow);
},
game() {
(this as any).os.new(MkGameWindow);
this.$root.new(MkGameWindow);
},
goToTop() {

View File

@@ -108,7 +108,7 @@ export default Vue.extend({
mounted() {
if (this.$store.getters.isSignedIn) {
this.connection = (this as any).os.stream.useSharedConnection('main');
this.connection = this.$root.stream.useSharedConnection('main');
this.connection.on('reversiInvited', this.onReversiInvited);
this.connection.on('reversi_no_invites', this.onReversiNoInvites);
@@ -131,11 +131,11 @@ export default Vue.extend({
},
messaging() {
(this as any).os.new(MkMessagingWindow);
this.$root.new(MkMessagingWindow);
},
game() {
(this as any).os.new(MkGameWindow);
this.$root.new(MkGameWindow);
},
post() {
@@ -143,26 +143,26 @@ export default Vue.extend({
},
drive() {
(this as any).os.new(MkDriveWindow);
this.$root.new(MkDriveWindow);
},
list() {
const w = (this as any).os.new(MkUserListsWindow);
const w = this.$root.new(MkUserListsWindow);
w.$once('choosen', list => {
this.$router.push(`i/lists/${ list.id }`);
});
},
followRequests() {
(this as any).os.new(MkFollowRequestsWindow);
this.$root.new(MkFollowRequestsWindow);
},
settings() {
(this as any).os.new(MkSettingsWindow);
this.$root.new(MkSettingsWindow);
},
signout() {
(this as any).os.signout();
this.$root.os.signout();
},
notifications() {

View File

@@ -31,7 +31,7 @@ export default Vue.extend({
methods: {
init() {
if (this.connection) this.connection.dispose();
this.connection = (this as any).os.stream.connectToChannel('userList', {
this.connection = this.$root.stream.connectToChannel('userList', {
listId: this.list.id
});
this.connection.on('note', this.onNote);
@@ -44,7 +44,7 @@ export default Vue.extend({
this.fetching = true;
(this.$refs.timeline as any).init(() => new Promise((res, rej) => {
(this as any).api('notes/user-list-timeline', {
this.$root.api('notes/user-list-timeline', {
listId: this.list.id,
limit: fetchLimit + 1,
includeMyRenotes: this.$store.state.settings.showMyRenotes,
@@ -64,7 +64,7 @@ export default Vue.extend({
more() {
this.moreFetching = true;
const promise = (this as any).api('notes/user-list-timeline', {
const promise = this.$root.api('notes/user-list-timeline', {
listId: this.list.id,
limit: fetchLimit + 1,
untilId: (this.$refs.timeline as any).tail().id,

View File

@@ -22,7 +22,7 @@ export default Vue.extend({
};
},
mounted() {
(this as any).api('users/lists/list').then(lists => {
this.$root.api('users/lists/list').then(lists => {
this.fetching = false;
this.lists = lists;
});
@@ -32,7 +32,7 @@ export default Vue.extend({
(this as any).apis.input({
title: this.$t('list-name'),
}).then(async title => {
const list = await (this as any).api('users/lists/create', {
const list = await this.$root.api('users/lists/create', {
title
});

View File

@@ -54,7 +54,7 @@ export default Vue.extend({
parseAcct(this.user.substr(1)) :
{ userId: this.user };
(this as any).api('users/show', query).then(user => {
this.$root.api('users/show', query).then(user => {
this.u = user;
this.open();
});

View File

@@ -110,7 +110,7 @@ export default Vue.extend({
this.preventMount = true;
} else {
// ウィンドウをウィンドウシステムに登録
(this as any).os.windows.add(this);
this.$root.os.windows.add(this);
}
},
@@ -133,7 +133,7 @@ export default Vue.extend({
destroyed() {
// ウィンドウをウィンドウシステムから削除
(this as any).os.windows.remove(this);
this.$root.os.windows.remove(this);
window.removeEventListener('resize', this.onBrowserResize);
},
@@ -234,7 +234,7 @@ export default Vue.extend({
top() {
let z = 0;
(this as any).os.windows.getAll().forEach(w => {
this.$root.os.windows.getAll().forEach(w => {
if (w == this) return;
const m = w.$refs.main;
const mz = Number(document.defaultView.getComputedStyle(m, null).zIndex);

View File

@@ -234,7 +234,7 @@ export default Vue.extend({
},
showMenu() {
this.os.new(Menu, {
this.$root.new(Menu, {
source: this.$refs.menu,
compact: false,
items: this.getMenu()

View File

@@ -26,7 +26,7 @@ export default Vue.extend({
},
mounted() {
this.connection = (this as any).os.stream.useSharedConnection('main');
this.connection = this.$root.stream.useSharedConnection('main');
this.connection.on('mention', this.onNote);
this.fetch();
@@ -41,7 +41,7 @@ export default Vue.extend({
this.fetching = true;
(this.$refs.timeline as any).init(() => new Promise((res, rej) => {
(this as any).api('notes/mentions', {
this.$root.api('notes/mentions', {
limit: fetchLimit + 1,
includeMyRenotes: this.$store.state.settings.showMyRenotes,
includeRenotedMyNotes: this.$store.state.settings.showRenotedMyNotes,
@@ -62,7 +62,7 @@ export default Vue.extend({
more() {
this.moreFetching = true;
const promise = (this as any).api('notes/mentions', {
const promise = this.$root.api('notes/mentions', {
limit: fetchLimit + 1,
untilId: (this.$refs.timeline as any).tail().id,
includeMyRenotes: this.$store.state.settings.showMyRenotes,

View File

@@ -39,7 +39,7 @@ export default Vue.extend({
},
mounted() {
(this as any).api('charts/hashtag', {
this.$root.api('charts/hashtag', {
tag: this.tag,
span: 'hour',
limit: 24

View File

@@ -47,7 +47,7 @@ export default Vue.extend({
mounted() {
if (this.connection) this.connection.close();
this.connection = (this as any).os.stream.connectToChannel('hashtag', {
this.connection = this.$root.stream.connectToChannel('hashtag', {
q: this.tagTl.query
});
this.connection.on('note', this.onNote);
@@ -64,7 +64,7 @@ export default Vue.extend({
this.fetching = true;
(this.$refs.timeline as any).init(() => new Promise((res, rej) => {
(this as any).api('notes/search_by_tag', {
this.$root.api('notes/search_by_tag', {
limit: fetchLimit + 1,
withFiles: this.mediaOnly,
includeMyRenotes: this.$store.state.settings.showMyRenotes,
@@ -86,7 +86,7 @@ export default Vue.extend({
more() {
this.moreFetching = true;
const promise = (this as any).api('notes/search_by_tag', {
const promise = this.$root.api('notes/search_by_tag', {
limit: fetchLimit + 1,
untilId: (this.$refs.timeline as any).tail().id,
withFiles: this.mediaOnly,

View File

@@ -47,7 +47,7 @@ export default Vue.extend({
mounted() {
if (this.connection) this.connection.dispose();
this.connection = (this as any).os.stream.connectToChannel('userList', {
this.connection = this.$root.stream.connectToChannel('userList', {
listId: this.list.id
});
this.connection.on('note', this.onNote);
@@ -66,7 +66,7 @@ export default Vue.extend({
this.fetching = true;
(this.$refs.timeline as any).init(() => new Promise((res, rej) => {
(this as any).api('notes/user-list-timeline', {
this.$root.api('notes/user-list-timeline', {
listId: this.list.id,
limit: fetchLimit + 1,
withFiles: this.mediaOnly,
@@ -88,7 +88,7 @@ export default Vue.extend({
more() {
this.moreFetching = true;
const promise = (this as any).api('notes/user-list-timeline', {
const promise = this.$root.api('notes/user-list-timeline', {
listId: this.list.id,
limit: fetchLimit + 1,
untilId: (this.$refs.timeline as any).tail().id,

View File

@@ -26,7 +26,7 @@ export default Vue.extend({
},
mounted() {
this.connection = (this as any).os.stream.useSharedConnection('main');
this.connection = this.$root.stream.useSharedConnection('main');
this.connection.on('mention', this.onNote);
this.fetch();
@@ -41,7 +41,7 @@ export default Vue.extend({
this.fetching = true;
(this.$refs.timeline as any).init(() => new Promise((res, rej) => {
(this as any).api('notes/mentions', {
this.$root.api('notes/mentions', {
limit: fetchLimit + 1,
includeMyRenotes: this.$store.state.settings.showMyRenotes,
includeRenotedMyNotes: this.$store.state.settings.showRenotedMyNotes,
@@ -61,7 +61,7 @@ export default Vue.extend({
more() {
this.moreFetching = true;
const promise = (this as any).api('notes/mentions', {
const promise = this.$root.api('notes/mentions', {
limit: fetchLimit + 1,
untilId: (this.$refs.timeline as any).tail().id,
includeMyRenotes: this.$store.state.settings.showMyRenotes,

View File

@@ -52,7 +52,7 @@ export default Vue.extend({
},
created() {
(this as any).api('notes/show', { noteId: this.noteId }).then(note => {
this.$root.api('notes/show', { noteId: this.noteId }).then(note => {
this.note = note;
this.fetching = false;
});

View File

@@ -68,7 +68,7 @@ export default Vue.extend({
},
mounted() {
this.connection = (this as any).os.stream.useSharedConnection('main');
this.connection = this.$root.stream.useSharedConnection('main');
this.connection.on('notification', this.onNotification);
@@ -77,7 +77,7 @@ export default Vue.extend({
const max = 10;
(this as any).api('i/notifications', {
this.$root.api('i/notifications', {
limit: max + 1
}).then(notifications => {
if (notifications.length == max + 1) {
@@ -103,7 +103,7 @@ export default Vue.extend({
const max = 20;
(this as any).api('i/notifications', {
this.$root.api('i/notifications', {
limit: max + 1,
untilId: this.notifications[this.notifications.length - 1].id
}).then(notifications => {
@@ -120,7 +120,7 @@ export default Vue.extend({
onNotification(notification) {
// TODO: ユーザーが画面を見てないと思われるとき(ブラウザやタブがアクティブじゃないなど)は送信しない
(this as any).os.stream.send('readNotification', {
this.$root.stream.send('readNotification', {
id: notification.id
});

View File

@@ -43,10 +43,10 @@ export default Vue.extend({
computed: {
stream(): any {
switch (this.src) {
case 'home': return (this as any).os.stream.useSharedConnection('homeTimeline');
case 'local': return (this as any).os.stream.useSharedConnection('localTimeline');
case 'hybrid': return (this as any).os.stream.useSharedConnection('hybridTimeline');
case 'global': return (this as any).os.stream.useSharedConnection('globalTimeline');
case 'home': return this.$root.stream.useSharedConnection('homeTimeline');
case 'local': return this.$root.stream.useSharedConnection('localTimeline');
case 'hybrid': return this.$root.stream.useSharedConnection('hybridTimeline');
case 'global': return this.$root.stream.useSharedConnection('globalTimeline');
}
},
@@ -87,7 +87,7 @@ export default Vue.extend({
this.fetching = true;
(this.$refs.timeline as any).init(() => new Promise((res, rej) => {
(this as any).api(this.endpoint, {
this.$root.api(this.endpoint, {
limit: fetchLimit + 1,
withFiles: this.mediaOnly,
includeMyRenotes: this.$store.state.settings.showMyRenotes,
@@ -108,7 +108,7 @@ export default Vue.extend({
more() {
this.moreFetching = true;
const promise = (this as any).api(this.endpoint, {
const promise = this.$root.api(this.endpoint, {
limit: fetchLimit + 1,
withFiles: this.mediaOnly,
untilId: (this.$refs.timeline as any).tail().id,

View File

@@ -138,7 +138,7 @@ export default Vue.extend({
},
created() {
(this as any).api('users/show', parseAcct(this.acct)).then(user => {
this.$root.api('users/show', parseAcct(this.acct)).then(user => {
this.user = user;
this.fetching = false;
@@ -152,7 +152,7 @@ export default Vue.extend({
'image/gif'
];
(this as any).api('users/notes', {
this.$root.api('users/notes', {
userId: this.user.id,
fileType: image,
limit: 9
@@ -166,7 +166,7 @@ export default Vue.extend({
this.images = files.filter(f => image.includes(f.type)).slice(0, 9);
});
(this as any).api('charts/user/notes', {
this.$root.api('charts/user/notes', {
userId: this.user.id,
span: 'day',
limit: 21
@@ -251,7 +251,7 @@ export default Vue.extend({
methods: {
initTl() {
return new Promise((res, rej) => {
(this as any).api('users/notes', {
this.$root.api('users/notes', {
userId: this.user.id,
limit: fetchLimit + 1,
withFiles: this.withFiles,
@@ -271,7 +271,7 @@ export default Vue.extend({
fetchMoreNotes() {
this.moreFetching = true;
const promise = (this as any).api('users/notes', {
const promise = this.$root.api('users/notes', {
userId: this.user.id,
limit: fetchLimit + 1,
untilId: (this.$refs.timeline as any).tail().id,
@@ -299,19 +299,19 @@ export default Vue.extend({
icon: 'list',
text: this.$t('push-to-a-list'),
action: () => {
const w = (this as any).os.new(MkUserListsWindow);
const w = this.$root.new(MkUserListsWindow);
w.$once('choosen', async list => {
w.close();
await (this as any).api('users/lists/push', {
await this.$root.api('users/lists/push', {
listId: list.id,
userId: this.user.id
});
(this as any).os.new(Ok);
this.$root.new(Ok);
});
}
}];
this.os.new(Menu, {
this.$root.new(Menu, {
source: this.$refs.menu,
compact: false,
items: menu

View File

@@ -131,7 +131,7 @@ export default Vue.extend({
},
mounted() {
document.title = (this as any).os.instanceName;
document.title = this.$root.os.instanceName;
document.documentElement.style.overflow = 'hidden';
},
@@ -180,7 +180,7 @@ export default Vue.extend({
},
add() {
this.os.new(Menu, {
this.$root.new(Menu, {
source: this.$refs.add,
compact: true,
items: [{
@@ -241,7 +241,7 @@ export default Vue.extend({
icon: 'list',
text: this.$t('@deck.list'),
action: () => {
const w = (this as any).os.new(MkUserListsWindow);
const w = this.$root.new(MkUserListsWindow);
w.$once('choosen', list => {
this.$store.dispatch('settings/addDeckColumn', {
id: uuid(),

View File

@@ -32,7 +32,7 @@ export default Vue.extend({
Progress.start();
this.fetching = true;
(this as any).api('i/favorites', {
this.$root.api('i/favorites', {
limit: 11
}).then(favorites => {
if (favorites.length == 11) {
@@ -48,7 +48,7 @@ export default Vue.extend({
},
more() {
this.moreFetching = true;
(this as any).api('i/favorites', {
this.$root.api('i/favorites', {
limit: 11,
untilId: this.favorites[this.favorites.length - 1].id
}).then(favorites => {

View File

@@ -23,7 +23,7 @@ export default Vue.extend({
}
},
mounted() {
document.title = (this as any).os.instanceName;
document.title = this.$root.os.instanceName;
Progress.start();
},

View File

@@ -44,7 +44,7 @@ export default Vue.extend({
Progress.start();
this.fetching = true;
(this as any).api('users/show', parseAcct(this.$route.params.user)).then(user => {
this.$root.api('users/show', parseAcct(this.$route.params.user)).then(user => {
this.user = user;
this.fetching = false;

View File

@@ -34,7 +34,7 @@ export default Vue.extend({
Progress.start();
this.fetching = true;
(this as any).api('notes/show', {
this.$root.api('notes/show', {
noteId: this.$route.params.note
}).then(note => {
this.note = note;

View File

@@ -59,7 +59,7 @@ export default Vue.extend({
Progress.start();
(this.$refs.timeline as any).init(() => new Promise((res, rej) => {
(this as any).api('notes/search', {
this.$root.api('notes/search', {
limit: limit + 1,
offset: this.offset,
query: this.q
@@ -82,7 +82,7 @@ export default Vue.extend({
more() {
this.offset += limit;
const promise = (this as any).api('notes/search', {
const promise = this.$root.api('notes/search', {
limit: limit + 1,
offset: this.offset,
query: this.q

View File

@@ -29,7 +29,7 @@ export default Vue.extend({
}
},
mounted() {
(this as any).os.getMeta().then(meta => {
this.$root.getMeta().then(meta => {
this.name = meta.name;
});
}

View File

@@ -52,7 +52,7 @@ export default Vue.extend({
Progress.start();
(this.$refs.timeline as any).init(() => new Promise((res, rej) => {
(this as any).api('notes/search_by_tag', {
this.$root.api('notes/search_by_tag', {
limit: limit + 1,
offset: this.offset,
tag: this.$route.params.tag
@@ -71,7 +71,7 @@ export default Vue.extend({
more() {
this.offset += limit;
const promise = (this as any).api('notes/search_by_tag', {
const promise = this.$root.api('notes/search_by_tag', {
limit: limit + 1,
offset: this.offset,
tag: this.$route.params.tag

View File

@@ -54,9 +54,9 @@ export default Vue.extend({
fetch() {
this.fetching = true;
Progress.start();
(this as any).api('users/show', parseAcct(this.$route.params.user)).then(user => {
this.$root.api('users/show', parseAcct(this.$route.params.user)).then(user => {
this.user = user;
(this as any).api(this.endpoint, {
this.$root.api(this.endpoint, {
userId: this.user.id,
iknow: false,
limit: limit
@@ -70,7 +70,7 @@ export default Vue.extend({
},
fetchMore() {
(this as any).api(this.endpoint, {
this.$root.api(this.endpoint, {
userId: this.user.id,
iknow: false,
limit: limit,

View File

@@ -25,7 +25,7 @@ export default Vue.extend({
};
},
mounted() {
(this as any).api('users/followers', {
this.$root.api('users/followers', {
userId: this.user.id,
iknow: true,
limit: 16

View File

@@ -30,7 +30,7 @@ export default Vue.extend({
};
},
mounted() {
(this as any).api('users/get_frequently_replied_users', {
this.$root.api('users/get_frequently_replied_users', {
userId: this.user.id,
limit: 4
}).then(docs => {

View File

@@ -24,7 +24,7 @@ export default Vue.extend({
};
},
mounted() {
(this as any).api('users/notes', {
this.$root.api('users/notes', {
userId: this.user.id,
withFiles: true,
limit: 9

View File

@@ -33,7 +33,7 @@ export default Vue.extend({
methods: {
stalk() {
(this as any).api('following/stalk', {
this.$root.api('following/stalk', {
userId: this.user.id
}).then(() => {
this.user.isStalking = true;
@@ -43,7 +43,7 @@ export default Vue.extend({
},
unstalk() {
(this as any).api('following/unstalk', {
this.$root.api('following/unstalk', {
userId: this.user.id
}).then(() => {
this.user.isStalking = false;
@@ -53,7 +53,7 @@ export default Vue.extend({
},
mute() {
(this as any).api('mute/create', {
this.$root.api('mute/create', {
userId: this.user.id
}).then(() => {
this.user.isMuted = true;
@@ -63,7 +63,7 @@ export default Vue.extend({
},
unmute() {
(this as any).api('mute/delete', {
this.$root.api('mute/delete', {
userId: this.user.id
}).then(() => {
this.user.isMuted = false;
@@ -74,7 +74,7 @@ export default Vue.extend({
block() {
if (!window.confirm(this.$t('block-confirm'))) return;
(this as any).api('blocking/create', {
this.$root.api('blocking/create', {
userId: this.user.id
}).then(() => {
this.user.isBlocking = true;
@@ -84,7 +84,7 @@ export default Vue.extend({
},
unblock() {
(this as any).api('blocking/delete', {
this.$root.api('blocking/delete', {
userId: this.user.id
}).then(() => {
this.user.isBlocking = false;
@@ -94,10 +94,10 @@ export default Vue.extend({
},
list() {
const w = (this as any).os.new(MkUserListsWindow);
const w = this.$root.new(MkUserListsWindow);
w.$once('choosen', async list => {
w.close();
await (this as any).api('users/lists/push', {
await this.$root.api('users/lists/push', {
listId: list.id,
userId: this.user.id
});

View File

@@ -60,7 +60,7 @@ export default Vue.extend({
fetch(cb?) {
this.fetching = true;
(this.$refs.timeline as any).init(() => new Promise((res, rej) => {
(this as any).api('users/notes', {
this.$root.api('users/notes', {
userId: this.user.id,
limit: fetchLimit + 1,
untilDate: this.date ? this.date.getTime() : undefined,
@@ -81,7 +81,7 @@ export default Vue.extend({
more() {
this.moreFetching = true;
const promise = (this as any).api('users/notes', {
const promise = this.$root.api('users/notes', {
userId: this.user.id,
limit: fetchLimit + 1,
includeReplies: this.mode == 'with-replies',

View File

@@ -68,7 +68,7 @@ export default Vue.extend({
fetch() {
this.fetching = true;
Progress.start();
(this as any).api('users/show', parseAcct(this.$route.params.user)).then(user => {
this.$root.api('users/show', parseAcct(this.$route.params.user)).then(user => {
this.user = user;
this.fetching = false;
Progress.done();

View File

@@ -169,7 +169,7 @@ export default Vue.extend({
},
created() {
(this as any).os.getMeta().then(meta => {
this.$root.getMeta().then(meta => {
this.meta = meta;
this.name = meta.name;
this.description = meta.description;
@@ -177,7 +177,7 @@ export default Vue.extend({
this.banner = meta.bannerUrl;
});
(this as any).api('stats').then(stats => {
this.$root.api('stats').then(stats => {
this.stats = stats;
});
@@ -187,7 +187,7 @@ export default Vue.extend({
'image/gif'
];
(this as any).api('notes/local-timeline', {
this.$root.api('notes/local-timeline', {
fileType: image,
excludeNsfw: true,
limit: 6

View File

@@ -24,12 +24,12 @@ export default define({
i18n: i18n('desktop/views/widgets/messaging.vue'),
methods: {
navigate(user) {
(this as any).os.new(MkMessagingRoomWindow, {
this.$root.new(MkMessagingRoomWindow, {
user: user
});
},
add() {
(this as any).os.new(MkMessagingWindow);
this.$root.new(MkMessagingWindow);
},
func() {
if (this.props.design == 1) {

View File

@@ -47,7 +47,7 @@ export default define({
this.fetching = true;
this.poll = null;
(this as any).api('notes/polls/recommendation', {
this.$root.api('notes/polls/recommendation', {
limit: 1,
offset: this.offset
}).then(notes => {

View File

@@ -53,7 +53,7 @@ export default define({
post() {
this.posting = true;
(this as any).api('notes/create', {
this.$root.api('notes/create', {
text: this.text
}).then(data => {
this.clear();

View File

@@ -46,7 +46,7 @@ export default define({
this.fetching = true;
this.note = null;
(this as any).api('notes/trend', {
this.$root.api('notes/trend', {
limit: 1,
offset: this.offset,
renote: false,

View File

@@ -53,7 +53,7 @@ export default define({
this.fetching = true;
this.users = [];
(this as any).api('users/recommendation', {
this.$root.api('users/recommendation', {
limit: limit,
offset: limit * this.page
}).then(users => {