perf: ask for close relevant connections before edit

This commit is contained in:
tiny-craft 2023-07-17 10:49:53 +08:00
parent 4879901a33
commit 5806b19fb1
19 changed files with 403 additions and 324 deletions

View File

@ -1,5 +1,5 @@
<script setup>
import { computed, onActivated, onMounted, onUnmounted, ref, watch } from 'vue'
import { computed, onMounted, onUnmounted, ref, watch } from 'vue'
import { types } from '../../consts/support_redis_type.js'
import ContentValueHash from '../content_value/ContentValueHash.vue'
import ContentValueList from '../content_value/ContentValueList.vue'
@ -122,7 +122,7 @@ const onCloseTab = (tabIndex) => {
<template>
<div class="content-container flex-box-v">
<!-- <content-tab :model-value="tab"></content-tab>-->
<!-- <content-value-tab :tabs="tab" />-->
<n-tabs
v-model:value="tabStore.activatedIndex"
:closable="true"

View File

@ -3,9 +3,11 @@ import { ref } from 'vue'
import { ConnectionType } from '../../consts/connection_type.js'
import Close from '../icons/Close.vue'
import useConnectionStore from '../../stores/connections.js'
import { useThemeVars } from 'naive-ui'
const emit = defineEmits(['switchTab', 'closeTab', 'update:modelValue'])
const themeVars = useThemeVars()
const props = defineProps({
selectedIndex: {
type: Number,
@ -21,6 +23,16 @@ const props = defineProps({
},
],
},
tabs: {
type: Array,
default: [
{
// label: 'tab1',
// key: 'key',
// bgColor: 'white',
},
],
},
})
const connectionStore = useConnectionStore()
@ -43,19 +55,6 @@ const onClickTab = (idx, key) => {
}
const onCloseTab = (idx, key) => {
const removed = items.value.splice(idx, 1)
if (removed.length <= 0) {
return
}
// Update select index if removed index equal current selected
if (selIndex.value === idx) {
selIndex.value -= 1
if (selIndex.value < 0 && items.value.length > 0) {
selIndex.value = 0
}
}
emit('update:modelValue', items)
emit('closeTab', idx, key)
}
</script>
@ -64,7 +63,7 @@ const onCloseTab = (idx, key) => {
<!-- TODO: 检查标签是否太多, 左右两边显示左右切换翻页按钮 -->
<div class="content-tab flex-box-h">
<div
v-for="(item, i) in props.modelValue"
v-for="(item, i) in props.tabs"
:key="item.key"
:class="{ 'content-tab_selected': selIndex === i }"
:style="{ backgroundColor: item.bgColor || '' }"
@ -130,7 +129,7 @@ const onCloseTab = (idx, key) => {
}
&_selected {
border-top: #409eff 4px solid !important;
border-top: v-bind('themeVars.primaryColor') 4px solid !important;
background-color: #ffffff;
color: #303133;
}

View File

@ -65,7 +65,6 @@ watch(
if (visible) {
const { prefix, server, db } = dialogStore.newKeyParam
newForm.server = server
newForm.db = db
newForm.key = isEmpty(prefix) ? '' : prefix
newForm.type = options.value[0].value
newForm.ttl = -1

View File

@ -1,4 +1,11 @@
<script setup></script>
<script setup>
const props = defineProps({
strokeWidth: {
type: [Number, String],
default: 3,
},
})
</script>
<template>
<svg fill="none" viewBox="0 0 48 48" xmlns="http://www.w3.org/2000/svg">
@ -7,7 +14,7 @@
fill="none"
stroke="currentColor"
stroke-linejoin="round"
stroke-width="3"
:stroke-width="props.strokeWidth"
/>
</svg>
</template>

View File

@ -4,7 +4,7 @@ import AddLink from '../icons/AddLink.vue'
import BrowserTree from './BrowserTree.vue'
import IconButton from '../common/IconButton.vue'
import useTabStore from '../../stores/tab.js'
import { computed } from 'vue'
import { computed, reactive } from 'vue'
import { get } from 'lodash'
import Delete from '../icons/Delete.vue'
import Refresh from '../icons/Refresh.vue'
@ -12,6 +12,9 @@ import useDialogStore from '../../stores/dialog.js'
import { useConfirmDialog } from '../../utils/confirm_dialog.js'
import { useI18n } from 'vue-i18n'
import useConnectionStore from '../../stores/connections.js'
import Filter from '../icons/Filter.vue'
import { types } from '../../consts/support_redis_type.js'
import Search from '../icons/Search.vue'
const themeVars = useThemeVars()
const dialogStore = useDialogStore()
@ -27,7 +30,7 @@ const currentSelect = computed(() => {
})
const onNewKey = () => {
const { server, db, key } = currentSelect.value
const { server, key, db = 0 } = currentSelect.value
dialogStore.openNewKeyDialog(key, server, db)
}
@ -51,16 +54,57 @@ const onRefresh = () => {
message.success(i18n.t('reload_succ'))
})
}
const filterForm = reactive({
showFilter: false,
type: '',
pattern: '',
})
const filterTypeOptions = computed(() => {
const options = Object.keys(types).map((t) => ({
value: t,
label: t,
}))
options.splice(0, 0, {
value: '',
label: i18n.t('all'),
})
return options
})
</script>
<template>
<div class="nav-pane-container flex-box-v">
<browser-tree :server="currentName" />
<div class="nav-pane-bottom flex-box-h" v-if="filterForm.showFilter">
<n-input-group>
<n-select
v-model:value="filterForm.type"
:options="filterTypeOptions"
style="width: 120px"
:consistent-menu-width="false"
/>
<n-input placeholder="" clearable />
<n-button ghost>
<template #icon>
<n-icon :component="Search" />
</template>
</n-button>
</n-input-group>
</div>
<!-- bottom function bar -->
<div class="nav-pane-bottom flex-box-h">
<icon-button :icon="AddLink" size="20" stroke-width="4" t-tooltip="new_key" @click="onNewKey" />
<icon-button :icon="Refresh" size="20" stroke-width="4" t-tooltip="reload" @click="onRefresh" />
<icon-button
:icon="Filter"
size="20"
stroke-width="4"
t-tooltip="filter_key"
@click="filterForm.showFilter = !filterForm.showFilter"
/>
<div class="flex-item-expand"></div>
<icon-button
:disabled="currentSelect.key == null"
@ -70,11 +114,6 @@ const onRefresh = () => {
t-tooltip="remove_key"
@click="onDeleteKey"
/>
<!-- <n-input placeholder="">-->
<!-- <template #prefix>-->
<!-- <n-icon :component="Filter" color="#aaa" size="20" />-->
<!-- </template>-->
<!-- </n-input>-->
</div>
</div>
</template>

View File

@ -50,7 +50,7 @@ const onDisconnectAll = () => {
/>
<n-input v-model:value="filterPattern" :placeholder="$t('filter')" clearable>
<template #prefix>
<n-icon :component="Filter" color="#aaa" size="20" />
<n-icon :component="Filter" size="20" />
</template>
</n-input>
</div>

View File

@ -238,7 +238,18 @@ const handleSelectContextMenu = (key) => {
openConnection(name).then(() => {})
break
case 'server_edit':
// ask for close relevant connections before edit
if (connectionStore.isConnected(name)) {
confirmDialog.warning(i18n.t('edit_close_confirm'), () => {
connectionStore.closeConnection(name).then((success) => {
if (success) {
dialogStore.openEditDialog(name)
}
})
})
} else {
dialogStore.openEditDialog(name)
}
break
case 'server_remove':
removeConnection(name)

View File

@ -13,6 +13,7 @@
"filter": "Filter",
"sort_conn": "Resort Connections",
"close_confirm": "Confirm close this tab and connection",
"edit_close_confirm": "Please close the relevant connections before editing. Do you want to continue?",
"opening_connection": "Opening Connection...",
"remove_tip": "{type} \"{name}\" will be deleted",
"ttl": "TTL",

View File

@ -13,6 +13,7 @@
"filter": "筛选",
"sort_conn": "调整连接顺序",
"close_confirm": "是否关闭当前连接",
"edit_close_confirm": "编辑前需要关闭相关连接,是否继续",
"opening_connection": "正在打开连接...",
"remove_tip": "{type} \"{name}\" 将会被删除",
"ttl": "TTL",

View File

@ -58,7 +58,6 @@ const useDialogStore = defineStore('dialog', {
},
async openEditDialog(name) {
console.log('open edit dialog:' + name)
const connStore = useConnectionStore()
const profile = await connStore.getConnectionProfile(name)
this.connParam = profile || connStore.newDefaultConnection(name)
@ -112,8 +111,8 @@ const useDialogStore = defineStore('dialog', {
/**
*
* @param {string} prefix
* @param {number} server
* @param {string} db
* @param {string} server
* @param {number} db
*/
openNewKeyDialog(prefix, server, db) {
this.newKeyParam.prefix = prefix

View File

@ -1,4 +1,4 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
export function Greet(arg1: string): Promise<string>
export function Greet(arg1:string):Promise<string>;

View File

@ -3,5 +3,5 @@
// This file is automatically generated. DO NOT EDIT
export function Greet(arg1) {
return window['go']['main']['App']['Greet'](arg1)
return window['go']['main']['App']['Greet'](arg1);
}

View File

@ -1,51 +1,107 @@
export namespace types {
export class Connection {
group: string
name: string
addr: string
port: number
username: string
password: string
defaultFilter: string
keySeparator: string
connTimeout: number
execTimeout: number
markColor: string
constructor(source: any = {}) {
if ('string' === typeof source) source = JSON.parse(source)
this.group = source['group']
this.name = source['name']
this.addr = source['addr']
this.port = source['port']
this.username = source['username']
this.password = source['password']
this.defaultFilter = source['defaultFilter']
this.keySeparator = source['keySeparator']
this.connTimeout = source['connTimeout']
this.execTimeout = source['execTimeout']
this.markColor = source['markColor']
}
name: string;
group?: string;
addr?: string;
port?: number;
username?: string;
password?: string;
defaultFilter?: string;
keySeparator?: string;
connTimeout?: number;
execTimeout?: number;
markColor?: string;
type?: string;
connections?: Connection[];
static createFrom(source: any = {}) {
return new Connection(source)
}
return new Connection(source);
}
constructor(source: any = {}) {
if ('string' === typeof source) source = JSON.parse(source);
this.name = source["name"];
this.group = source["group"];
this.addr = source["addr"];
this.port = source["port"];
this.username = source["username"];
this.password = source["password"];
this.defaultFilter = source["defaultFilter"];
this.keySeparator = source["keySeparator"];
this.connTimeout = source["connTimeout"];
this.execTimeout = source["execTimeout"];
this.markColor = source["markColor"];
this.type = source["type"];
this.connections = this.convertValues(source["connections"], Connection);
}
convertValues(a: any, classs: any, asMap: boolean = false): any {
if (!a) {
return a;
}
if (a.slice) {
return (a as any[]).map(elem => this.convertValues(elem, classs));
} else if ("object" === typeof a) {
if (asMap) {
for (const key of Object.keys(a)) {
a[key] = new classs(a[key]);
}
return a;
}
return new classs(a);
}
return a;
}
}
export class ConnectionConfig {
name: string;
group?: string;
addr?: string;
port?: number;
username?: string;
password?: string;
defaultFilter?: string;
keySeparator?: string;
connTimeout?: number;
execTimeout?: number;
markColor?: string;
static createFrom(source: any = {}) {
return new ConnectionConfig(source);
}
constructor(source: any = {}) {
if ('string' === typeof source) source = JSON.parse(source);
this.name = source["name"];
this.group = source["group"];
this.addr = source["addr"];
this.port = source["port"];
this.username = source["username"];
this.password = source["password"];
this.defaultFilter = source["defaultFilter"];
this.keySeparator = source["keySeparator"];
this.connTimeout = source["connTimeout"];
this.execTimeout = source["execTimeout"];
this.markColor = source["markColor"];
}
}
export class JSResp {
success: boolean
msg: string
data?: any
constructor(source: any = {}) {
if ('string' === typeof source) source = JSON.parse(source)
this.success = source['success']
this.msg = source['msg']
this.data = source['data']
}
success: boolean;
msg: string;
data?: any;
static createFrom(source: any = {}) {
return new JSResp(source)
return new JSResp(source);
}
constructor(source: any = {}) {
if ('string' === typeof source) source = JSON.parse(source);
this.success = source["success"];
this.msg = source["msg"];
this.data = source["data"];
}
}
}

View File

@ -1,98 +1,64 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
import { context, types } from '../models'
import {types} from '../models';
import {context} from '../models';
export function AddHashField(
arg1: string,
arg2: number,
arg3: string,
arg4: number,
arg5: Array<any>
): Promise<types.JSResp>
export function AddHashField(arg1:string,arg2:number,arg3:string,arg4:number,arg5:Array<any>):Promise<types.JSResp>;
export function AddListItem(
arg1: string,
arg2: number,
arg3: string,
arg4: number,
arg5: Array<any>
): Promise<types.JSResp>
export function AddListItem(arg1:string,arg2:number,arg3:string,arg4:number,arg5:Array<any>):Promise<types.JSResp>;
export function AddZSetValue(
arg1: string,
arg2: number,
arg3: string,
arg4: number,
arg5: {
[key: string]: number
}
): Promise<types.JSResp>
export function AddZSetValue(arg1:string,arg2:number,arg3:string,arg4:number,arg5:{[key: string]: number}):Promise<types.JSResp>;
export function CloseConnection(arg1: string): Promise<types.JSResp>
export function CloseConnection(arg1:string):Promise<types.JSResp>;
export function GetKeyValue(arg1: string, arg2: number, arg3: string): Promise<types.JSResp>
export function CreateGroup(arg1:string):Promise<types.JSResp>;
export function ListConnection(): Promise<types.JSResp>
export function DeleteConnection(arg1:string):Promise<types.JSResp>;
export function OpenConnection(arg1: string): Promise<types.JSResp>
export function DeleteGroup(arg1:string,arg2:boolean):Promise<types.JSResp>;
export function OpenDatabase(arg1: string, arg2: number): Promise<types.JSResp>
export function DeleteKey(arg1:string,arg2:number,arg3:string):Promise<types.JSResp>;
export function RemoveKey(arg1: string, arg2: number, arg3: string): Promise<types.JSResp>
export function GetCmdHistory(arg1:number,arg2:number):Promise<types.JSResp>;
export function RenameKey(arg1: string, arg2: number, arg3: string, arg4: string): Promise<types.JSResp>
export function GetConnection(arg1:string):Promise<types.JSResp>;
export function SaveConnection(arg1: types.Connection, arg2: boolean): Promise<types.JSResp>
export function GetKeyValue(arg1:string,arg2:number,arg3:string):Promise<types.JSResp>;
export function SetHashValue(
arg1: string,
arg2: number,
arg3: string,
arg4: string,
arg5: string,
arg6: string
): Promise<types.JSResp>
export function ListConnection():Promise<types.JSResp>;
export function SetKeyTTL(arg1: string, arg2: number, arg3: string, arg4: number): Promise<types.JSResp>
export function OpenConnection(arg1:string):Promise<types.JSResp>;
export function SetKeyValue(
arg1: string,
arg2: number,
arg3: string,
arg4: string,
arg5: any,
arg6: number
): Promise<types.JSResp>
export function OpenDatabase(arg1:string,arg2:number):Promise<types.JSResp>;
export function SetListItem(arg1: string, arg2: number, arg3: string, arg4: number, arg5: string): Promise<types.JSResp>
export function RenameGroup(arg1:string,arg2:string):Promise<types.JSResp>;
export function SetSetItem(
arg1: string,
arg2: number,
arg3: string,
arg4: boolean,
arg5: Array<any>
): Promise<types.JSResp>
export function RenameKey(arg1:string,arg2:number,arg3:string,arg4:string):Promise<types.JSResp>;
export function Start(arg1: context.Context): Promise<void>
export function SaveConnection(arg1:string,arg2:types.ConnectionConfig):Promise<types.JSResp>;
export function Stop(arg1: context.Context): Promise<void>
export function SaveSortedConnection(arg1:types.Connections):Promise<types.JSResp>;
export function TestConnection(arg1: string, arg2: number, arg3: string, arg4: string): Promise<types.JSResp>
export function ScanKeys(arg1:string,arg2:number,arg3:string):Promise<types.JSResp>;
export function UpdateSetItem(
arg1: string,
arg2: number,
arg3: string,
arg4: string,
arg5: string
): Promise<types.JSResp>
export function ServerInfo(arg1:string):Promise<types.JSResp>;
export function UpdateZSetValue(
arg1: string,
arg2: number,
arg3: string,
arg4: string,
arg5: string,
arg6: number
): Promise<types.JSResp>
export function SetHashValue(arg1:string,arg2:number,arg3:string,arg4:string,arg5:string,arg6:string):Promise<types.JSResp>;
export function SetKeyTTL(arg1:string,arg2:number,arg3:string,arg4:number):Promise<types.JSResp>;
export function SetKeyValue(arg1:string,arg2:number,arg3:string,arg4:string,arg5:any,arg6:number):Promise<types.JSResp>;
export function SetListItem(arg1:string,arg2:number,arg3:string,arg4:number,arg5:string):Promise<types.JSResp>;
export function SetSetItem(arg1:string,arg2:number,arg3:string,arg4:boolean,arg5:Array<any>):Promise<types.JSResp>;
export function Start(arg1:context.Context):Promise<void>;
export function Stop(arg1:context.Context):Promise<void>;
export function TestConnection(arg1:string,arg2:number,arg3:string,arg4:string):Promise<types.JSResp>;
export function UpdateSetItem(arg1:string,arg2:number,arg3:string,arg4:string,arg5:string):Promise<types.JSResp>;
export function UpdateZSetValue(arg1:string,arg2:number,arg3:string,arg4:string,arg5:string,arg6:number):Promise<types.JSResp>;

View File

@ -3,85 +3,121 @@
// This file is automatically generated. DO NOT EDIT
export function AddHashField(arg1, arg2, arg3, arg4, arg5) {
return window['go']['services']['connectionService']['AddHashField'](arg1, arg2, arg3, arg4, arg5)
return window['go']['services']['connectionService']['AddHashField'](arg1, arg2, arg3, arg4, arg5);
}
export function AddListItem(arg1, arg2, arg3, arg4, arg5) {
return window['go']['services']['connectionService']['AddListItem'](arg1, arg2, arg3, arg4, arg5)
return window['go']['services']['connectionService']['AddListItem'](arg1, arg2, arg3, arg4, arg5);
}
export function AddZSetValue(arg1, arg2, arg3, arg4, arg5) {
return window['go']['services']['connectionService']['AddZSetValue'](arg1, arg2, arg3, arg4, arg5)
return window['go']['services']['connectionService']['AddZSetValue'](arg1, arg2, arg3, arg4, arg5);
}
export function CloseConnection(arg1) {
return window['go']['services']['connectionService']['CloseConnection'](arg1)
return window['go']['services']['connectionService']['CloseConnection'](arg1);
}
export function CreateGroup(arg1) {
return window['go']['services']['connectionService']['CreateGroup'](arg1);
}
export function DeleteConnection(arg1) {
return window['go']['services']['connectionService']['DeleteConnection'](arg1);
}
export function DeleteGroup(arg1, arg2) {
return window['go']['services']['connectionService']['DeleteGroup'](arg1, arg2);
}
export function DeleteKey(arg1, arg2, arg3) {
return window['go']['services']['connectionService']['DeleteKey'](arg1, arg2, arg3);
}
export function GetCmdHistory(arg1, arg2) {
return window['go']['services']['connectionService']['GetCmdHistory'](arg1, arg2);
}
export function GetConnection(arg1) {
return window['go']['services']['connectionService']['GetConnection'](arg1);
}
export function GetKeyValue(arg1, arg2, arg3) {
return window['go']['services']['connectionService']['GetKeyValue'](arg1, arg2, arg3)
return window['go']['services']['connectionService']['GetKeyValue'](arg1, arg2, arg3);
}
export function ListConnection() {
return window['go']['services']['connectionService']['ListConnection']()
return window['go']['services']['connectionService']['ListConnection']();
}
export function OpenConnection(arg1) {
return window['go']['services']['connectionService']['OpenConnection'](arg1)
return window['go']['services']['connectionService']['OpenConnection'](arg1);
}
export function OpenDatabase(arg1, arg2) {
return window['go']['services']['connectionService']['OpenDatabase'](arg1, arg2)
return window['go']['services']['connectionService']['OpenDatabase'](arg1, arg2);
}
export function RemoveKey(arg1, arg2, arg3) {
return window['go']['services']['connectionService']['RemoveKey'](arg1, arg2, arg3)
export function RenameGroup(arg1, arg2) {
return window['go']['services']['connectionService']['RenameGroup'](arg1, arg2);
}
export function RenameKey(arg1, arg2, arg3, arg4) {
return window['go']['services']['connectionService']['RenameKey'](arg1, arg2, arg3, arg4)
return window['go']['services']['connectionService']['RenameKey'](arg1, arg2, arg3, arg4);
}
export function SaveConnection(arg1, arg2) {
return window['go']['services']['connectionService']['SaveConnection'](arg1, arg2)
return window['go']['services']['connectionService']['SaveConnection'](arg1, arg2);
}
export function SaveSortedConnection(arg1) {
return window['go']['services']['connectionService']['SaveSortedConnection'](arg1);
}
export function ScanKeys(arg1, arg2, arg3) {
return window['go']['services']['connectionService']['ScanKeys'](arg1, arg2, arg3);
}
export function ServerInfo(arg1) {
return window['go']['services']['connectionService']['ServerInfo'](arg1);
}
export function SetHashValue(arg1, arg2, arg3, arg4, arg5, arg6) {
return window['go']['services']['connectionService']['SetHashValue'](arg1, arg2, arg3, arg4, arg5, arg6)
return window['go']['services']['connectionService']['SetHashValue'](arg1, arg2, arg3, arg4, arg5, arg6);
}
export function SetKeyTTL(arg1, arg2, arg3, arg4) {
return window['go']['services']['connectionService']['SetKeyTTL'](arg1, arg2, arg3, arg4)
return window['go']['services']['connectionService']['SetKeyTTL'](arg1, arg2, arg3, arg4);
}
export function SetKeyValue(arg1, arg2, arg3, arg4, arg5, arg6) {
return window['go']['services']['connectionService']['SetKeyValue'](arg1, arg2, arg3, arg4, arg5, arg6)
return window['go']['services']['connectionService']['SetKeyValue'](arg1, arg2, arg3, arg4, arg5, arg6);
}
export function SetListItem(arg1, arg2, arg3, arg4, arg5) {
return window['go']['services']['connectionService']['SetListItem'](arg1, arg2, arg3, arg4, arg5)
return window['go']['services']['connectionService']['SetListItem'](arg1, arg2, arg3, arg4, arg5);
}
export function SetSetItem(arg1, arg2, arg3, arg4, arg5) {
return window['go']['services']['connectionService']['SetSetItem'](arg1, arg2, arg3, arg4, arg5)
return window['go']['services']['connectionService']['SetSetItem'](arg1, arg2, arg3, arg4, arg5);
}
export function Start(arg1) {
return window['go']['services']['connectionService']['Start'](arg1)
return window['go']['services']['connectionService']['Start'](arg1);
}
export function Stop(arg1) {
return window['go']['services']['connectionService']['Stop'](arg1)
return window['go']['services']['connectionService']['Stop'](arg1);
}
export function TestConnection(arg1, arg2, arg3, arg4) {
return window['go']['services']['connectionService']['TestConnection'](arg1, arg2, arg3, arg4)
return window['go']['services']['connectionService']['TestConnection'](arg1, arg2, arg3, arg4);
}
export function UpdateSetItem(arg1, arg2, arg3, arg4, arg5) {
return window['go']['services']['connectionService']['UpdateSetItem'](arg1, arg2, arg3, arg4, arg5)
return window['go']['services']['connectionService']['UpdateSetItem'](arg1, arg2, arg3, arg4, arg5);
}
export function UpdateZSetValue(arg1, arg2, arg3, arg4, arg5, arg6) {
return window['go']['services']['connectionService']['UpdateZSetValue'](arg1, arg2, arg3, arg4, arg5, arg6)
return window['go']['services']['connectionService']['UpdateZSetValue'](arg1, arg2, arg3, arg4, arg5, arg6);
}

View File

@ -1,12 +0,0 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
export function DefaultPreferences(): Promise<{ [key: string]: any }>
export function GetPreferences(): Promise<{ [key: string]: any }>
export function RestoreDefault(): Promise<{ [key: string]: any }>
export function SetPreferences(arg1: string, arg2: any): Promise<void>
export function SetPreferencesN(arg1: { [key: string]: any }): Promise<void>

View File

@ -1,23 +0,0 @@
// @ts-check
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
export function DefaultPreferences() {
return window['go']['storage']['PreferencesStorage']['DefaultPreferences']()
}
export function GetPreferences() {
return window['go']['storage']['PreferencesStorage']['GetPreferences']()
}
export function RestoreDefault() {
return window['go']['storage']['PreferencesStorage']['RestoreDefault']()
}
export function SetPreferences(arg1, arg2) {
return window['go']['storage']['PreferencesStorage']['SetPreferences'](arg1, arg2)
}
export function SetPreferencesN(arg1) {
return window['go']['storage']['PreferencesStorage']['SetPreferencesN'](arg1)
}

View File

@ -9,227 +9,227 @@ The electron alternative for Go
*/
export interface Position {
x: number
y: number
x: number;
y: number;
}
export interface Size {
w: number
h: number
w: number;
h: number;
}
export interface Screen {
isCurrent: boolean
isPrimary: boolean
isCurrent: boolean;
isPrimary: boolean;
width : number
height : number
}
// Environment information such as platform, buildtype, ...
export interface EnvironmentInfo {
buildType: string
platform: string
arch: string
buildType: string;
platform: string;
arch: string;
}
// [EventsEmit](https://wails.io/docs/reference/runtime/events#eventsemit)
// emits the given event. Optional data may be passed with the event.
// This will trigger any event listeners.
export function EventsEmit(eventName: string, ...data: any): void
export function EventsEmit(eventName: string, ...data: any): void;
// [EventsOn](https://wails.io/docs/reference/runtime/events#eventson) sets up a listener for the given event name.
export function EventsOn(eventName: string, callback: (...data: any) => void): () => void
export function EventsOn(eventName: string, callback: (...data: any) => void): () => void;
// [EventsOnMultiple](https://wails.io/docs/reference/runtime/events#eventsonmultiple)
// sets up a listener for the given event name, but will only trigger a given number times.
export function EventsOnMultiple(eventName: string, callback: (...data: any) => void, maxCallbacks: number): () => void
export function EventsOnMultiple(eventName: string, callback: (...data: any) => void, maxCallbacks: number): () => void;
// [EventsOnce](https://wails.io/docs/reference/runtime/events#eventsonce)
// sets up a listener for the given event name, but will only trigger once.
export function EventsOnce(eventName: string, callback: (...data: any) => void): () => void
export function EventsOnce(eventName: string, callback: (...data: any) => void): () => void;
// [EventsOff](https://wails.io/docs/reference/runtime/events#eventsoff)
// unregisters the listener for the given event name.
export function EventsOff(eventName: string, ...additionalEventNames: string[]): void
export function EventsOff(eventName: string, ...additionalEventNames: string[]): void;
// [EventsOffAll](https://wails.io/docs/reference/runtime/events#eventsoffall)
// unregisters all listeners.
export function EventsOffAll(): void
export function EventsOffAll(): void;
// [LogPrint](https://wails.io/docs/reference/runtime/log#logprint)
// logs the given message as a raw message
export function LogPrint(message: string): void
export function LogPrint(message: string): void;
// [LogTrace](https://wails.io/docs/reference/runtime/log#logtrace)
// logs the given message at the `trace` log level.
export function LogTrace(message: string): void
export function LogTrace(message: string): void;
// [LogDebug](https://wails.io/docs/reference/runtime/log#logdebug)
// logs the given message at the `debug` log level.
export function LogDebug(message: string): void
export function LogDebug(message: string): void;
// [LogError](https://wails.io/docs/reference/runtime/log#logerror)
// logs the given message at the `error` log level.
export function LogError(message: string): void
export function LogError(message: string): void;
// [LogFatal](https://wails.io/docs/reference/runtime/log#logfatal)
// logs the given message at the `fatal` log level.
// The application will quit after calling this method.
export function LogFatal(message: string): void
export function LogFatal(message: string): void;
// [LogInfo](https://wails.io/docs/reference/runtime/log#loginfo)
// logs the given message at the `info` log level.
export function LogInfo(message: string): void
export function LogInfo(message: string): void;
// [LogWarning](https://wails.io/docs/reference/runtime/log#logwarning)
// logs the given message at the `warning` log level.
export function LogWarning(message: string): void
export function LogWarning(message: string): void;
// [WindowReload](https://wails.io/docs/reference/runtime/window#windowreload)
// Forces a reload by the main application as well as connected browsers.
export function WindowReload(): void
export function WindowReload(): void;
// [WindowReloadApp](https://wails.io/docs/reference/runtime/window#windowreloadapp)
// Reloads the application frontend.
export function WindowReloadApp(): void
export function WindowReloadApp(): void;
// [WindowSetAlwaysOnTop](https://wails.io/docs/reference/runtime/window#windowsetalwaysontop)
// Sets the window AlwaysOnTop or not on top.
export function WindowSetAlwaysOnTop(b: boolean): void
export function WindowSetAlwaysOnTop(b: boolean): void;
// [WindowSetSystemDefaultTheme](https://wails.io/docs/next/reference/runtime/window#windowsetsystemdefaulttheme)
// *Windows only*
// Sets window theme to system default (dark/light).
export function WindowSetSystemDefaultTheme(): void
export function WindowSetSystemDefaultTheme(): void;
// [WindowSetLightTheme](https://wails.io/docs/next/reference/runtime/window#windowsetlighttheme)
// *Windows only*
// Sets window to light theme.
export function WindowSetLightTheme(): void
export function WindowSetLightTheme(): void;
// [WindowSetDarkTheme](https://wails.io/docs/next/reference/runtime/window#windowsetdarktheme)
// *Windows only*
// Sets window to dark theme.
export function WindowSetDarkTheme(): void
export function WindowSetDarkTheme(): void;
// [WindowCenter](https://wails.io/docs/reference/runtime/window#windowcenter)
// Centers the window on the monitor the window is currently on.
export function WindowCenter(): void
export function WindowCenter(): void;
// [WindowSetTitle](https://wails.io/docs/reference/runtime/window#windowsettitle)
// Sets the text in the window title bar.
export function WindowSetTitle(title: string): void
export function WindowSetTitle(title: string): void;
// [WindowFullscreen](https://wails.io/docs/reference/runtime/window#windowfullscreen)
// Makes the window full screen.
export function WindowFullscreen(): void
export function WindowFullscreen(): void;
// [WindowUnfullscreen](https://wails.io/docs/reference/runtime/window#windowunfullscreen)
// Restores the previous window dimensions and position prior to full screen.
export function WindowUnfullscreen(): void
export function WindowUnfullscreen(): void;
// [WindowIsFullscreen](https://wails.io/docs/reference/runtime/window#windowisfullscreen)
// Returns the state of the window, i.e. whether the window is in full screen mode or not.
export function WindowIsFullscreen(): Promise<boolean>
export function WindowIsFullscreen(): Promise<boolean>;
// [WindowSetSize](https://wails.io/docs/reference/runtime/window#windowsetsize)
// Sets the width and height of the window.
export function WindowSetSize(width: number, height: number): Promise<Size>
export function WindowSetSize(width: number, height: number): Promise<Size>;
// [WindowGetSize](https://wails.io/docs/reference/runtime/window#windowgetsize)
// Gets the width and height of the window.
export function WindowGetSize(): Promise<Size>
export function WindowGetSize(): Promise<Size>;
// [WindowSetMaxSize](https://wails.io/docs/reference/runtime/window#windowsetmaxsize)
// Sets the maximum window size. Will resize the window if the window is currently larger than the given dimensions.
// Setting a size of 0,0 will disable this constraint.
export function WindowSetMaxSize(width: number, height: number): void
export function WindowSetMaxSize(width: number, height: number): void;
// [WindowSetMinSize](https://wails.io/docs/reference/runtime/window#windowsetminsize)
// Sets the minimum window size. Will resize the window if the window is currently smaller than the given dimensions.
// Setting a size of 0,0 will disable this constraint.
export function WindowSetMinSize(width: number, height: number): void
export function WindowSetMinSize(width: number, height: number): void;
// [WindowSetPosition](https://wails.io/docs/reference/runtime/window#windowsetposition)
// Sets the window position relative to the monitor the window is currently on.
export function WindowSetPosition(x: number, y: number): void
export function WindowSetPosition(x: number, y: number): void;
// [WindowGetPosition](https://wails.io/docs/reference/runtime/window#windowgetposition)
// Gets the window position relative to the monitor the window is currently on.
export function WindowGetPosition(): Promise<Position>
export function WindowGetPosition(): Promise<Position>;
// [WindowHide](https://wails.io/docs/reference/runtime/window#windowhide)
// Hides the window.
export function WindowHide(): void
export function WindowHide(): void;
// [WindowShow](https://wails.io/docs/reference/runtime/window#windowshow)
// Shows the window, if it is currently hidden.
export function WindowShow(): void
export function WindowShow(): void;
// [WindowMaximise](https://wails.io/docs/reference/runtime/window#windowmaximise)
// Maximises the window to fill the screen.
export function WindowMaximise(): void
export function WindowMaximise(): void;
// [WindowToggleMaximise](https://wails.io/docs/reference/runtime/window#windowtogglemaximise)
// Toggles between Maximised and UnMaximised.
export function WindowToggleMaximise(): void
export function WindowToggleMaximise(): void;
// [WindowUnmaximise](https://wails.io/docs/reference/runtime/window#windowunmaximise)
// Restores the window to the dimensions and position prior to maximising.
export function WindowUnmaximise(): void
export function WindowUnmaximise(): void;
// [WindowIsMaximised](https://wails.io/docs/reference/runtime/window#windowismaximised)
// Returns the state of the window, i.e. whether the window is maximised or not.
export function WindowIsMaximised(): Promise<boolean>
export function WindowIsMaximised(): Promise<boolean>;
// [WindowMinimise](https://wails.io/docs/reference/runtime/window#windowminimise)
// Minimises the window.
export function WindowMinimise(): void
export function WindowMinimise(): void;
// [WindowUnminimise](https://wails.io/docs/reference/runtime/window#windowunminimise)
// Restores the window to the dimensions and position prior to minimising.
export function WindowUnminimise(): void
export function WindowUnminimise(): void;
// [WindowIsMinimised](https://wails.io/docs/reference/runtime/window#windowisminimised)
// Returns the state of the window, i.e. whether the window is minimised or not.
export function WindowIsMinimised(): Promise<boolean>
export function WindowIsMinimised(): Promise<boolean>;
// [WindowIsNormal](https://wails.io/docs/reference/runtime/window#windowisnormal)
// Returns the state of the window, i.e. whether the window is normal or not.
export function WindowIsNormal(): Promise<boolean>
export function WindowIsNormal(): Promise<boolean>;
// [WindowSetBackgroundColour](https://wails.io/docs/reference/runtime/window#windowsetbackgroundcolour)
// Sets the background colour of the window to the given RGBA colour definition. This colour will show through for all transparent pixels.
export function WindowSetBackgroundColour(R: number, G: number, B: number, A: number): void
export function WindowSetBackgroundColour(R: number, G: number, B: number, A: number): void;
// [ScreenGetAll](https://wails.io/docs/reference/runtime/window#screengetall)
// Gets the all screens. Call this anew each time you want to refresh data from the underlying windowing system.
export function ScreenGetAll(): Promise<Screen[]>
export function ScreenGetAll(): Promise<Screen[]>;
// [BrowserOpenURL](https://wails.io/docs/reference/runtime/browser#browseropenurl)
// Opens the given URL in the system browser.
export function BrowserOpenURL(url: string): void
export function BrowserOpenURL(url: string): void;
// [Environment](https://wails.io/docs/reference/runtime/intro#environment)
// Returns information about the environment
export function Environment(): Promise<EnvironmentInfo>
export function Environment(): Promise<EnvironmentInfo>;
// [Quit](https://wails.io/docs/reference/runtime/intro#quit)
// Quits the application.
export function Quit(): void
export function Quit(): void;
// [Hide](https://wails.io/docs/reference/runtime/intro#hide)
// Hides the application.
export function Hide(): void
export function Hide(): void;
// [Show](https://wails.io/docs/reference/runtime/intro#show)
// Shows the application.
export function Show(): void
export function Show(): void;
// [ClipboardGetText](https://wails.io/docs/reference/runtime/clipboard#clipboardgettext)
// Returns the current text stored on clipboard
export function ClipboardGetText(): Promise<string>
export function ClipboardGetText(): Promise<string>;
// [ClipboardSetText](https://wails.io/docs/reference/runtime/clipboard#clipboardsettext)
// Sets a text on the clipboard
export function ClipboardSetText(text: string): Promise<boolean>
export function ClipboardSetText(text: string): Promise<boolean>;

View File

@ -9,194 +9,194 @@ The electron alternative for Go
*/
export function LogPrint(message) {
window.runtime.LogPrint(message)
window.runtime.LogPrint(message);
}
export function LogTrace(message) {
window.runtime.LogTrace(message)
window.runtime.LogTrace(message);
}
export function LogDebug(message) {
window.runtime.LogDebug(message)
window.runtime.LogDebug(message);
}
export function LogInfo(message) {
window.runtime.LogInfo(message)
window.runtime.LogInfo(message);
}
export function LogWarning(message) {
window.runtime.LogWarning(message)
window.runtime.LogWarning(message);
}
export function LogError(message) {
window.runtime.LogError(message)
window.runtime.LogError(message);
}
export function LogFatal(message) {
window.runtime.LogFatal(message)
window.runtime.LogFatal(message);
}
export function EventsOnMultiple(eventName, callback, maxCallbacks) {
return window.runtime.EventsOnMultiple(eventName, callback, maxCallbacks)
return window.runtime.EventsOnMultiple(eventName, callback, maxCallbacks);
}
export function EventsOn(eventName, callback) {
return EventsOnMultiple(eventName, callback, -1)
return EventsOnMultiple(eventName, callback, -1);
}
export function EventsOff(eventName, ...additionalEventNames) {
return window.runtime.EventsOff(eventName, ...additionalEventNames)
return window.runtime.EventsOff(eventName, ...additionalEventNames);
}
export function EventsOnce(eventName, callback) {
return EventsOnMultiple(eventName, callback, 1)
return EventsOnMultiple(eventName, callback, 1);
}
export function EventsEmit(eventName) {
let args = [eventName].slice.call(arguments)
return window.runtime.EventsEmit.apply(null, args)
let args = [eventName].slice.call(arguments);
return window.runtime.EventsEmit.apply(null, args);
}
export function WindowReload() {
window.runtime.WindowReload()
window.runtime.WindowReload();
}
export function WindowReloadApp() {
window.runtime.WindowReloadApp()
window.runtime.WindowReloadApp();
}
export function WindowSetAlwaysOnTop(b) {
window.runtime.WindowSetAlwaysOnTop(b)
window.runtime.WindowSetAlwaysOnTop(b);
}
export function WindowSetSystemDefaultTheme() {
window.runtime.WindowSetSystemDefaultTheme()
window.runtime.WindowSetSystemDefaultTheme();
}
export function WindowSetLightTheme() {
window.runtime.WindowSetLightTheme()
window.runtime.WindowSetLightTheme();
}
export function WindowSetDarkTheme() {
window.runtime.WindowSetDarkTheme()
window.runtime.WindowSetDarkTheme();
}
export function WindowCenter() {
window.runtime.WindowCenter()
window.runtime.WindowCenter();
}
export function WindowSetTitle(title) {
window.runtime.WindowSetTitle(title)
window.runtime.WindowSetTitle(title);
}
export function WindowFullscreen() {
window.runtime.WindowFullscreen()
window.runtime.WindowFullscreen();
}
export function WindowUnfullscreen() {
window.runtime.WindowUnfullscreen()
window.runtime.WindowUnfullscreen();
}
export function WindowIsFullscreen() {
return window.runtime.WindowIsFullscreen()
return window.runtime.WindowIsFullscreen();
}
export function WindowGetSize() {
return window.runtime.WindowGetSize()
return window.runtime.WindowGetSize();
}
export function WindowSetSize(width, height) {
window.runtime.WindowSetSize(width, height)
window.runtime.WindowSetSize(width, height);
}
export function WindowSetMaxSize(width, height) {
window.runtime.WindowSetMaxSize(width, height)
window.runtime.WindowSetMaxSize(width, height);
}
export function WindowSetMinSize(width, height) {
window.runtime.WindowSetMinSize(width, height)
window.runtime.WindowSetMinSize(width, height);
}
export function WindowSetPosition(x, y) {
window.runtime.WindowSetPosition(x, y)
window.runtime.WindowSetPosition(x, y);
}
export function WindowGetPosition() {
return window.runtime.WindowGetPosition()
return window.runtime.WindowGetPosition();
}
export function WindowHide() {
window.runtime.WindowHide()
window.runtime.WindowHide();
}
export function WindowShow() {
window.runtime.WindowShow()
window.runtime.WindowShow();
}
export function WindowMaximise() {
window.runtime.WindowMaximise()
window.runtime.WindowMaximise();
}
export function WindowToggleMaximise() {
window.runtime.WindowToggleMaximise()
window.runtime.WindowToggleMaximise();
}
export function WindowUnmaximise() {
window.runtime.WindowUnmaximise()
window.runtime.WindowUnmaximise();
}
export function WindowIsMaximised() {
return window.runtime.WindowIsMaximised()
return window.runtime.WindowIsMaximised();
}
export function WindowMinimise() {
window.runtime.WindowMinimise()
window.runtime.WindowMinimise();
}
export function WindowUnminimise() {
window.runtime.WindowUnminimise()
window.runtime.WindowUnminimise();
}
export function WindowSetBackgroundColour(R, G, B, A) {
window.runtime.WindowSetBackgroundColour(R, G, B, A)
window.runtime.WindowSetBackgroundColour(R, G, B, A);
}
export function ScreenGetAll() {
return window.runtime.ScreenGetAll()
return window.runtime.ScreenGetAll();
}
export function WindowIsMinimised() {
return window.runtime.WindowIsMinimised()
return window.runtime.WindowIsMinimised();
}
export function WindowIsNormal() {
return window.runtime.WindowIsNormal()
return window.runtime.WindowIsNormal();
}
export function BrowserOpenURL(url) {
window.runtime.BrowserOpenURL(url)
window.runtime.BrowserOpenURL(url);
}
export function Environment() {
return window.runtime.Environment()
return window.runtime.Environment();
}
export function Quit() {
window.runtime.Quit()
window.runtime.Quit();
}
export function Hide() {
window.runtime.Hide()
window.runtime.Hide();
}
export function Show() {
window.runtime.Show()
window.runtime.Show();
}
export function ClipboardGetText() {
return window.runtime.ClipboardGetText()
return window.runtime.ClipboardGetText();
}
export function ClipboardSetText(text) {
return window.runtime.ClipboardSetText(text)
return window.runtime.ClipboardSetText(text);
}