mirror of
https://github.com/misskey-dev/misskey.git
synced 2026-08-03 13:56:07 +00:00
Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| ce659f9926 | |||
| c23ec555ff | |||
| 25b0a93acd | |||
| 7b2b7d1456 | |||
| 37444939ab |
+4
-4
@@ -465,7 +465,7 @@ desktop/views/components/charts.vue:
|
|||||||
notes: "Posts"
|
notes: "Posts"
|
||||||
users: "Users"
|
users: "Users"
|
||||||
drive: "Drive"
|
drive: "Drive"
|
||||||
network: "ネットワーク"
|
network: "Network"
|
||||||
charts:
|
charts:
|
||||||
notes: "The number of posts: increase/decrease (Combined)"
|
notes: "The number of posts: increase/decrease (Combined)"
|
||||||
local-notes: "The number of posts: increase/decrease (Local)"
|
local-notes: "The number of posts: increase/decrease (Local)"
|
||||||
@@ -477,9 +477,9 @@ desktop/views/components/charts.vue:
|
|||||||
drive-total: "Capacity used as the storage: cumulative total"
|
drive-total: "Capacity used as the storage: cumulative total"
|
||||||
drive-files: "The number of files on the storage: increase/decrease"
|
drive-files: "The number of files on the storage: increase/decrease"
|
||||||
drive-files-total: "The number of files on the storage: cumulative total"
|
drive-files-total: "The number of files on the storage: cumulative total"
|
||||||
network-requests: "リクエスト"
|
network-requests: "Requests"
|
||||||
network-time: "応答時間"
|
network-time: "Response time"
|
||||||
network-usage: "通信量"
|
network-usage: "Traffic"
|
||||||
desktop/views/components/choose-file-from-drive-window.vue:
|
desktop/views/components/choose-file-from-drive-window.vue:
|
||||||
choose-file: "Choose files"
|
choose-file: "Choose files"
|
||||||
upload: "Upload files from your device"
|
upload: "Upload files from your device"
|
||||||
|
|||||||
+2
-6
@@ -1,8 +1,8 @@
|
|||||||
{
|
{
|
||||||
"name": "misskey",
|
"name": "misskey",
|
||||||
"author": "syuilo <i@syuilo.com>",
|
"author": "syuilo <i@syuilo.com>",
|
||||||
"version": "8.40.0",
|
"version": "8.41.0",
|
||||||
"clientVersion": "1.0.9711",
|
"clientVersion": "1.0.9716",
|
||||||
"codename": "nighthike",
|
"codename": "nighthike",
|
||||||
"main": "./built/index.js",
|
"main": "./built/index.js",
|
||||||
"private": true,
|
"private": true,
|
||||||
@@ -101,7 +101,6 @@
|
|||||||
"dompurify": "1.0.5",
|
"dompurify": "1.0.5",
|
||||||
"double-ended-queue": "2.1.0-0",
|
"double-ended-queue": "2.1.0-0",
|
||||||
"elasticsearch": "15.1.1",
|
"elasticsearch": "15.1.1",
|
||||||
"element-ui": "2.4.6",
|
|
||||||
"emojilib": "2.3.0",
|
"emojilib": "2.3.0",
|
||||||
"escape-regexp": "0.0.1",
|
"escape-regexp": "0.0.1",
|
||||||
"eslint": "5.0.1",
|
"eslint": "5.0.1",
|
||||||
@@ -132,7 +131,6 @@
|
|||||||
"insert-text-at-cursor": "0.1.1",
|
"insert-text-at-cursor": "0.1.1",
|
||||||
"is-root": "2.0.0",
|
"is-root": "2.0.0",
|
||||||
"is-url": "1.2.4",
|
"is-url": "1.2.4",
|
||||||
"jquery": "3.3.1",
|
|
||||||
"js-yaml": "3.12.0",
|
"js-yaml": "3.12.0",
|
||||||
"jsdom": "11.12.0",
|
"jsdom": "11.12.0",
|
||||||
"koa": "2.5.1",
|
"koa": "2.5.1",
|
||||||
@@ -160,8 +158,6 @@
|
|||||||
"ms": "2.1.1",
|
"ms": "2.1.1",
|
||||||
"nan": "2.11.0",
|
"nan": "2.11.0",
|
||||||
"nested-property": "0.0.7",
|
"nested-property": "0.0.7",
|
||||||
"node-sass": "4.9.3",
|
|
||||||
"node-sass-json-importer": "4.0.1",
|
|
||||||
"nprogress": "0.2.0",
|
"nprogress": "0.2.0",
|
||||||
"object-assign-deep": "0.4.0",
|
"object-assign-deep": "0.4.0",
|
||||||
"on-build-webpack": "0.1.0",
|
"on-build-webpack": "0.1.0",
|
||||||
|
|||||||
@@ -50,15 +50,15 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="player" v-if="game.isEnded">
|
<div class="player" v-if="game.isEnded">
|
||||||
<el-button-group>
|
<div>
|
||||||
<el-button type="primary" @click="logPos = 0" :disabled="logPos == 0">%fa:angle-double-left%</el-button>
|
<button @click="logPos = 0" :disabled="logPos == 0">%fa:angle-double-left%</button>
|
||||||
<el-button type="primary" @click="logPos--" :disabled="logPos == 0">%fa:angle-left%</el-button>
|
<button @click="logPos--" :disabled="logPos == 0">%fa:angle-left%</button>
|
||||||
</el-button-group>
|
</div>
|
||||||
<span>{{ logPos }} / {{ logs.length }}</span>
|
<span>{{ logPos }} / {{ logs.length }}</span>
|
||||||
<el-button-group>
|
<div>
|
||||||
<el-button type="primary" @click="logPos++" :disabled="logPos == logs.length">%fa:angle-right%</el-button>
|
<button @click="logPos++" :disabled="logPos == logs.length">%fa:angle-right%</button>
|
||||||
<el-button type="primary" @click="logPos = logs.length" :disabled="logPos == logs.length">%fa:angle-double-right%</el-button>
|
<button @click="logPos = logs.length" :disabled="logPos == logs.length">%fa:angle-double-right%</button>
|
||||||
</el-button-group>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="info">
|
<div class="info">
|
||||||
|
|||||||
@@ -3,7 +3,6 @@
|
|||||||
<h1>%i18n:@title%</h1>
|
<h1>%i18n:@title%</h1>
|
||||||
<p>%i18n:@sub-title%</p>
|
<p>%i18n:@sub-title%</p>
|
||||||
<div class="play">
|
<div class="play">
|
||||||
<!--<el-button round>フリーマッチ(準備中)</el-button>-->
|
|
||||||
<form-button primary round @click="match">%i18n:@invite%</form-button>
|
<form-button primary round @click="match">%i18n:@invite%</form-button>
|
||||||
<details>
|
<details>
|
||||||
<summary>%i18n:@rule%</summary>
|
<summary>%i18n:@rule%</summary>
|
||||||
|
|||||||
@@ -59,11 +59,6 @@
|
|||||||
</header>
|
</header>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<el-alert v-for="message in messages"
|
|
||||||
:title="message.text"
|
|
||||||
:type="message.type"
|
|
||||||
:key="message.id"/>
|
|
||||||
|
|
||||||
<template v-for="item in form">
|
<template v-for="item in form">
|
||||||
<mk-switch v-if="item.type == 'switch'" v-model="item.value" :key="item.id" :text="item.label" @change="onChangeForm(item)">{{ item.desc || '' }}</mk-switch>
|
<mk-switch v-if="item.type == 'switch'" v-model="item.value" :key="item.id" :text="item.label" @change="onChangeForm(item)">{{ item.desc || '' }}</mk-switch>
|
||||||
|
|
||||||
@@ -93,7 +88,7 @@
|
|||||||
</header>
|
</header>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<el-input v-model="item.value" @change="onChangeForm(item)"/>
|
<input v-model="item.value" @change="onChangeForm(item)"/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -108,7 +108,7 @@ export default Vue.extend({
|
|||||||
easing: 'easeInBack',
|
easing: 'easeInBack',
|
||||||
complete: () => {
|
complete: () => {
|
||||||
this.$emit('closed');
|
this.$emit('closed');
|
||||||
this.$destroy();
|
this.destroyDom();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ export default Vue.extend({
|
|||||||
(this as any).api('i/pin', {
|
(this as any).api('i/pin', {
|
||||||
noteId: this.note.id
|
noteId: this.note.id
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.$destroy();
|
this.destroyDom();
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -73,7 +73,7 @@ export default Vue.extend({
|
|||||||
(this as any).api('notes/delete', {
|
(this as any).api('notes/delete', {
|
||||||
noteId: this.note.id
|
noteId: this.note.id
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.$destroy();
|
this.destroyDom();
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -81,13 +81,13 @@ export default Vue.extend({
|
|||||||
(this as any).api('notes/favorites/create', {
|
(this as any).api('notes/favorites/create', {
|
||||||
noteId: this.note.id
|
noteId: this.note.id
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.$destroy();
|
this.destroyDom();
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
closed() {
|
closed() {
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this.$destroy();
|
this.destroyDom();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -95,7 +95,7 @@ export default Vue.extend({
|
|||||||
reaction: reaction
|
reaction: reaction
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
if (this.cb) this.cb();
|
if (this.cb) this.cb();
|
||||||
this.$destroy();
|
this.destroyDom();
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
onMouseover(e) {
|
onMouseover(e) {
|
||||||
@@ -120,7 +120,7 @@ export default Vue.extend({
|
|||||||
scale: 0.5,
|
scale: 0.5,
|
||||||
duration: 200,
|
duration: 200,
|
||||||
easing: 'easeInBack',
|
easing: 'easeInBack',
|
||||||
complete: () => this.$destroy()
|
complete: () => this.destroyDom()
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -101,7 +101,7 @@ export default Vue.extend({
|
|||||||
this.$store.commit('device/setVisibility', visibility);
|
this.$store.commit('device/setVisibility', visibility);
|
||||||
}
|
}
|
||||||
this.$emit('chosen', visibility);
|
this.$emit('chosen', visibility);
|
||||||
this.$destroy();
|
this.destroyDom();
|
||||||
},
|
},
|
||||||
close() {
|
close() {
|
||||||
(this.$refs.backdrop as any).style.pointerEvents = 'none';
|
(this.$refs.backdrop as any).style.pointerEvents = 'none';
|
||||||
@@ -119,7 +119,7 @@ export default Vue.extend({
|
|||||||
scale: 0.5,
|
scale: 0.5,
|
||||||
duration: 200,
|
duration: 200,
|
||||||
easing: 'easeInBack',
|
easing: 'easeInBack',
|
||||||
complete: () => this.$destroy()
|
complete: () => this.destroyDom()
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -167,7 +167,7 @@ class Autocomplete {
|
|||||||
private close() {
|
private close() {
|
||||||
if (this.suggestion == null) return;
|
if (this.suggestion == null) return;
|
||||||
|
|
||||||
this.suggestion.$destroy();
|
this.suggestion.destroyDom();
|
||||||
this.suggestion = null;
|
this.suggestion = null;
|
||||||
|
|
||||||
this.textarea.focus();
|
this.textarea.focus();
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import VueRouter from 'vue-router';
|
|||||||
|
|
||||||
// Style
|
// Style
|
||||||
import './style.styl';
|
import './style.styl';
|
||||||
import '../../element.scss';
|
|
||||||
|
|
||||||
import init from '../init';
|
import init from '../init';
|
||||||
import fuckAdBlock from '../common/scripts/fuck-ad-block';
|
import fuckAdBlock from '../common/scripts/fuck-ad-block';
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ export default Vue.extend({
|
|||||||
});
|
});
|
||||||
|
|
||||||
this.$emit('closed');
|
this.$emit('closed');
|
||||||
this.$destroy();
|
this.destroyDom();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ export default Vue.extend({
|
|||||||
scale: 0.8,
|
scale: 0.8,
|
||||||
duration: 300,
|
duration: 300,
|
||||||
easing: [ 0.5, -0.5, 1, 0.5 ],
|
easing: [ 0.5, -0.5, 1, 0.5 ],
|
||||||
complete: () => this.$destroy()
|
complete: () => this.destroyDom()
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
onBgClick() {
|
onBgClick() {
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
<p class="empty" v-if="!fetching && users.length == 0">%i18n:@empty%</p>
|
<p class="empty" v-if="!fetching && users.length == 0">%i18n:@empty%</p>
|
||||||
<p class="fetching" v-if="fetching">%fa:spinner .pulse .fw%%i18n:@fetching%<mk-ellipsis/></p>
|
<p class="fetching" v-if="fetching">%fa:spinner .pulse .fw%%i18n:@fetching%<mk-ellipsis/></p>
|
||||||
<a class="refresh" @click="refresh">%i18n:@refresh%</a>
|
<a class="refresh" @click="refresh">%i18n:@refresh%</a>
|
||||||
<button class="close" @click="$destroy()" title="%i18n:@close%">%fa:times%</button>
|
<button class="close" @click="destroyDom()" title="%i18n:@close%">%fa:times%</button>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ export default Vue.extend({
|
|||||||
opacity: 0,
|
opacity: 0,
|
||||||
duration: 100,
|
duration: 100,
|
||||||
easing: 'linear',
|
easing: 'linear',
|
||||||
complete: () => this.$destroy()
|
complete: () => this.destroyDom()
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ export default Vue.extend({
|
|||||||
opacity: 0,
|
opacity: 0,
|
||||||
duration: 100,
|
duration: 100,
|
||||||
easing: 'linear',
|
easing: 'linear',
|
||||||
complete: () => this.$destroy()
|
complete: () => this.destroyDom()
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="root">
|
<div class="root">
|
||||||
<template v-if="!fetching">
|
<template v-if="!fetching">
|
||||||
<el-progress :text-inside="true" :stroke-width="18" :percentage="Math.floor((usage / capacity) * 100)"/>
|
|
||||||
<p><b>{{ capacity | bytes }}</b>%i18n:max%<b>{{ usage | bytes }}</b>%i18n:in-use%</p>
|
<p><b>{{ capacity | bytes }}</b>%i18n:max%<b>{{ usage | bytes }}</b>%i18n:in-use%</p>
|
||||||
</template>
|
</template>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
</label>
|
</label>
|
||||||
<label class="ui from group">
|
<label class="ui from group">
|
||||||
<p>%i18n:@birthday%</p>
|
<p>%i18n:@birthday%</p>
|
||||||
<el-date-picker v-model="birthday" type="date" value-format="yyyy-MM-dd"/>
|
<input type="date" v-model="birthday"/>
|
||||||
</label>
|
</label>
|
||||||
<button class="ui primary" @click="save">%i18n:@save%</button>
|
<button class="ui primary" @click="save">%i18n:@save%</button>
|
||||||
<section>
|
<section>
|
||||||
|
|||||||
@@ -87,13 +87,11 @@
|
|||||||
<span>%i18n:@enable-sounds-desc%</span>
|
<span>%i18n:@enable-sounds-desc%</span>
|
||||||
</mk-switch>
|
</mk-switch>
|
||||||
<label>%i18n:@volume%</label>
|
<label>%i18n:@volume%</label>
|
||||||
<el-slider
|
<input type="range"
|
||||||
v-model="soundVolume"
|
v-model="soundVolume"
|
||||||
:show-input="true"
|
|
||||||
:format-tooltip="v => `${v * 100}%`"
|
|
||||||
:disabled="!enableSounds"
|
:disabled="!enableSounds"
|
||||||
:max="1"
|
max="1"
|
||||||
:step="0.1"
|
step="0.1"
|
||||||
/>
|
/>
|
||||||
<button class="ui button" @click="soundTest">%fa:volume-up% %i18n:@test%</button>
|
<button class="ui button" @click="soundTest">%fa:volume-up% %i18n:@test%</button>
|
||||||
</section>
|
</section>
|
||||||
@@ -105,14 +103,15 @@
|
|||||||
|
|
||||||
<section class="web" v-show="page == 'web'">
|
<section class="web" v-show="page == 'web'">
|
||||||
<h1>%i18n:@language%</h1>
|
<h1>%i18n:@language%</h1>
|
||||||
<el-select v-model="lang" placeholder="%i18n:@pick-language%">
|
<select v-model="lang" placeholder="%i18n:@pick-language%">
|
||||||
<el-option-group label="%i18n:@recommended%">
|
<optgroup label="%i18n:@recommended%">
|
||||||
<el-option label="%i18n:@auto%" :value="null"/>
|
<option value="">%i18n:@auto%</option>
|
||||||
</el-option-group>
|
</optgroup>
|
||||||
<el-option-group label="%i18n:@specify-language%">
|
|
||||||
<el-option v-for="x in langs" :label="x[1]" :value="x[0]" :key="x[0]"/>
|
<optgroup label="%i18n:@specify-language%">
|
||||||
</el-option-group>
|
<option v-for="x in langs" :value="x[0]" :key="x[0]">{{ x[1] }}</option>
|
||||||
</el-select>
|
</optgroup>
|
||||||
|
</select>
|
||||||
<div class="none ui info">
|
<div class="none ui info">
|
||||||
<p>%fa:info-circle%%i18n:@language-desc%</p>
|
<p>%fa:info-circle%%i18n:@language-desc%</p>
|
||||||
</div>
|
</div>
|
||||||
@@ -207,10 +206,6 @@
|
|||||||
<mk-switch v-model="enableExperimentalFeatures" text="%i18n:@experimental%">
|
<mk-switch v-model="enableExperimentalFeatures" text="%i18n:@experimental%">
|
||||||
<span>%i18n:@experimental-desc%</span>
|
<span>%i18n:@experimental-desc%</span>
|
||||||
</mk-switch>
|
</mk-switch>
|
||||||
<details v-if="debug">
|
|
||||||
<summary>%i18n:@tools%</summary>
|
|
||||||
<button class="ui button block" @click="taskmngr">%i18n:@task-manager%</button>
|
|
||||||
</details>
|
|
||||||
</section>
|
</section>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -228,7 +223,6 @@ import XSignins from './settings.signins.vue';
|
|||||||
import XDrive from './settings.drive.vue';
|
import XDrive from './settings.drive.vue';
|
||||||
import { url, langs, version } from '../../../config';
|
import { url, langs, version } from '../../../config';
|
||||||
import checkForUpdate from '../../../common/scripts/check-for-update';
|
import checkForUpdate from '../../../common/scripts/check-for-update';
|
||||||
import MkTaskManager from './taskmanager.vue';
|
|
||||||
|
|
||||||
export default Vue.extend({
|
export default Vue.extend({
|
||||||
components: {
|
components: {
|
||||||
@@ -408,9 +402,6 @@ export default Vue.extend({
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
taskmngr() {
|
|
||||||
(this as any).os.new(MkTaskManager);
|
|
||||||
},
|
|
||||||
customizeHome() {
|
customizeHome() {
|
||||||
this.$router.push('/i/customize-home');
|
this.$router.push('/i/customize-home');
|
||||||
this.$emit('done');
|
this.$emit('done');
|
||||||
|
|||||||
@@ -1,219 +0,0 @@
|
|||||||
<template>
|
|
||||||
<mk-window ref="window" width="750px" height="500px" @closed="$destroy" name="TaskManager">
|
|
||||||
<span slot="header" :class="$style.header">%fa:stethoscope%%i18n:@title%</span>
|
|
||||||
<el-tabs :class="$style.content">
|
|
||||||
<el-tab-pane label="Requests">
|
|
||||||
<el-table
|
|
||||||
:data="os.requests"
|
|
||||||
style="width: 100%"
|
|
||||||
:default-sort="{prop: 'date', order: 'descending'}"
|
|
||||||
>
|
|
||||||
<el-table-column type="expand">
|
|
||||||
<template slot-scope="props">
|
|
||||||
<pre>{{ props.row.data }}</pre>
|
|
||||||
<pre>{{ props.row.res }}</pre>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
|
|
||||||
<el-table-column
|
|
||||||
label="Requested at"
|
|
||||||
prop="date"
|
|
||||||
sortable
|
|
||||||
>
|
|
||||||
<template slot-scope="scope">
|
|
||||||
<b style="margin-right: 8px">{{ scope.row.date.getTime() }}</b>
|
|
||||||
<span>(<mk-time :time="scope.row.date"/>)</span>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
|
|
||||||
<el-table-column
|
|
||||||
label="Name"
|
|
||||||
>
|
|
||||||
<template slot-scope="scope">
|
|
||||||
<b>{{ scope.row.name }}</b>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
|
|
||||||
<el-table-column
|
|
||||||
label="Status"
|
|
||||||
>
|
|
||||||
<template slot-scope="scope">
|
|
||||||
<span>{{ scope.row.status || '(pending)' }}</span>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
</el-table>
|
|
||||||
</el-tab-pane>
|
|
||||||
|
|
||||||
<el-tab-pane label="Streams">
|
|
||||||
<el-table
|
|
||||||
:data="os.connections"
|
|
||||||
style="width: 100%"
|
|
||||||
>
|
|
||||||
<el-table-column
|
|
||||||
label="Uptime"
|
|
||||||
>
|
|
||||||
<template slot-scope="scope">
|
|
||||||
<mk-timer v-if="scope.row.connectedAt" :time="scope.row.connectedAt"/>
|
|
||||||
<span v-else>-</span>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
|
|
||||||
<el-table-column
|
|
||||||
label="Name"
|
|
||||||
>
|
|
||||||
<template slot-scope="scope">
|
|
||||||
<b>{{ scope.row.name == '' ? '[Home]' : scope.row.name }}</b>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
|
|
||||||
<el-table-column
|
|
||||||
label="User"
|
|
||||||
>
|
|
||||||
<template slot-scope="scope">
|
|
||||||
<span>{{ scope.row.user || '(anonymous)' }}</span>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
|
|
||||||
<el-table-column
|
|
||||||
prop="state"
|
|
||||||
label="State"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<el-table-column
|
|
||||||
prop="in"
|
|
||||||
label="In"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<el-table-column
|
|
||||||
prop="out"
|
|
||||||
label="Out"
|
|
||||||
/>
|
|
||||||
</el-table>
|
|
||||||
</el-tab-pane>
|
|
||||||
|
|
||||||
<el-tab-pane label="Streams (Inspect)">
|
|
||||||
<el-tabs type="card" style="height:50%">
|
|
||||||
<el-tab-pane v-for="c in os.connections" :label="c.name == '' ? '[Home]' : c.name" :key="c.id" :name="c.id" ref="connectionsTab">
|
|
||||||
<div style="padding: 12px 0 0 12px">
|
|
||||||
<el-button size="mini" @click="send(c)">Send</el-button>
|
|
||||||
<el-button size="mini" type="warning" @click="c.isSuspended = true" v-if="!c.isSuspended">Suspend</el-button>
|
|
||||||
<el-button size="mini" type="success" @click="c.isSuspended = false" v-else>Resume</el-button>
|
|
||||||
<el-button size="mini" type="danger" @click="c.close">Disconnect</el-button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<el-table
|
|
||||||
:data="c.inout"
|
|
||||||
style="width: 100%"
|
|
||||||
:default-sort="{prop: 'at', order: 'descending'}"
|
|
||||||
>
|
|
||||||
<el-table-column type="expand">
|
|
||||||
<template slot-scope="props">
|
|
||||||
<pre>{{ props.row.data }}</pre>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
|
|
||||||
<el-table-column
|
|
||||||
label="Date"
|
|
||||||
prop="at"
|
|
||||||
sortable
|
|
||||||
>
|
|
||||||
<template slot-scope="scope">
|
|
||||||
<b style="margin-right: 8px">{{ scope.row.at.getTime() }}</b>
|
|
||||||
<span>(<mk-time :time="scope.row.at"/>)</span>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
|
|
||||||
<el-table-column
|
|
||||||
label="Type"
|
|
||||||
>
|
|
||||||
<template slot-scope="scope">
|
|
||||||
<span>{{ getMessageType(scope.row.data) }}</span>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
|
|
||||||
<el-table-column
|
|
||||||
label="Incoming / Outgoing"
|
|
||||||
prop="type"
|
|
||||||
/>
|
|
||||||
</el-table>
|
|
||||||
</el-tab-pane>
|
|
||||||
</el-tabs>
|
|
||||||
</el-tab-pane>
|
|
||||||
|
|
||||||
<el-tab-pane label="Windows">
|
|
||||||
<el-table
|
|
||||||
:data="Array.from(os.windows.windows)"
|
|
||||||
style="width: 100%"
|
|
||||||
>
|
|
||||||
<el-table-column
|
|
||||||
label="Name"
|
|
||||||
>
|
|
||||||
<template slot-scope="scope">
|
|
||||||
<b>{{ scope.row.name || '(unknown)' }}</b>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
|
|
||||||
<el-table-column
|
|
||||||
label="Operations"
|
|
||||||
>
|
|
||||||
<template slot-scope="scope">
|
|
||||||
<el-button size="mini" type="danger" @click="scope.row.close">Close</el-button>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
</el-table>
|
|
||||||
</el-tab-pane>
|
|
||||||
</el-tabs>
|
|
||||||
</mk-window>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script lang="ts">
|
|
||||||
import Vue from 'vue';
|
|
||||||
|
|
||||||
export default Vue.extend({
|
|
||||||
mounted() {
|
|
||||||
(this as any).os.windows.on('added', this.onWindowsChanged);
|
|
||||||
(this as any).os.windows.on('removed', this.onWindowsChanged);
|
|
||||||
},
|
|
||||||
beforeDestroy() {
|
|
||||||
(this as any).os.windows.off('added', this.onWindowsChanged);
|
|
||||||
(this as any).os.windows.off('removed', this.onWindowsChanged);
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
getMessageType(data): string {
|
|
||||||
return data.type ? data.type : '-';
|
|
||||||
},
|
|
||||||
onWindowsChanged() {
|
|
||||||
this.$forceUpdate();
|
|
||||||
},
|
|
||||||
send(c) {
|
|
||||||
(this as any).apis.input({
|
|
||||||
title: 'Send a JSON message',
|
|
||||||
allowEmpty: false
|
|
||||||
}).then(json => {
|
|
||||||
c.send(JSON.parse(json));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style lang="stylus" module>
|
|
||||||
.header
|
|
||||||
> [data-fa]
|
|
||||||
margin-right 4px
|
|
||||||
|
|
||||||
.content
|
|
||||||
height 100%
|
|
||||||
overflow auto
|
|
||||||
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<style>
|
|
||||||
.el-tabs__header {
|
|
||||||
margin-bottom: 0 !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.el-tabs__item {
|
|
||||||
padding: 0 20px !important;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
@@ -27,7 +27,7 @@ export default Vue.extend({
|
|||||||
translateY: -64,
|
translateY: -64,
|
||||||
duration: 500,
|
duration: 500,
|
||||||
easing: 'easeInElastic',
|
easing: 'easeInElastic',
|
||||||
complete: () => this.$destroy()
|
complete: () => this.destroyDom()
|
||||||
});
|
});
|
||||||
}, 6000);
|
}, 6000);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -75,7 +75,7 @@ export default Vue.extend({
|
|||||||
'margin-top': '-8px',
|
'margin-top': '-8px',
|
||||||
duration: 200,
|
duration: 200,
|
||||||
easing: 'easeOutQuad',
|
easing: 'easeOutQuad',
|
||||||
complete: () => this.$destroy()
|
complete: () => this.destroyDom()
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -106,7 +106,7 @@ export default Vue.extend({
|
|||||||
|
|
||||||
mounted() {
|
mounted() {
|
||||||
if (this.preventMount) {
|
if (this.preventMount) {
|
||||||
this.$destroy();
|
this.destroyDom();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -190,7 +190,7 @@ export default Vue.extend({
|
|||||||
});
|
});
|
||||||
|
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
this.$destroy();
|
this.destroyDom();
|
||||||
this.$emit('closed');
|
this.$emit('closed');
|
||||||
}, 300);
|
}, 300);
|
||||||
},
|
},
|
||||||
|
|||||||
+7
-14
@@ -7,9 +7,6 @@ import Vuex from 'vuex';
|
|||||||
import VueRouter from 'vue-router';
|
import VueRouter from 'vue-router';
|
||||||
import * as TreeView from 'vue-json-tree-view';
|
import * as TreeView from 'vue-json-tree-view';
|
||||||
import VAnimateCss from 'v-animate-css';
|
import VAnimateCss from 'v-animate-css';
|
||||||
import Element from 'element-ui';
|
|
||||||
import ElementLocaleEn from 'element-ui/lib/locale/lang/en';
|
|
||||||
import ElementLocaleJa from 'element-ui/lib/locale/lang/ja';
|
|
||||||
import VModal from 'vue-js-modal';
|
import VModal from 'vue-js-modal';
|
||||||
|
|
||||||
import App from './app.vue';
|
import App from './app.vue';
|
||||||
@@ -17,18 +14,10 @@ import checkForUpdate from './common/scripts/check-for-update';
|
|||||||
import MiOS, { API } from './mios';
|
import MiOS, { API } from './mios';
|
||||||
import { version, codename, lang } from './config';
|
import { version, codename, lang } from './config';
|
||||||
|
|
||||||
let elementLocale;
|
|
||||||
switch (lang) {
|
|
||||||
case 'ja-JP': elementLocale = ElementLocaleJa; break;
|
|
||||||
case 'en-US': elementLocale = ElementLocaleEn; break;
|
|
||||||
default: elementLocale = ElementLocaleEn; break;
|
|
||||||
}
|
|
||||||
|
|
||||||
Vue.use(Vuex);
|
Vue.use(Vuex);
|
||||||
Vue.use(VueRouter);
|
Vue.use(VueRouter);
|
||||||
Vue.use(TreeView);
|
Vue.use(TreeView);
|
||||||
Vue.use(VAnimateCss);
|
Vue.use(VAnimateCss);
|
||||||
Vue.use(Element, { locale: elementLocale });
|
|
||||||
Vue.use(VModal);
|
Vue.use(VModal);
|
||||||
|
|
||||||
// Register global directives
|
// Register global directives
|
||||||
@@ -42,9 +31,13 @@ require('./common/views/widgets');
|
|||||||
require('./common/views/filters');
|
require('./common/views/filters');
|
||||||
|
|
||||||
Vue.mixin({
|
Vue.mixin({
|
||||||
destroyed(this: any) {
|
methods: {
|
||||||
if (this.$el.parentNode) {
|
destroyDom() {
|
||||||
this.$el.parentNode.removeChild(this.$el);
|
this.$destroy();
|
||||||
|
|
||||||
|
if (this.$el.parentNode) {
|
||||||
|
this.$el.parentNode.removeChild(this.$el);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import VueRouter from 'vue-router';
|
|||||||
|
|
||||||
// Style
|
// Style
|
||||||
import './style.styl';
|
import './style.styl';
|
||||||
import '../../element.scss';
|
|
||||||
|
|
||||||
import init from '../init';
|
import init from '../init';
|
||||||
|
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ export default Vue.extend({
|
|||||||
scale: 0.8,
|
scale: 0.8,
|
||||||
duration: 300,
|
duration: 300,
|
||||||
easing: [ 0.5, -0.5, 1, 0.5 ],
|
easing: [ 0.5, -0.5, 1, 0.5 ],
|
||||||
complete: () => this.$destroy()
|
complete: () => this.destroyDom()
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
onBgClick() {
|
onBgClick() {
|
||||||
|
|||||||
@@ -31,15 +31,15 @@ export default Vue.extend({
|
|||||||
},
|
},
|
||||||
onSelected(file) {
|
onSelected(file) {
|
||||||
this.$emit('selected', file);
|
this.$emit('selected', file);
|
||||||
this.$destroy();
|
this.destroyDom();
|
||||||
},
|
},
|
||||||
cancel() {
|
cancel() {
|
||||||
this.$emit('canceled');
|
this.$emit('canceled');
|
||||||
this.$destroy();
|
this.destroyDom();
|
||||||
},
|
},
|
||||||
ok() {
|
ok() {
|
||||||
this.$emit('selected', this.files);
|
this.$emit('selected', this.files);
|
||||||
this.$destroy();
|
this.destroyDom();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -19,11 +19,11 @@ export default Vue.extend({
|
|||||||
methods: {
|
methods: {
|
||||||
cancel() {
|
cancel() {
|
||||||
this.$emit('canceled');
|
this.$emit('canceled');
|
||||||
this.$destroy();
|
this.destroyDom();
|
||||||
},
|
},
|
||||||
ok() {
|
ok() {
|
||||||
this.$emit('selected', (this.$refs.browser as any).folder);
|
this.$emit('selected', (this.$refs.browser as any).folder);
|
||||||
this.$destroy();
|
this.destroyDom();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ export default Vue.extend({
|
|||||||
this.fetch();
|
this.fetch();
|
||||||
},
|
},
|
||||||
close() {
|
close() {
|
||||||
this.$destroy();
|
this.destroyDom();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ export default Vue.extend({
|
|||||||
[this.pos]: `-${this.$el.offsetHeight}px`,
|
[this.pos]: `-${this.$el.offsetHeight}px`,
|
||||||
duration: 500,
|
duration: 500,
|
||||||
easing: 'easeOutQuad',
|
easing: 'easeOutQuad',
|
||||||
complete: () => this.$destroy()
|
complete: () => this.destroyDom()
|
||||||
});
|
});
|
||||||
}, 6000);
|
}, 6000);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ export default Vue.extend({
|
|||||||
translateY: 16,
|
translateY: 16,
|
||||||
duration: 300,
|
duration: 300,
|
||||||
easing: 'easeOutQuad',
|
easing: 'easeOutQuad',
|
||||||
complete: () => this.$destroy()
|
complete: () => this.destroyDom()
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@@ -1,12 +0,0 @@
|
|||||||
/* Element variable definitons */
|
|
||||||
/* SEE: http://element.eleme.io/#/en-US/component/custom-theme */
|
|
||||||
|
|
||||||
@import '../const.json';
|
|
||||||
|
|
||||||
/* theme color */
|
|
||||||
$--color-primary: $themeColor;
|
|
||||||
|
|
||||||
/* icon font path, required */
|
|
||||||
$--font-path: '~element-ui/lib/theme-chalk/fonts';
|
|
||||||
|
|
||||||
@import "~element-ui/packages/theme-chalk/src/index";
|
|
||||||
@@ -7,7 +7,6 @@ import * as webpack from 'webpack';
|
|||||||
import chalk from 'chalk';
|
import chalk from 'chalk';
|
||||||
import rndstr from 'rndstr';
|
import rndstr from 'rndstr';
|
||||||
const { VueLoaderPlugin } = require('vue-loader');
|
const { VueLoaderPlugin } = require('vue-loader');
|
||||||
const jsonImporter = require('node-sass-json-importer');
|
|
||||||
const minifyHtml = require('html-minifier').minify;
|
const minifyHtml = require('html-minifier').minify;
|
||||||
const WebpackOnBuildPlugin = require('on-build-webpack');
|
const WebpackOnBuildPlugin = require('on-build-webpack');
|
||||||
//const HardSourceWebpackPlugin = require('hard-source-webpack-plugin');
|
//const HardSourceWebpackPlugin = require('hard-source-webpack-plugin');
|
||||||
@@ -183,22 +182,6 @@ module.exports = {
|
|||||||
loader: 'stylus-loader'
|
loader: 'stylus-loader'
|
||||||
}]
|
}]
|
||||||
}]
|
}]
|
||||||
}, {
|
|
||||||
test: /\.scss$/,
|
|
||||||
exclude: /node_modules/,
|
|
||||||
use: [{
|
|
||||||
loader: 'style-loader'
|
|
||||||
}, {
|
|
||||||
loader: 'css-loader',
|
|
||||||
options: {
|
|
||||||
minimize: true
|
|
||||||
}
|
|
||||||
}, {
|
|
||||||
loader: 'sass-loader',
|
|
||||||
options: {
|
|
||||||
importer: jsonImporter(),
|
|
||||||
}
|
|
||||||
}]
|
|
||||||
}, {
|
}, {
|
||||||
test: /\.css$/,
|
test: /\.css$/,
|
||||||
use: [{
|
use: [{
|
||||||
|
|||||||
Reference in New Issue
Block a user