Compare commits
19 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| ac071a8cda | |||
| 88bdbb969d | |||
|
|
06a2175726 | ||
|
|
0f51cd2848 | ||
|
|
1f0a844fba | ||
|
|
9a801bbb18 | ||
|
|
bfcb484104 | ||
|
|
a5612d6d9e | ||
|
|
ce9a40de24 | ||
|
|
138f515754 | ||
|
|
eb0bc4dcfc | ||
|
|
cb0008f870 | ||
|
|
2913694585 | ||
|
|
055ac013f9 | ||
|
|
a415c8ad92 | ||
|
|
321a76096f | ||
|
|
5ec8f05e16 | ||
|
|
56fbba2ab7 | ||
|
|
4053d951bf |
10
.idea/.gitignore
generated
vendored
@@ -1,10 +0,0 @@
|
|||||||
# Default ignored files
|
|
||||||
/shelf/
|
|
||||||
/workspace.xml
|
|
||||||
# Editor-based HTTP Client requests
|
|
||||||
/httpRequests/
|
|
||||||
# Ignored default folder with query files
|
|
||||||
/queries/
|
|
||||||
# Datasource local storage ignored files
|
|
||||||
/dataSources/
|
|
||||||
/dataSources.local.xml
|
|
||||||
9
.idea/BordroRobot.iml
generated
@@ -1,9 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<module type="WEB_MODULE" version="4">
|
|
||||||
<component name="Go" enabled="true" />
|
|
||||||
<component name="NewModuleRootManager">
|
|
||||||
<content url="file://$MODULE_DIR$" />
|
|
||||||
<orderEntry type="inheritedJdk" />
|
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
|
||||||
</component>
|
|
||||||
</module>
|
|
||||||
10
.idea/go.imports.xml
generated
@@ -1,10 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="GoImports">
|
|
||||||
<option name="excludedPackages">
|
|
||||||
<array>
|
|
||||||
<option value="golang.org/x/net/context" />
|
|
||||||
</array>
|
|
||||||
</option>
|
|
||||||
</component>
|
|
||||||
</project>
|
|
||||||
6
.idea/inspectionProfiles/Project_Default.xml
generated
@@ -1,6 +0,0 @@
|
|||||||
<component name="InspectionProjectProfileManager">
|
|
||||||
<profile version="1.0">
|
|
||||||
<option name="myName" value="Project Default" />
|
|
||||||
<inspection_tool class="Eslint" enabled="true" level="WARNING" enabled_by_default="true" />
|
|
||||||
</profile>
|
|
||||||
</component>
|
|
||||||
8
.idea/modules.xml
generated
@@ -1,8 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="ProjectModuleManager">
|
|
||||||
<modules>
|
|
||||||
<module fileurl="file://$PROJECT_DIR$/.idea/BordroRobot.iml" filepath="$PROJECT_DIR$/.idea/BordroRobot.iml" />
|
|
||||||
</modules>
|
|
||||||
</component>
|
|
||||||
</project>
|
|
||||||
6
.idea/vcs.xml
generated
@@ -1,6 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="VcsDirectoryMappings">
|
|
||||||
<mapping directory="" vcs="Git" />
|
|
||||||
</component>
|
|
||||||
</project>
|
|
||||||
17
.vscode/launch.json
vendored
@@ -1,17 +0,0 @@
|
|||||||
{
|
|
||||||
// Use IntelliSense to learn about possible attributes.
|
|
||||||
// Hover to view descriptions of existing attributes.
|
|
||||||
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
|
||||||
"version": "0.2.0",
|
|
||||||
"configurations": [
|
|
||||||
{
|
|
||||||
"name": "Launch Package",
|
|
||||||
"type": "go",
|
|
||||||
"request": "launch",
|
|
||||||
"mode": "auto",
|
|
||||||
"program": "./app/main.go",
|
|
||||||
"env": {},
|
|
||||||
"args": []
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
BIN
app/.DS_Store
vendored
874
app/Taskfile.yml
@@ -1,438 +1,438 @@
|
|||||||
version: '3'
|
version: '3'
|
||||||
|
|
||||||
vars:
|
vars:
|
||||||
APP_NAME: "bordro-robotu"
|
APP_NAME: "bordro-robotu"
|
||||||
BIN_DIR: "bin"
|
BIN_DIR: "bin"
|
||||||
|
|
||||||
tasks:
|
tasks:
|
||||||
|
|
||||||
## -------------------------- Build -------------------------- ##
|
## -------------------------- Build -------------------------- ##
|
||||||
|
|
||||||
build:
|
build:
|
||||||
summary: Builds the application
|
summary: Builds the application
|
||||||
cmds:
|
cmds:
|
||||||
# Build for current OS
|
# Build for current OS
|
||||||
- task: build:{{OS}}
|
- task: build:{{OS}}
|
||||||
|
|
||||||
# Uncomment to build for specific OSes
|
# Uncomment to build for specific OSes
|
||||||
# - task: build:linux
|
# - task: build:linux
|
||||||
# - task: build:windows
|
# - task: build:windows
|
||||||
# - task: build:darwin
|
# - task: build:darwin
|
||||||
|
|
||||||
|
|
||||||
## ------> Windows <-------
|
## ------> Windows <-------
|
||||||
|
|
||||||
build:windows:
|
build:windows:
|
||||||
summary: Builds the application for Windows
|
summary: Builds the application for Windows
|
||||||
deps:
|
deps:
|
||||||
- task: go:mod:tidy
|
- task: go:mod:tidy
|
||||||
- task: build:frontend
|
- task: build:frontend
|
||||||
- task: generate:icons
|
- task: generate:icons
|
||||||
- task: generate:syso
|
- task: generate:syso
|
||||||
vars:
|
vars:
|
||||||
ARCH: '{{.ARCH}}'
|
ARCH: '{{.ARCH}}'
|
||||||
cmds:
|
cmds:
|
||||||
- go build {{.BUILD_FLAGS}} -o {{.BIN_DIR}}/bordro-robotu.exe
|
- go build {{.BUILD_FLAGS}} -o {{.BIN_DIR}}/bordro-robotu.exe
|
||||||
vars:
|
vars:
|
||||||
BUILD_FLAGS: '{{if eq .PRODUCTION "true"}}-tags production -ldflags="-w -s -H windowsgui"{{else}}-gcflags=all="-N -l"{{end}}'
|
BUILD_FLAGS: '{{if eq .PRODUCTION "true"}}-tags production -ldflags="-w -s -H windowsgui"{{else}}-gcflags=all="-N -l"{{end}}'
|
||||||
env:
|
env:
|
||||||
GOOS: windows
|
GOOS: windows
|
||||||
CGO_ENABLED: 0
|
CGO_ENABLED: 0
|
||||||
GOARCH: '{{.ARCH | default ARCH}}'
|
GOARCH: '{{.ARCH | default ARCH}}'
|
||||||
PRODUCTION: '{{.PRODUCTION | default "false"}}'
|
PRODUCTION: '{{.PRODUCTION | default "false"}}'
|
||||||
|
|
||||||
build:windows:prod:arm64:
|
build:windows:prod:arm64:
|
||||||
summary: Creates a production build of the application
|
summary: Creates a production build of the application
|
||||||
cmds:
|
cmds:
|
||||||
- task: build:windows
|
- task: build:windows
|
||||||
vars:
|
vars:
|
||||||
ARCH: arm64
|
ARCH: arm64
|
||||||
PRODUCTION: "true"
|
PRODUCTION: "true"
|
||||||
|
|
||||||
build:windows:prod:amd64:
|
build:windows:prod:amd64:
|
||||||
summary: Creates a production build of the application
|
summary: Creates a production build of the application
|
||||||
cmds:
|
cmds:
|
||||||
- task: build:windows
|
- task: build:windows
|
||||||
vars:
|
vars:
|
||||||
ARCH: amd64
|
ARCH: amd64
|
||||||
PRODUCTION: "true"
|
PRODUCTION: "true"
|
||||||
|
|
||||||
build:windows:debug:arm64:
|
build:windows:debug:arm64:
|
||||||
summary: Creates a debug build of the application
|
summary: Creates a debug build of the application
|
||||||
cmds:
|
cmds:
|
||||||
- task: build:windows
|
- task: build:windows
|
||||||
vars:
|
vars:
|
||||||
ARCH: arm64
|
ARCH: arm64
|
||||||
|
|
||||||
build:windows:debug:amd64:
|
build:windows:debug:amd64:
|
||||||
summary: Creates a debug build of the application
|
summary: Creates a debug build of the application
|
||||||
cmds:
|
cmds:
|
||||||
- task: build:windows
|
- task: build:windows
|
||||||
vars:
|
vars:
|
||||||
ARCH: amd64
|
ARCH: amd64
|
||||||
|
|
||||||
## ------> Darwin <-------
|
## ------> Darwin <-------
|
||||||
|
|
||||||
build:darwin:
|
build:darwin:
|
||||||
summary: Creates a production build of the application
|
summary: Creates a production build of the application
|
||||||
deps:
|
deps:
|
||||||
- task: go:mod:tidy
|
- task: go:mod:tidy
|
||||||
- task: build:frontend
|
- task: build:frontend
|
||||||
- task: generate:icons
|
- task: generate:icons
|
||||||
cmds:
|
cmds:
|
||||||
- go build {{.BUILD_FLAGS}} -o {{.BIN_DIR}}/{{.APP_NAME}}
|
- go build {{.BUILD_FLAGS}} -o {{.BIN_DIR}}/{{.APP_NAME}}
|
||||||
vars:
|
vars:
|
||||||
BUILD_FLAGS: '{{if eq .PRODUCTION "true"}}-tags production -ldflags="-w -s"{{else}}-gcflags=all="-N -l"{{end}}'
|
BUILD_FLAGS: '{{if eq .PRODUCTION "true"}}-tags production -ldflags="-w -s"{{else}}-gcflags=all="-N -l"{{end}}'
|
||||||
env:
|
env:
|
||||||
GOOS: darwin
|
GOOS: darwin
|
||||||
CGO_ENABLED: 1
|
CGO_ENABLED: 1
|
||||||
GOARCH: '{{.ARCH | default ARCH}}'
|
GOARCH: '{{.ARCH | default ARCH}}'
|
||||||
CGO_CFLAGS: "-mmacosx-version-min=10.15"
|
CGO_CFLAGS: "-mmacosx-version-min=10.15"
|
||||||
CGO_LDFLAGS: "-mmacosx-version-min=10.15"
|
CGO_LDFLAGS: "-mmacosx-version-min=10.15"
|
||||||
MACOSX_DEPLOYMENT_TARGET: "10.15"
|
MACOSX_DEPLOYMENT_TARGET: "10.15"
|
||||||
PRODUCTION: '{{.PRODUCTION | default "false"}}'
|
PRODUCTION: '{{.PRODUCTION | default "false"}}'
|
||||||
|
|
||||||
build:darwin:prod:arm64:
|
build:darwin:prod:arm64:
|
||||||
summary: Creates a production build of the application
|
summary: Creates a production build of the application
|
||||||
cmds:
|
cmds:
|
||||||
- task: build:darwin
|
- task: build:darwin
|
||||||
vars:
|
vars:
|
||||||
ARCH: arm64
|
ARCH: arm64
|
||||||
PRODUCTION: "true"
|
PRODUCTION: "true"
|
||||||
|
|
||||||
build:darwin:prod:amd64:
|
build:darwin:prod:amd64:
|
||||||
summary: Creates a production build of the application
|
summary: Creates a production build of the application
|
||||||
cmds:
|
cmds:
|
||||||
- task: build:darwin
|
- task: build:darwin
|
||||||
vars:
|
vars:
|
||||||
ARCH: amd64
|
ARCH: amd64
|
||||||
PRODUCTION: "true"
|
PRODUCTION: "true"
|
||||||
|
|
||||||
build:darwin:debug:arm64:
|
build:darwin:debug:arm64:
|
||||||
summary: Creates a debug build of the application
|
summary: Creates a debug build of the application
|
||||||
cmds:
|
cmds:
|
||||||
- task: build:darwin
|
- task: build:darwin
|
||||||
vars:
|
vars:
|
||||||
ARCH: arm64
|
ARCH: arm64
|
||||||
|
|
||||||
build:darwin:debug:amd64:
|
build:darwin:debug:amd64:
|
||||||
summary: Creates a debug build of the application
|
summary: Creates a debug build of the application
|
||||||
cmds:
|
cmds:
|
||||||
- task: build:darwin
|
- task: build:darwin
|
||||||
vars:
|
vars:
|
||||||
ARCH: amd64
|
ARCH: amd64
|
||||||
|
|
||||||
|
|
||||||
## ------> Linux <-------
|
## ------> Linux <-------
|
||||||
|
|
||||||
build:linux:
|
build:linux:
|
||||||
summary: Builds the application for Linux
|
summary: Builds the application for Linux
|
||||||
deps:
|
deps:
|
||||||
- task: go:mod:tidy
|
- task: go:mod:tidy
|
||||||
- task: build:frontend
|
- task: build:frontend
|
||||||
- task: generate:icons
|
- task: generate:icons
|
||||||
vars:
|
vars:
|
||||||
ARCH: '{{.ARCH}}'
|
ARCH: '{{.ARCH}}'
|
||||||
cmds:
|
cmds:
|
||||||
- go build {{.BUILD_FLAGS}} -o {{.BIN_DIR}}/bordro-robotu
|
- go build {{.BUILD_FLAGS}} -o {{.BIN_DIR}}/bordro-robotu
|
||||||
vars:
|
vars:
|
||||||
BUILD_FLAGS: '{{if eq .PRODUCTION "true"}}-tags production -ldflags="-w -s"{{else}}-gcflags=all="-N -l"{{end}}'
|
BUILD_FLAGS: '{{if eq .PRODUCTION "true"}}-tags production -ldflags="-w -s"{{else}}-gcflags=all="-N -l"{{end}}'
|
||||||
env:
|
env:
|
||||||
GOOS: linux
|
GOOS: linux
|
||||||
CGO_ENABLED: 1
|
CGO_ENABLED: 1
|
||||||
GOARCH: '{{.ARCH | default ARCH}}'
|
GOARCH: '{{.ARCH | default ARCH}}'
|
||||||
PRODUCTION: '{{.PRODUCTION | default "false"}}'
|
PRODUCTION: '{{.PRODUCTION | default "false"}}'
|
||||||
|
|
||||||
build:linux:prod:arm64:
|
build:linux:prod:arm64:
|
||||||
summary: Creates a production build of the application
|
summary: Creates a production build of the application
|
||||||
cmds:
|
cmds:
|
||||||
- task: build:linux
|
- task: build:linux
|
||||||
vars:
|
vars:
|
||||||
ARCH: arm64
|
ARCH: arm64
|
||||||
PRODUCTION: "true"
|
PRODUCTION: "true"
|
||||||
|
|
||||||
build:linux:prod:amd64:
|
build:linux:prod:amd64:
|
||||||
summary: Creates a production build of the application
|
summary: Creates a production build of the application
|
||||||
cmds:
|
cmds:
|
||||||
- task: build:linux
|
- task: build:linux
|
||||||
vars:
|
vars:
|
||||||
ARCH: amd64
|
ARCH: amd64
|
||||||
PRODUCTION: "true"
|
PRODUCTION: "true"
|
||||||
|
|
||||||
build:linux:debug:arm64:
|
build:linux:debug:arm64:
|
||||||
summary: Creates a debug build of the application
|
summary: Creates a debug build of the application
|
||||||
cmds:
|
cmds:
|
||||||
- task: build:linux
|
- task: build:linux
|
||||||
vars:
|
vars:
|
||||||
ARCH: arm64
|
ARCH: arm64
|
||||||
|
|
||||||
build:linux:debug:amd64:
|
build:linux:debug:amd64:
|
||||||
summary: Creates a debug build of the application
|
summary: Creates a debug build of the application
|
||||||
cmds:
|
cmds:
|
||||||
- task: build:linux
|
- task: build:linux
|
||||||
vars:
|
vars:
|
||||||
ARCH: amd64
|
ARCH: amd64
|
||||||
|
|
||||||
## -------------------------- Package -------------------------- ##
|
## -------------------------- Package -------------------------- ##
|
||||||
|
|
||||||
package:
|
package:
|
||||||
summary: Packages a production build of the application into a bundle
|
summary: Packages a production build of the application into a bundle
|
||||||
cmds:
|
cmds:
|
||||||
|
|
||||||
# Package for current OS
|
# Package for current OS
|
||||||
- task: package:{{OS}}
|
- task: package:{{OS}}
|
||||||
|
|
||||||
# Package for specific os/arch
|
# Package for specific os/arch
|
||||||
# - task: package:darwin:arm64
|
# - task: package:darwin:arm64
|
||||||
# - task: package:darwin:amd64
|
# - task: package:darwin:amd64
|
||||||
# - task: package:windows:arm64
|
# - task: package:windows:arm64
|
||||||
# - task: package:windows:amd64
|
# - task: package:windows:amd64
|
||||||
|
|
||||||
## ------> Windows <------
|
## ------> Windows <------
|
||||||
|
|
||||||
package:windows:
|
package:windows:
|
||||||
summary: Packages a production build of the application into a `.exe` bundle
|
summary: Packages a production build of the application into a `.exe` bundle
|
||||||
cmds:
|
cmds:
|
||||||
- task: create:nsis:installer
|
- task: create:nsis:installer
|
||||||
vars:
|
vars:
|
||||||
ARCH: '{{.ARCH}}'
|
ARCH: '{{.ARCH}}'
|
||||||
vars:
|
vars:
|
||||||
ARCH: '{{.ARCH | default ARCH}}'
|
ARCH: '{{.ARCH | default ARCH}}'
|
||||||
|
|
||||||
package:windows:arm64:
|
package:windows:arm64:
|
||||||
summary: Packages a production build of the application into a `.exe` bundle
|
summary: Packages a production build of the application into a `.exe` bundle
|
||||||
cmds:
|
cmds:
|
||||||
- task: package:windows
|
- task: package:windows
|
||||||
vars:
|
vars:
|
||||||
ARCH: arm64
|
ARCH: arm64
|
||||||
|
|
||||||
package:windows:amd64:
|
package:windows:amd64:
|
||||||
summary: Packages a production build of the application into a `.exe` bundle
|
summary: Packages a production build of the application into a `.exe` bundle
|
||||||
cmds:
|
cmds:
|
||||||
- task: package:windows
|
- task: package:windows
|
||||||
vars:
|
vars:
|
||||||
ARCH: amd64
|
ARCH: amd64
|
||||||
|
|
||||||
generate:syso:
|
generate:syso:
|
||||||
summary: Generates Windows `.syso` file
|
summary: Generates Windows `.syso` file
|
||||||
dir: build
|
dir: build
|
||||||
cmds:
|
cmds:
|
||||||
- wails3 generate syso -arch {{.ARCH}} -icon icon.ico -manifest wails.exe.manifest -info info.json -out ../wails.syso
|
- wails3 generate syso -arch {{.ARCH}} -icon icon.ico -manifest wails.exe.manifest -info info.json -out ../wails.syso
|
||||||
vars:
|
vars:
|
||||||
ARCH: '{{.ARCH | default ARCH}}'
|
ARCH: '{{.ARCH | default ARCH}}'
|
||||||
|
|
||||||
create:nsis:installer:
|
create:nsis:installer:
|
||||||
summary: Creates an NSIS installer
|
summary: Creates an NSIS installer
|
||||||
label: "NSIS Installer ({{.ARCH}})"
|
label: "NSIS Installer ({{.ARCH}})"
|
||||||
dir: build/nsis
|
dir: build/nsis
|
||||||
sources:
|
sources:
|
||||||
- "{{.ROOT_DIR}}\\bin\\{{.APP_NAME}}.exe"
|
- "{{.ROOT_DIR}}\\bin\\{{.APP_NAME}}.exe"
|
||||||
generates:
|
generates:
|
||||||
- "{{.ROOT_DIR}}\\bin\\{{.APP_NAME}}-{{.ARCH}}-installer.exe"
|
- "{{.ROOT_DIR}}\\bin\\{{.APP_NAME}}-{{.ARCH}}-installer.exe"
|
||||||
deps:
|
deps:
|
||||||
- task: build:windows
|
- task: build:windows
|
||||||
vars:
|
vars:
|
||||||
PRODUCTION: "true"
|
PRODUCTION: "true"
|
||||||
ARCH: '{{.ARCH}}'
|
ARCH: '{{.ARCH}}'
|
||||||
cmds:
|
cmds:
|
||||||
- makensis -DARG_WAILS_'{{.ARG_FLAG}}'_BINARY="{{.ROOT_DIR}}\{{.BIN_DIR}}\{{.APP_NAME}}.exe" project.nsi
|
- makensis -DARG_WAILS_'{{.ARG_FLAG}}'_BINARY="{{.ROOT_DIR}}\{{.BIN_DIR}}\{{.APP_NAME}}.exe" project.nsi
|
||||||
vars:
|
vars:
|
||||||
ARCH: '{{.ARCH | default ARCH}}'
|
ARCH: '{{.ARCH | default ARCH}}'
|
||||||
ARG_FLAG: '{{if eq .ARCH "amd64"}}AMD64{{else}}ARM64{{end}}'
|
ARG_FLAG: '{{if eq .ARCH "amd64"}}AMD64{{else}}ARM64{{end}}'
|
||||||
|
|
||||||
## ------> Darwin <------
|
## ------> Darwin <------
|
||||||
|
|
||||||
package:darwin:
|
package:darwin:
|
||||||
summary: Packages a production build of the application into a `.app` bundle
|
summary: Packages a production build of the application into a `.app` bundle
|
||||||
platforms: [ darwin ]
|
platforms: [ darwin ]
|
||||||
deps:
|
deps:
|
||||||
- task: build:darwin
|
- task: build:darwin
|
||||||
vars:
|
vars:
|
||||||
PRODUCTION: "true"
|
PRODUCTION: "true"
|
||||||
cmds:
|
cmds:
|
||||||
- task: create:app:bundle
|
- task: create:app:bundle
|
||||||
|
|
||||||
package:darwin:arm64:
|
package:darwin:arm64:
|
||||||
summary: Packages a production build of the application into a `.app` bundle
|
summary: Packages a production build of the application into a `.app` bundle
|
||||||
platforms: [ darwin/arm64 ]
|
platforms: [ darwin/arm64 ]
|
||||||
deps:
|
deps:
|
||||||
- task: package:darwin
|
- task: package:darwin
|
||||||
vars:
|
vars:
|
||||||
ARCH: arm64
|
ARCH: arm64
|
||||||
|
|
||||||
package:darwin:amd64:
|
package:darwin:amd64:
|
||||||
summary: Packages a production build of the application into a `.app` bundle
|
summary: Packages a production build of the application into a `.app` bundle
|
||||||
platforms: [ darwin/amd64 ]
|
platforms: [ darwin/amd64 ]
|
||||||
deps:
|
deps:
|
||||||
- task: package:darwin
|
- task: package:darwin
|
||||||
vars:
|
vars:
|
||||||
ARCH: amd64
|
ARCH: amd64
|
||||||
|
|
||||||
create:app:bundle:
|
create:app:bundle:
|
||||||
summary: Creates an `.app` bundle
|
summary: Creates an `.app` bundle
|
||||||
cmds:
|
cmds:
|
||||||
- mkdir -p {{.BIN_DIR}}/{{.APP_NAME}}.app/Contents/{MacOS,Resources}
|
- mkdir -p {{.BIN_DIR}}/{{.APP_NAME}}.app/Contents/{MacOS,Resources}
|
||||||
- cp build/icons.icns {{.BIN_DIR}}/{{.APP_NAME}}.app/Contents/Resources
|
- cp build/icons.icns {{.BIN_DIR}}/{{.APP_NAME}}.app/Contents/Resources
|
||||||
- cp {{.BIN_DIR}}/{{.APP_NAME}} {{.BIN_DIR}}/{{.APP_NAME}}.app/Contents/MacOS
|
- cp {{.BIN_DIR}}/{{.APP_NAME}} {{.BIN_DIR}}/{{.APP_NAME}}.app/Contents/MacOS
|
||||||
- cp build/Info.plist {{.BIN_DIR}}/{{.APP_NAME}}.app/Contents
|
- cp build/Info.plist {{.BIN_DIR}}/{{.APP_NAME}}.app/Contents
|
||||||
|
|
||||||
## ------> Linux <------
|
## ------> Linux <------
|
||||||
|
|
||||||
package:linux:
|
package:linux:
|
||||||
summary: Packages a production build of the application for Linux
|
summary: Packages a production build of the application for Linux
|
||||||
platforms: [ linux ]
|
platforms: [ linux ]
|
||||||
deps:
|
deps:
|
||||||
- task: build:linux
|
- task: build:linux
|
||||||
vars:
|
vars:
|
||||||
PRODUCTION: "true"
|
PRODUCTION: "true"
|
||||||
cmds:
|
cmds:
|
||||||
- task: create:appimage
|
- task: create:appimage
|
||||||
|
|
||||||
create:appimage:
|
create:appimage:
|
||||||
summary: Creates an AppImage
|
summary: Creates an AppImage
|
||||||
dir: build/appimage
|
dir: build/appimage
|
||||||
platforms: [ linux ]
|
platforms: [ linux ]
|
||||||
deps:
|
deps:
|
||||||
- task: build:linux
|
- task: build:linux
|
||||||
vars:
|
vars:
|
||||||
PRODUCTION: "true"
|
PRODUCTION: "true"
|
||||||
- task: generate:linux:dotdesktop
|
- task: generate:linux:dotdesktop
|
||||||
cmds:
|
cmds:
|
||||||
# Copy binary + icon to appimage dir
|
# Copy binary + icon to appimage dir
|
||||||
- cp {{.APP_BINARY}} {{.APP_NAME}}
|
- cp {{.APP_BINARY}} {{.APP_NAME}}
|
||||||
- cp ../appicon.png appicon.png
|
- cp ../appicon.png appicon.png
|
||||||
# Generate AppImage
|
# Generate AppImage
|
||||||
- wails3 generate appimage -binary {{.APP_NAME}} -icon {{.ICON}} -desktopfile {{.DESKTOP_FILE}} -outputdir {{.OUTPUT_DIR}} -builddir {{.ROOT_DIR}}/build/appimage
|
- wails3 generate appimage -binary {{.APP_NAME}} -icon {{.ICON}} -desktopfile {{.DESKTOP_FILE}} -outputdir {{.OUTPUT_DIR}} -builddir {{.ROOT_DIR}}/build/appimage
|
||||||
vars:
|
vars:
|
||||||
APP_NAME: '{{.APP_NAME}}'
|
APP_NAME: '{{.APP_NAME}}'
|
||||||
APP_BINARY: '../../bin/{{.APP_NAME}}'
|
APP_BINARY: '../../bin/{{.APP_NAME}}'
|
||||||
ICON: '../appicon.png'
|
ICON: '../appicon.png'
|
||||||
DESKTOP_FILE: '{{.APP_NAME}}.desktop'
|
DESKTOP_FILE: '{{.APP_NAME}}.desktop'
|
||||||
OUTPUT_DIR: '../../bin'
|
OUTPUT_DIR: '../../bin'
|
||||||
|
|
||||||
generate:linux:dotdesktop:
|
generate:linux:dotdesktop:
|
||||||
summary: Generates a `.desktop` file
|
summary: Generates a `.desktop` file
|
||||||
dir: build
|
dir: build
|
||||||
sources:
|
sources:
|
||||||
- "appicon.png"
|
- "appicon.png"
|
||||||
generates:
|
generates:
|
||||||
- '{{.ROOT_DIR}}/build/appimage/{{.APP_NAME}}.desktop'
|
- '{{.ROOT_DIR}}/build/appimage/{{.APP_NAME}}.desktop'
|
||||||
cmds:
|
cmds:
|
||||||
- mkdir -p {{.ROOT_DIR}}/build/appimage
|
- mkdir -p {{.ROOT_DIR}}/build/appimage
|
||||||
# Run `wails3 generate .desktop -help` for all the options
|
# Run `wails3 generate .desktop -help` for all the options
|
||||||
- wails3 generate .desktop -name "{{.APP_NAME}}" -exec "{{.EXEC}}" -icon "{{.ICON}}" -outputfile {{.ROOT_DIR}}/build/appimage/{{.APP_NAME}}.desktop -categories "{{.CATEGORIES}}"
|
- wails3 generate .desktop -name "{{.APP_NAME}}" -exec "{{.EXEC}}" -icon "{{.ICON}}" -outputfile {{.ROOT_DIR}}/build/appimage/{{.APP_NAME}}.desktop -categories "{{.CATEGORIES}}"
|
||||||
# -comment "A comment"
|
# -comment "A comment"
|
||||||
# -terminal "true"
|
# -terminal "true"
|
||||||
# -version "1.0"
|
# -version "1.0"
|
||||||
# -genericname "Generic Name"
|
# -genericname "Generic Name"
|
||||||
# -keywords "keyword1;keyword2;"
|
# -keywords "keyword1;keyword2;"
|
||||||
# -startupnotify "true"
|
# -startupnotify "true"
|
||||||
# -mimetype "application/x-extension1;application/x-extension2;"
|
# -mimetype "application/x-extension1;application/x-extension2;"
|
||||||
|
|
||||||
vars:
|
vars:
|
||||||
APP_NAME: '{{.APP_NAME}}'
|
APP_NAME: '{{.APP_NAME}}'
|
||||||
EXEC: '{{.APP_NAME}}'
|
EXEC: '{{.APP_NAME}}'
|
||||||
ICON: 'appicon'
|
ICON: 'appicon'
|
||||||
CATEGORIES: 'Development;'
|
CATEGORIES: 'Development;'
|
||||||
OUTPUTFILE: '{{.ROOT_DIR}}/build/appimage/{{.APP_NAME}}.desktop'
|
OUTPUTFILE: '{{.ROOT_DIR}}/build/appimage/{{.APP_NAME}}.desktop'
|
||||||
|
|
||||||
## -------------------------- Misc -------------------------- ##
|
## -------------------------- Misc -------------------------- ##
|
||||||
|
|
||||||
|
|
||||||
generate:icons:
|
generate:icons:
|
||||||
summary: Generates Windows `.ico` and Mac `.icns` files from an image
|
summary: Generates Windows `.ico` and Mac `.icns` files from an image
|
||||||
dir: build
|
dir: build
|
||||||
sources:
|
sources:
|
||||||
- "appicon.png"
|
- "appicon.png"
|
||||||
generates:
|
generates:
|
||||||
- "icons.icns"
|
- "icons.icns"
|
||||||
- "icons.ico"
|
- "icons.ico"
|
||||||
method: timestamp
|
method: timestamp
|
||||||
cmds:
|
cmds:
|
||||||
# Generates both .ico and .icns files
|
# Generates both .ico and .icns files
|
||||||
- wails3 generate icons -input appicon.png
|
- wails3 generate icons -input appicon.png
|
||||||
|
|
||||||
install:frontend:deps:
|
install:frontend:deps:
|
||||||
summary: Install frontend dependencies
|
summary: Install frontend dependencies
|
||||||
dir: frontend
|
dir: frontend
|
||||||
sources:
|
sources:
|
||||||
- package.json
|
- package.json
|
||||||
- package-lock.json
|
- package-lock.json
|
||||||
generates:
|
generates:
|
||||||
- node_modules/*
|
- node_modules/*
|
||||||
preconditions:
|
preconditions:
|
||||||
- sh: npm version
|
- sh: npm version
|
||||||
msg: "Looks like npm isn't installed. Npm is part of the Node installer: https://nodejs.org/en/download/"
|
msg: "Looks like npm isn't installed. Npm is part of the Node installer: https://nodejs.org/en/download/"
|
||||||
cmds:
|
cmds:
|
||||||
# - npm install --silent --no-progress
|
# - npm install --silent --no-progress
|
||||||
- npm install
|
- npm install
|
||||||
|
|
||||||
build:frontend:
|
build:frontend:
|
||||||
summary: Build the frontend project
|
summary: Build the frontend project
|
||||||
dir: frontend
|
dir: frontend
|
||||||
sources:
|
sources:
|
||||||
- "**/*"
|
- "**/*"
|
||||||
generates:
|
generates:
|
||||||
- dist/*
|
- dist/*
|
||||||
deps:
|
deps:
|
||||||
- install:frontend:deps
|
- install:frontend:deps
|
||||||
- generate:bindings
|
- generate:bindings
|
||||||
cmds:
|
cmds:
|
||||||
- npm run build -q
|
- npm run build -q
|
||||||
|
|
||||||
generate:bindings:
|
generate:bindings:
|
||||||
summary: Generates bindings for the frontend
|
summary: Generates bindings for the frontend
|
||||||
sources:
|
sources:
|
||||||
- "**/*.go"
|
- "**/*.go"
|
||||||
generates:
|
generates:
|
||||||
- "frontend/bindings/**/*"
|
- "frontend/bindings/**/*"
|
||||||
cmds:
|
cmds:
|
||||||
- wails3 generate bindings -silent
|
- wails3 generate bindings -silent
|
||||||
# - wails3 generate bindings -silent
|
# - wails3 generate bindings -silent
|
||||||
|
|
||||||
go:mod:tidy:
|
go:mod:tidy:
|
||||||
summary: Runs `go mod tidy`
|
summary: Runs `go mod tidy`
|
||||||
internal: true
|
internal: true
|
||||||
generates:
|
generates:
|
||||||
- go.sum
|
- go.sum
|
||||||
sources:
|
sources:
|
||||||
- go.mod
|
- go.mod
|
||||||
cmds:
|
cmds:
|
||||||
- go mod tidy
|
- go mod tidy
|
||||||
|
|
||||||
# ----------------------- dev ----------------------- #
|
# ----------------------- dev ----------------------- #
|
||||||
|
|
||||||
|
|
||||||
run:
|
run:
|
||||||
summary: Runs the application
|
summary: Runs the application
|
||||||
cmds:
|
cmds:
|
||||||
- task: run:{{OS}}
|
- task: run:{{OS}}
|
||||||
|
|
||||||
run:windows:
|
run:windows:
|
||||||
cmds:
|
cmds:
|
||||||
- '{{.BIN_DIR}}\\{{.APP_NAME}}.exe'
|
- '{{.BIN_DIR}}\\{{.APP_NAME}}.exe'
|
||||||
|
|
||||||
run:linux:
|
run:linux:
|
||||||
cmds:
|
cmds:
|
||||||
- '{{.BIN_DIR}}/{{.APP_NAME}}'
|
- '{{.BIN_DIR}}/{{.APP_NAME}}'
|
||||||
|
|
||||||
dev:frontend:
|
dev:frontend:
|
||||||
summary: Runs the frontend in development mode
|
summary: Runs the frontend in development mode
|
||||||
dir: frontend
|
dir: frontend
|
||||||
deps:
|
deps:
|
||||||
- task: install:frontend:deps
|
- task: install:frontend:deps
|
||||||
cmds:
|
cmds:
|
||||||
- npm run dev
|
- npm run dev
|
||||||
|
|
||||||
dev:
|
dev:
|
||||||
summary: Runs the application in development mode
|
summary: Runs the application in development mode
|
||||||
cmds:
|
cmds:
|
||||||
- wails3 tool watcher -config ./build/devmode.config.toml
|
- wails3 tool watcher -config ./build/devmode.config.toml
|
||||||
env:
|
env:
|
||||||
# This is the default vite dev server port
|
# This is the default vite dev server port
|
||||||
FRONTEND_DEVSERVER_URL: 'http://localhost:5173'
|
FRONTEND_DEVSERVER_URL: 'http://localhost:5173'
|
||||||
|
|
||||||
dev:reload:
|
dev:reload:
|
||||||
summary: Reloads the application
|
summary: Reloads the application
|
||||||
cmds:
|
cmds:
|
||||||
- task: run
|
- task: run
|
||||||
34
app/bordro-robotu/.gitignore
vendored
@@ -1,34 +0,0 @@
|
|||||||
.DS_Store
|
|
||||||
.thumbs.db
|
|
||||||
node_modules
|
|
||||||
/.node_modules
|
|
||||||
|
|
||||||
# Quasar core related directories
|
|
||||||
.quasar
|
|
||||||
/dist
|
|
||||||
/quasar.config.*.temporary.compiled*
|
|
||||||
|
|
||||||
# Cordova related directories and files
|
|
||||||
/src-cordova/node_modules
|
|
||||||
/src-cordova/platforms
|
|
||||||
/src-cordova/plugins
|
|
||||||
/src-cordova/www
|
|
||||||
|
|
||||||
# Capacitor related directories and files
|
|
||||||
/src-capacitor/www
|
|
||||||
/src-capacitor/node_modules
|
|
||||||
|
|
||||||
# Log files
|
|
||||||
npm-debug.log*
|
|
||||||
yarn-debug.log*
|
|
||||||
yarn-error.log*
|
|
||||||
|
|
||||||
# Editor directories and files
|
|
||||||
.idea
|
|
||||||
*.suo
|
|
||||||
*.ntvs*
|
|
||||||
*.njsproj
|
|
||||||
*.sln
|
|
||||||
|
|
||||||
# local .env files
|
|
||||||
.env.local*
|
|
||||||
BIN
app/bordro-robotu/frontend/dist/Inter-Medium.ttf
vendored
15
app/bordro-robotu/frontend/dist/index.html
vendored
@@ -1,15 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8" />
|
|
||||||
<link rel="icon" type="image/svg+xml" href="/wails.png" />
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
||||||
<!-- <link rel="stylesheet" href="/style.css" /> -->
|
|
||||||
<title>Wails + Vue</title>
|
|
||||||
<script type="module" crossorigin src="/assets/index-CvjddRoH.js"></script>
|
|
||||||
<link rel="stylesheet" crossorigin href="/assets/index-QSDk4erA.css">
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div id="app"></div>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="32" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path fill="#F7DF1E" d="M0 0h256v256H0V0Z"></path><path d="m67.312 213.932l19.59-11.856c3.78 6.701 7.218 12.371 15.465 12.371c7.905 0 12.89-3.092 12.89-15.12v-81.798h24.057v82.138c0 24.917-14.606 36.259-35.916 36.259c-19.245 0-30.416-9.967-36.087-21.996m85.07-2.576l19.588-11.341c5.157 8.421 11.859 14.607 23.715 14.607c9.969 0 16.325-4.984 16.325-11.858c0-8.248-6.53-11.17-17.528-15.98l-6.013-2.58c-17.357-7.387-28.87-16.667-28.87-36.257c0-18.044 13.747-31.792 35.228-31.792c15.294 0 26.292 5.328 34.196 19.247l-18.732 12.03c-4.125-7.389-8.591-10.31-15.465-10.31c-7.046 0-11.514 4.468-11.514 10.31c0 7.217 4.468 10.14 14.778 14.608l6.014 2.577c20.45 8.765 31.963 17.7 31.963 37.804c0 21.654-17.012 33.51-39.867 33.51c-22.339 0-36.774-10.654-43.819-24.574"></path></svg>
|
|
||||||
|
Before Width: | Height: | Size: 995 B |
146
app/bordro-robotu/frontend/dist/style.css
vendored
@@ -1,146 +0,0 @@
|
|||||||
:root {
|
|
||||||
font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto",
|
|
||||||
"Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue",
|
|
||||||
sans-serif;
|
|
||||||
font-size: 16px;
|
|
||||||
line-height: 24px;
|
|
||||||
font-weight: 400;
|
|
||||||
color-scheme: light dark;
|
|
||||||
color: rgba(255, 255, 255, 0.87);
|
|
||||||
background-color: rgba(27, 38, 54, 1);
|
|
||||||
font-synthesis: none;
|
|
||||||
text-rendering: optimizeLegibility;
|
|
||||||
-webkit-font-smoothing: antialiased;
|
|
||||||
-moz-osx-font-smoothing: grayscale;
|
|
||||||
-webkit-text-size-adjust: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
* {
|
|
||||||
user-select: none;
|
|
||||||
-webkit-user-select: none;
|
|
||||||
-moz-user-select: none;
|
|
||||||
-ms-user-select: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: "Inter";
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 400;
|
|
||||||
src: local(""),
|
|
||||||
url("./Inter-Medium.ttf") format("truetype");
|
|
||||||
}
|
|
||||||
|
|
||||||
h3 {
|
|
||||||
font-size: 3em;
|
|
||||||
line-height: 1.1;
|
|
||||||
}
|
|
||||||
|
|
||||||
a {
|
|
||||||
font-weight: 500;
|
|
||||||
color: #646cff;
|
|
||||||
text-decoration: inherit;
|
|
||||||
}
|
|
||||||
|
|
||||||
a:hover {
|
|
||||||
color: #535bf2;
|
|
||||||
}
|
|
||||||
|
|
||||||
button {
|
|
||||||
width: 60px;
|
|
||||||
height: 30px;
|
|
||||||
line-height: 30px;
|
|
||||||
border-radius: 3px;
|
|
||||||
border: none;
|
|
||||||
margin: 0 0 0 20px;
|
|
||||||
padding: 0 8px;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
.result {
|
|
||||||
height: 20px;
|
|
||||||
line-height: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
body {
|
|
||||||
margin: 0;
|
|
||||||
display: flex;
|
|
||||||
place-items: center;
|
|
||||||
place-content: center;
|
|
||||||
min-width: 320px;
|
|
||||||
min-height: 100vh;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
h1 {
|
|
||||||
font-size: 3.2em;
|
|
||||||
line-height: 1.1;
|
|
||||||
}
|
|
||||||
|
|
||||||
#app {
|
|
||||||
max-width: 1280px;
|
|
||||||
margin: 0 auto;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.result {
|
|
||||||
height: 20px;
|
|
||||||
line-height: 20px;
|
|
||||||
margin: 1.5rem auto;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer {
|
|
||||||
margin-top: 1rem;
|
|
||||||
align-content: center;
|
|
||||||
text-align: center;
|
|
||||||
color: rgba(255, 255, 255, 0.67);
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (prefers-color-scheme: light) {
|
|
||||||
:root {
|
|
||||||
color: #213547;
|
|
||||||
background-color: #ffffff;
|
|
||||||
}
|
|
||||||
|
|
||||||
a:hover {
|
|
||||||
color: #747bff;
|
|
||||||
}
|
|
||||||
|
|
||||||
button {
|
|
||||||
background-color: #f9f9f9;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.input-box .btn:hover {
|
|
||||||
background-image: linear-gradient(to top, #cfd9df 0%, #e2ebf0 100%);
|
|
||||||
color: #333333;
|
|
||||||
}
|
|
||||||
|
|
||||||
.input-box .input {
|
|
||||||
border: none;
|
|
||||||
border-radius: 3px;
|
|
||||||
outline: none;
|
|
||||||
height: 30px;
|
|
||||||
line-height: 30px;
|
|
||||||
padding: 0 10px;
|
|
||||||
color: black;
|
|
||||||
background-color: rgba(240, 240, 240, 1);
|
|
||||||
-webkit-font-smoothing: antialiased;
|
|
||||||
}
|
|
||||||
|
|
||||||
.input-box .input:hover {
|
|
||||||
border: none;
|
|
||||||
background-color: rgba(255, 255, 255, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
.input-box .input:focus {
|
|
||||||
border: none;
|
|
||||||
background-color: rgba(255, 255, 255, 1);
|
|
||||||
}
|
|
||||||
1
app/bordro-robotu/frontend/dist/vue.svg
vendored
@@ -1 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="37.07" height="36" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 198"><path fill="#41B883" d="M204.8 0H256L128 220.8L0 0h97.92L128 51.2L157.44 0h47.36Z"></path><path fill="#41B883" d="m0 0l128 220.8L256 0h-51.2L128 132.48L50.56 0H0Z"></path><path fill="#35495E" d="M50.56 0L128 133.12L204.8 0h-47.36L128 51.2L97.92 0H50.56Z"></path></svg>
|
|
||||||
|
Before Width: | Height: | Size: 496 B |
BIN
app/bordro-robotu/frontend/dist/wails.png
vendored
|
Before Width: | Height: | Size: 8.8 KiB |
@@ -1,32 +1,32 @@
|
|||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
<plist version="1.0">
|
<plist version="1.0">
|
||||||
<dict>
|
<dict>
|
||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
<string>APPL</string>
|
<string>APPL</string>
|
||||||
<key>CFBundleName</key>
|
<key>CFBundleName</key>
|
||||||
<string>My Product</string>
|
<string>My Product</string>
|
||||||
<key>CFBundleExecutable</key>
|
<key>CFBundleExecutable</key>
|
||||||
<string>bordro-robotu</string>
|
<string>bordro-robotu</string>
|
||||||
<key>CFBundleIdentifier</key>
|
<key>CFBundleIdentifier</key>
|
||||||
<string>com.wails.bordro-robotu</string>
|
<string>com.wails.bordro-robotu</string>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>0.1.0</string>
|
<string>0.1.0</string>
|
||||||
<key>CFBundleGetInfoString</key>
|
<key>CFBundleGetInfoString</key>
|
||||||
<string>This is a comment</string>
|
<string>This is a comment</string>
|
||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
<string>0.1.0</string>
|
<string>0.1.0</string>
|
||||||
<key>CFBundleIconFile</key>
|
<key>CFBundleIconFile</key>
|
||||||
<string>icons</string>
|
<string>icons</string>
|
||||||
<key>LSMinimumSystemVersion</key>
|
<key>LSMinimumSystemVersion</key>
|
||||||
<string>10.13.0</string>
|
<string>10.13.0</string>
|
||||||
<key>NSHighResolutionCapable</key>
|
<key>NSHighResolutionCapable</key>
|
||||||
<string>true</string>
|
<string>true</string>
|
||||||
<key>NSHumanReadableCopyright</key>
|
<key>NSHumanReadableCopyright</key>
|
||||||
<string>© now, My Company</string>
|
<string>© now, My Company</string>
|
||||||
<key>NSAppTransportSecurity</key>
|
<key>NSAppTransportSecurity</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>NSAllowsLocalNetworking</key>
|
<key>NSAllowsLocalNetworking</key>
|
||||||
<true/>
|
<true/>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
@@ -1,27 +1,27 @@
|
|||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
<plist version="1.0">
|
<plist version="1.0">
|
||||||
<dict>
|
<dict>
|
||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
<string>APPL</string>
|
<string>APPL</string>
|
||||||
<key>CFBundleName</key>
|
<key>CFBundleName</key>
|
||||||
<string>My Product</string>
|
<string>My Product</string>
|
||||||
<key>CFBundleExecutable</key>
|
<key>CFBundleExecutable</key>
|
||||||
<string>bordro-robotu</string>
|
<string>bordro-robotu</string>
|
||||||
<key>CFBundleIdentifier</key>
|
<key>CFBundleIdentifier</key>
|
||||||
<string>com.wails.bordro-robotu</string>
|
<string>com.wails.bordro-robotu</string>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>0.1.0</string>
|
<string>0.1.0</string>
|
||||||
<key>CFBundleGetInfoString</key>
|
<key>CFBundleGetInfoString</key>
|
||||||
<string>This is a comment</string>
|
<string>This is a comment</string>
|
||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
<string>0.1.0</string>
|
<string>0.1.0</string>
|
||||||
<key>CFBundleIconFile</key>
|
<key>CFBundleIconFile</key>
|
||||||
<string>icons</string>
|
<string>icons</string>
|
||||||
<key>LSMinimumSystemVersion</key>
|
<key>LSMinimumSystemVersion</key>
|
||||||
<string>10.13.0</string>
|
<string>10.13.0</string>
|
||||||
<key>NSHighResolutionCapable</key>
|
<key>NSHighResolutionCapable</key>
|
||||||
<string>true</string>
|
<string>true</string>
|
||||||
<key>NSHumanReadableCopyright</key>
|
<key>NSHumanReadableCopyright</key>
|
||||||
<string>© now, My Company</string>
|
<string>© now, My Company</string>
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
@@ -1,26 +1,26 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
# Copyright (c) 2018-Present Lea Anthony
|
# Copyright (c) 2018-Present Lea Anthony
|
||||||
# SPDX-License-Identifier: MIT
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
# Fail script on any error
|
# Fail script on any error
|
||||||
set -euxo pipefail
|
set -euxo pipefail
|
||||||
|
|
||||||
# Define variables
|
# Define variables
|
||||||
APP_DIR="${APP_NAME}.AppDir"
|
APP_DIR="${APP_NAME}.AppDir"
|
||||||
|
|
||||||
# Create AppDir structure
|
# Create AppDir structure
|
||||||
mkdir -p "${APP_DIR}/usr/bin"
|
mkdir -p "${APP_DIR}/usr/bin"
|
||||||
cp -r "${APP_BINARY}" "${APP_DIR}/usr/bin/"
|
cp -r "${APP_BINARY}" "${APP_DIR}/usr/bin/"
|
||||||
cp "${ICON_PATH}" "${APP_DIR}/"
|
cp "${ICON_PATH}" "${APP_DIR}/"
|
||||||
cp "${DESKTOP_FILE}" "${APP_DIR}/"
|
cp "${DESKTOP_FILE}" "${APP_DIR}/"
|
||||||
|
|
||||||
# Download linuxdeploy and make it executable
|
# Download linuxdeploy and make it executable
|
||||||
wget -q -4 -N https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
|
wget -q -4 -N https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
|
||||||
chmod +x linuxdeploy-x86_64.AppImage
|
chmod +x linuxdeploy-x86_64.AppImage
|
||||||
|
|
||||||
# Run linuxdeploy to bundle the application
|
# Run linuxdeploy to bundle the application
|
||||||
./linuxdeploy-x86_64.AppImage --appdir "${APP_DIR}" --output appimage
|
./linuxdeploy-x86_64.AppImage --appdir "${APP_DIR}" --output appimage
|
||||||
|
|
||||||
# Rename the generated AppImage
|
# Rename the generated AppImage
|
||||||
mv "${APP_NAME}*.AppImage" "${APP_NAME}.AppImage"
|
mv "${APP_NAME}*.AppImage" "${APP_NAME}.AppImage"
|
||||||
|
|
||||||
|
|||||||
@@ -1,35 +1,35 @@
|
|||||||
[config]
|
[config]
|
||||||
root_path = "."
|
root_path = "."
|
||||||
# debug | info | warn | error | mute
|
# debug | info | warn | error | mute
|
||||||
# Defaults to Info if not provided
|
# Defaults to Info if not provided
|
||||||
log_level = "warn"
|
log_level = "warn"
|
||||||
# Debounce setting for ignoring reptitive file system notifications
|
# Debounce setting for ignoring reptitive file system notifications
|
||||||
debounce = 1000 # Milliseconds
|
debounce = 1000 # Milliseconds
|
||||||
# Sets what files the watcher should ignore
|
# Sets what files the watcher should ignore
|
||||||
[config.ignore]
|
[config.ignore]
|
||||||
# Directories to ignore
|
# Directories to ignore
|
||||||
dir = [".git", "node_modules", "frontend", "bin"]
|
dir = [".git", "node_modules", "frontend", "bin"]
|
||||||
# Files to ignore
|
# Files to ignore
|
||||||
file = [".DS_Store", ".gitignore", ".gitkeep"]
|
file = [".DS_Store", ".gitignore", ".gitkeep"]
|
||||||
# File extensions to watch
|
# File extensions to watch
|
||||||
watched_extension = ["*.go"]
|
watched_extension = ["*.go"]
|
||||||
# Add .gitignore paths to ignore
|
# Add .gitignore paths to ignore
|
||||||
git_ignore = true
|
git_ignore = true
|
||||||
|
|
||||||
[config.background]
|
[config.background]
|
||||||
cmd = "wails3 task dev:frontend"
|
cmd = "wails3 task dev:frontend"
|
||||||
|
|
||||||
[[config.executes]]
|
[[config.executes]]
|
||||||
cmd = "go mod tidy"
|
cmd = "go mod tidy"
|
||||||
blocking = true
|
blocking = true
|
||||||
|
|
||||||
[[config.executes]]
|
[[config.executes]]
|
||||||
cmd = "wails3 task build"
|
cmd = "wails3 task build"
|
||||||
blocking = true
|
blocking = true
|
||||||
|
|
||||||
[[config.executes]]
|
[[config.executes]]
|
||||||
cmd = "KILL_STALE"
|
cmd = "KILL_STALE"
|
||||||
|
|
||||||
[[config.executes]]
|
[[config.executes]]
|
||||||
cmd = "./bin/bordro-robotu"
|
cmd = "./bin/bordro-robotu"
|
||||||
primary = true
|
primary = true
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 21 KiB |
@@ -1,15 +1,15 @@
|
|||||||
{
|
{
|
||||||
"fixed": {
|
"fixed": {
|
||||||
"file_version": "0.1.0"
|
"file_version": "0.1.0"
|
||||||
},
|
},
|
||||||
"info": {
|
"info": {
|
||||||
"0000": {
|
"0000": {
|
||||||
"ProductVersion": "0.1.0",
|
"ProductVersion": "0.1.0",
|
||||||
"CompanyName": "Notitek Yazılım A.Ş",
|
"CompanyName": "Notitek Yazılım A.Ş",
|
||||||
"FileDescription": "Bordro Robotu",
|
"FileDescription": "Bordro Robotu",
|
||||||
"LegalCopyright": "© now, Notitek Yazılım A.Ş",
|
"LegalCopyright": "© now, Notitek Yazılım A.Ş",
|
||||||
"ProductName": "Bordro Robotu",
|
"ProductName": "Bordro Robotu",
|
||||||
"Comments": "Luca Bordro Robotu"
|
"Comments": "Luca Bordro Robotu"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,108 +1,108 @@
|
|||||||
Unicode true
|
Unicode true
|
||||||
|
|
||||||
####
|
####
|
||||||
## Please note: Template replacements don't work in this file. They are provided with default defines like
|
## Please note: Template replacements don't work in this file. They are provided with default defines like
|
||||||
## mentioned underneath.
|
## mentioned underneath.
|
||||||
## If the keyword is not defined, "wails_tools.nsh" will populate them.
|
## If the keyword is not defined, "wails_tools.nsh" will populate them.
|
||||||
## If they are defined here, "wails_tools.nsh" will not touch them. This allows you to use this project.nsi manually
|
## If they are defined here, "wails_tools.nsh" will not touch them. This allows you to use this project.nsi manually
|
||||||
## from outside of Wails for debugging and development of the installer.
|
## from outside of Wails for debugging and development of the installer.
|
||||||
##
|
##
|
||||||
## For development first make a wails nsis build to populate the "wails_tools.nsh":
|
## For development first make a wails nsis build to populate the "wails_tools.nsh":
|
||||||
## > wails build --target windows/amd64 --nsis
|
## > wails build --target windows/amd64 --nsis
|
||||||
## Then you can call makensis on this file with specifying the path to your binary:
|
## Then you can call makensis on this file with specifying the path to your binary:
|
||||||
## For a AMD64 only installer:
|
## For a AMD64 only installer:
|
||||||
## > makensis -DARG_WAILS_AMD64_BINARY=..\..\bin\app.exe
|
## > makensis -DARG_WAILS_AMD64_BINARY=..\..\bin\app.exe
|
||||||
## For a ARM64 only installer:
|
## For a ARM64 only installer:
|
||||||
## > makensis -DARG_WAILS_ARM64_BINARY=..\..\bin\app.exe
|
## > makensis -DARG_WAILS_ARM64_BINARY=..\..\bin\app.exe
|
||||||
## For a installer with both architectures:
|
## For a installer with both architectures:
|
||||||
## > makensis -DARG_WAILS_AMD64_BINARY=..\..\bin\app-amd64.exe -DARG_WAILS_ARM64_BINARY=..\..\bin\app-arm64.exe
|
## > makensis -DARG_WAILS_AMD64_BINARY=..\..\bin\app-amd64.exe -DARG_WAILS_ARM64_BINARY=..\..\bin\app-arm64.exe
|
||||||
####
|
####
|
||||||
## The following information is taken from the wails_tools.nsh file, but they can be overwritten here.
|
## The following information is taken from the wails_tools.nsh file, but they can be overwritten here.
|
||||||
####
|
####
|
||||||
## !define INFO_PROJECTNAME "my-project" # Default "bordro-robotu"
|
## !define INFO_PROJECTNAME "my-project" # Default "bordro-robotu"
|
||||||
## !define INFO_COMPANYNAME "My Company" # Default "My Company"
|
## !define INFO_COMPANYNAME "My Company" # Default "My Company"
|
||||||
## !define INFO_PRODUCTNAME "My Product Name" # Default "My Product"
|
## !define INFO_PRODUCTNAME "My Product Name" # Default "My Product"
|
||||||
## !define INFO_PRODUCTVERSION "1.0.0" # Default "0.1.0"
|
## !define INFO_PRODUCTVERSION "1.0.0" # Default "0.1.0"
|
||||||
## !define INFO_COPYRIGHT "(c) Now, My Company" # Default "© now, My Company"
|
## !define INFO_COPYRIGHT "(c) Now, My Company" # Default "© now, My Company"
|
||||||
###
|
###
|
||||||
## !define PRODUCT_EXECUTABLE "Application.exe" # Default "${INFO_PROJECTNAME}.exe"
|
## !define PRODUCT_EXECUTABLE "Application.exe" # Default "${INFO_PROJECTNAME}.exe"
|
||||||
## !define UNINST_KEY_NAME "UninstKeyInRegistry" # Default "${INFO_COMPANYNAME}${INFO_PRODUCTNAME}"
|
## !define UNINST_KEY_NAME "UninstKeyInRegistry" # Default "${INFO_COMPANYNAME}${INFO_PRODUCTNAME}"
|
||||||
####
|
####
|
||||||
## !define REQUEST_EXECUTION_LEVEL "admin" # Default "admin" see also https://nsis.sourceforge.io/Docs/Chapter4.html
|
## !define REQUEST_EXECUTION_LEVEL "admin" # Default "admin" see also https://nsis.sourceforge.io/Docs/Chapter4.html
|
||||||
####
|
####
|
||||||
## Include the wails tools
|
## Include the wails tools
|
||||||
####
|
####
|
||||||
!include "wails_tools.nsh"
|
!include "wails_tools.nsh"
|
||||||
|
|
||||||
# The version information for this two must consist of 4 parts
|
# The version information for this two must consist of 4 parts
|
||||||
VIProductVersion "${INFO_PRODUCTVERSION}.0"
|
VIProductVersion "${INFO_PRODUCTVERSION}.0"
|
||||||
VIFileVersion "${INFO_PRODUCTVERSION}.0"
|
VIFileVersion "${INFO_PRODUCTVERSION}.0"
|
||||||
|
|
||||||
VIAddVersionKey "CompanyName" "${INFO_COMPANYNAME}"
|
VIAddVersionKey "CompanyName" "${INFO_COMPANYNAME}"
|
||||||
VIAddVersionKey "FileDescription" "${INFO_PRODUCTNAME} Installer"
|
VIAddVersionKey "FileDescription" "${INFO_PRODUCTNAME} Installer"
|
||||||
VIAddVersionKey "ProductVersion" "${INFO_PRODUCTVERSION}"
|
VIAddVersionKey "ProductVersion" "${INFO_PRODUCTVERSION}"
|
||||||
VIAddVersionKey "FileVersion" "${INFO_PRODUCTVERSION}"
|
VIAddVersionKey "FileVersion" "${INFO_PRODUCTVERSION}"
|
||||||
VIAddVersionKey "LegalCopyright" "${INFO_COPYRIGHT}"
|
VIAddVersionKey "LegalCopyright" "${INFO_COPYRIGHT}"
|
||||||
VIAddVersionKey "ProductName" "${INFO_PRODUCTNAME}"
|
VIAddVersionKey "ProductName" "${INFO_PRODUCTNAME}"
|
||||||
|
|
||||||
# Enable HiDPI support. https://nsis.sourceforge.io/Reference/ManifestDPIAware
|
# Enable HiDPI support. https://nsis.sourceforge.io/Reference/ManifestDPIAware
|
||||||
ManifestDPIAware true
|
ManifestDPIAware true
|
||||||
|
|
||||||
!include "MUI.nsh"
|
!include "MUI.nsh"
|
||||||
|
|
||||||
!define MUI_ICON "..\icon.ico"
|
!define MUI_ICON "..\icon.ico"
|
||||||
!define MUI_UNICON "..\icon.ico"
|
!define MUI_UNICON "..\icon.ico"
|
||||||
# !define MUI_WELCOMEFINISHPAGE_BITMAP "resources\leftimage.bmp" #Include this to add a bitmap on the left side of the Welcome Page. Must be a size of 164x314
|
# !define MUI_WELCOMEFINISHPAGE_BITMAP "resources\leftimage.bmp" #Include this to add a bitmap on the left side of the Welcome Page. Must be a size of 164x314
|
||||||
!define MUI_FINISHPAGE_NOAUTOCLOSE # Wait on the INSTFILES page so the user can take a look into the details of the installation steps
|
!define MUI_FINISHPAGE_NOAUTOCLOSE # Wait on the INSTFILES page so the user can take a look into the details of the installation steps
|
||||||
!define MUI_ABORTWARNING # This will warn the user if they exit from the installer.
|
!define MUI_ABORTWARNING # This will warn the user if they exit from the installer.
|
||||||
|
|
||||||
!insertmacro MUI_PAGE_WELCOME # Welcome to the installer page.
|
!insertmacro MUI_PAGE_WELCOME # Welcome to the installer page.
|
||||||
# !insertmacro MUI_PAGE_LICENSE "resources\eula.txt" # Adds a EULA page to the installer
|
# !insertmacro MUI_PAGE_LICENSE "resources\eula.txt" # Adds a EULA page to the installer
|
||||||
!insertmacro MUI_PAGE_DIRECTORY # In which folder install page.
|
!insertmacro MUI_PAGE_DIRECTORY # In which folder install page.
|
||||||
!insertmacro MUI_PAGE_INSTFILES # Installing page.
|
!insertmacro MUI_PAGE_INSTFILES # Installing page.
|
||||||
!insertmacro MUI_PAGE_FINISH # Finished installation page.
|
!insertmacro MUI_PAGE_FINISH # Finished installation page.
|
||||||
|
|
||||||
!insertmacro MUI_UNPAGE_INSTFILES # Uninstalling page
|
!insertmacro MUI_UNPAGE_INSTFILES # Uninstalling page
|
||||||
|
|
||||||
!insertmacro MUI_LANGUAGE "English" # Set the Language of the installer
|
!insertmacro MUI_LANGUAGE "English" # Set the Language of the installer
|
||||||
|
|
||||||
## The following two statements can be used to sign the installer and the uninstaller. The path to the binaries are provided in %1
|
## The following two statements can be used to sign the installer and the uninstaller. The path to the binaries are provided in %1
|
||||||
#!uninstfinalize 'signtool --file "%1"'
|
#!uninstfinalize 'signtool --file "%1"'
|
||||||
#!finalize 'signtool --file "%1"'
|
#!finalize 'signtool --file "%1"'
|
||||||
|
|
||||||
Name "${INFO_PRODUCTNAME}"
|
Name "${INFO_PRODUCTNAME}"
|
||||||
OutFile "..\..\bin\${INFO_PROJECTNAME}-${ARCH}-installer.exe" # Name of the installer's file.
|
OutFile "..\..\bin\${INFO_PROJECTNAME}-${ARCH}-installer.exe" # Name of the installer's file.
|
||||||
InstallDir "$PROGRAMFILES64\${INFO_COMPANYNAME}\${INFO_PRODUCTNAME}" # Default installing folder ($PROGRAMFILES is Program Files folder).
|
InstallDir "$PROGRAMFILES64\${INFO_COMPANYNAME}\${INFO_PRODUCTNAME}" # Default installing folder ($PROGRAMFILES is Program Files folder).
|
||||||
ShowInstDetails show # This will always show the installation details.
|
ShowInstDetails show # This will always show the installation details.
|
||||||
|
|
||||||
Function .onInit
|
Function .onInit
|
||||||
!insertmacro wails.checkArchitecture
|
!insertmacro wails.checkArchitecture
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
|
||||||
Section
|
Section
|
||||||
!insertmacro wails.setShellContext
|
!insertmacro wails.setShellContext
|
||||||
|
|
||||||
!insertmacro wails.webview2runtime
|
!insertmacro wails.webview2runtime
|
||||||
|
|
||||||
SetOutPath $INSTDIR
|
SetOutPath $INSTDIR
|
||||||
|
|
||||||
!insertmacro wails.files
|
!insertmacro wails.files
|
||||||
|
|
||||||
CreateShortcut "$SMPROGRAMS\${INFO_PRODUCTNAME}.lnk" "$INSTDIR\${PRODUCT_EXECUTABLE}"
|
CreateShortcut "$SMPROGRAMS\${INFO_PRODUCTNAME}.lnk" "$INSTDIR\${PRODUCT_EXECUTABLE}"
|
||||||
CreateShortCut "$DESKTOP\${INFO_PRODUCTNAME}.lnk" "$INSTDIR\${PRODUCT_EXECUTABLE}"
|
CreateShortCut "$DESKTOP\${INFO_PRODUCTNAME}.lnk" "$INSTDIR\${PRODUCT_EXECUTABLE}"
|
||||||
|
|
||||||
!insertmacro wails.writeUninstaller
|
!insertmacro wails.writeUninstaller
|
||||||
SectionEnd
|
SectionEnd
|
||||||
|
|
||||||
Section "uninstall"
|
Section "uninstall"
|
||||||
!insertmacro wails.setShellContext
|
!insertmacro wails.setShellContext
|
||||||
|
|
||||||
RMDir /r "$AppData\${PRODUCT_EXECUTABLE}" # Remove the WebView2 DataPath
|
RMDir /r "$AppData\${PRODUCT_EXECUTABLE}" # Remove the WebView2 DataPath
|
||||||
|
|
||||||
RMDir /r $INSTDIR
|
RMDir /r $INSTDIR
|
||||||
|
|
||||||
Delete "$SMPROGRAMS\${INFO_PRODUCTNAME}.lnk"
|
Delete "$SMPROGRAMS\${INFO_PRODUCTNAME}.lnk"
|
||||||
Delete "$DESKTOP\${INFO_PRODUCTNAME}.lnk"
|
Delete "$DESKTOP\${INFO_PRODUCTNAME}.lnk"
|
||||||
|
|
||||||
!insertmacro wails.deleteUninstaller
|
!insertmacro wails.deleteUninstaller
|
||||||
SectionEnd
|
SectionEnd
|
||||||
|
|||||||
@@ -1,179 +1,179 @@
|
|||||||
# DO NOT EDIT - Generated automatically by `wails build`
|
# DO NOT EDIT - Generated automatically by `wails build`
|
||||||
|
|
||||||
!include "x64.nsh"
|
!include "x64.nsh"
|
||||||
!include "WinVer.nsh"
|
!include "WinVer.nsh"
|
||||||
!include "FileFunc.nsh"
|
!include "FileFunc.nsh"
|
||||||
|
|
||||||
!ifndef INFO_PROJECTNAME
|
!ifndef INFO_PROJECTNAME
|
||||||
!define INFO_PROJECTNAME "bordro-robotu"
|
!define INFO_PROJECTNAME "bordro-robotu"
|
||||||
!endif
|
!endif
|
||||||
!ifndef INFO_COMPANYNAME
|
!ifndef INFO_COMPANYNAME
|
||||||
!define INFO_COMPANYNAME "My Company"
|
!define INFO_COMPANYNAME "My Company"
|
||||||
!endif
|
!endif
|
||||||
!ifndef INFO_PRODUCTNAME
|
!ifndef INFO_PRODUCTNAME
|
||||||
!define INFO_PRODUCTNAME "My Product"
|
!define INFO_PRODUCTNAME "My Product"
|
||||||
!endif
|
!endif
|
||||||
!ifndef INFO_PRODUCTVERSION
|
!ifndef INFO_PRODUCTVERSION
|
||||||
!define INFO_PRODUCTVERSION "0.1.0"
|
!define INFO_PRODUCTVERSION "0.1.0"
|
||||||
!endif
|
!endif
|
||||||
!ifndef INFO_COPYRIGHT
|
!ifndef INFO_COPYRIGHT
|
||||||
!define INFO_COPYRIGHT "© now, My Company"
|
!define INFO_COPYRIGHT "© now, My Company"
|
||||||
!endif
|
!endif
|
||||||
!ifndef PRODUCT_EXECUTABLE
|
!ifndef PRODUCT_EXECUTABLE
|
||||||
!define PRODUCT_EXECUTABLE "${INFO_PROJECTNAME}.exe"
|
!define PRODUCT_EXECUTABLE "${INFO_PROJECTNAME}.exe"
|
||||||
!endif
|
!endif
|
||||||
!ifndef UNINST_KEY_NAME
|
!ifndef UNINST_KEY_NAME
|
||||||
!define UNINST_KEY_NAME "${INFO_COMPANYNAME}${INFO_PRODUCTNAME}"
|
!define UNINST_KEY_NAME "${INFO_COMPANYNAME}${INFO_PRODUCTNAME}"
|
||||||
!endif
|
!endif
|
||||||
!define UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${UNINST_KEY_NAME}"
|
!define UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${UNINST_KEY_NAME}"
|
||||||
|
|
||||||
!ifndef REQUEST_EXECUTION_LEVEL
|
!ifndef REQUEST_EXECUTION_LEVEL
|
||||||
!define REQUEST_EXECUTION_LEVEL "admin"
|
!define REQUEST_EXECUTION_LEVEL "admin"
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
RequestExecutionLevel "${REQUEST_EXECUTION_LEVEL}"
|
RequestExecutionLevel "${REQUEST_EXECUTION_LEVEL}"
|
||||||
|
|
||||||
!ifdef ARG_WAILS_AMD64_BINARY
|
!ifdef ARG_WAILS_AMD64_BINARY
|
||||||
!define SUPPORTS_AMD64
|
!define SUPPORTS_AMD64
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
!ifdef ARG_WAILS_ARM64_BINARY
|
!ifdef ARG_WAILS_ARM64_BINARY
|
||||||
!define SUPPORTS_ARM64
|
!define SUPPORTS_ARM64
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
!ifdef SUPPORTS_AMD64
|
!ifdef SUPPORTS_AMD64
|
||||||
!ifdef SUPPORTS_ARM64
|
!ifdef SUPPORTS_ARM64
|
||||||
!define ARCH "amd64_arm64"
|
!define ARCH "amd64_arm64"
|
||||||
!else
|
!else
|
||||||
!define ARCH "amd64"
|
!define ARCH "amd64"
|
||||||
!endif
|
!endif
|
||||||
!else
|
!else
|
||||||
!ifdef SUPPORTS_ARM64
|
!ifdef SUPPORTS_ARM64
|
||||||
!define ARCH "arm64"
|
!define ARCH "arm64"
|
||||||
!else
|
!else
|
||||||
!error "Wails: Undefined ARCH, please provide at least one of ARG_WAILS_AMD64_BINARY or ARG_WAILS_ARM64_BINARY"
|
!error "Wails: Undefined ARCH, please provide at least one of ARG_WAILS_AMD64_BINARY or ARG_WAILS_ARM64_BINARY"
|
||||||
!endif
|
!endif
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
!macro wails.checkArchitecture
|
!macro wails.checkArchitecture
|
||||||
!ifndef WAILS_WIN10_REQUIRED
|
!ifndef WAILS_WIN10_REQUIRED
|
||||||
!define WAILS_WIN10_REQUIRED "This product is only supported on Windows 10 (Server 2016) and later."
|
!define WAILS_WIN10_REQUIRED "This product is only supported on Windows 10 (Server 2016) and later."
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
!ifndef WAILS_ARCHITECTURE_NOT_SUPPORTED
|
!ifndef WAILS_ARCHITECTURE_NOT_SUPPORTED
|
||||||
!define WAILS_ARCHITECTURE_NOT_SUPPORTED "This product can't be installed on the current Windows architecture. Supports: ${ARCH}"
|
!define WAILS_ARCHITECTURE_NOT_SUPPORTED "This product can't be installed on the current Windows architecture. Supports: ${ARCH}"
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
${If} ${AtLeastWin10}
|
${If} ${AtLeastWin10}
|
||||||
!ifdef SUPPORTS_AMD64
|
!ifdef SUPPORTS_AMD64
|
||||||
${if} ${IsNativeAMD64}
|
${if} ${IsNativeAMD64}
|
||||||
Goto ok
|
Goto ok
|
||||||
${EndIf}
|
${EndIf}
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
!ifdef SUPPORTS_ARM64
|
!ifdef SUPPORTS_ARM64
|
||||||
${if} ${IsNativeARM64}
|
${if} ${IsNativeARM64}
|
||||||
Goto ok
|
Goto ok
|
||||||
${EndIf}
|
${EndIf}
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
IfSilent silentArch notSilentArch
|
IfSilent silentArch notSilentArch
|
||||||
silentArch:
|
silentArch:
|
||||||
SetErrorLevel 65
|
SetErrorLevel 65
|
||||||
Abort
|
Abort
|
||||||
notSilentArch:
|
notSilentArch:
|
||||||
MessageBox MB_OK "${WAILS_ARCHITECTURE_NOT_SUPPORTED}"
|
MessageBox MB_OK "${WAILS_ARCHITECTURE_NOT_SUPPORTED}"
|
||||||
Quit
|
Quit
|
||||||
${else}
|
${else}
|
||||||
IfSilent silentWin notSilentWin
|
IfSilent silentWin notSilentWin
|
||||||
silentWin:
|
silentWin:
|
||||||
SetErrorLevel 64
|
SetErrorLevel 64
|
||||||
Abort
|
Abort
|
||||||
notSilentWin:
|
notSilentWin:
|
||||||
MessageBox MB_OK "${WAILS_WIN10_REQUIRED}"
|
MessageBox MB_OK "${WAILS_WIN10_REQUIRED}"
|
||||||
Quit
|
Quit
|
||||||
${EndIf}
|
${EndIf}
|
||||||
|
|
||||||
ok:
|
ok:
|
||||||
!macroend
|
!macroend
|
||||||
|
|
||||||
!macro wails.files
|
!macro wails.files
|
||||||
!ifdef SUPPORTS_AMD64
|
!ifdef SUPPORTS_AMD64
|
||||||
${if} ${IsNativeAMD64}
|
${if} ${IsNativeAMD64}
|
||||||
File "/oname=${PRODUCT_EXECUTABLE}" "${ARG_WAILS_AMD64_BINARY}"
|
File "/oname=${PRODUCT_EXECUTABLE}" "${ARG_WAILS_AMD64_BINARY}"
|
||||||
${EndIf}
|
${EndIf}
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
!ifdef SUPPORTS_ARM64
|
!ifdef SUPPORTS_ARM64
|
||||||
${if} ${IsNativeARM64}
|
${if} ${IsNativeARM64}
|
||||||
File "/oname=${PRODUCT_EXECUTABLE}" "${ARG_WAILS_ARM64_BINARY}"
|
File "/oname=${PRODUCT_EXECUTABLE}" "${ARG_WAILS_ARM64_BINARY}"
|
||||||
${EndIf}
|
${EndIf}
|
||||||
!endif
|
!endif
|
||||||
!macroend
|
!macroend
|
||||||
|
|
||||||
!macro wails.writeUninstaller
|
!macro wails.writeUninstaller
|
||||||
WriteUninstaller "$INSTDIR\uninstall.exe"
|
WriteUninstaller "$INSTDIR\uninstall.exe"
|
||||||
|
|
||||||
SetRegView 64
|
SetRegView 64
|
||||||
WriteRegStr HKLM "${UNINST_KEY}" "Publisher" "${INFO_COMPANYNAME}"
|
WriteRegStr HKLM "${UNINST_KEY}" "Publisher" "${INFO_COMPANYNAME}"
|
||||||
WriteRegStr HKLM "${UNINST_KEY}" "DisplayName" "${INFO_PRODUCTNAME}"
|
WriteRegStr HKLM "${UNINST_KEY}" "DisplayName" "${INFO_PRODUCTNAME}"
|
||||||
WriteRegStr HKLM "${UNINST_KEY}" "DisplayVersion" "${INFO_PRODUCTVERSION}"
|
WriteRegStr HKLM "${UNINST_KEY}" "DisplayVersion" "${INFO_PRODUCTVERSION}"
|
||||||
WriteRegStr HKLM "${UNINST_KEY}" "DisplayIcon" "$INSTDIR\${PRODUCT_EXECUTABLE}"
|
WriteRegStr HKLM "${UNINST_KEY}" "DisplayIcon" "$INSTDIR\${PRODUCT_EXECUTABLE}"
|
||||||
WriteRegStr HKLM "${UNINST_KEY}" "UninstallString" "$\"$INSTDIR\uninstall.exe$\""
|
WriteRegStr HKLM "${UNINST_KEY}" "UninstallString" "$\"$INSTDIR\uninstall.exe$\""
|
||||||
WriteRegStr HKLM "${UNINST_KEY}" "QuietUninstallString" "$\"$INSTDIR\uninstall.exe$\" /S"
|
WriteRegStr HKLM "${UNINST_KEY}" "QuietUninstallString" "$\"$INSTDIR\uninstall.exe$\" /S"
|
||||||
|
|
||||||
${GetSize} "$INSTDIR" "/S=0K" $0 $1 $2
|
${GetSize} "$INSTDIR" "/S=0K" $0 $1 $2
|
||||||
IntFmt $0 "0x%08X" $0
|
IntFmt $0 "0x%08X" $0
|
||||||
WriteRegDWORD HKLM "${UNINST_KEY}" "EstimatedSize" "$0"
|
WriteRegDWORD HKLM "${UNINST_KEY}" "EstimatedSize" "$0"
|
||||||
!macroend
|
!macroend
|
||||||
|
|
||||||
!macro wails.deleteUninstaller
|
!macro wails.deleteUninstaller
|
||||||
Delete "$INSTDIR\uninstall.exe"
|
Delete "$INSTDIR\uninstall.exe"
|
||||||
|
|
||||||
SetRegView 64
|
SetRegView 64
|
||||||
DeleteRegKey HKLM "${UNINST_KEY}"
|
DeleteRegKey HKLM "${UNINST_KEY}"
|
||||||
!macroend
|
!macroend
|
||||||
|
|
||||||
!macro wails.setShellContext
|
!macro wails.setShellContext
|
||||||
${If} ${REQUEST_EXECUTION_LEVEL} == "admin"
|
${If} ${REQUEST_EXECUTION_LEVEL} == "admin"
|
||||||
SetShellVarContext all
|
SetShellVarContext all
|
||||||
${else}
|
${else}
|
||||||
SetShellVarContext current
|
SetShellVarContext current
|
||||||
${EndIf}
|
${EndIf}
|
||||||
!macroend
|
!macroend
|
||||||
|
|
||||||
# Install webview2 by launching the bootstrapper
|
# Install webview2 by launching the bootstrapper
|
||||||
# See https://docs.microsoft.com/en-us/microsoft-edge/webview2/concepts/distribution#online-only-deployment
|
# See https://docs.microsoft.com/en-us/microsoft-edge/webview2/concepts/distribution#online-only-deployment
|
||||||
!macro wails.webview2runtime
|
!macro wails.webview2runtime
|
||||||
!ifndef WAILS_INSTALL_WEBVIEW_DETAILPRINT
|
!ifndef WAILS_INSTALL_WEBVIEW_DETAILPRINT
|
||||||
!define WAILS_INSTALL_WEBVIEW_DETAILPRINT "Installing: WebView2 Runtime"
|
!define WAILS_INSTALL_WEBVIEW_DETAILPRINT "Installing: WebView2 Runtime"
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
SetRegView 64
|
SetRegView 64
|
||||||
# If the admin key exists and is not empty then webview2 is already installed
|
# If the admin key exists and is not empty then webview2 is already installed
|
||||||
ReadRegStr $0 HKLM "SOFTWARE\WOW6432Node\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}" "pv"
|
ReadRegStr $0 HKLM "SOFTWARE\WOW6432Node\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}" "pv"
|
||||||
${If} $0 != ""
|
${If} $0 != ""
|
||||||
Goto ok
|
Goto ok
|
||||||
${EndIf}
|
${EndIf}
|
||||||
|
|
||||||
${If} ${REQUEST_EXECUTION_LEVEL} == "user"
|
${If} ${REQUEST_EXECUTION_LEVEL} == "user"
|
||||||
# If the installer is run in user level, check the user specific key exists and is not empty then webview2 is already installed
|
# If the installer is run in user level, check the user specific key exists and is not empty then webview2 is already installed
|
||||||
ReadRegStr $0 HKCU "Software\Microsoft\EdgeUpdate\Clients{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}" "pv"
|
ReadRegStr $0 HKCU "Software\Microsoft\EdgeUpdate\Clients{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}" "pv"
|
||||||
${If} $0 != ""
|
${If} $0 != ""
|
||||||
Goto ok
|
Goto ok
|
||||||
${EndIf}
|
${EndIf}
|
||||||
${EndIf}
|
${EndIf}
|
||||||
|
|
||||||
SetDetailsPrint both
|
SetDetailsPrint both
|
||||||
DetailPrint "${WAILS_INSTALL_WEBVIEW_DETAILPRINT}"
|
DetailPrint "${WAILS_INSTALL_WEBVIEW_DETAILPRINT}"
|
||||||
SetDetailsPrint listonly
|
SetDetailsPrint listonly
|
||||||
|
|
||||||
InitPluginsDir
|
InitPluginsDir
|
||||||
CreateDirectory "$pluginsdir\webview2bootstrapper"
|
CreateDirectory "$pluginsdir\webview2bootstrapper"
|
||||||
SetOutPath "$pluginsdir\webview2bootstrapper"
|
SetOutPath "$pluginsdir\webview2bootstrapper"
|
||||||
File "MicrosoftEdgeWebview2Setup.exe"
|
File "MicrosoftEdgeWebview2Setup.exe"
|
||||||
ExecWait '"$pluginsdir\webview2bootstrapper\MicrosoftEdgeWebview2Setup.exe" /silent /install'
|
ExecWait '"$pluginsdir\webview2bootstrapper\MicrosoftEdgeWebview2Setup.exe" /silent /install'
|
||||||
|
|
||||||
SetDetailsPrint both
|
SetDetailsPrint both
|
||||||
ok:
|
ok:
|
||||||
!macroend
|
!macroend
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
package runtime
|
package runtime
|
||||||
|
|
||||||
import _ "embed"
|
import _ "embed"
|
||||||
|
|
||||||
//go:embed runtime.js
|
//go:embed runtime.js
|
||||||
var RuntimeJS []byte
|
var RuntimeJS []byte
|
||||||
|
|
||||||
//go:embed runtime.debug.js
|
//go:embed runtime.debug.js
|
||||||
var RuntimeDebugJS []byte
|
var RuntimeDebugJS []byte
|
||||||
|
|||||||
@@ -1,15 +1,15 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||||
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
|
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
|
||||||
<assemblyIdentity type="win32" name="com.wails.bordro-robotu" version="0.1.0" processorArchitecture="*"/>
|
<assemblyIdentity type="win32" name="com.wails.bordro-robotu" version="0.1.0" processorArchitecture="*"/>
|
||||||
<dependency>
|
<dependency>
|
||||||
<dependentAssembly>
|
<dependentAssembly>
|
||||||
<assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*"/>
|
<assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*"/>
|
||||||
</dependentAssembly>
|
</dependentAssembly>
|
||||||
</dependency>
|
</dependency>
|
||||||
<asmv3:application>
|
<asmv3:application>
|
||||||
<asmv3:windowsSettings>
|
<asmv3:windowsSettings>
|
||||||
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true/pm</dpiAware> <!-- fallback for Windows 7 and 8 -->
|
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true/pm</dpiAware> <!-- fallback for Windows 7 and 8 -->
|
||||||
<dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">permonitorv2,permonitor</dpiAwareness> <!-- falls back to per-monitor if per-monitor v2 is not supported -->
|
<dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">permonitorv2,permonitor</dpiAwareness> <!-- falls back to per-monitor if per-monitor v2 is not supported -->
|
||||||
</asmv3:windowsSettings>
|
</asmv3:windowsSettings>
|
||||||
</asmv3:application>
|
</asmv3:application>
|
||||||
</assembly>
|
</assembly>
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
root = true
|
root = true
|
||||||
|
|
||||||
[*]
|
[*]
|
||||||
charset = utf-8
|
charset = utf-8
|
||||||
indent_style = space
|
indent_style = space
|
||||||
indent_size = 2
|
indent_size = 2
|
||||||
end_of_line = lf
|
end_of_line = lf
|
||||||
insert_final_newline = true
|
insert_final_newline = true
|
||||||
trim_trailing_whitespace = true
|
trim_trailing_whitespace = true
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
/dist
|
/dist
|
||||||
/src-capacitor
|
/src-capacitor
|
||||||
/src-cordova
|
/src-cordova
|
||||||
/.quasar
|
/.quasar
|
||||||
/node_modules
|
/node_modules
|
||||||
.eslintrc.cjs
|
.eslintrc.cjs
|
||||||
/quasar.config.*.temporary.compiled*
|
/quasar.config.*.temporary.compiled*
|
||||||
/bindings
|
|
||||||
|
|||||||
@@ -1,69 +1,69 @@
|
|||||||
module.exports = {
|
module.exports = {
|
||||||
// https://eslint.org/docs/user-guide/configuring#configuration-cascading-and-hierarchy
|
// https://eslint.org/docs/user-guide/configuring#configuration-cascading-and-hierarchy
|
||||||
// This option interrupts the configuration hierarchy at this file
|
// This option interrupts the configuration hierarchy at this file
|
||||||
// Remove this if you have an higher level ESLint config file (it usually happens into a monorepos)
|
// Remove this if you have an higher level ESLint config file (it usually happens into a monorepos)
|
||||||
root: true,
|
root: true,
|
||||||
|
|
||||||
parserOptions: {
|
parserOptions: {
|
||||||
ecmaVersion: 2021, // Allows for the parsing of modern ECMAScript features
|
ecmaVersion: 2021, // Allows for the parsing of modern ECMAScript features
|
||||||
},
|
},
|
||||||
|
|
||||||
env: {
|
env: {
|
||||||
node: true,
|
node: true,
|
||||||
browser: true,
|
browser: true,
|
||||||
'vue/setup-compiler-macros': true
|
'vue/setup-compiler-macros': true
|
||||||
},
|
},
|
||||||
|
|
||||||
// Rules order is important, please avoid shuffling them
|
// Rules order is important, please avoid shuffling them
|
||||||
extends: [
|
extends: [
|
||||||
// Base ESLint recommended rules
|
// Base ESLint recommended rules
|
||||||
// 'eslint:recommended',
|
// 'eslint:recommended',
|
||||||
|
|
||||||
// Uncomment any of the lines below to choose desired strictness,
|
// Uncomment any of the lines below to choose desired strictness,
|
||||||
// but leave only one uncommented!
|
// but leave only one uncommented!
|
||||||
// See https://eslint.vuejs.org/rules/#available-rules
|
// See https://eslint.vuejs.org/rules/#available-rules
|
||||||
'plugin:vue/vue3-essential', // Priority A: Essential (Error Prevention)
|
'plugin:vue/vue3-essential', // Priority A: Essential (Error Prevention)
|
||||||
// 'plugin:vue/vue3-strongly-recommended', // Priority B: Strongly Recommended (Improving Readability)
|
// 'plugin:vue/vue3-strongly-recommended', // Priority B: Strongly Recommended (Improving Readability)
|
||||||
// 'plugin:vue/vue3-recommended', // Priority C: Recommended (Minimizing Arbitrary Choices and Cognitive Overhead)
|
// 'plugin:vue/vue3-recommended', // Priority C: Recommended (Minimizing Arbitrary Choices and Cognitive Overhead)
|
||||||
|
|
||||||
// https://github.com/prettier/eslint-config-prettier#installation
|
// https://github.com/prettier/eslint-config-prettier#installation
|
||||||
// usage with Prettier, provided by 'eslint-config-prettier'.
|
// usage with Prettier, provided by 'eslint-config-prettier'.
|
||||||
'prettier'
|
'prettier'
|
||||||
],
|
],
|
||||||
|
|
||||||
plugins: [
|
plugins: [
|
||||||
// https://eslint.vuejs.org/user-guide/#why-doesn-t-it-work-on-vue-files
|
// https://eslint.vuejs.org/user-guide/#why-doesn-t-it-work-on-vue-files
|
||||||
// required to lint *.vue files
|
// required to lint *.vue files
|
||||||
'vue',
|
'vue',
|
||||||
|
|
||||||
// https://github.com/typescript-eslint/typescript-eslint/issues/389#issuecomment-509292674
|
// https://github.com/typescript-eslint/typescript-eslint/issues/389#issuecomment-509292674
|
||||||
// Prettier has not been included as plugin to avoid performance impact
|
// Prettier has not been included as plugin to avoid performance impact
|
||||||
// add it as an extension for your IDE
|
// add it as an extension for your IDE
|
||||||
|
|
||||||
],
|
],
|
||||||
|
|
||||||
globals: {
|
globals: {
|
||||||
ga: 'readonly', // Google Analytics
|
ga: 'readonly', // Google Analytics
|
||||||
cordova: 'readonly',
|
cordova: 'readonly',
|
||||||
__statics: 'readonly',
|
__statics: 'readonly',
|
||||||
__QUASAR_SSR__: 'readonly',
|
__QUASAR_SSR__: 'readonly',
|
||||||
__QUASAR_SSR_SERVER__: 'readonly',
|
__QUASAR_SSR_SERVER__: 'readonly',
|
||||||
__QUASAR_SSR_CLIENT__: 'readonly',
|
__QUASAR_SSR_CLIENT__: 'readonly',
|
||||||
__QUASAR_SSR_PWA__: 'readonly',
|
__QUASAR_SSR_PWA__: 'readonly',
|
||||||
process: 'readonly',
|
process: 'readonly',
|
||||||
Capacitor: 'readonly',
|
Capacitor: 'readonly',
|
||||||
chrome: 'readonly'
|
chrome: 'readonly'
|
||||||
},
|
},
|
||||||
|
|
||||||
// add your custom rules here
|
// add your custom rules here
|
||||||
rules: {
|
rules: {
|
||||||
|
|
||||||
'prefer-promise-reject-errors': 'off',
|
'prefer-promise-reject-errors': 'off',
|
||||||
|
|
||||||
// allow debugger during development only
|
// allow debugger during development only
|
||||||
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
|
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
|
||||||
|
|
||||||
// custom rules
|
// custom rules
|
||||||
'vue/multi-word-component-names': 'off'
|
'vue/multi-word-component-names': 'off'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
67
app/frontend/.gitignore
vendored
@@ -1,34 +1,33 @@
|
|||||||
.DS_Store
|
.DS_Store
|
||||||
.thumbs.db
|
.thumbs.db
|
||||||
node_modules
|
node_modules
|
||||||
/.node_modules
|
|
||||||
|
# Quasar core related directories
|
||||||
# Quasar core related directories
|
.quasar
|
||||||
.quasar
|
/dist
|
||||||
/dist
|
/quasar.config.*.temporary.compiled*
|
||||||
/quasar.config.*.temporary.compiled*
|
|
||||||
|
# Cordova related directories and files
|
||||||
# Cordova related directories and files
|
/src-cordova/node_modules
|
||||||
/src-cordova/node_modules
|
/src-cordova/platforms
|
||||||
/src-cordova/platforms
|
/src-cordova/plugins
|
||||||
/src-cordova/plugins
|
/src-cordova/www
|
||||||
/src-cordova/www
|
|
||||||
|
# Capacitor related directories and files
|
||||||
# Capacitor related directories and files
|
/src-capacitor/www
|
||||||
/src-capacitor/www
|
/src-capacitor/node_modules
|
||||||
/src-capacitor/node_modules
|
|
||||||
|
# Log files
|
||||||
# Log files
|
npm-debug.log*
|
||||||
npm-debug.log*
|
yarn-debug.log*
|
||||||
yarn-debug.log*
|
yarn-error.log*
|
||||||
yarn-error.log*
|
|
||||||
|
# Editor directories and files
|
||||||
# Editor directories and files
|
.idea
|
||||||
.idea
|
*.suo
|
||||||
*.suo
|
*.ntvs*
|
||||||
*.ntvs*
|
*.njsproj
|
||||||
*.njsproj
|
*.sln
|
||||||
*.sln
|
|
||||||
|
# local .env files
|
||||||
# local .env files
|
.env.local*
|
||||||
.env.local*
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# pnpm-related options
|
# pnpm-related options
|
||||||
shamefully-hoist=true
|
shamefully-hoist=true
|
||||||
strict-peer-dependencies=false
|
strict-peer-dependencies=false
|
||||||
# to get the latest compatible packages when creating the project https://github.com/pnpm/pnpm/issues/6463
|
# to get the latest compatible packages when creating the project https://github.com/pnpm/pnpm/issues/6463
|
||||||
resolution-mode=highest
|
resolution-mode=highest
|
||||||
|
|||||||
6
app/frontend/.vscode/extensions.json
vendored
@@ -1,3 +1,3 @@
|
|||||||
{
|
{
|
||||||
"recommendations": ["Vue.volar", "Vue.vscode-typescript-vue-plugin"]
|
"recommendations": ["Vue.volar", "Vue.vscode-typescript-vue-plugin"]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,41 +1,41 @@
|
|||||||
# Quasar App (frontend)
|
# Quasar App (frontend)
|
||||||
|
|
||||||
A Quasar Project
|
A Quasar Project
|
||||||
|
|
||||||
## Install the dependencies
|
## Install the dependencies
|
||||||
```bash
|
```bash
|
||||||
yarn
|
yarn
|
||||||
# or
|
# or
|
||||||
npm install
|
npm install
|
||||||
```
|
```
|
||||||
|
|
||||||
### Start the app in development mode (hot-code reloading, error reporting, etc.)
|
### Start the app in development mode (hot-code reloading, error reporting, etc.)
|
||||||
```bash
|
```bash
|
||||||
quasar dev
|
quasar dev
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
### Lint the files
|
### Lint the files
|
||||||
```bash
|
```bash
|
||||||
yarn lint
|
yarn lint
|
||||||
# or
|
# or
|
||||||
npm run lint
|
npm run lint
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
### Format the files
|
### Format the files
|
||||||
```bash
|
```bash
|
||||||
yarn format
|
yarn format
|
||||||
# or
|
# or
|
||||||
npm run format
|
npm run format
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### Build the app for production
|
### Build the app for production
|
||||||
```bash
|
```bash
|
||||||
quasar build
|
quasar build
|
||||||
```
|
```
|
||||||
|
|
||||||
### Customize the configuration
|
### Customize the configuration
|
||||||
See [Configuring quasar.config.js](https://v2.quasar.dev/quasar-cli-vite/quasar-config-js).
|
See [Configuring quasar.config.js](https://v2.quasar.dev/quasar-cli-vite/quasar-config-js).
|
||||||
|
|||||||
@@ -1,21 +0,0 @@
|
|||||||
// @ts-check
|
|
||||||
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
|
|
||||||
// This file is automatically generated. DO NOT EDIT
|
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
||||||
// @ts-ignore: Unused imports
|
|
||||||
import { Call as $Call, CancellablePromise as $CancellablePromise, Create as $Create } from "@wailsio/runtime";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @returns {$CancellablePromise<void>}
|
|
||||||
*/
|
|
||||||
export function Create() {
|
|
||||||
return $Call.ByID(3291066869);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @returns {$CancellablePromise<void>}
|
|
||||||
*/
|
|
||||||
export function Edit() {
|
|
||||||
return $Call.ByID(3331081401);
|
|
||||||
}
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
// @ts-check
|
|
||||||
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
|
|
||||||
// This file is automatically generated. DO NOT EDIT
|
|
||||||
|
|
||||||
import * as Company from "./company.js";
|
|
||||||
export {
|
|
||||||
Company
|
|
||||||
};
|
|
||||||
|
|
||||||
export {
|
|
||||||
Company
|
|
||||||
} from "./models.js";
|
|
||||||
@@ -1,63 +0,0 @@
|
|||||||
// @ts-check
|
|
||||||
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
|
|
||||||
// This file is automatically generated. DO NOT EDIT
|
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
||||||
// @ts-ignore: Unused imports
|
|
||||||
import { Create as $Create } from "@wailsio/runtime";
|
|
||||||
|
|
||||||
export class Company {
|
|
||||||
/**
|
|
||||||
* Creates a new Company instance.
|
|
||||||
* @param {Partial<Company>} [$$source = {}] - The source object to create the Company.
|
|
||||||
*/
|
|
||||||
constructor($$source = {}) {
|
|
||||||
if (!("Id" in $$source)) {
|
|
||||||
/**
|
|
||||||
* @member
|
|
||||||
* @type {number}
|
|
||||||
*/
|
|
||||||
this["Id"] = 0;
|
|
||||||
}
|
|
||||||
if (!("Name" in $$source)) {
|
|
||||||
/**
|
|
||||||
* @member
|
|
||||||
* @type {string}
|
|
||||||
*/
|
|
||||||
this["Name"] = "";
|
|
||||||
}
|
|
||||||
if (!("MemberNumber" in $$source)) {
|
|
||||||
/**
|
|
||||||
* @member
|
|
||||||
* @type {string}
|
|
||||||
*/
|
|
||||||
this["MemberNumber"] = "";
|
|
||||||
}
|
|
||||||
if (!("Username" in $$source)) {
|
|
||||||
/**
|
|
||||||
* @member
|
|
||||||
* @type {string}
|
|
||||||
*/
|
|
||||||
this["Username"] = "";
|
|
||||||
}
|
|
||||||
if (!("Password" in $$source)) {
|
|
||||||
/**
|
|
||||||
* @member
|
|
||||||
* @type {string}
|
|
||||||
*/
|
|
||||||
this["Password"] = "";
|
|
||||||
}
|
|
||||||
|
|
||||||
Object.assign(this, $$source);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Creates a new Company instance from a string or object.
|
|
||||||
* @param {any} [$$source = {}]
|
|
||||||
* @returns {Company}
|
|
||||||
*/
|
|
||||||
static createFrom($$source = {}) {
|
|
||||||
let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source;
|
|
||||||
return new Company(/** @type {Partial<Company>} */($$parsedSource));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
// @ts-check
|
|
||||||
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
|
|
||||||
// This file is automatically generated. DO NOT EDIT
|
|
||||||
|
|
||||||
import * as Srv from "./srv.js";
|
|
||||||
export {
|
|
||||||
Srv
|
|
||||||
};
|
|
||||||
@@ -1,65 +0,0 @@
|
|||||||
// @ts-check
|
|
||||||
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
|
|
||||||
// This file is automatically generated. DO NOT EDIT
|
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
||||||
// @ts-ignore: Unused imports
|
|
||||||
import { Call as $Call, CancellablePromise as $CancellablePromise, Create as $Create } from "@wailsio/runtime";
|
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
||||||
// @ts-ignore: Unused imports
|
|
||||||
import * as company$0 from "../company/models.js";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @returns {$CancellablePromise<company$0.Company[]>}
|
|
||||||
*/
|
|
||||||
export function Companies() {
|
|
||||||
return $Call.ByID(3083458084).then(/** @type {($result: any) => any} */(($result) => {
|
|
||||||
return $$createType1($result);
|
|
||||||
}));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param {string} name
|
|
||||||
* @param {string} memberNumber
|
|
||||||
* @param {string} username
|
|
||||||
* @param {string} password
|
|
||||||
* @returns {$CancellablePromise<void>}
|
|
||||||
*/
|
|
||||||
export function CreateCompany(name, memberNumber, username, password) {
|
|
||||||
return $Call.ByID(1901112960, name, memberNumber, username, password);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param {number} id
|
|
||||||
* @param {string} name
|
|
||||||
* @param {string} memberNumber
|
|
||||||
* @param {string} username
|
|
||||||
* @param {string} password
|
|
||||||
* @returns {$CancellablePromise<void>}
|
|
||||||
*/
|
|
||||||
export function EditCompany(id, name, memberNumber, username, password) {
|
|
||||||
return $Call.ByID(2617513428, id, name, memberNumber, username, password);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param {number} companyID
|
|
||||||
* @param {number} month
|
|
||||||
* @param {number} year
|
|
||||||
* @param {boolean} devMode
|
|
||||||
* @returns {$CancellablePromise<void>}
|
|
||||||
*/
|
|
||||||
export function Rpa(companyID, month, year, devMode) {
|
|
||||||
return $Call.ByID(202161926, companyID, month, year, devMode);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @returns {$CancellablePromise<string>}
|
|
||||||
*/
|
|
||||||
export function UploadExcel() {
|
|
||||||
return $Call.ByID(3720689099);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Private type creation functions
|
|
||||||
const $$createType0 = company$0.Company.createFrom;
|
|
||||||
const $$createType1 = $Create.Array($$createType0);
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
//@ts-check
|
|
||||||
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
|
|
||||||
// This file is automatically generated. DO NOT EDIT
|
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
||||||
// @ts-ignore: Unused imports
|
|
||||||
import { Create as $Create } from "@wailsio/runtime";
|
|
||||||
|
|
||||||
Object.freeze($Create.Events);
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
|
|
||||||
// This file is automatically generated. DO NOT EDIT
|
|
||||||
21
app/frontend/bindings/lib/company/Company.js
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
// @ts-check
|
||||||
|
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
|
||||||
|
// This file is automatically generated. DO NOT EDIT
|
||||||
|
|
||||||
|
import {Call} from '@wailsio/runtime';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @function Create
|
||||||
|
* @returns {Promise<void>}
|
||||||
|
**/
|
||||||
|
export async function Create() {
|
||||||
|
return Call.ByName("company.Company.Create", ...Array.prototype.slice.call(arguments, 0));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @function Edit
|
||||||
|
* @returns {Promise<void>}
|
||||||
|
**/
|
||||||
|
export async function Edit() {
|
||||||
|
return Call.ByName("company.Company.Edit", ...Array.prototype.slice.call(arguments, 0));
|
||||||
|
}
|
||||||
58
app/frontend/bindings/lib/srv/Srv.js
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
// @ts-check
|
||||||
|
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
|
||||||
|
// This file is automatically generated. DO NOT EDIT
|
||||||
|
|
||||||
|
import {Call} from '@wailsio/runtime';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @function Companies
|
||||||
|
* @returns {Promise<Company[], void>}
|
||||||
|
**/
|
||||||
|
export async function Companies() {
|
||||||
|
return Call.ByName("srv.Srv.Companies", ...Array.prototype.slice.call(arguments, 0));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @function CreateCompany
|
||||||
|
* @param name {string}
|
||||||
|
* @param memberNumber {string}
|
||||||
|
* @param username {string}
|
||||||
|
* @param password {string}
|
||||||
|
* @returns {Promise<void>}
|
||||||
|
**/
|
||||||
|
export async function CreateCompany(name, memberNumber, username, password) {
|
||||||
|
return Call.ByName("srv.Srv.CreateCompany", ...Array.prototype.slice.call(arguments, 0));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @function EditCompany
|
||||||
|
* @param id {number}
|
||||||
|
* @param name {string}
|
||||||
|
* @param memberNumber {string}
|
||||||
|
* @param username {string}
|
||||||
|
* @param password {string}
|
||||||
|
* @returns {Promise<void>}
|
||||||
|
**/
|
||||||
|
export async function EditCompany(id, name, memberNumber, username, password) {
|
||||||
|
return Call.ByName("srv.Srv.EditCompany", ...Array.prototype.slice.call(arguments, 0));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @function Rpa
|
||||||
|
* @param companyID {number}
|
||||||
|
* @param month {number}
|
||||||
|
* @param year {number}
|
||||||
|
* @param devMode {boolean}
|
||||||
|
* @returns {Promise<void>}
|
||||||
|
**/
|
||||||
|
export async function Rpa(companyID, month, year, devMode) {
|
||||||
|
return Call.ByName("srv.Srv.Rpa", ...Array.prototype.slice.call(arguments, 0));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @function UploadExcel
|
||||||
|
* @returns {Promise<string>}
|
||||||
|
**/
|
||||||
|
export async function UploadExcel() {
|
||||||
|
return Call.ByName("srv.Srv.UploadExcel", ...Array.prototype.slice.call(arguments, 0));
|
||||||
|
}
|
||||||
@@ -1,21 +1,21 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title><%= productName %></title>
|
<title><%= productName %></title>
|
||||||
|
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="description" content="<%= productDescription %>">
|
<meta name="description" content="<%= productDescription %>">
|
||||||
<meta name="format-detection" content="telephone=no">
|
<meta name="format-detection" content="telephone=no">
|
||||||
<meta name="msapplication-tap-highlight" content="no">
|
<meta name="msapplication-tap-highlight" content="no">
|
||||||
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width<% if (ctx.mode.cordova || ctx.mode.capacitor) { %>, viewport-fit=cover<% } %>">
|
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width<% if (ctx.mode.cordova || ctx.mode.capacitor) { %>, viewport-fit=cover<% } %>">
|
||||||
|
|
||||||
<link rel="icon" type="image/png" sizes="128x128" href="icons/favicon-128x128.png">
|
<link rel="icon" type="image/png" sizes="128x128" href="icons/favicon-128x128.png">
|
||||||
<link rel="icon" type="image/png" sizes="96x96" href="icons/favicon-96x96.png">
|
<link rel="icon" type="image/png" sizes="96x96" href="icons/favicon-96x96.png">
|
||||||
<link rel="icon" type="image/png" sizes="32x32" href="icons/favicon-32x32.png">
|
<link rel="icon" type="image/png" sizes="32x32" href="icons/favicon-32x32.png">
|
||||||
<link rel="icon" type="image/png" sizes="16x16" href="icons/favicon-16x16.png">
|
<link rel="icon" type="image/png" sizes="16x16" href="icons/favicon-16x16.png">
|
||||||
<link rel="icon" type="image/ico" href="favicon.ico">
|
<link rel="icon" type="image/ico" href="favicon.ico">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<!-- quasar:entry-point -->
|
<!-- quasar:entry-point -->
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -1,39 +1,39 @@
|
|||||||
{
|
{
|
||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
"baseUrl": ".",
|
"baseUrl": ".",
|
||||||
"paths": {
|
"paths": {
|
||||||
"src/*": [
|
"src/*": [
|
||||||
"src/*"
|
"src/*"
|
||||||
],
|
],
|
||||||
"app/*": [
|
"app/*": [
|
||||||
"*"
|
"*"
|
||||||
],
|
],
|
||||||
"components/*": [
|
"components/*": [
|
||||||
"src/components/*"
|
"src/components/*"
|
||||||
],
|
],
|
||||||
"layouts/*": [
|
"layouts/*": [
|
||||||
"src/layouts/*"
|
"src/layouts/*"
|
||||||
],
|
],
|
||||||
"pages/*": [
|
"pages/*": [
|
||||||
"src/pages/*"
|
"src/pages/*"
|
||||||
],
|
],
|
||||||
"assets/*": [
|
"assets/*": [
|
||||||
"src/assets/*"
|
"src/assets/*"
|
||||||
],
|
],
|
||||||
"boot/*": [
|
"boot/*": [
|
||||||
"src/boot/*"
|
"src/boot/*"
|
||||||
],
|
],
|
||||||
"stores/*": [
|
"stores/*": [
|
||||||
"src/stores/*"
|
"src/stores/*"
|
||||||
],
|
],
|
||||||
"vue$": [
|
"vue$": [
|
||||||
"node_modules/vue/dist/vue.runtime.esm-bundler.js"
|
"node_modules/vue/dist/vue.runtime.esm-bundler.js"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"exclude": [
|
"exclude": [
|
||||||
"dist",
|
"dist",
|
||||||
".quasar",
|
".quasar",
|
||||||
"node_modules"
|
"node_modules"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
14512
app/frontend/package-lock.json
generated
@@ -1,36 +1,37 @@
|
|||||||
{
|
{
|
||||||
"name": "frontend",
|
"name": "frontend",
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"description": "A Quasar Project",
|
"description": "A Quasar Project",
|
||||||
"productName": "Quasar App",
|
"productName": "Quasar App",
|
||||||
"author": "ctengiz <cagatay.tengiz@gmail.com>",
|
"author": "ctengiz <cagatay.tengiz@gmail.com>",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"lint": "eslint --ext .js,.vue ./",
|
"lint": "eslint --ext .js,.vue ./",
|
||||||
"format": "prettier --write \"**/*.{js,vue,scss,html,md,json}\" --ignore-path .gitignore",
|
"format": "prettier --write \"**/*.{js,vue,scss,html,md,json}\" --ignore-path .gitignore",
|
||||||
"test": "echo \"No test specified\" && exit 0",
|
"test": "echo \"No test specified\" && exit 0",
|
||||||
"dev": "quasar dev",
|
"dev": "quasar dev",
|
||||||
"build": "quasar build"
|
"build": "quasar build"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@quasar/extras": "^1.16.4",
|
"@quasar/extras": "^1.16.4",
|
||||||
"quasar": "^2.8.0",
|
"@wailsio/runtime": "^3.0.0-alpha.20",
|
||||||
"vue": "^3.4.18",
|
"quasar": "^2.8.0",
|
||||||
"vue-router": "^4.0.12"
|
"vue": "^3.4.18",
|
||||||
},
|
"vue-router": "^4.0.12"
|
||||||
"devDependencies": {
|
},
|
||||||
"@quasar/app-vite": "^1.4.3",
|
"devDependencies": {
|
||||||
"@wailsio/runtime": "^3.0.0-alpha.79",
|
"@quasar/app-vite": "^1.4.3",
|
||||||
"autoprefixer": "^10.4.2",
|
"autoprefixer": "^10.4.2",
|
||||||
"eslint": "^8.11.0",
|
"eslint": "^8.11.0",
|
||||||
"eslint-config-prettier": "^8.1.0",
|
"eslint-config-prettier": "^8.1.0",
|
||||||
"eslint-plugin-vue": "^9.0.0",
|
"eslint-plugin-vue": "^9.0.0",
|
||||||
"postcss": "^8.4.14",
|
"postcss": "^8.4.14",
|
||||||
"prettier": "^2.5.1"
|
"prettier": "^2.5.1",
|
||||||
},
|
"@wailsio/runtime": "latest"
|
||||||
"engines": {
|
},
|
||||||
"node": "^20 || ^18 || ^16",
|
"engines": {
|
||||||
"npm": ">= 6.13.4",
|
"node": "^20 || ^18 || ^16",
|
||||||
"yarn": ">= 1.21.1"
|
"npm": ">= 6.13.4",
|
||||||
}
|
"yarn": ">= 1.21.1"
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,27 +1,27 @@
|
|||||||
/* eslint-disable */
|
/* eslint-disable */
|
||||||
// https://github.com/michael-ciniawsky/postcss-load-config
|
// https://github.com/michael-ciniawsky/postcss-load-config
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
plugins: [
|
plugins: [
|
||||||
// https://github.com/postcss/autoprefixer
|
// https://github.com/postcss/autoprefixer
|
||||||
require('autoprefixer')({
|
require('autoprefixer')({
|
||||||
overrideBrowserslist: [
|
overrideBrowserslist: [
|
||||||
'last 4 Chrome versions',
|
'last 4 Chrome versions',
|
||||||
'last 4 Firefox versions',
|
'last 4 Firefox versions',
|
||||||
'last 4 Edge versions',
|
'last 4 Edge versions',
|
||||||
'last 4 Safari versions',
|
'last 4 Safari versions',
|
||||||
'last 4 Android versions',
|
'last 4 Android versions',
|
||||||
'last 4 ChromeAndroid versions',
|
'last 4 ChromeAndroid versions',
|
||||||
'last 4 FirefoxAndroid versions',
|
'last 4 FirefoxAndroid versions',
|
||||||
'last 4 iOS versions'
|
'last 4 iOS versions'
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
|
|
||||||
// https://github.com/elchininet/postcss-rtlcss
|
// https://github.com/elchininet/postcss-rtlcss
|
||||||
// If you want to support RTL css, then
|
// If you want to support RTL css, then
|
||||||
// 1. yarn/npm install postcss-rtlcss
|
// 1. yarn/npm install postcss-rtlcss
|
||||||
// 2. optionally set quasar.config.js > framework > lang to an RTL language
|
// 2. optionally set quasar.config.js > framework > lang to an RTL language
|
||||||
// 3. uncomment the following line:
|
// 3. uncomment the following line:
|
||||||
// require('postcss-rtlcss')
|
// require('postcss-rtlcss')
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,146 +1,146 @@
|
|||||||
:root {
|
:root {
|
||||||
font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto",
|
font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto",
|
||||||
"Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue",
|
"Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue",
|
||||||
sans-serif;
|
sans-serif;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
line-height: 24px;
|
line-height: 24px;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
color-scheme: light dark;
|
color-scheme: light dark;
|
||||||
color: rgba(255, 255, 255, 0.87);
|
color: rgba(255, 255, 255, 0.87);
|
||||||
background-color: rgba(27, 38, 54, 1);
|
background-color: rgba(27, 38, 54, 1);
|
||||||
font-synthesis: none;
|
font-synthesis: none;
|
||||||
text-rendering: optimizeLegibility;
|
text-rendering: optimizeLegibility;
|
||||||
-webkit-font-smoothing: antialiased;
|
-webkit-font-smoothing: antialiased;
|
||||||
-moz-osx-font-smoothing: grayscale;
|
-moz-osx-font-smoothing: grayscale;
|
||||||
-webkit-text-size-adjust: 100%;
|
-webkit-text-size-adjust: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
* {
|
* {
|
||||||
user-select: none;
|
user-select: none;
|
||||||
-webkit-user-select: none;
|
-webkit-user-select: none;
|
||||||
-moz-user-select: none;
|
-moz-user-select: none;
|
||||||
-ms-user-select: none;
|
-ms-user-select: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: "Inter";
|
font-family: "Inter";
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
src: local(""),
|
src: local(""),
|
||||||
url("./Inter-Medium.ttf") format("truetype");
|
url("./Inter-Medium.ttf") format("truetype");
|
||||||
}
|
}
|
||||||
|
|
||||||
h3 {
|
h3 {
|
||||||
font-size: 3em;
|
font-size: 3em;
|
||||||
line-height: 1.1;
|
line-height: 1.1;
|
||||||
}
|
}
|
||||||
|
|
||||||
a {
|
a {
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
color: #646cff;
|
color: #646cff;
|
||||||
text-decoration: inherit;
|
text-decoration: inherit;
|
||||||
}
|
}
|
||||||
|
|
||||||
a:hover {
|
a:hover {
|
||||||
color: #535bf2;
|
color: #535bf2;
|
||||||
}
|
}
|
||||||
|
|
||||||
button {
|
button {
|
||||||
width: 60px;
|
width: 60px;
|
||||||
height: 30px;
|
height: 30px;
|
||||||
line-height: 30px;
|
line-height: 30px;
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
border: none;
|
border: none;
|
||||||
margin: 0 0 0 20px;
|
margin: 0 0 0 20px;
|
||||||
padding: 0 8px;
|
padding: 0 8px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
.result {
|
.result {
|
||||||
height: 20px;
|
height: 20px;
|
||||||
line-height: 20px;
|
line-height: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
body {
|
body {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
display: flex;
|
display: flex;
|
||||||
place-items: center;
|
place-items: center;
|
||||||
place-content: center;
|
place-content: center;
|
||||||
min-width: 320px;
|
min-width: 320px;
|
||||||
min-height: 100vh;
|
min-height: 100vh;
|
||||||
}
|
}
|
||||||
|
|
||||||
.container {
|
.container {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
h1 {
|
h1 {
|
||||||
font-size: 3.2em;
|
font-size: 3.2em;
|
||||||
line-height: 1.1;
|
line-height: 1.1;
|
||||||
}
|
}
|
||||||
|
|
||||||
#app {
|
#app {
|
||||||
max-width: 1280px;
|
max-width: 1280px;
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.result {
|
.result {
|
||||||
height: 20px;
|
height: 20px;
|
||||||
line-height: 20px;
|
line-height: 20px;
|
||||||
margin: 1.5rem auto;
|
margin: 1.5rem auto;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.footer {
|
.footer {
|
||||||
margin-top: 1rem;
|
margin-top: 1rem;
|
||||||
align-content: center;
|
align-content: center;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
color: rgba(255, 255, 255, 0.67);
|
color: rgba(255, 255, 255, 0.67);
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (prefers-color-scheme: light) {
|
@media (prefers-color-scheme: light) {
|
||||||
:root {
|
:root {
|
||||||
color: #213547;
|
color: #213547;
|
||||||
background-color: #ffffff;
|
background-color: #ffffff;
|
||||||
}
|
}
|
||||||
|
|
||||||
a:hover {
|
a:hover {
|
||||||
color: #747bff;
|
color: #747bff;
|
||||||
}
|
}
|
||||||
|
|
||||||
button {
|
button {
|
||||||
background-color: #f9f9f9;
|
background-color: #f9f9f9;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.input-box .btn:hover {
|
.input-box .btn:hover {
|
||||||
background-image: linear-gradient(to top, #cfd9df 0%, #e2ebf0 100%);
|
background-image: linear-gradient(to top, #cfd9df 0%, #e2ebf0 100%);
|
||||||
color: #333333;
|
color: #333333;
|
||||||
}
|
}
|
||||||
|
|
||||||
.input-box .input {
|
.input-box .input {
|
||||||
border: none;
|
border: none;
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
outline: none;
|
outline: none;
|
||||||
height: 30px;
|
height: 30px;
|
||||||
line-height: 30px;
|
line-height: 30px;
|
||||||
padding: 0 10px;
|
padding: 0 10px;
|
||||||
color: black;
|
color: black;
|
||||||
background-color: rgba(240, 240, 240, 1);
|
background-color: rgba(240, 240, 240, 1);
|
||||||
-webkit-font-smoothing: antialiased;
|
-webkit-font-smoothing: antialiased;
|
||||||
}
|
}
|
||||||
|
|
||||||
.input-box .input:hover {
|
.input-box .input:hover {
|
||||||
border: none;
|
border: none;
|
||||||
background-color: rgba(255, 255, 255, 1);
|
background-color: rgba(255, 255, 255, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
.input-box .input:focus {
|
.input-box .input:focus {
|
||||||
border: none;
|
border: none;
|
||||||
background-color: rgba(255, 255, 255, 1);
|
background-color: rgba(255, 255, 255, 1);
|
||||||
}
|
}
|
||||||
@@ -1,216 +1,216 @@
|
|||||||
/* eslint-env node */
|
/* eslint-env node */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This file runs in a Node context (it's NOT transpiled by Babel), so use only
|
* This file runs in a Node context (it's NOT transpiled by Babel), so use only
|
||||||
* the ES6 features that are supported by your Node version. https://node.green/
|
* the ES6 features that are supported by your Node version. https://node.green/
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// Configuration for your app
|
// Configuration for your app
|
||||||
// https://v2.quasar.dev/quasar-cli-vite/quasar-config-js
|
// https://v2.quasar.dev/quasar-cli-vite/quasar-config-js
|
||||||
|
|
||||||
|
|
||||||
const { configure } = require('quasar/wrappers');
|
const { configure } = require('quasar/wrappers');
|
||||||
|
|
||||||
|
|
||||||
module.exports = configure(function (/* ctx */) {
|
module.exports = configure(function (/* ctx */) {
|
||||||
return {
|
return {
|
||||||
eslint: {
|
eslint: {
|
||||||
// fix: true,
|
// fix: true,
|
||||||
// include: [],
|
// include: [],
|
||||||
// exclude: [],
|
// exclude: [],
|
||||||
// rawOptions: {},
|
// rawOptions: {},
|
||||||
warnings: true,
|
warnings: true,
|
||||||
errors: true
|
errors: true
|
||||||
},
|
},
|
||||||
|
|
||||||
// https://v2.quasar.dev/quasar-cli-vite/prefetch-feature
|
// https://v2.quasar.dev/quasar-cli-vite/prefetch-feature
|
||||||
// preFetch: true,
|
// preFetch: true,
|
||||||
|
|
||||||
// app boot file (/src/boot)
|
// app boot file (/src/boot)
|
||||||
// --> boot files are part of "main.js"
|
// --> boot files are part of "main.js"
|
||||||
// https://v2.quasar.dev/quasar-cli-vite/boot-files
|
// https://v2.quasar.dev/quasar-cli-vite/boot-files
|
||||||
boot: [
|
boot: [
|
||||||
|
|
||||||
|
|
||||||
],
|
],
|
||||||
|
|
||||||
// https://v2.quasar.dev/quasar-cli-vite/quasar-config-js#css
|
// https://v2.quasar.dev/quasar-cli-vite/quasar-config-js#css
|
||||||
css: [
|
css: [
|
||||||
'app.scss'
|
'app.scss'
|
||||||
],
|
],
|
||||||
|
|
||||||
// https://github.com/quasarframework/quasar/tree/dev/extras
|
// https://github.com/quasarframework/quasar/tree/dev/extras
|
||||||
extras: [
|
extras: [
|
||||||
// 'ionicons-v4',
|
// 'ionicons-v4',
|
||||||
'mdi-v7',
|
'mdi-v7',
|
||||||
// 'fontawesome-v6',
|
// 'fontawesome-v6',
|
||||||
// 'eva-icons',
|
// 'eva-icons',
|
||||||
// 'themify',
|
// 'themify',
|
||||||
// 'line-awesome',
|
// 'line-awesome',
|
||||||
// 'roboto-font-latin-ext', // this or either 'roboto-font', NEVER both!
|
// 'roboto-font-latin-ext', // this or either 'roboto-font', NEVER both!
|
||||||
|
|
||||||
'roboto-font', // optional, you are not bound to it
|
'roboto-font', // optional, you are not bound to it
|
||||||
'material-icons', // optional, you are not bound to it
|
'material-icons', // optional, you are not bound to it
|
||||||
],
|
],
|
||||||
|
|
||||||
// Full list of options: https://v2.quasar.dev/quasar-cli-vite/quasar-config-js#build
|
// Full list of options: https://v2.quasar.dev/quasar-cli-vite/quasar-config-js#build
|
||||||
build: {
|
build: {
|
||||||
target: {
|
target: {
|
||||||
browser: [ 'es2019', 'edge88', 'firefox78', 'chrome87', 'safari13.1' ],
|
browser: [ 'es2019', 'edge88', 'firefox78', 'chrome87', 'safari13.1' ],
|
||||||
node: 'node20'
|
node: 'node20'
|
||||||
},
|
},
|
||||||
|
|
||||||
vueRouterMode: 'hash', // available values: 'hash', 'history'
|
vueRouterMode: 'hash', // available values: 'hash', 'history'
|
||||||
// vueRouterBase,
|
// vueRouterBase,
|
||||||
// vueDevtools,
|
// vueDevtools,
|
||||||
// vueOptionsAPI: false,
|
// vueOptionsAPI: false,
|
||||||
|
|
||||||
// rebuildCache: true, // rebuilds Vite/linter/etc cache on startup
|
// rebuildCache: true, // rebuilds Vite/linter/etc cache on startup
|
||||||
|
|
||||||
// publicPath: '/',
|
// publicPath: '/',
|
||||||
// analyze: true,
|
// analyze: true,
|
||||||
// env: {},
|
// env: {},
|
||||||
// rawDefine: {}
|
// rawDefine: {}
|
||||||
// ignorePublicFolder: true,
|
// ignorePublicFolder: true,
|
||||||
// minify: false,
|
// minify: false,
|
||||||
// polyfillModulePreload: true,
|
// polyfillModulePreload: true,
|
||||||
// distDir
|
// distDir
|
||||||
|
|
||||||
// extendViteConf (viteConf) {},
|
// extendViteConf (viteConf) {},
|
||||||
// viteVuePluginOptions: {},
|
// viteVuePluginOptions: {},
|
||||||
|
|
||||||
|
|
||||||
// vitePlugins: [
|
// vitePlugins: [
|
||||||
// [ 'package-name', { ..options.. } ]
|
// [ 'package-name', { ..options.. } ]
|
||||||
// ]
|
// ]
|
||||||
},
|
},
|
||||||
|
|
||||||
// Full list of options: https://v2.quasar.dev/quasar-cli-vite/quasar-config-js#devServer
|
// Full list of options: https://v2.quasar.dev/quasar-cli-vite/quasar-config-js#devServer
|
||||||
devServer: {
|
devServer: {
|
||||||
// https: true
|
// https: true
|
||||||
open: true, // opens browser window automatically,
|
open: true, // opens browser window automatically,
|
||||||
port: 5173
|
port: 5173
|
||||||
},
|
},
|
||||||
|
|
||||||
// https://v2.quasar.dev/quasar-cli-vite/quasar-config-js#framework
|
// https://v2.quasar.dev/quasar-cli-vite/quasar-config-js#framework
|
||||||
framework: {
|
framework: {
|
||||||
config: {},
|
config: {},
|
||||||
|
|
||||||
// iconSet: 'material-icons', // Quasar icon set
|
// iconSet: 'material-icons', // Quasar icon set
|
||||||
// lang: 'en-US', // Quasar language pack
|
// lang: 'en-US', // Quasar language pack
|
||||||
|
|
||||||
// For special cases outside of where the auto-import strategy can have an impact
|
// For special cases outside of where the auto-import strategy can have an impact
|
||||||
// (like functional components as one of the examples),
|
// (like functional components as one of the examples),
|
||||||
// you can manually specify Quasar components/directives to be available everywhere:
|
// you can manually specify Quasar components/directives to be available everywhere:
|
||||||
//
|
//
|
||||||
// components: [],
|
// components: [],
|
||||||
// directives: [],
|
// directives: [],
|
||||||
|
|
||||||
// Quasar plugins
|
// Quasar plugins
|
||||||
plugins: [
|
plugins: [
|
||||||
'Dialog'
|
'Dialog'
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
||||||
// animations: 'all', // --- includes all animations
|
// animations: 'all', // --- includes all animations
|
||||||
// https://v2.quasar.dev/options/animations
|
// https://v2.quasar.dev/options/animations
|
||||||
animations: [],
|
animations: [],
|
||||||
|
|
||||||
// https://v2.quasar.dev/quasar-cli-vite/quasar-config-js#property-sourcefiles
|
// https://v2.quasar.dev/quasar-cli-vite/quasar-config-js#property-sourcefiles
|
||||||
// sourceFiles: {
|
// sourceFiles: {
|
||||||
// rootComponent: 'src/App.vue',
|
// rootComponent: 'src/App.vue',
|
||||||
// router: 'src/router/index',
|
// router: 'src/router/index',
|
||||||
// store: 'src/store/index',
|
// store: 'src/store/index',
|
||||||
// registerServiceWorker: 'src-pwa/register-service-worker',
|
// registerServiceWorker: 'src-pwa/register-service-worker',
|
||||||
// serviceWorker: 'src-pwa/custom-service-worker',
|
// serviceWorker: 'src-pwa/custom-service-worker',
|
||||||
// pwaManifestFile: 'src-pwa/manifest.json',
|
// pwaManifestFile: 'src-pwa/manifest.json',
|
||||||
// electronMain: 'src-electron/electron-main',
|
// electronMain: 'src-electron/electron-main',
|
||||||
// electronPreload: 'src-electron/electron-preload'
|
// electronPreload: 'src-electron/electron-preload'
|
||||||
// },
|
// },
|
||||||
|
|
||||||
// https://v2.quasar.dev/quasar-cli-vite/developing-ssr/configuring-ssr
|
// https://v2.quasar.dev/quasar-cli-vite/developing-ssr/configuring-ssr
|
||||||
ssr: {
|
ssr: {
|
||||||
// ssrPwaHtmlFilename: 'offline.html', // do NOT use index.html as name!
|
// ssrPwaHtmlFilename: 'offline.html', // do NOT use index.html as name!
|
||||||
// will mess up SSR
|
// will mess up SSR
|
||||||
|
|
||||||
// extendSSRWebserverConf (esbuildConf) {},
|
// extendSSRWebserverConf (esbuildConf) {},
|
||||||
// extendPackageJson (json) {},
|
// extendPackageJson (json) {},
|
||||||
|
|
||||||
pwa: false,
|
pwa: false,
|
||||||
|
|
||||||
// manualStoreHydration: true,
|
// manualStoreHydration: true,
|
||||||
// manualPostHydrationTrigger: true,
|
// manualPostHydrationTrigger: true,
|
||||||
|
|
||||||
prodPort: 3000, // The default port that the production server should use
|
prodPort: 3000, // The default port that the production server should use
|
||||||
// (gets superseded if process.env.PORT is specified at runtime)
|
// (gets superseded if process.env.PORT is specified at runtime)
|
||||||
|
|
||||||
middlewares: [
|
middlewares: [
|
||||||
'render' // keep this as last one
|
'render' // keep this as last one
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
||||||
// https://v2.quasar.dev/quasar-cli-vite/developing-pwa/configuring-pwa
|
// https://v2.quasar.dev/quasar-cli-vite/developing-pwa/configuring-pwa
|
||||||
pwa: {
|
pwa: {
|
||||||
workboxMode: 'generateSW', // or 'injectManifest'
|
workboxMode: 'generateSW', // or 'injectManifest'
|
||||||
injectPwaMetaTags: true,
|
injectPwaMetaTags: true,
|
||||||
swFilename: 'sw.js',
|
swFilename: 'sw.js',
|
||||||
manifestFilename: 'manifest.json',
|
manifestFilename: 'manifest.json',
|
||||||
useCredentialsForManifestTag: false,
|
useCredentialsForManifestTag: false,
|
||||||
// useFilenameHashes: true,
|
// useFilenameHashes: true,
|
||||||
// extendGenerateSWOptions (cfg) {}
|
// extendGenerateSWOptions (cfg) {}
|
||||||
// extendInjectManifestOptions (cfg) {},
|
// extendInjectManifestOptions (cfg) {},
|
||||||
// extendManifestJson (json) {}
|
// extendManifestJson (json) {}
|
||||||
// extendPWACustomSWConf (esbuildConf) {}
|
// extendPWACustomSWConf (esbuildConf) {}
|
||||||
},
|
},
|
||||||
|
|
||||||
// Full list of options: https://v2.quasar.dev/quasar-cli-vite/developing-cordova-apps/configuring-cordova
|
// Full list of options: https://v2.quasar.dev/quasar-cli-vite/developing-cordova-apps/configuring-cordova
|
||||||
cordova: {
|
cordova: {
|
||||||
// noIosLegacyBuildFlag: true, // uncomment only if you know what you are doing
|
// noIosLegacyBuildFlag: true, // uncomment only if you know what you are doing
|
||||||
},
|
},
|
||||||
|
|
||||||
// Full list of options: https://v2.quasar.dev/quasar-cli-vite/developing-capacitor-apps/configuring-capacitor
|
// Full list of options: https://v2.quasar.dev/quasar-cli-vite/developing-capacitor-apps/configuring-capacitor
|
||||||
capacitor: {
|
capacitor: {
|
||||||
hideSplashscreen: true
|
hideSplashscreen: true
|
||||||
},
|
},
|
||||||
|
|
||||||
// Full list of options: https://v2.quasar.dev/quasar-cli-vite/developing-electron-apps/configuring-electron
|
// Full list of options: https://v2.quasar.dev/quasar-cli-vite/developing-electron-apps/configuring-electron
|
||||||
electron: {
|
electron: {
|
||||||
// extendElectronMainConf (esbuildConf)
|
// extendElectronMainConf (esbuildConf)
|
||||||
// extendElectronPreloadConf (esbuildConf)
|
// extendElectronPreloadConf (esbuildConf)
|
||||||
|
|
||||||
// specify the debugging port to use for the Electron app when running in development mode
|
// specify the debugging port to use for the Electron app when running in development mode
|
||||||
inspectPort: 5858,
|
inspectPort: 5858,
|
||||||
|
|
||||||
bundler: 'packager', // 'packager' or 'builder'
|
bundler: 'packager', // 'packager' or 'builder'
|
||||||
|
|
||||||
packager: {
|
packager: {
|
||||||
// https://github.com/electron-userland/electron-packager/blob/master/docs/api.md#options
|
// https://github.com/electron-userland/electron-packager/blob/master/docs/api.md#options
|
||||||
|
|
||||||
// OS X / Mac App Store
|
// OS X / Mac App Store
|
||||||
// appBundleId: '',
|
// appBundleId: '',
|
||||||
// appCategoryType: '',
|
// appCategoryType: '',
|
||||||
// osxSign: '',
|
// osxSign: '',
|
||||||
// protocol: 'myapp://path',
|
// protocol: 'myapp://path',
|
||||||
|
|
||||||
// Windows only
|
// Windows only
|
||||||
// win32metadata: { ... }
|
// win32metadata: { ... }
|
||||||
},
|
},
|
||||||
|
|
||||||
builder: {
|
builder: {
|
||||||
// https://www.electron.build/configuration/configuration
|
// https://www.electron.build/configuration/configuration
|
||||||
|
|
||||||
appId: 'frontend'
|
appId: 'frontend'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
// Full list of options: https://v2.quasar.dev/quasar-cli-vite/developing-browser-extensions/configuring-bex
|
// Full list of options: https://v2.quasar.dev/quasar-cli-vite/developing-browser-extensions/configuring-bex
|
||||||
bex: {
|
bex: {
|
||||||
contentScripts: [
|
contentScripts: [
|
||||||
'my-content-script'
|
'my-content-script'
|
||||||
],
|
],
|
||||||
|
|
||||||
// extendBexScriptsConf (esbuildConf) {}
|
// extendBexScriptsConf (esbuildConf) {}
|
||||||
// extendBexManifestJson (json) {}
|
// extendBexManifestJson (json) {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
<template>
|
<template>
|
||||||
<router-view />
|
<router-view />
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { defineComponent } from 'vue'
|
import { defineComponent } from 'vue'
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
name: 'App'
|
name: 'App'
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -1,15 +1,15 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 356 360">
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 356 360">
|
||||||
<path
|
<path
|
||||||
d="M43.4 303.4c0 3.8-2.3 6.3-7.1 6.3h-15v-22h14.4c4.3 0 6.2 2.2 6.2 5.2 0 2.6-1.5 4.4-3.4 5 2.8.4 4.9 2.5 4.9 5.5zm-8-13H24.1v6.9H35c2.1 0 4-1.3 4-3.8 0-2.2-1.3-3.1-3.7-3.1zm5.1 12.6c0-2.3-1.8-3.7-4-3.7H24.2v7.7h11.7c3.4 0 4.6-1.8 4.6-4zm36.3 4v2.7H56v-22h20.6v2.7H58.9v6.8h14.6v2.3H58.9v7.5h17.9zm23-5.8v8.5H97v-8.5l-11-13.4h3.4l8.9 11 8.8-11h3.4l-10.8 13.4zm19.1-1.8V298c0-7.9 5.2-10.7 12.7-10.7 7.5 0 13 2.8 13 10.7v1.4c0 7.9-5.5 10.8-13 10.8s-12.7-3-12.7-10.8zm22.7 0V298c0-5.7-3.9-8-10-8-6 0-9.8 2.3-9.8 8v1.4c0 5.8 3.8 8.1 9.8 8.1 6 0 10-2.3 10-8.1zm37.2-11.6v21.9h-2.9l-15.8-17.9v17.9h-2.8v-22h3l15.6 18v-18h2.9zm37.9 10.2v1.3c0 7.8-5.2 10.4-12.4 10.4H193v-22h11.2c7.2 0 12.4 2.8 12.4 10.3zm-3 0c0-5.3-3.3-7.6-9.4-7.6h-8.4V307h8.4c6 0 9.5-2 9.5-7.7V298zm50.8-7.6h-9.7v19.3h-3v-19.3h-9.7v-2.6h22.4v2.6zm34.4-2.6v21.9h-3v-10.1h-16.8v10h-2.8v-21.8h2.8v9.2H296v-9.2h2.9zm34.9 19.2v2.7h-20.7v-22h20.6v2.7H316v6.8h14.5v2.3H316v7.5h17.8zM24 340.2v7.3h13.9v2.4h-14v9.6H21v-22h20v2.7H24zm41.5 11.4h-9.8v7.9H53v-22h13.3c5.1 0 8 1.9 8 6.8 0 3.7-2 6.3-5.6 7l6 8.2h-3.3l-5.8-8zm-9.8-2.6H66c3.1 0 5.3-1.5 5.3-4.7 0-3.3-2.2-4.1-5.3-4.1H55.7v8.8zm47.9 6.2H89l-2 4.3h-3.2l10.7-22.2H98l10.7 22.2h-3.2l-2-4.3zm-1-2.3l-6.3-13-6 13h12.2zm46.3-15.3v21.9H146v-17.2L135.7 358h-2.1l-10.2-15.6v17h-2.8v-21.8h3l11 16.9 11.3-17h3zm35 19.3v2.6h-20.7v-22h20.6v2.7H166v6.8h14.5v2.3H166v7.6h17.8zm47-19.3l-8.3 22h-3l-7.1-18.6-7 18.6h-3l-8.2-22h3.3L204 356l6.8-18.5h3.4L221 356l6.6-18.5h3.3zm10 11.6v-1.4c0-7.8 5.2-10.7 12.7-10.7 7.6 0 13 2.9 13 10.7v1.4c0 7.9-5.4 10.8-13 10.8-7.5 0-12.7-3-12.7-10.8zm22.8 0v-1.4c0-5.7-4-8-10-8s-9.9 2.3-9.9 8v1.4c0 5.8 3.8 8.2 9.8 8.2 6.1 0 10-2.4 10-8.2zm28.3 2.4h-9.8v7.9h-2.8v-22h13.2c5.2 0 8 1.9 8 6.8 0 3.7-2 6.3-5.6 7l6 8.2h-3.3l-5.8-8zm-9.8-2.6h10.2c3 0 5.2-1.5 5.2-4.7 0-3.3-2.1-4.1-5.2-4.1h-10.2v8.8zm40.3-1.5l-6.8 5.6v6.4h-2.9v-22h2.9v12.3l15.2-12.2h3.7l-9.9 8.1 10.3 13.8h-3.6l-8.9-12z" />
|
d="M43.4 303.4c0 3.8-2.3 6.3-7.1 6.3h-15v-22h14.4c4.3 0 6.2 2.2 6.2 5.2 0 2.6-1.5 4.4-3.4 5 2.8.4 4.9 2.5 4.9 5.5zm-8-13H24.1v6.9H35c2.1 0 4-1.3 4-3.8 0-2.2-1.3-3.1-3.7-3.1zm5.1 12.6c0-2.3-1.8-3.7-4-3.7H24.2v7.7h11.7c3.4 0 4.6-1.8 4.6-4zm36.3 4v2.7H56v-22h20.6v2.7H58.9v6.8h14.6v2.3H58.9v7.5h17.9zm23-5.8v8.5H97v-8.5l-11-13.4h3.4l8.9 11 8.8-11h3.4l-10.8 13.4zm19.1-1.8V298c0-7.9 5.2-10.7 12.7-10.7 7.5 0 13 2.8 13 10.7v1.4c0 7.9-5.5 10.8-13 10.8s-12.7-3-12.7-10.8zm22.7 0V298c0-5.7-3.9-8-10-8-6 0-9.8 2.3-9.8 8v1.4c0 5.8 3.8 8.1 9.8 8.1 6 0 10-2.3 10-8.1zm37.2-11.6v21.9h-2.9l-15.8-17.9v17.9h-2.8v-22h3l15.6 18v-18h2.9zm37.9 10.2v1.3c0 7.8-5.2 10.4-12.4 10.4H193v-22h11.2c7.2 0 12.4 2.8 12.4 10.3zm-3 0c0-5.3-3.3-7.6-9.4-7.6h-8.4V307h8.4c6 0 9.5-2 9.5-7.7V298zm50.8-7.6h-9.7v19.3h-3v-19.3h-9.7v-2.6h22.4v2.6zm34.4-2.6v21.9h-3v-10.1h-16.8v10h-2.8v-21.8h2.8v9.2H296v-9.2h2.9zm34.9 19.2v2.7h-20.7v-22h20.6v2.7H316v6.8h14.5v2.3H316v7.5h17.8zM24 340.2v7.3h13.9v2.4h-14v9.6H21v-22h20v2.7H24zm41.5 11.4h-9.8v7.9H53v-22h13.3c5.1 0 8 1.9 8 6.8 0 3.7-2 6.3-5.6 7l6 8.2h-3.3l-5.8-8zm-9.8-2.6H66c3.1 0 5.3-1.5 5.3-4.7 0-3.3-2.2-4.1-5.3-4.1H55.7v8.8zm47.9 6.2H89l-2 4.3h-3.2l10.7-22.2H98l10.7 22.2h-3.2l-2-4.3zm-1-2.3l-6.3-13-6 13h12.2zm46.3-15.3v21.9H146v-17.2L135.7 358h-2.1l-10.2-15.6v17h-2.8v-21.8h3l11 16.9 11.3-17h3zm35 19.3v2.6h-20.7v-22h20.6v2.7H166v6.8h14.5v2.3H166v7.6h17.8zm47-19.3l-8.3 22h-3l-7.1-18.6-7 18.6h-3l-8.2-22h3.3L204 356l6.8-18.5h3.4L221 356l6.6-18.5h3.3zm10 11.6v-1.4c0-7.8 5.2-10.7 12.7-10.7 7.6 0 13 2.9 13 10.7v1.4c0 7.9-5.4 10.8-13 10.8-7.5 0-12.7-3-12.7-10.8zm22.8 0v-1.4c0-5.7-4-8-10-8s-9.9 2.3-9.9 8v1.4c0 5.8 3.8 8.2 9.8 8.2 6.1 0 10-2.4 10-8.2zm28.3 2.4h-9.8v7.9h-2.8v-22h13.2c5.2 0 8 1.9 8 6.8 0 3.7-2 6.3-5.6 7l6 8.2h-3.3l-5.8-8zm-9.8-2.6h10.2c3 0 5.2-1.5 5.2-4.7 0-3.3-2.1-4.1-5.2-4.1h-10.2v8.8zm40.3-1.5l-6.8 5.6v6.4h-2.9v-22h2.9v12.3l15.2-12.2h3.7l-9.9 8.1 10.3 13.8h-3.6l-8.9-12z" />
|
||||||
<path fill="#050A14"
|
<path fill="#050A14"
|
||||||
d="M188.4 71.7a10.4 10.4 0 01-20.8 0 10.4 10.4 0 1120.8 0zM224.2 45c-2.2-3.9-5-7.5-8.2-10.7l-12 7c-3.7-3.2-8-5.7-12.6-7.3a49.4 49.4 0 00-9.7 13.9 59 59 0 0140.1 14l7.6-4.4a57 57 0 00-5.2-12.5zM178 125.1c4.5 0 9-.6 13.4-1.7v-14a40 40 0 0012.5-7.2 47.7 47.7 0 00-7.1-15.3 59 59 0 01-32.2 27.7v8.7c4.4 1.2 8.9 1.8 13.4 1.8zM131.8 45c-2.3 4-4 8.1-5.2 12.5l12 7a40 40 0 000 14.4c5.7 1.5 11.3 2 16.9 1.5a59 59 0 01-8-41.7l-7.5-4.3c-3.2 3.2-6 6.7-8.2 10.6z" />
|
d="M188.4 71.7a10.4 10.4 0 01-20.8 0 10.4 10.4 0 1120.8 0zM224.2 45c-2.2-3.9-5-7.5-8.2-10.7l-12 7c-3.7-3.2-8-5.7-12.6-7.3a49.4 49.4 0 00-9.7 13.9 59 59 0 0140.1 14l7.6-4.4a57 57 0 00-5.2-12.5zM178 125.1c4.5 0 9-.6 13.4-1.7v-14a40 40 0 0012.5-7.2 47.7 47.7 0 00-7.1-15.3 59 59 0 01-32.2 27.7v8.7c4.4 1.2 8.9 1.8 13.4 1.8zM131.8 45c-2.3 4-4 8.1-5.2 12.5l12 7a40 40 0 000 14.4c5.7 1.5 11.3 2 16.9 1.5a59 59 0 01-8-41.7l-7.5-4.3c-3.2 3.2-6 6.7-8.2 10.6z" />
|
||||||
<path fill="#00B4FF"
|
<path fill="#00B4FF"
|
||||||
d="M224.2 98.4c2.3-3.9 4-8 5.2-12.4l-12-7a40 40 0 000-14.5c-5.7-1.5-11.3-2-16.9-1.5a59 59 0 018 41.7l7.5 4.4c3.2-3.2 6-6.8 8.2-10.7zm-92.4 0c2.2 4 5 7.5 8.2 10.7l12-7a40 40 0 0012.6 7.3c4-4.1 7.3-8.8 9.7-13.8a59 59 0 01-40-14l-7.7 4.4c1.2 4.3 3 8.5 5.2 12.4zm46.2-80c-4.5 0-9 .5-13.4 1.7V34a40 40 0 00-12.5 7.2c1.5 5.7 4 10.8 7.1 15.4a59 59 0 0132.2-27.7V20a53.3 53.3 0 00-13.4-1.8z" />
|
d="M224.2 98.4c2.3-3.9 4-8 5.2-12.4l-12-7a40 40 0 000-14.5c-5.7-1.5-11.3-2-16.9-1.5a59 59 0 018 41.7l7.5 4.4c3.2-3.2 6-6.8 8.2-10.7zm-92.4 0c2.2 4 5 7.5 8.2 10.7l12-7a40 40 0 0012.6 7.3c4-4.1 7.3-8.8 9.7-13.8a59 59 0 01-40-14l-7.7 4.4c1.2 4.3 3 8.5 5.2 12.4zm46.2-80c-4.5 0-9 .5-13.4 1.7V34a40 40 0 00-12.5 7.2c1.5 5.7 4 10.8 7.1 15.4a59 59 0 0132.2-27.7V20a53.3 53.3 0 00-13.4-1.8z" />
|
||||||
<path fill="#00B4FF"
|
<path fill="#00B4FF"
|
||||||
d="M178 9.2a62.6 62.6 0 11-.1 125.2A62.6 62.6 0 01178 9.2m0-9.2a71.7 71.7 0 100 143.5A71.7 71.7 0 00178 0z" />
|
d="M178 9.2a62.6 62.6 0 11-.1 125.2A62.6 62.6 0 01178 9.2m0-9.2a71.7 71.7 0 100 143.5A71.7 71.7 0 00178 0z" />
|
||||||
<path fill="#050A14"
|
<path fill="#050A14"
|
||||||
d="M96.6 212v4.3c-9.2-.8-15.4-5.8-15.4-17.8V180h4.6v18.4c0 8.6 4 12.6 10.8 13.5zm16-31.9v18.4c0 8.9-4.3 12.8-10.9 13.5v4.4c9.2-.7 15.5-5.6 15.5-18v-18.3h-4.7zM62.2 199v-2.2c0-12.7-8.8-17.4-21-17.4-12.1 0-20.7 4.7-20.7 17.4v2.2c0 12.8 8.6 17.6 20.7 17.6 1.5 0 3-.1 4.4-.3l11.8 6.2 2-3.3-8.2-4-6.4-3.1a32 32 0 01-3.6.2c-9.8 0-16-3.9-16-13.3v-2.2c0-9.3 6.2-13.1 16-13.1 9.9 0 16.3 3.8 16.3 13.1v2.2c0 5.3-2.1 8.7-5.6 10.8l4.8 2.4c3.4-2.8 5.5-7 5.5-13.2zM168 215.6h5.1L156 179.7h-4.8l17 36zM143 205l7.4-15.7-2.4-5-15.1 31.4h5.1l3.3-7h18.3l-1.8-3.7H143zm133.7 10.7h5.2l-17.3-35.9h-4.8l17 36zm-25-10.7l7.4-15.7-2.4-5-15.1 31.4h5.1l3.3-7h18.3l-1.7-3.7h-14.8zm73.8-2.5c6-1.2 9-5.4 9-11.4 0-8-4.5-10.9-12.9-10.9h-21.4v35.5h4.6v-31.3h16.5c5 0 8.5 1.4 8.5 6.7 0 5.2-3.5 7.7-8.5 7.7h-11.4v4.1h10.7l9.3 12.8h5.5l-9.9-13.2zm-117.4 9.9c-9.7 0-14.7-2.5-18.6-6.3l-2.2 3.8c5.1 5 11 6.7 21 6.7 1.6 0 3.1-.1 4.6-.3l-1.9-4h-3zm18.4-7c0-6.4-4.7-8.6-13.8-9.4l-10.1-1c-6.7-.7-9.3-2.2-9.3-5.6 0-2.5 1.4-4 4.6-5l-1.8-3.8c-4.7 1.4-7.5 4.2-7.5 8.9 0 5.2 3.4 8.7 13 9.6l11.3 1.2c6.4.6 8.9 2 8.9 5.4 0 2.7-2.1 4.7-6 5.8l1.8 3.9c5.3-1.6 8.9-4.7 8.9-10zm-20.3-21.9c7.9 0 13.3 1.8 18.1 5.7l1.8-3.9a30 30 0 00-19.6-5.9c-2 0-4 .1-5.7.3l1.9 4 3.5-.2z" />
|
d="M96.6 212v4.3c-9.2-.8-15.4-5.8-15.4-17.8V180h4.6v18.4c0 8.6 4 12.6 10.8 13.5zm16-31.9v18.4c0 8.9-4.3 12.8-10.9 13.5v4.4c9.2-.7 15.5-5.6 15.5-18v-18.3h-4.7zM62.2 199v-2.2c0-12.7-8.8-17.4-21-17.4-12.1 0-20.7 4.7-20.7 17.4v2.2c0 12.8 8.6 17.6 20.7 17.6 1.5 0 3-.1 4.4-.3l11.8 6.2 2-3.3-8.2-4-6.4-3.1a32 32 0 01-3.6.2c-9.8 0-16-3.9-16-13.3v-2.2c0-9.3 6.2-13.1 16-13.1 9.9 0 16.3 3.8 16.3 13.1v2.2c0 5.3-2.1 8.7-5.6 10.8l4.8 2.4c3.4-2.8 5.5-7 5.5-13.2zM168 215.6h5.1L156 179.7h-4.8l17 36zM143 205l7.4-15.7-2.4-5-15.1 31.4h5.1l3.3-7h18.3l-1.8-3.7H143zm133.7 10.7h5.2l-17.3-35.9h-4.8l17 36zm-25-10.7l7.4-15.7-2.4-5-15.1 31.4h5.1l3.3-7h18.3l-1.7-3.7h-14.8zm73.8-2.5c6-1.2 9-5.4 9-11.4 0-8-4.5-10.9-12.9-10.9h-21.4v35.5h4.6v-31.3h16.5c5 0 8.5 1.4 8.5 6.7 0 5.2-3.5 7.7-8.5 7.7h-11.4v4.1h10.7l9.3 12.8h5.5l-9.9-13.2zm-117.4 9.9c-9.7 0-14.7-2.5-18.6-6.3l-2.2 3.8c5.1 5 11 6.7 21 6.7 1.6 0 3.1-.1 4.6-.3l-1.9-4h-3zm18.4-7c0-6.4-4.7-8.6-13.8-9.4l-10.1-1c-6.7-.7-9.3-2.2-9.3-5.6 0-2.5 1.4-4 4.6-5l-1.8-3.8c-4.7 1.4-7.5 4.2-7.5 8.9 0 5.2 3.4 8.7 13 9.6l11.3 1.2c6.4.6 8.9 2 8.9 5.4 0 2.7-2.1 4.7-6 5.8l1.8 3.9c5.3-1.6 8.9-4.7 8.9-10zm-20.3-21.9c7.9 0 13.3 1.8 18.1 5.7l1.8-3.9a30 30 0 00-19.6-5.9c-2 0-4 .1-5.7.3l1.9 4 3.5-.2z" />
|
||||||
<path fill="#00B4FF"
|
<path fill="#00B4FF"
|
||||||
d="M.5 251.9c29.6-.5 59.2-.8 88.8-1l88.7-.3 88.7.3 44.4.4 44.4.6-44.4.6-44.4.4-88.7.3-88.7-.3a7981 7981 0 01-88.8-1z" />
|
d="M.5 251.9c29.6-.5 59.2-.8 88.8-1l88.7-.3 88.7.3 44.4.4 44.4.6-44.4.6-44.4.4-88.7.3-88.7-.3a7981 7981 0 01-88.8-1z" />
|
||||||
<path fill="none" d="M-565.2 324H-252v15.8h-313.2z" />
|
<path fill="none" d="M-565.2 324H-252v15.8h-313.2z" />
|
||||||
</svg>
|
</svg>
|
||||||
|
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 4.4 KiB |
@@ -1,36 +1,36 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="container d-flex justify-content-center align-items-center" style="height: 100vh;">
|
<div class="container d-flex justify-content-center align-items-center" style="height: 100vh;">
|
||||||
<form @submit.prevent="submitForm">
|
<form @submit.prevent="submitForm">
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<button type="button" class="btn btn-primary" @click="openFileDialog">
|
<button type="button" class="btn btn-primary" @click="openFileDialog">
|
||||||
<b-icon-file-earmark-excel />
|
<b-icon-file-earmark-excel />
|
||||||
Dosya Seç
|
Dosya Seç
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import {ClaimFile} from "../../bindings/main/BotService.js";
|
import {ClaimFile} from "../../bindings/main/BotService.js";
|
||||||
export default {
|
export default {
|
||||||
methods: {
|
methods: {
|
||||||
openFileDialog() {
|
openFileDialog() {
|
||||||
ClaimFile().then((resultValue) => {
|
ClaimFile().then((resultValue) => {
|
||||||
let value = resultValue;
|
let value = resultValue;
|
||||||
if(value != '')
|
if(value != '')
|
||||||
{
|
{
|
||||||
alert("Dosya Seçildi")
|
alert("Dosya Seçildi")
|
||||||
}
|
}
|
||||||
}).catch((err) => {
|
}).catch((err) => {
|
||||||
alert("Dosya Seçilemedi")
|
alert("Dosya Seçilemedi")
|
||||||
console.log(err);
|
console.log(err);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
/* Add custom styles here if needed */
|
/* Add custom styles here if needed */
|
||||||
</style>
|
</style>
|
||||||
@@ -1,78 +1,78 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="login">
|
<div class="login">
|
||||||
<h2 class="mb-4">Luca Girişi</h2>
|
<h2 class="mb-4">Luca Girişi</h2>
|
||||||
<form @submit.prevent="login">
|
<form @submit.prevent="login">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="username">Kullanıcı Adı:</label>
|
<label for="username">Kullanıcı Adı:</label>
|
||||||
<input type="text" id="username" class="form-control" v-model="username" required>
|
<input type="text" id="username" class="form-control" v-model="username" required>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="password">Şifre:</label>
|
<label for="password">Şifre:</label>
|
||||||
<input type="password" id="password" class="form-control" v-model="password" required>
|
<input type="password" id="password" class="form-control" v-model="password" required>
|
||||||
</div>
|
</div>
|
||||||
<button style="margin-top: 15px;" type="submit" class="btn btn-primary">Login</button>
|
<button style="margin-top: 15px;" type="submit" class="btn btn-primary">Login</button>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import {Login} from "../../bindings/main/LoginService.js";
|
import {Login} from "../../bindings/main/LoginService.js";
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
username: '',
|
username: '',
|
||||||
password: ''
|
password: ''
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|
||||||
login() {
|
login() {
|
||||||
let that = this
|
let that = this
|
||||||
Login(this.username, this.password).then((resultValue) => {
|
Login(this.username, this.password).then((resultValue) => {
|
||||||
let value = resultValue;
|
let value = resultValue;
|
||||||
console.log("entered")
|
console.log("entered")
|
||||||
if(value.LoggedIn)
|
if(value.LoggedIn)
|
||||||
{
|
{
|
||||||
that.$router.push({ name: 'Dashboard' });
|
that.$router.push({ name: 'Dashboard' });
|
||||||
}
|
}
|
||||||
}).catch((err) => {
|
}).catch((err) => {
|
||||||
console.log(err);
|
console.log(err);
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
<!--
|
<!--
|
||||||
<script setup>
|
<script setup>
|
||||||
import { ref, onMounted } from 'vue'
|
import { ref, onMounted } from 'vue'
|
||||||
import {Login} from "../../bindings/main/LoginService";
|
import {Login} from "../../bindings/main/LoginService";
|
||||||
import {Events} from "@wailsio/runtime";
|
import {Events} from "@wailsio/runtime";
|
||||||
|
|
||||||
const name = ref('')
|
const name = ref('')
|
||||||
const result = ref('Please enter your name below 👇')
|
const result = ref('Please enter your name below 👇')
|
||||||
const time = ref('Listening for Time event...')
|
const time = ref('Listening for Time event...')
|
||||||
|
|
||||||
const doLogin = () => {
|
const doLogin = () => {
|
||||||
let localName = name.value;
|
let localName = name.value;
|
||||||
if (!localName) {
|
if (!localName) {
|
||||||
localName = 'anonymous';
|
localName = 'anonymous';
|
||||||
}
|
}
|
||||||
Login(localName).then((resultValue) => {
|
Login(localName).then((resultValue) => {
|
||||||
result.value = resultValue;
|
result.value = resultValue;
|
||||||
}).catch((err) => {
|
}).catch((err) => {
|
||||||
console.log(err);
|
console.log(err);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
Events.On('time', (timeValue) => {
|
Events.On('time', (timeValue) => {
|
||||||
time.value = timeValue.data;
|
time.value = timeValue.data;
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
|
|
||||||
defineProps({
|
defineProps({
|
||||||
msg: String,
|
msg: String,
|
||||||
})
|
})
|
||||||
|
|
||||||
</script> -->
|
</script> -->
|
||||||
|
|||||||
@@ -1,53 +1,53 @@
|
|||||||
<template>
|
<template>
|
||||||
<q-dialog ref="dialogRef" persistent @hide="onDialogHide">
|
<q-dialog ref="dialogRef" persistent @hide="onDialogHide">
|
||||||
<q-card style="width: 600px;">
|
<q-card style="width: 600px;">
|
||||||
<q-card-section class="bg-purple text-white">
|
<q-card-section class="bg-purple text-white">
|
||||||
<span class="text-h6 text-weight-bolder">Şirket Ekleme</span>
|
<span class="text-h6 text-weight-bolder">Şirket Ekleme</span>
|
||||||
</q-card-section>
|
</q-card-section>
|
||||||
<q-card-section>
|
<q-card-section>
|
||||||
<q-input v-model="ld.name" label="Şirket Adı"/>
|
<q-input v-model="ld.name" label="Şirket Adı"/>
|
||||||
<q-input v-model="ld.memberNumber" label="Üye No"/>
|
<q-input v-model="ld.memberNumber" label="Üye No"/>
|
||||||
<q-input v-model="ld.username" label="Kullanıcı Adı"/>
|
<q-input v-model="ld.username" label="Kullanıcı Adı"/>
|
||||||
<q-input v-model="ld.password" label="Parola"/>
|
<q-input v-model="ld.password" label="Parola"/>
|
||||||
</q-card-section>
|
</q-card-section>
|
||||||
<q-card-actions align="right">
|
<q-card-actions align="right">
|
||||||
<q-btn label="İptal"
|
<q-btn label="İptal"
|
||||||
icon="cancel"
|
icon="cancel"
|
||||||
no-caps outline
|
no-caps outline
|
||||||
@click="onDialogCancel"
|
@click="onDialogCancel"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<q-btn label="Kaydet" no-caps outline color="positive"
|
<q-btn label="Kaydet" no-caps outline color="positive"
|
||||||
icon="check"
|
icon="check"
|
||||||
@click="onDialogOK(toRaw(ld))"/>
|
@click="onDialogOK(toRaw(ld))"/>
|
||||||
</q-card-actions>
|
</q-card-actions>
|
||||||
</q-card>
|
</q-card>
|
||||||
</q-dialog>
|
</q-dialog>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { useDialogPluginComponent } from 'quasar'
|
import { useDialogPluginComponent } from 'quasar'
|
||||||
import { reactive, toRaw } from 'vue'
|
import { reactive, toRaw } from 'vue'
|
||||||
|
|
||||||
defineEmits([
|
defineEmits([
|
||||||
// REQUIRED; need to specify some events that your
|
// REQUIRED; need to specify some events that your
|
||||||
// component will emit through useDialogPluginComponent()
|
// component will emit through useDialogPluginComponent()
|
||||||
...useDialogPluginComponent.emits,
|
...useDialogPluginComponent.emits,
|
||||||
])
|
])
|
||||||
|
|
||||||
const { dialogRef, onDialogHide, onDialogOK, onDialogCancel } = useDialogPluginComponent()
|
const { dialogRef, onDialogHide, onDialogOK, onDialogCancel } = useDialogPluginComponent()
|
||||||
|
|
||||||
const ld = reactive({
|
const ld = reactive({
|
||||||
name: '',
|
name: '',
|
||||||
memberNumber: '',
|
memberNumber: '',
|
||||||
username: '',
|
username: '',
|
||||||
password: '',
|
password: '',
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -1,61 +1,61 @@
|
|||||||
<template>
|
<template>
|
||||||
<q-dialog ref="dialogRef" persistent @hide="onDialogHide">
|
<q-dialog ref="dialogRef" persistent @hide="onDialogHide">
|
||||||
<q-card style="width: 600px;">
|
<q-card style="width: 600px;">
|
||||||
<q-card-section class="bg-purple text-white">
|
<q-card-section class="bg-purple text-white">
|
||||||
<p>Şirket Adı: {{ props.name }}</p>
|
<p>Şirket Adı: {{ props.name }}</p>
|
||||||
<!-- <span class="text-h6 text-weight-bolder">{{props.name}}</span> -->
|
<!-- <span class="text-h6 text-weight-bolder">{{props.name}}</span> -->
|
||||||
</q-card-section>
|
</q-card-section>
|
||||||
<q-card-section>
|
<q-card-section>
|
||||||
<q-input v-model="ld.name" label="Şirket Adı"/>
|
<q-input v-model="ld.name" label="Şirket Adı"/>
|
||||||
<q-input v-model="ld.memberNumber" label="Üye No"/>
|
<q-input v-model="ld.memberNumber" label="Üye No"/>
|
||||||
<q-input v-model="ld.userName" label="Kullanıcı Adı"/>
|
<q-input v-model="ld.userName" label="Kullanıcı Adı"/>
|
||||||
<q-input v-model="ld.password" label="Parola"/>
|
<q-input v-model="ld.password" label="Parola"/>
|
||||||
</q-card-section>
|
</q-card-section>
|
||||||
<q-card-actions align="right">
|
<q-card-actions align="right">
|
||||||
<q-btn label="İptal"
|
<q-btn label="İptal"
|
||||||
icon="cancel"
|
icon="cancel"
|
||||||
no-caps outline
|
no-caps outline
|
||||||
@click="onDialogCancel"
|
@click="onDialogCancel"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<q-btn label="Kaydet" no-caps outline color="positive"
|
<q-btn label="Kaydet" no-caps outline color="positive"
|
||||||
icon="check"
|
icon="check"
|
||||||
@click="onDialogOK(toRaw(ld))"/>
|
@click="onDialogOK(toRaw(ld))"/>
|
||||||
</q-card-actions>
|
</q-card-actions>
|
||||||
</q-card>
|
</q-card>
|
||||||
|
|
||||||
</q-dialog>
|
</q-dialog>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { useDialogPluginComponent } from 'quasar'
|
import { useDialogPluginComponent } from 'quasar'
|
||||||
import { reactive, toRaw ,defineProps } from 'vue'
|
import { reactive, toRaw ,defineProps } from 'vue'
|
||||||
|
|
||||||
defineEmits([
|
defineEmits([
|
||||||
// REQUIRED; need to specify some events that your
|
// REQUIRED; need to specify some events that your
|
||||||
// component will emit through useDialogPluginComponent()
|
// component will emit through useDialogPluginComponent()
|
||||||
...useDialogPluginComponent.emits,
|
...useDialogPluginComponent.emits,
|
||||||
])
|
])
|
||||||
|
|
||||||
const { dialogRef, onDialogHide, onDialogOK, onDialogCancel } = useDialogPluginComponent()
|
const { dialogRef, onDialogHide, onDialogOK, onDialogCancel } = useDialogPluginComponent()
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
id: Number,
|
id: Number,
|
||||||
name: String,
|
name: String,
|
||||||
memberNumber: Number,
|
memberNumber: Number,
|
||||||
userName: String,
|
userName: String,
|
||||||
password: String
|
password: String
|
||||||
})
|
})
|
||||||
const ld = reactive({
|
const ld = reactive({
|
||||||
id : props.id || 0,
|
id : props.id || 0,
|
||||||
name: props.name || '',
|
name: props.name || '',
|
||||||
memberNumber: props.memberNumber || 0,
|
memberNumber: props.memberNumber || 0,
|
||||||
userName: props.userName || '',
|
userName: props.userName || '',
|
||||||
password: props.password || '',
|
password: props.password || '',
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
// app global css in SCSS form
|
// app global css in SCSS form
|
||||||
|
|||||||
@@ -1,25 +1,25 @@
|
|||||||
// Quasar SCSS (& Sass) Variables
|
// Quasar SCSS (& Sass) Variables
|
||||||
// --------------------------------------------------
|
// --------------------------------------------------
|
||||||
// To customize the look and feel of this app, you can override
|
// To customize the look and feel of this app, you can override
|
||||||
// the Sass/SCSS variables found in Quasar's source Sass/SCSS files.
|
// the Sass/SCSS variables found in Quasar's source Sass/SCSS files.
|
||||||
|
|
||||||
// Check documentation for full list of Quasar variables
|
// Check documentation for full list of Quasar variables
|
||||||
|
|
||||||
// Your own variables (that are declared here) and Quasar's own
|
// Your own variables (that are declared here) and Quasar's own
|
||||||
// ones will be available out of the box in your .vue/.scss/.sass files
|
// ones will be available out of the box in your .vue/.scss/.sass files
|
||||||
|
|
||||||
// It's highly recommended to change the default colors
|
// It's highly recommended to change the default colors
|
||||||
// to match your app's branding.
|
// to match your app's branding.
|
||||||
// Tip: Use the "Theme Builder" on Quasar's documentation website.
|
// Tip: Use the "Theme Builder" on Quasar's documentation website.
|
||||||
|
|
||||||
$primary : #1976D2;
|
$primary : #1976D2;
|
||||||
$secondary : #26A69A;
|
$secondary : #26A69A;
|
||||||
$accent : #9C27B0;
|
$accent : #9C27B0;
|
||||||
|
|
||||||
$dark : #1D1D1D;
|
$dark : #1D1D1D;
|
||||||
$dark-page : #121212;
|
$dark-page : #121212;
|
||||||
|
|
||||||
$positive : #21BA45;
|
$positive : #21BA45;
|
||||||
$negative : #C10015;
|
$negative : #C10015;
|
||||||
$info : #31CCEC;
|
$info : #31CCEC;
|
||||||
$warning : #F2C037;
|
$warning : #F2C037;
|
||||||
|
|||||||
@@ -1,31 +1,31 @@
|
|||||||
<template>
|
<template>
|
||||||
<q-layout view="lHh Lpr lFf">
|
<q-layout view="lHh Lpr lFf">
|
||||||
<q-header elevated style="margin-top: 40px;">
|
<q-header elevated style="margin-top: 40px;">
|
||||||
<q-toolbar>
|
<q-toolbar>
|
||||||
<q-toolbar-title>
|
<q-toolbar-title>
|
||||||
Bordro Robotu
|
Bordro Robotu
|
||||||
</q-toolbar-title>
|
</q-toolbar-title>
|
||||||
|
|
||||||
<q-space/>
|
<q-space/>
|
||||||
|
|
||||||
</q-toolbar>
|
</q-toolbar>
|
||||||
</q-header>
|
</q-header>
|
||||||
|
|
||||||
|
|
||||||
<q-page-container style="margin-top: 40px;">
|
<q-page-container style="margin-top: 40px;">
|
||||||
<router-view/>
|
<router-view/>
|
||||||
</q-page-container>
|
</q-page-container>
|
||||||
</q-layout>
|
</q-layout>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
.header-input .q-field .q-field__control-container .q-field__native, .q-field__label {
|
.header-input .q-field .q-field__control-container .q-field__native, .q-field__label {
|
||||||
color: white !important;
|
color: white !important;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -1,38 +1,38 @@
|
|||||||
import { createApp } from 'vue';
|
import { createApp } from 'vue';
|
||||||
import App from './App.vue';
|
import App from './App.vue';
|
||||||
import { createRouter, createWebHistory } from 'vue-router'; // Import Vue Router
|
import { createRouter, createWebHistory } from 'vue-router'; // Import Vue Router
|
||||||
import 'bootstrap/dist/css/bootstrap.min.css';
|
import 'bootstrap/dist/css/bootstrap.min.css';
|
||||||
import { BootstrapIconsPlugin } from "bootstrap-icons-vue";
|
import { BootstrapIconsPlugin } from "bootstrap-icons-vue";
|
||||||
|
|
||||||
// Import components for routing
|
// Import components for routing
|
||||||
import LoginPage from './components/LoginPage.vue';
|
import LoginPage from './components/LoginPage.vue';
|
||||||
import Dashboard from './components/Dashboard.vue'; // Assuming you have a Dashboard view
|
import Dashboard from './components/Dashboard.vue'; // Assuming you have a Dashboard view
|
||||||
|
|
||||||
// Define routes
|
// Define routes
|
||||||
const routes = [
|
const routes = [
|
||||||
{ path: '/Dashboard',
|
{ path: '/Dashboard',
|
||||||
name: 'Dashboard',
|
name: 'Dashboard',
|
||||||
components : {
|
components : {
|
||||||
default : Dashboard
|
default : Dashboard
|
||||||
}
|
}
|
||||||
}, // Route to Dashboard
|
}, // Route to Dashboard
|
||||||
{ path: '/',
|
{ path: '/',
|
||||||
name: 'LoginPage',
|
name: 'LoginPage',
|
||||||
components : {
|
components : {
|
||||||
default : LoginPage
|
default : LoginPage
|
||||||
}
|
}
|
||||||
}, // Route to Login
|
}, // Route to Login
|
||||||
// You can define more routes here
|
// You can define more routes here
|
||||||
];
|
];
|
||||||
|
|
||||||
// Create router instance
|
// Create router instance
|
||||||
const router = createRouter({
|
const router = createRouter({
|
||||||
history: createWebHistory(process.env.BASE_URL),
|
history: createWebHistory(process.env.BASE_URL),
|
||||||
routes,
|
routes,
|
||||||
});
|
});
|
||||||
|
|
||||||
// Create Vue app and use router
|
// Create Vue app and use router
|
||||||
const app = createApp(App);
|
const app = createApp(App);
|
||||||
app.use(BootstrapIconsPlugin);
|
app.use(BootstrapIconsPlugin);
|
||||||
app.use(router);
|
app.use(router);
|
||||||
app.mount('#app');
|
app.mount('#app');
|
||||||
@@ -1,31 +1,31 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="fullscreen bg-blue text-white text-center q-pa-md flex flex-center">
|
<div class="fullscreen bg-blue text-white text-center q-pa-md flex flex-center">
|
||||||
<div>
|
<div>
|
||||||
<div style="font-size: 30vh">
|
<div style="font-size: 30vh">
|
||||||
404
|
404
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="text-h2" style="opacity:.4">
|
<div class="text-h2" style="opacity:.4">
|
||||||
Oops. Nothing here...
|
Oops. Nothing here...
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<q-btn
|
<q-btn
|
||||||
class="q-mt-xl"
|
class="q-mt-xl"
|
||||||
color="white"
|
color="white"
|
||||||
text-color="blue"
|
text-color="blue"
|
||||||
unelevated
|
unelevated
|
||||||
to="/"
|
to="/"
|
||||||
label="Go Home"
|
label="Go Home"
|
||||||
no-caps
|
no-caps
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { defineComponent } from 'vue'
|
import { defineComponent } from 'vue'
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
name: 'ErrorNotFound'
|
name: 'ErrorNotFound'
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -1,222 +1,202 @@
|
|||||||
<template>
|
<template>
|
||||||
<q-page padding>
|
<q-page padding>
|
||||||
<q-card>
|
<q-card>
|
||||||
<q-card-section>
|
<q-card-section>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<q-select v-model="ld.companyID"
|
<q-select v-model="ld.companyID"
|
||||||
label="Şirket"
|
label="Şirket"
|
||||||
option-label="Name"
|
option-label="Name"
|
||||||
option-value="Id"
|
option-value="Id"
|
||||||
:options="ld.companies"
|
:options="ld.companies"
|
||||||
map-options
|
map-options
|
||||||
emit-value
|
emit-value
|
||||||
>
|
>
|
||||||
<template v-slot:after>
|
<template v-slot:after>
|
||||||
<q-btn
|
<q-btn
|
||||||
label="Düzenle"
|
label="Düzenle"
|
||||||
color="primary"
|
color="primary"
|
||||||
@click="editCompany"
|
@click="editCompany"
|
||||||
:disable="!ld.companyID"
|
no-caps
|
||||||
no-caps
|
/>
|
||||||
/>
|
<q-btn
|
||||||
<q-btn
|
label="Yeni Şirket Ekle"
|
||||||
label="Yeni Şirket Ekle"
|
color="primary"
|
||||||
color="primary"
|
@click="createCompany"
|
||||||
@click="createCompany"
|
no-caps
|
||||||
no-caps
|
/>
|
||||||
/>
|
</template>
|
||||||
</template>
|
</q-select>
|
||||||
</q-select>
|
</div>
|
||||||
<!-- Debug Info -->
|
</div>
|
||||||
<div class="q-mt-sm q-pa-sm bg-grey-2 text-black text-caption" style="border: 1px dashed gray;">
|
</q-card-section>
|
||||||
Durum: {{ ld.errorMessage }} <br/>
|
|
||||||
Şirket Sayısı: {{ ld.companies.length }}
|
<q-card-section>
|
||||||
<div v-for="(c, idx) in ld.companies" :key="idx">
|
<div class="row q-col-gutter-sm items-center">
|
||||||
#{{ idx }}: ID={{ c.Id }} (type: {{ typeof c.Id }}), Name={{ c.Name }} (type: {{ typeof c.Name }}), Raw: {{ JSON.stringify(c) }}
|
<div class="col-shrink">
|
||||||
</div>
|
<q-btn label="Excel Yükle"
|
||||||
</div>
|
@click="upload"
|
||||||
</div>
|
no-caps
|
||||||
</div>
|
color="secondary"
|
||||||
</q-card-section>
|
/>
|
||||||
|
<q-checkbox
|
||||||
<q-card-section>
|
label="Tarayıcı Görünmesin"
|
||||||
<div class="row q-col-gutter-sm items-center">
|
v-model="ld.right"
|
||||||
<div class="col-shrink">
|
style="font-size : 15px"
|
||||||
<q-btn label="Excel Yükle"
|
/>
|
||||||
@click="upload"
|
</div>
|
||||||
no-caps
|
<div class="col-11 text-right">
|
||||||
color="secondary"
|
{{ ld.xlsFile }}
|
||||||
/>
|
</div>
|
||||||
<q-checkbox
|
<div class="col-6">
|
||||||
label="Tarayıcı Görünmesin"
|
<q-select v-model="ld.year" :options="[2024, 2025, 2026, 2027, 2028]"
|
||||||
v-model="ld.right"
|
label="Aktarım Yıl"
|
||||||
style="font-size : 15px"
|
/>
|
||||||
/>
|
</div>
|
||||||
</div>
|
<div class="col-6">
|
||||||
<div class="col-11 text-right">
|
<q-select v-model="ld.month" :options="[1,2,3,4,5,6,7,8,9,10,11,12]"
|
||||||
{{ ld.xlsFile }}
|
label="Aktarım Ay"
|
||||||
</div>
|
/>
|
||||||
<div class="col-6">
|
</div>
|
||||||
<q-select v-model="ld.year" :options="[2024, 2025, 2026, 2027, 2028]"
|
<div class="col-12">
|
||||||
label="Aktarım Yıl"
|
<q-btn
|
||||||
/>
|
no-caps
|
||||||
</div>
|
label="Aktarıma Başla"
|
||||||
<div class="col-6">
|
color="warning"
|
||||||
<q-select v-model="ld.month" :options="[1,2,3,4,5,6,7,8,9,10,11,12]"
|
class="full-width"
|
||||||
label="Aktarım Ay"
|
@click="doRpa"
|
||||||
/>
|
:disable="!ld.xlsFile || !ld.companyID"
|
||||||
</div>
|
/>
|
||||||
<div class="col-12">
|
</div>
|
||||||
<q-btn
|
</div>
|
||||||
no-caps
|
</q-card-section>
|
||||||
label="Aktarıma Başla"
|
|
||||||
color="warning"
|
<q-card-section>
|
||||||
class="full-width"
|
<!-- <q-card>
|
||||||
@click="doRpa"
|
<q-tabs
|
||||||
:disable="!ld.xlsFile || !ld.companyID"
|
v-model="tab"
|
||||||
/>
|
dense
|
||||||
</div>
|
class="text-grey"
|
||||||
</div>
|
active-color="primary"
|
||||||
</q-card-section>
|
indicator-color="primary"
|
||||||
|
align="justify"
|
||||||
<q-card-section>
|
narrow-indicator
|
||||||
<!-- <q-card>
|
>
|
||||||
<q-tabs
|
<q-tab name="mails" label="Mails"></q-tab>
|
||||||
v-model="tab"
|
<q-tab name="alarms" label="Alarms"></q-tab>
|
||||||
dense
|
<q-tab name="movies" label="Movies"></q-tab>
|
||||||
class="text-grey"
|
</q-tabs>
|
||||||
active-color="primary"
|
|
||||||
indicator-color="primary"
|
<q-separator></q-separator>
|
||||||
align="justify"
|
|
||||||
narrow-indicator
|
<q-tab-panels v-model="tab" animated>
|
||||||
>
|
<q-tab-panel name="mails">
|
||||||
<q-tab name="mails" label="Mails"></q-tab>
|
<div class="text-h6"></div>
|
||||||
<q-tab name="alarms" label="Alarms"></q-tab>
|
Lorem ipsum dolor sit amet consectetur adipisicing elit.
|
||||||
<q-tab name="movies" label="Movies"></q-tab>
|
</q-tab-panel>
|
||||||
</q-tabs>
|
|
||||||
|
<q-tab-panel name="alarms">
|
||||||
<q-separator></q-separator>
|
<div class="text-h6">Alarms</div>
|
||||||
|
Lorem ipsum dolor sit amet consectetur adipisicing elit.
|
||||||
<q-tab-panels v-model="tab" animated>
|
</q-tab-panel>
|
||||||
<q-tab-panel name="mails">
|
|
||||||
<div class="text-h6"></div>
|
<q-tab-panel name="movies">
|
||||||
Lorem ipsum dolor sit amet consectetur adipisicing elit.
|
<div class="text-h6">Movies</div>
|
||||||
</q-tab-panel>
|
Lorem ipsum dolor sit amet consectetur adipisicing elit.
|
||||||
|
</q-tab-panel>
|
||||||
<q-tab-panel name="alarms">
|
</q-tab-panels>
|
||||||
<div class="text-h6">Alarms</div>
|
</q-card> -->
|
||||||
Lorem ipsum dolor sit amet consectetur adipisicing elit.
|
<div style="max-height: 200px; overflow: scroll; border: 1px gray solid; display: grid;" class="q-pa-xs">
|
||||||
</q-tab-panel>
|
<span v-for="(ln, ndx) in ld.logProcess" :key="ndx">
|
||||||
|
{{ ndx }} {{ ln }}
|
||||||
<q-tab-panel name="movies">
|
</span>
|
||||||
<div class="text-h6">Movies</div>
|
</div>
|
||||||
Lorem ipsum dolor sit amet consectetur adipisicing elit.
|
</q-card-section>
|
||||||
</q-tab-panel>
|
</q-card>
|
||||||
</q-tab-panels>
|
|
||||||
</q-card> -->
|
</q-page>
|
||||||
<div style="max-height: 200px; overflow: scroll; border: 1px gray solid; display: grid;" class="q-pa-xs">
|
</template>
|
||||||
<span v-for="(ln, ndx) in ld.logProcess" :key="ndx">
|
|
||||||
{{ ndx }} {{ ln }}
|
<script setup>
|
||||||
</span>
|
import { onMounted, reactive,ref } from 'vue'
|
||||||
</div>
|
import Company from 'components/dlg/Company.vue'
|
||||||
</q-card-section>
|
import EditCompanyPage from 'components/dlg/EditCompany.vue'
|
||||||
</q-card>
|
import { useQuasar } from 'quasar'
|
||||||
|
import { Companies, CreateCompany, Rpa, UploadExcel ,EditCompany} from 'app/bindings/lib/srv/Srv'
|
||||||
</q-page>
|
import * as wails from '@wailsio/runtime'
|
||||||
</template>
|
|
||||||
|
const $q = useQuasar()
|
||||||
<script setup>
|
|
||||||
import { onMounted, reactive,ref } from 'vue'
|
const ld = reactive({
|
||||||
import Company from 'components/dlg/Company.vue'
|
companyID: null,
|
||||||
import EditCompanyPage from 'components/dlg/EditCompany.vue'
|
companies: [],
|
||||||
import { useQuasar } from 'quasar'
|
xlsFile: '',
|
||||||
import { Companies, CreateCompany, Rpa, UploadExcel ,EditCompany} from 'app/bindings/bordrobot/lib/srv/srv'
|
logProcess: [],
|
||||||
import * as wails from '@wailsio/runtime'
|
year: 2024,
|
||||||
|
month: 1,
|
||||||
const $q = useQuasar()
|
right : true
|
||||||
|
})
|
||||||
const ld = reactive({
|
// let tab = ref('mails')
|
||||||
companyID: null,
|
|
||||||
companies: [],
|
onMounted(() => {
|
||||||
errorMessage: '',
|
getCompanies()
|
||||||
xlsFile: '',
|
|
||||||
logProcess: [],
|
wails.Events.On('logProcess', function (ev) {
|
||||||
year: 2024,
|
ld.logProcess.push(ev.data)
|
||||||
month: 1,
|
})
|
||||||
right : true
|
})
|
||||||
})
|
|
||||||
// let tab = ref('mails')
|
const editCompany = function () {
|
||||||
|
const selectedCompanyID = ld.companyID;
|
||||||
onMounted(() => {
|
const selectedCompany = ld.companies.find(company => company.Id === selectedCompanyID);
|
||||||
getCompanies()
|
$q.dialog({
|
||||||
|
component: EditCompanyPage,
|
||||||
wails.Events.On('logProcess', function (ev) {
|
parent: this,
|
||||||
ld.logProcess.push(ev.data)
|
componentProps: {
|
||||||
})
|
id : parseInt(selectedCompany.Id),
|
||||||
})
|
name: selectedCompany.Name,
|
||||||
|
memberNumber: selectedCompany.MemberNumber,
|
||||||
const editCompany = function () {
|
userName : selectedCompany.Username,
|
||||||
const selectedCompanyID = ld.companyID;
|
password : selectedCompany.Password,
|
||||||
if (!selectedCompanyID) return;
|
},
|
||||||
const selectedCompany = ld.companies.find(company => company.Id === selectedCompanyID);
|
// ----------------------
|
||||||
if (!selectedCompany) return;
|
// props that are passed to component instance
|
||||||
$q.dialog({
|
}).onOk(data => {
|
||||||
component: EditCompanyPage,
|
EditCompany(data.id, data.name, data.memberNumber, data.userName, data.password).then(()=>{
|
||||||
parent: this,
|
getCompanies()
|
||||||
componentProps: {
|
})
|
||||||
id : parseInt(selectedCompany.Id),
|
})
|
||||||
name: selectedCompany.Name,
|
}
|
||||||
memberNumber: selectedCompany.MemberNumber,
|
const createCompany = function () {
|
||||||
userName : selectedCompany.Username,
|
$q.dialog({
|
||||||
password : selectedCompany.Password,
|
component: Company,
|
||||||
},
|
parent: this,
|
||||||
// ----------------------
|
// ----------------------
|
||||||
// props that are passed to component instance
|
// props that are passed to component instance
|
||||||
}).onOk(data => {
|
}).onOk(data => {
|
||||||
EditCompany(data.id, data.name, data.memberNumber, data.userName, data.password).then(()=>{
|
CreateCompany(data.name, data.memberNumber, data.username, data.password).then(()=>{
|
||||||
getCompanies()
|
getCompanies()
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
const createCompany = function () {
|
|
||||||
$q.dialog({
|
const getCompanies = function () {
|
||||||
component: Company,
|
ld.companies.splice(0)
|
||||||
parent: this,
|
Companies().then(res => {
|
||||||
// ----------------------
|
ld.companies.push(...res)
|
||||||
// props that are passed to component instance
|
console.log(ld.companies)
|
||||||
}).onOk(data => {
|
})
|
||||||
CreateCompany(data.name, data.memberNumber, data.username, data.password).then(()=>{
|
}
|
||||||
getCompanies()
|
|
||||||
})
|
const upload = function () {
|
||||||
})
|
UploadExcel().then(res => {
|
||||||
}
|
ld.xlsFile = res
|
||||||
|
})
|
||||||
const getCompanies = function () {
|
}
|
||||||
ld.companies.splice(0)
|
|
||||||
ld.errorMessage = 'Yükleniyor...'
|
const doRpa = function () {
|
||||||
Companies().then(res => {
|
ld.logProcess = []
|
||||||
console.error("COMPANIES FETCHED:", JSON.stringify(res))
|
Rpa(ld.companyID, ld.month, ld.year,ld.right).catch(err => console.log(err))
|
||||||
ld.errorMessage = 'Başarılı. Gelen şirket sayısı: ' + (res ? res.length : 0)
|
}
|
||||||
if (res) {
|
|
||||||
ld.companies.push(...res)
|
</script>
|
||||||
}
|
|
||||||
console.log(ld.companies)
|
|
||||||
}).catch(err => {
|
|
||||||
console.error("COMPANIES FETCH ERROR:", err)
|
|
||||||
ld.errorMessage = 'HATA OLUŞTU: ' + err.toString()
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
const upload = function () {
|
|
||||||
UploadExcel().then(res => {
|
|
||||||
ld.xlsFile = res
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
const doRpa = function () {
|
|
||||||
ld.logProcess = []
|
|
||||||
Rpa(ld.companyID, ld.month, ld.year,ld.right).catch(err => console.log(err))
|
|
||||||
}
|
|
||||||
|
|
||||||
</script>
|
|
||||||
|
|||||||
@@ -1,39 +1,39 @@
|
|||||||
<template>
|
<template>
|
||||||
<q-page padding>
|
<q-page padding>
|
||||||
<q-input v-model="ld.name" label='İsim'/>
|
<q-input v-model="ld.name" label='İsim'/>
|
||||||
<q-btn label="Selamla" @click="doGreet" />
|
<q-btn label="Selamla" @click="doGreet" />
|
||||||
{{ld.result}}
|
{{ld.result}}
|
||||||
</q-page>
|
</q-page>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { onMounted, reactive } from 'vue'
|
import { onMounted, reactive } from 'vue'
|
||||||
// import {Events} from "@wailsio/runtime";
|
// import {Events} from "@wailsio/runtime";
|
||||||
|
|
||||||
const ld = reactive({
|
const ld = reactive({
|
||||||
name: '',
|
name: '',
|
||||||
result: '',
|
result: '',
|
||||||
time: ''
|
time: ''
|
||||||
})
|
})
|
||||||
|
|
||||||
/*
|
/*
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
Events.On('time', (timeValue) => {
|
Events.On('time', (timeValue) => {
|
||||||
console.log(timeValue)
|
console.log(timeValue)
|
||||||
ld.time = timeValue.data;
|
ld.time = timeValue.data;
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const doGreet = () => {
|
const doGreet = () => {
|
||||||
let localName = ld.name;
|
let localName = ld.name;
|
||||||
if (!localName) {
|
if (!localName) {
|
||||||
localName = 'anonymous';
|
localName = 'anonymous';
|
||||||
}
|
}
|
||||||
Greet(localName).then((resultValue) => {
|
Greet(localName).then((resultValue) => {
|
||||||
ld.result = resultValue;
|
ld.result = resultValue;
|
||||||
}).catch((err) => {
|
}).catch((err) => {
|
||||||
console.log(err);
|
console.log(err);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -1,30 +1,30 @@
|
|||||||
import { route } from 'quasar/wrappers'
|
import { route } from 'quasar/wrappers'
|
||||||
import { createRouter, createMemoryHistory, createWebHistory, createWebHashHistory } from 'vue-router'
|
import { createRouter, createMemoryHistory, createWebHistory, createWebHashHistory } from 'vue-router'
|
||||||
import routes from './routes'
|
import routes from './routes'
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If not building with SSR mode, you can
|
* If not building with SSR mode, you can
|
||||||
* directly export the Router instantiation;
|
* directly export the Router instantiation;
|
||||||
*
|
*
|
||||||
* The function below can be async too; either use
|
* The function below can be async too; either use
|
||||||
* async/await or return a Promise which resolves
|
* async/await or return a Promise which resolves
|
||||||
* with the Router instance.
|
* with the Router instance.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
export default route(function (/* { store, ssrContext } */) {
|
export default route(function (/* { store, ssrContext } */) {
|
||||||
const createHistory = process.env.SERVER
|
const createHistory = process.env.SERVER
|
||||||
? createMemoryHistory
|
? createMemoryHistory
|
||||||
: (process.env.VUE_ROUTER_MODE === 'history' ? createWebHistory : createWebHashHistory)
|
: (process.env.VUE_ROUTER_MODE === 'history' ? createWebHistory : createWebHashHistory)
|
||||||
|
|
||||||
const Router = createRouter({
|
const Router = createRouter({
|
||||||
scrollBehavior: () => ({ left: 0, top: 0 }),
|
scrollBehavior: () => ({ left: 0, top: 0 }),
|
||||||
routes,
|
routes,
|
||||||
|
|
||||||
// Leave this as is and make changes in quasar.conf.js instead!
|
// Leave this as is and make changes in quasar.conf.js instead!
|
||||||
// quasar.conf.js -> build -> vueRouterMode
|
// quasar.conf.js -> build -> vueRouterMode
|
||||||
// quasar.conf.js -> build -> publicPath
|
// quasar.conf.js -> build -> publicPath
|
||||||
history: createHistory(process.env.VUE_ROUTER_BASE)
|
history: createHistory(process.env.VUE_ROUTER_BASE)
|
||||||
})
|
})
|
||||||
|
|
||||||
return Router
|
return Router
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,19 +1,19 @@
|
|||||||
const routes = [
|
const routes = [
|
||||||
{
|
{
|
||||||
path: '/',
|
path: '/',
|
||||||
component: () => import('layouts/MainLayout.vue'),
|
component: () => import('layouts/MainLayout.vue'),
|
||||||
children: [
|
children: [
|
||||||
{ path: '', component: () => import('pages/IndexPage.vue') },
|
{ path: '', component: () => import('pages/IndexPage.vue') },
|
||||||
{ path: '/page2', component: () => import('pages/page2.vue') },
|
{ path: '/page2', component: () => import('pages/page2.vue') },
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
||||||
// Always leave this as last one,
|
// Always leave this as last one,
|
||||||
// but you can also remove it
|
// but you can also remove it
|
||||||
{
|
{
|
||||||
path: '/:catchAll(.*)*',
|
path: '/:catchAll(.*)*',
|
||||||
component: () => import('pages/ErrorNotFound.vue')
|
component: () => import('pages/ErrorNotFound.vue')
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
export default routes
|
export default routes
|
||||||
|
|||||||
38
app/go.mod
@@ -1,16 +1,17 @@
|
|||||||
module bordrobot
|
module bordrobot
|
||||||
|
|
||||||
go 1.25.0
|
go 1.22
|
||||||
|
|
||||||
|
toolchain go1.22.1
|
||||||
|
|
||||||
require (
|
require (
|
||||||
cloud.google.com/go/vision v1.2.0
|
cloud.google.com/go/vision v1.2.0
|
||||||
github.com/go-rod/rod v0.114.8
|
github.com/go-rod/rod v0.114.8
|
||||||
github.com/jmoiron/sqlx v1.3.5
|
github.com/jmoiron/sqlx v1.3.5
|
||||||
github.com/shopspring/decimal v1.4.0
|
github.com/wailsapp/wails/v3 v3.0.0-alpha.0
|
||||||
github.com/wailsapp/wails/v3 v3.0.0-alpha2.103
|
|
||||||
github.com/xuri/excelize/v2 v2.8.1
|
github.com/xuri/excelize/v2 v2.8.1
|
||||||
google.golang.org/api v0.172.0
|
google.golang.org/api v0.172.0
|
||||||
modernc.org/sqlite v1.44.3
|
modernc.org/sqlite v1.29.5
|
||||||
)
|
)
|
||||||
|
|
||||||
require (
|
require (
|
||||||
@@ -19,13 +20,12 @@ require (
|
|||||||
cloud.google.com/go/compute/metadata v0.2.3 // indirect
|
cloud.google.com/go/compute/metadata v0.2.3 // indirect
|
||||||
cloud.google.com/go/longrunning v0.5.4 // indirect
|
cloud.google.com/go/longrunning v0.5.4 // indirect
|
||||||
cloud.google.com/go/vision/v2 v2.7.5 // indirect
|
cloud.google.com/go/vision/v2 v2.7.5 // indirect
|
||||||
github.com/carlmjohnson/requests v0.24.3
|
|
||||||
github.com/dustin/go-humanize v1.0.1 // indirect
|
github.com/dustin/go-humanize v1.0.1 // indirect
|
||||||
github.com/felixge/httpsnoop v1.0.4 // indirect
|
github.com/felixge/httpsnoop v1.0.4 // indirect
|
||||||
github.com/go-logr/logr v1.4.1 // indirect
|
github.com/go-logr/logr v1.4.1 // indirect
|
||||||
github.com/go-logr/stdr v1.2.2 // indirect
|
github.com/go-logr/stdr v1.2.2 // indirect
|
||||||
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 // indirect
|
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
|
||||||
github.com/golang/protobuf v1.5.4 // indirect
|
github.com/golang/protobuf v1.5.3 // indirect
|
||||||
github.com/google/s2a-go v0.1.7 // indirect
|
github.com/google/s2a-go v0.1.7 // indirect
|
||||||
github.com/google/uuid v1.6.0 // indirect
|
github.com/google/uuid v1.6.0 // indirect
|
||||||
github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect
|
github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect
|
||||||
@@ -33,9 +33,9 @@ require (
|
|||||||
github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect
|
github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect
|
||||||
github.com/imdario/mergo v0.3.12 // indirect
|
github.com/imdario/mergo v0.3.12 // indirect
|
||||||
github.com/leaanthony/slicer v1.5.0 // indirect
|
github.com/leaanthony/slicer v1.5.0 // indirect
|
||||||
github.com/mattn/go-isatty v0.0.20 // indirect
|
github.com/mattn/go-isatty v0.0.16 // indirect
|
||||||
github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect
|
github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect
|
||||||
github.com/ncruces/go-strftime v1.0.0 // indirect
|
github.com/ncruces/go-strftime v0.1.9 // indirect
|
||||||
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
|
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
|
||||||
github.com/richardlehane/mscfb v1.0.4 // indirect
|
github.com/richardlehane/mscfb v1.0.4 // indirect
|
||||||
github.com/richardlehane/msoleps v1.0.3 // indirect
|
github.com/richardlehane/msoleps v1.0.3 // indirect
|
||||||
@@ -54,12 +54,12 @@ require (
|
|||||||
go.opentelemetry.io/otel v1.24.0 // indirect
|
go.opentelemetry.io/otel v1.24.0 // indirect
|
||||||
go.opentelemetry.io/otel/metric v1.24.0 // indirect
|
go.opentelemetry.io/otel/metric v1.24.0 // indirect
|
||||||
go.opentelemetry.io/otel/trace v1.24.0 // indirect
|
go.opentelemetry.io/otel/trace v1.24.0 // indirect
|
||||||
golang.org/x/crypto v0.50.0 // indirect
|
golang.org/x/crypto v0.21.0 // indirect
|
||||||
golang.org/x/net v0.53.0 // indirect
|
golang.org/x/net v0.22.0 // indirect
|
||||||
golang.org/x/oauth2 v0.18.0 // indirect
|
golang.org/x/oauth2 v0.18.0 // indirect
|
||||||
golang.org/x/sync v0.20.0 // indirect
|
golang.org/x/sync v0.6.0 // indirect
|
||||||
golang.org/x/sys v0.43.0 // indirect
|
golang.org/x/sys v0.18.0 // indirect
|
||||||
golang.org/x/text v0.37.0 // indirect
|
golang.org/x/text v0.14.0 // indirect
|
||||||
golang.org/x/time v0.5.0 // indirect
|
golang.org/x/time v0.5.0 // indirect
|
||||||
google.golang.org/appengine v1.6.8 // indirect
|
google.golang.org/appengine v1.6.8 // indirect
|
||||||
google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80 // indirect
|
google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80 // indirect
|
||||||
@@ -67,10 +67,10 @@ require (
|
|||||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20240318140521-94a12d6c2237 // indirect
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20240318140521-94a12d6c2237 // indirect
|
||||||
google.golang.org/grpc v1.62.1 // indirect
|
google.golang.org/grpc v1.62.1 // indirect
|
||||||
google.golang.org/protobuf v1.33.0 // indirect
|
google.golang.org/protobuf v1.33.0 // indirect
|
||||||
modernc.org/gc/v3 v3.1.1 // indirect
|
modernc.org/gc/v3 v3.0.0-20240107210532-573471604cb6 // indirect
|
||||||
modernc.org/libc v1.67.6 // indirect
|
modernc.org/libc v1.41.0 // indirect
|
||||||
modernc.org/mathutil v1.7.1 // indirect
|
modernc.org/mathutil v1.6.0 // indirect
|
||||||
modernc.org/memory v1.11.0 // indirect
|
modernc.org/memory v1.7.2 // indirect
|
||||||
modernc.org/strutil v1.2.1 // indirect
|
modernc.org/strutil v1.2.0 // indirect
|
||||||
modernc.org/token v1.1.0 // indirect
|
modernc.org/token v1.1.0 // indirect
|
||||||
)
|
)
|
||||||
|
|||||||
77
app/go.sum
@@ -63,8 +63,6 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03
|
|||||||
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
|
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
|
||||||
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
|
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
|
||||||
github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
|
github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
|
||||||
github.com/carlmjohnson/requests v0.24.3 h1:LYcM/jVIVPkioigMjEAnBACXl2vb42TVqiC8EYNoaXQ=
|
|
||||||
github.com/carlmjohnson/requests v0.24.3/go.mod h1:duYA/jDnyZ6f3xbcF5PpZ9N8clgopubP2nK5i6MVMhU=
|
|
||||||
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
||||||
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
|
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
|
||||||
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
||||||
@@ -115,8 +113,6 @@ github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4er
|
|||||||
github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
||||||
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE=
|
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE=
|
||||||
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
||||||
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 h1:f+oWsMOmNPc8JmEHVZIycC7hBoQxHH9pNKQORJNozsQ=
|
|
||||||
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8/go.mod h1:wcDNUvekVysuuOpQKo3191zZyTpiI6se1N1ULghS0sw=
|
|
||||||
github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
|
github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
|
||||||
github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
|
github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
|
||||||
github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y=
|
github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y=
|
||||||
@@ -145,8 +141,6 @@ github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx
|
|||||||
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
|
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
|
||||||
github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg=
|
github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg=
|
||||||
github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
|
github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
|
||||||
github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
|
|
||||||
github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
|
|
||||||
github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
|
github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
|
||||||
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
|
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
|
||||||
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
|
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
|
||||||
@@ -165,7 +159,6 @@ github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/
|
|||||||
github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE=
|
github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE=
|
||||||
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
|
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
|
||||||
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
|
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
|
||||||
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
|
|
||||||
github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
|
github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
|
||||||
github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=
|
github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=
|
||||||
github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=
|
github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=
|
||||||
@@ -186,7 +179,6 @@ github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLe
|
|||||||
github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
|
github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
|
||||||
github.com/google/pprof v0.0.0-20221118152302-e6195bd50e26 h1:Xim43kblpZXfIBQsbuBVKCudVG457BR2GZFIz3uw3hQ=
|
github.com/google/pprof v0.0.0-20221118152302-e6195bd50e26 h1:Xim43kblpZXfIBQsbuBVKCudVG457BR2GZFIz3uw3hQ=
|
||||||
github.com/google/pprof v0.0.0-20221118152302-e6195bd50e26/go.mod h1:dDKJzRmX4S37WGHujM7tX//fmj1uioxKzKxz3lo4HJo=
|
github.com/google/pprof v0.0.0-20221118152302-e6195bd50e26/go.mod h1:dDKJzRmX4S37WGHujM7tX//fmj1uioxKzKxz3lo4HJo=
|
||||||
github.com/google/pprof v0.0.0-20250317173921-a4b03ec1a45e h1:ijClszYn+mADRFY17kjQEVQ1XRhq2/JR1M3sGqeJoxs=
|
|
||||||
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
|
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
|
||||||
github.com/google/s2a-go v0.1.7 h1:60BLSyTrOV4/haCDW4zb1guZItoSq8foHCXrAnjBo/o=
|
github.com/google/s2a-go v0.1.7 h1:60BLSyTrOV4/haCDW4zb1guZItoSq8foHCXrAnjBo/o=
|
||||||
github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw=
|
github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw=
|
||||||
@@ -224,12 +216,8 @@ github.com/lib/pq v1.2.0 h1:LXpIM/LZ5xGFhOpXAQUIMM1HdyqzVYM13zNdjCEEcA0=
|
|||||||
github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
|
github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
|
||||||
github.com/matryer/is v1.4.0 h1:sosSmIWwkYITGrxZ25ULNDeKiMNzFSr4V/eqBQP0PeE=
|
github.com/matryer/is v1.4.0 h1:sosSmIWwkYITGrxZ25ULNDeKiMNzFSr4V/eqBQP0PeE=
|
||||||
github.com/matryer/is v1.4.0/go.mod h1:8I/i5uYgLzgsgEloJE1U6xx5HkBQpAZvepWuujKwMRU=
|
github.com/matryer/is v1.4.0/go.mod h1:8I/i5uYgLzgsgEloJE1U6xx5HkBQpAZvepWuujKwMRU=
|
||||||
github.com/matryer/is v1.4.1 h1:55ehd8zaGABKLXQUe2awZ99BD/PTc2ls+KV/dXphgEQ=
|
|
||||||
github.com/mattn/go-isatty v0.0.16 h1:bq3VjFmv/sOjHtdEhmkEV4x1AJtvUvOJ2PFAZ5+peKQ=
|
github.com/mattn/go-isatty v0.0.16 h1:bq3VjFmv/sOjHtdEhmkEV4x1AJtvUvOJ2PFAZ5+peKQ=
|
||||||
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
|
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
|
||||||
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
|
|
||||||
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
|
|
||||||
github.com/mattn/go-sqlite3 v1.14.6 h1:dNPt6NO46WmLVt2DLNpwczCmdV5boIZ6g/tlDrlRUbg=
|
|
||||||
github.com/mattn/go-sqlite3 v1.14.6/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU=
|
github.com/mattn/go-sqlite3 v1.14.6/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU=
|
||||||
github.com/mattn/go-sqlite3 v1.14.22 h1:2gZY6PC6kBnID23Tichd1K+Z0oS6nE/XwU+Vz/5o4kU=
|
github.com/mattn/go-sqlite3 v1.14.22 h1:2gZY6PC6kBnID23Tichd1K+Z0oS6nE/XwU+Vz/5o4kU=
|
||||||
github.com/mattn/go-sqlite3 v1.14.22/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y=
|
github.com/mattn/go-sqlite3 v1.14.22/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y=
|
||||||
@@ -237,8 +225,6 @@ github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9
|
|||||||
github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8=
|
github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8=
|
||||||
github.com/ncruces/go-strftime v0.1.9 h1:bY0MQC28UADQmHmaF5dgpLmImcShSi2kHU9XLdhx/f4=
|
github.com/ncruces/go-strftime v0.1.9 h1:bY0MQC28UADQmHmaF5dgpLmImcShSi2kHU9XLdhx/f4=
|
||||||
github.com/ncruces/go-strftime v0.1.9/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJmn9CehxcKcls=
|
github.com/ncruces/go-strftime v0.1.9/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJmn9CehxcKcls=
|
||||||
github.com/ncruces/go-strftime v1.0.0 h1:HMFp8mLCTPp341M/ZnA4qaf7ZlsbTc+miZjCLOFAw7w=
|
|
||||||
github.com/ncruces/go-strftime v1.0.0/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJmn9CehxcKcls=
|
|
||||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||||
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
|
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
|
||||||
@@ -251,10 +237,6 @@ github.com/richardlehane/msoleps v1.0.3 h1:aznSZzrwYRl3rLKRT3gUk9am7T/mLNSnJINvN
|
|||||||
github.com/richardlehane/msoleps v1.0.3/go.mod h1:BWev5JBpU9Ko2WAgmZEuiz4/u3ZYTKbjLycmwiWUfWg=
|
github.com/richardlehane/msoleps v1.0.3/go.mod h1:BWev5JBpU9Ko2WAgmZEuiz4/u3ZYTKbjLycmwiWUfWg=
|
||||||
github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
|
github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
|
||||||
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
|
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
|
||||||
github.com/shopspring/decimal v1.3.1 h1:2Usl1nmF/WZucqkFZhnfFYxxxu8LG21F6nPQBE5gKV8=
|
|
||||||
github.com/shopspring/decimal v1.3.1/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o=
|
|
||||||
github.com/shopspring/decimal v1.4.0 h1:bxl37RwXBklmTi0C79JfXCEBD1cqqHt0bbgBAGFp81k=
|
|
||||||
github.com/shopspring/decimal v1.4.0/go.mod h1:gawqmDU56v4yIKSwfBSFip1HdCCXN8/+DMd9qYNcwME=
|
|
||||||
github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
|
github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
|
||||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||||
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
|
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
|
||||||
@@ -268,15 +250,12 @@ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO
|
|||||||
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
|
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
|
||||||
github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
|
github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
|
||||||
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
|
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
|
||||||
github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
|
|
||||||
github.com/wailsapp/mimetype v1.4.1 h1:pQN9ycO7uo4vsUUuPeHEYoUkLVkaRntMnHJxVwYhwHs=
|
github.com/wailsapp/mimetype v1.4.1 h1:pQN9ycO7uo4vsUUuPeHEYoUkLVkaRntMnHJxVwYhwHs=
|
||||||
github.com/wailsapp/mimetype v1.4.1/go.mod h1:9aV5k31bBOv5z6u+QP8TltzvNGJPmNJD4XlAL3U+j3o=
|
github.com/wailsapp/mimetype v1.4.1/go.mod h1:9aV5k31bBOv5z6u+QP8TltzvNGJPmNJD4XlAL3U+j3o=
|
||||||
github.com/wailsapp/wails/v2 v2.3.2-0.20230117193915-45c3a501d9e6 h1:Wn+nhnS+VytzE0PegUzSh4T3hXJCtggKGD/4U5H9+wQ=
|
github.com/wailsapp/wails/v2 v2.3.2-0.20230117193915-45c3a501d9e6 h1:Wn+nhnS+VytzE0PegUzSh4T3hXJCtggKGD/4U5H9+wQ=
|
||||||
github.com/wailsapp/wails/v2 v2.3.2-0.20230117193915-45c3a501d9e6/go.mod h1:zlNLI0E2c2qA6miiuAHtp0Bac8FaGH0tlhA19OssR/8=
|
github.com/wailsapp/wails/v2 v2.3.2-0.20230117193915-45c3a501d9e6/go.mod h1:zlNLI0E2c2qA6miiuAHtp0Bac8FaGH0tlhA19OssR/8=
|
||||||
github.com/wailsapp/wails/v3 v3.0.0-alpha.0 h1:T5gqG98Xr8LBf69oxlPkhpsFD59w2SnqUZk6XHj8Zoc=
|
github.com/wailsapp/wails/v3 v3.0.0-alpha.0 h1:T5gqG98Xr8LBf69oxlPkhpsFD59w2SnqUZk6XHj8Zoc=
|
||||||
github.com/wailsapp/wails/v3 v3.0.0-alpha.0/go.mod h1:OAfO5bP0TSUvCIHZYc6Dqfow/9RqxzHvYtmhWPpo1c0=
|
github.com/wailsapp/wails/v3 v3.0.0-alpha.0/go.mod h1:OAfO5bP0TSUvCIHZYc6Dqfow/9RqxzHvYtmhWPpo1c0=
|
||||||
github.com/wailsapp/wails/v3 v3.0.0-alpha2.103 h1:gL7MzpN3SFw3rVjusmyNXds9PutZBk/M/AsSyppfN4c=
|
|
||||||
github.com/wailsapp/wails/v3 v3.0.0-alpha2.103/go.mod h1:GRW1qYl54Zi/w1mjCzDrMiy76g2BLfNlpqF640hgMf0=
|
|
||||||
github.com/xuri/efp v0.0.0-20231025114914-d1ff6096ae53 h1:Chd9DkqERQQuHpXjR/HSV1jLZA6uaoiwwH3vSuF3IW0=
|
github.com/xuri/efp v0.0.0-20231025114914-d1ff6096ae53 h1:Chd9DkqERQQuHpXjR/HSV1jLZA6uaoiwwH3vSuF3IW0=
|
||||||
github.com/xuri/efp v0.0.0-20231025114914-d1ff6096ae53/go.mod h1:ybY/Jr0T0GTCnYjKqmdwxyxn2BQf2RcQIIvex5QldPI=
|
github.com/xuri/efp v0.0.0-20231025114914-d1ff6096ae53/go.mod h1:ybY/Jr0T0GTCnYjKqmdwxyxn2BQf2RcQIIvex5QldPI=
|
||||||
github.com/xuri/excelize/v2 v2.8.1 h1:pZLMEwK8ep+CLIUWpWmvW8IWE/yxqG0I1xcN6cVMGuQ=
|
github.com/xuri/excelize/v2 v2.8.1 h1:pZLMEwK8ep+CLIUWpWmvW8IWE/yxqG0I1xcN6cVMGuQ=
|
||||||
@@ -331,10 +310,8 @@ golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8U
|
|||||||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
||||||
golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30=
|
golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA=
|
||||||
golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M=
|
golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs=
|
||||||
golang.org/x/crypto v0.50.0 h1:zO47/JPrL6vsNkINmLoo/PH1gcxpls50DNogFvB5ZGI=
|
|
||||||
golang.org/x/crypto v0.50.0/go.mod h1:3muZ7vA7PBCE6xgPX7nkzzjiUq87kRItoJQM1Yo8S+Q=
|
|
||||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||||
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||||
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
|
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
|
||||||
@@ -349,7 +326,6 @@ golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMx
|
|||||||
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
|
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
|
||||||
golang.org/x/image v0.14.0 h1:tNgSxAFe3jC4uYqvZdTr84SZoM1KfwdC9SKIFrLjFn4=
|
golang.org/x/image v0.14.0 h1:tNgSxAFe3jC4uYqvZdTr84SZoM1KfwdC9SKIFrLjFn4=
|
||||||
golang.org/x/image v0.14.0/go.mod h1:HUYqC05R2ZcZ3ejNQsIHQDQiwWM4JBqmm6MKANTp4LE=
|
golang.org/x/image v0.14.0/go.mod h1:HUYqC05R2ZcZ3ejNQsIHQDQiwWM4JBqmm6MKANTp4LE=
|
||||||
golang.org/x/image v0.40.0 h1:Tw4GyDXMo+daZN1znreBRC3VayR1aLFUyUEOLUdW1a8=
|
|
||||||
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
||||||
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
|
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
|
||||||
golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
||||||
@@ -374,9 +350,8 @@ golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
|||||||
golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||||
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||||
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
|
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
|
||||||
golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA=
|
golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0=
|
||||||
golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
|
golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
|
||||||
golang.org/x/mod v0.35.0 h1:Ww1D637e6Pg+Zb2KrWfHQUnH2dQRLBQyAtpr/haaJeM=
|
|
||||||
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
@@ -415,10 +390,8 @@ golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qx
|
|||||||
golang.org/x/net v0.0.0-20210505024714-0287a6fb4125/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
golang.org/x/net v0.0.0-20210505024714-0287a6fb4125/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||||
golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
|
golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
|
||||||
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
|
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
|
||||||
golang.org/x/net v0.27.0 h1:5K3Njcw06/l2y9vpGCSdcxWOYHOUk3dVNGDXN+FvAys=
|
golang.org/x/net v0.22.0 h1:9sGLhx7iRIHEiX0oAJ3MRZMUCElJgy7Br1nO+AMN3Tc=
|
||||||
golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE=
|
golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg=
|
||||||
golang.org/x/net v0.53.0 h1:d+qAbo5L0orcWAr0a9JweQpjXF19LMXJE8Ey7hwOdUA=
|
|
||||||
golang.org/x/net v0.53.0/go.mod h1:JvMuJH7rrdiCfbeHoo3fCQU24Lf5JJwT9W3sJFulfgs=
|
|
||||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||||
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||||
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||||
@@ -449,10 +422,8 @@ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJ
|
|||||||
golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M=
|
golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ=
|
||||||
golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
|
golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
|
||||||
golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4=
|
|
||||||
golang.org/x/sync v0.20.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0=
|
|
||||||
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
@@ -507,11 +478,8 @@ golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBc
|
|||||||
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4=
|
||||||
golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI=
|
golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||||
golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
|
||||||
golang.org/x/sys v0.43.0 h1:Rlag2XtaFTxp19wS8MXlJwTvoh8ArU6ezoyFsMyCTNI=
|
|
||||||
golang.org/x/sys v0.43.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
|
|
||||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||||
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
||||||
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
@@ -524,10 +492,8 @@ golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
|||||||
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||||
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
|
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
|
||||||
golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
|
golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
|
||||||
golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4=
|
golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
|
||||||
golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI=
|
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
|
||||||
golang.org/x/text v0.37.0 h1:Cqjiwd9eSg8e0QAkyCaQTNHFIIzWtidPahFWR83rTrc=
|
|
||||||
golang.org/x/text v0.37.0/go.mod h1:a5sjxXGs9hsn/AJVwuElvCAo9v8QYLzvavO5z2PiM38=
|
|
||||||
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||||
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||||
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||||
@@ -585,9 +551,8 @@ golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
|
|||||||
golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
|
golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
|
||||||
golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
|
golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
|
||||||
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
|
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
|
||||||
golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d h1:vU5i/LfpvrRCpgM/VPfJLg5KjxD3E+hfT1SH+d9zLwg=
|
golang.org/x/tools v0.17.0 h1:FvmRgNOcs3kOa+T20R1uhfP9F6HgG2mfxDv1vrx1Htc=
|
||||||
golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk=
|
golang.org/x/tools v0.17.0/go.mod h1:xsh6VxdV005rRVaS6SSAf9oiAqljS7UZUacMZ8Bnsps=
|
||||||
golang.org/x/tools v0.44.0 h1:UP4ajHPIcuMjT1GqzDWRlalUEoY+uzoZKnhOjbIPD2c=
|
|
||||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
@@ -758,7 +723,6 @@ gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
|||||||
gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
gopkg.in/yaml.v2 v2.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU=
|
gopkg.in/yaml.v2 v2.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU=
|
||||||
gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
|
|
||||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
@@ -771,31 +735,18 @@ honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9
|
|||||||
honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
|
honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
|
||||||
modernc.org/fileutil v1.3.0 h1:gQ5SIzK3H9kdfai/5x41oQiKValumqNTDXMvKo62HvE=
|
modernc.org/fileutil v1.3.0 h1:gQ5SIzK3H9kdfai/5x41oQiKValumqNTDXMvKo62HvE=
|
||||||
modernc.org/fileutil v1.3.0/go.mod h1:XatxS8fZi3pS8/hKG2GH/ArUogfxjpEKs3Ku3aK4JyQ=
|
modernc.org/fileutil v1.3.0/go.mod h1:XatxS8fZi3pS8/hKG2GH/ArUogfxjpEKs3Ku3aK4JyQ=
|
||||||
modernc.org/fileutil v1.3.40 h1:ZGMswMNc9JOCrcrakF1HrvmergNLAmxOPjizirpfqBA=
|
|
||||||
modernc.org/gc/v3 v3.0.0-20240107210532-573471604cb6 h1:5D53IMaUuA5InSeMu9eJtlQXS2NxAhyWQvkKEgXZhHI=
|
modernc.org/gc/v3 v3.0.0-20240107210532-573471604cb6 h1:5D53IMaUuA5InSeMu9eJtlQXS2NxAhyWQvkKEgXZhHI=
|
||||||
modernc.org/gc/v3 v3.0.0-20240107210532-573471604cb6/go.mod h1:Qz0X07sNOR1jWYCrJMEnbW/X55x206Q7Vt4mz6/wHp4=
|
modernc.org/gc/v3 v3.0.0-20240107210532-573471604cb6/go.mod h1:Qz0X07sNOR1jWYCrJMEnbW/X55x206Q7Vt4mz6/wHp4=
|
||||||
modernc.org/gc/v3 v3.1.1 h1:k8T3gkXWY9sEiytKhcgyiZ2L0DTyCQ/nvX+LoCljoRE=
|
|
||||||
modernc.org/gc/v3 v3.1.1/go.mod h1:HFK/6AGESC7Ex+EZJhJ2Gni6cTaYpSMmU/cT9RmlfYY=
|
|
||||||
modernc.org/libc v1.41.0 h1:g9YAc6BkKlgORsUWj+JwqoB1wU3o4DE3bM3yvA3k+Gk=
|
modernc.org/libc v1.41.0 h1:g9YAc6BkKlgORsUWj+JwqoB1wU3o4DE3bM3yvA3k+Gk=
|
||||||
modernc.org/libc v1.41.0/go.mod h1:w0eszPsiXoOnoMJgrXjglgLuDy/bt5RR4y3QzUUeodY=
|
modernc.org/libc v1.41.0/go.mod h1:w0eszPsiXoOnoMJgrXjglgLuDy/bt5RR4y3QzUUeodY=
|
||||||
modernc.org/libc v1.67.6 h1:eVOQvpModVLKOdT+LvBPjdQqfrZq+pC39BygcT+E7OI=
|
|
||||||
modernc.org/libc v1.67.6/go.mod h1:JAhxUVlolfYDErnwiqaLvUqc8nfb2r6S6slAgZOnaiE=
|
|
||||||
modernc.org/mathutil v1.6.0 h1:fRe9+AmYlaej+64JsEEhoWuAYBkOtQiMEU7n/XgfYi4=
|
modernc.org/mathutil v1.6.0 h1:fRe9+AmYlaej+64JsEEhoWuAYBkOtQiMEU7n/XgfYi4=
|
||||||
modernc.org/mathutil v1.6.0/go.mod h1:Ui5Q9q1TR2gFm0AQRqQUaBWFLAhQpCwNcuhBOSedWPo=
|
modernc.org/mathutil v1.6.0/go.mod h1:Ui5Q9q1TR2gFm0AQRqQUaBWFLAhQpCwNcuhBOSedWPo=
|
||||||
modernc.org/mathutil v1.7.1 h1:GCZVGXdaN8gTqB1Mf/usp1Y/hSqgI2vAGGP4jZMCxOU=
|
|
||||||
modernc.org/mathutil v1.7.1/go.mod h1:4p5IwJITfppl0G4sUEDtCr4DthTaT47/N3aT6MhfgJg=
|
|
||||||
modernc.org/memory v1.7.2 h1:Klh90S215mmH8c9gO98QxQFsY+W451E8AnzjoE2ee1E=
|
modernc.org/memory v1.7.2 h1:Klh90S215mmH8c9gO98QxQFsY+W451E8AnzjoE2ee1E=
|
||||||
modernc.org/memory v1.7.2/go.mod h1:NO4NVCQy0N7ln+T9ngWqOQfi7ley4vpwvARR+Hjw95E=
|
modernc.org/memory v1.7.2/go.mod h1:NO4NVCQy0N7ln+T9ngWqOQfi7ley4vpwvARR+Hjw95E=
|
||||||
modernc.org/memory v1.11.0 h1:o4QC8aMQzmcwCK3t3Ux/ZHmwFPzE6hf2Y5LbkRs+hbI=
|
|
||||||
modernc.org/memory v1.11.0/go.mod h1:/JP4VbVC+K5sU2wZi9bHoq2MAkCnrt2r98UGeSK7Mjw=
|
|
||||||
modernc.org/sqlite v1.29.5 h1:8l/SQKAjDtZFo9lkJLdk8g9JEOeYRG4/ghStDCCTiTE=
|
modernc.org/sqlite v1.29.5 h1:8l/SQKAjDtZFo9lkJLdk8g9JEOeYRG4/ghStDCCTiTE=
|
||||||
modernc.org/sqlite v1.29.5/go.mod h1:S02dvcmm7TnTRvGhv8IGYyLnIt7AS2KPaB1F/71p75U=
|
modernc.org/sqlite v1.29.5/go.mod h1:S02dvcmm7TnTRvGhv8IGYyLnIt7AS2KPaB1F/71p75U=
|
||||||
modernc.org/sqlite v1.44.3 h1:+39JvV/HWMcYslAwRxHb8067w+2zowvFOUrOWIy9PjY=
|
|
||||||
modernc.org/sqlite v1.44.3/go.mod h1:CzbrU2lSB1DKUusvwGz7rqEKIq+NUd8GWuBBZDs9/nA=
|
|
||||||
modernc.org/strutil v1.2.0 h1:agBi9dp1I+eOnxXeiZawM8F4LawKv4NzGWSaLfyeNZA=
|
modernc.org/strutil v1.2.0 h1:agBi9dp1I+eOnxXeiZawM8F4LawKv4NzGWSaLfyeNZA=
|
||||||
modernc.org/strutil v1.2.0/go.mod h1:/mdcBmfOibveCTBxUl5B5l6W+TTH1FXPLHZE6bTosX0=
|
modernc.org/strutil v1.2.0/go.mod h1:/mdcBmfOibveCTBxUl5B5l6W+TTH1FXPLHZE6bTosX0=
|
||||||
modernc.org/strutil v1.2.1 h1:UneZBkQA+DX2Rp35KcM69cSsNES9ly8mQWD71HKlOA0=
|
|
||||||
modernc.org/strutil v1.2.1/go.mod h1:EHkiggD70koQxjVdSBM3JKM7k6L0FbGE5eymy9i3B9A=
|
|
||||||
modernc.org/token v1.1.0 h1:Xl7Ap9dKaEs5kLoOQeQmPWevfnk/DM5qcLcYlA8ys6Y=
|
modernc.org/token v1.1.0 h1:Xl7Ap9dKaEs5kLoOQeQmPWevfnk/DM5qcLcYlA8ys6Y=
|
||||||
modernc.org/token v1.1.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM=
|
modernc.org/token v1.1.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM=
|
||||||
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
|
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import (
|
|||||||
"bordrobot/lib/company"
|
"bordrobot/lib/company"
|
||||||
"bordrobot/lib/helper"
|
"bordrobot/lib/helper"
|
||||||
"bordrobot/lib/ocr"
|
"bordrobot/lib/ocr"
|
||||||
"context"
|
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
@@ -50,7 +49,7 @@ func (l *Luca) ClosingBrowserFromExternalLink() {
|
|||||||
CloseBrowser(l.Browser)
|
CloseBrowser(l.Browser)
|
||||||
}
|
}
|
||||||
func VerifyCaptcha(page *rod.Page) error {
|
func VerifyCaptcha(page *rod.Page) error {
|
||||||
//captcha := "#captcha"
|
captcha := "#captcha"
|
||||||
picturePreparation := []string{
|
picturePreparation := []string{
|
||||||
`document.getElementsByTagName("body")[0].style.backgroundImage = "none"`,
|
`document.getElementsByTagName("body")[0].style.backgroundImage = "none"`,
|
||||||
`document.getElementsByClassName("baslik1")[0].style.display = "none"`,
|
`document.getElementsByClassName("baslik1")[0].style.display = "none"`,
|
||||||
@@ -60,7 +59,6 @@ func VerifyCaptcha(page *rod.Page) error {
|
|||||||
`document.getElementsByClassName("baslik3")[0].getElementsByClassName("inp")[3].style.display = "none"`,
|
`document.getElementsByClassName("baslik3")[0].getElementsByClassName("inp")[3].style.display = "none"`,
|
||||||
`document.getElementsByClassName("baslik3")[0].getElementsByClassName("inp")[4].style.display = "none"`,
|
`document.getElementsByClassName("baslik3")[0].getElementsByClassName("inp")[4].style.display = "none"`,
|
||||||
`document.getElementsByClassName("baslik3")[0].getElementsByClassName("inp")[5].style.display = "none"`,
|
`document.getElementsByClassName("baslik3")[0].getElementsByClassName("inp")[5].style.display = "none"`,
|
||||||
`document.getElementsByClassName("captcha-container")[0].style.display ='none'`,
|
|
||||||
}
|
}
|
||||||
for i := 0; i < len(picturePreparation); i++ {
|
for i := 0; i < len(picturePreparation); i++ {
|
||||||
wait := page.WaitRequestIdle(600*time.Millisecond, nil, nil, nil)
|
wait := page.WaitRequestIdle(600*time.Millisecond, nil, nil, nil)
|
||||||
@@ -81,7 +79,7 @@ func VerifyCaptcha(page *rod.Page) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
//captchaMessage, err := ReceiveDOMMessages(page, captcha, "src")
|
captchaMessage, err := ReceiveDOMMessages(page, captcha, "src")
|
||||||
picturePreparation = []string{
|
picturePreparation = []string{
|
||||||
`document.getElementsByTagName("body")[0].style.backgroundImage = ""`,
|
`document.getElementsByTagName("body")[0].style.backgroundImage = ""`,
|
||||||
`document.getElementsByClassName("baslik1")[0].style.display = ""`,
|
`document.getElementsByClassName("baslik1")[0].style.display = ""`,
|
||||||
@@ -101,19 +99,12 @@ func VerifyCaptcha(page *rod.Page) error {
|
|||||||
}
|
}
|
||||||
fmt.Print(err)
|
fmt.Print(err)
|
||||||
}
|
}
|
||||||
var captchaMsg string
|
var captchaMsg []string
|
||||||
screenshot, err := page.Screenshot(true, &proto.PageCaptureScreenshot{})
|
|
||||||
if err != nil {
|
|
||||||
return errors.New("Captcha Sayfasında Hata Oluştu. İşlem Sonlanıyor.")
|
|
||||||
}
|
|
||||||
//captchaMsg, err = ocr.VisionApi("./processFolder/screenshot.png")
|
|
||||||
captchaMsg, err = ocr.DecodeTwoCaptcha(context.Background(), screenshot, "luca")
|
|
||||||
if err != nil {
|
|
||||||
return errors.New("Captcha Servisinde Hata Oluştu. İşlem Sonlanıyor.")
|
|
||||||
}
|
|
||||||
|
|
||||||
trimmedMsg := strings.ReplaceAll(captchaMsg, " ", "")
|
captchaMsg, err = ocr.VisionApi("./processFolder/screenshot.png")
|
||||||
trimmedMsg = strings.Replace(trimmedMsg, "\"", "", -1)
|
fmt.Print(captchaMessage)
|
||||||
|
|
||||||
|
trimmedMsg := strings.ReplaceAll(captchaMsg[0], " ", "")
|
||||||
page.MustElement("#captcha-input").MustInput(strings.ToLower(trimmedMsg))
|
page.MustElement("#captcha-input").MustInput(strings.ToLower(trimmedMsg))
|
||||||
_, err = page.Evaluate(rod.Eval(`document.getElementById(document.forms[0].submit())`))
|
_, err = page.Evaluate(rod.Eval(`document.getElementById(document.forms[0].submit())`))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -444,7 +435,7 @@ func (l *Luca) PayrollPageLogin() error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
fmt.Println(err)
|
fmt.Println(err)
|
||||||
err = ClickItem(frame3, "#apy1000m36i4ITX", 1)
|
err = ClickItem(frame3, "#apy1000m33i4ITX", 1)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -475,15 +466,8 @@ func (l *Luca) BordroYaz(month, year int, b *LucaBordro, lastItem bool) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
Wait(frame3, 2000)
|
Wait(frame3, 1000)
|
||||||
err = WaitDomElement(frame3, "#isyeriId > option", 50)
|
|
||||||
if err != nil {
|
|
||||||
return errors.New("işyeri bulunurken hata ile karşılaşıldı")
|
|
||||||
}
|
|
||||||
bordroCompanySelectBox, err := frame3.Elements("#isyeriId > option")
|
bordroCompanySelectBox, err := frame3.Elements("#isyeriId > option")
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
for j := 0; j < len(bordroCompanySelectBox); j++ {
|
for j := 0; j < len(bordroCompanySelectBox); j++ {
|
||||||
text, err := bordroCompanySelectBox[j].Text()
|
text, err := bordroCompanySelectBox[j].Text()
|
||||||
value, err := bordroCompanySelectBox[j].Property("value")
|
value, err := bordroCompanySelectBox[j].Property("value")
|
||||||
@@ -502,7 +486,7 @@ func (l *Luca) BordroYaz(month, year int, b *LucaBordro, lastItem bool) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
Wait(frame3, 1000)
|
Wait(frame3, 500)
|
||||||
element, err := frame3.Element("#isyeriId")
|
element, err := frame3.Element("#isyeriId")
|
||||||
element.WaitLoad()
|
element.WaitLoad()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -517,15 +501,8 @@ func (l *Luca) BordroYaz(month, year int, b *LucaBordro, lastItem bool) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
Wait(frame3, 2500)
|
Wait(frame3, 1000)
|
||||||
err = WaitDomElement(frame3, "#bolumId > option", 50)
|
|
||||||
if err != nil {
|
|
||||||
return errors.New("bölüm bulunurken hata ile karşılaşıldı")
|
|
||||||
}
|
|
||||||
bordroDepartmentSelectBox, err := frame3.Elements("#bolumId > option")
|
bordroDepartmentSelectBox, err := frame3.Elements("#bolumId > option")
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
element, err = frame3.Element("#bolumId > option")
|
element, err = frame3.Element("#bolumId > option")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@@ -545,6 +522,7 @@ func (l *Luca) BordroYaz(month, year int, b *LucaBordro, lastItem bool) error {
|
|||||||
bolumId = value.String()
|
bolumId = value.String()
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
fmt.Print(text, value)
|
||||||
}
|
}
|
||||||
if bolumId == "" {
|
if bolumId == "" {
|
||||||
return errors.New("Kayıtlı Bölüm Bulunamadı")
|
return errors.New("Kayıtlı Bölüm Bulunamadı")
|
||||||
@@ -559,7 +537,6 @@ func (l *Luca) BordroYaz(month, year int, b *LucaBordro, lastItem bool) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
Wait(frame3, 1000)
|
|
||||||
err = WaitLoad(frame3)
|
err = WaitLoad(frame3)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@@ -572,14 +549,9 @@ func (l *Luca) BordroYaz(month, year int, b *LucaBordro, lastItem bool) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
Wait(frame3, 1500)
|
Wait(frame3, 1000)
|
||||||
var isEmpty bool = false
|
var isEmpty bool = false
|
||||||
//var targetID string
|
//var targetID string
|
||||||
err = WaitDomElement(frame3, "#scroll > table > tbody > tr > td[id^='tcKimlikNo']", 50)
|
|
||||||
if err != nil {
|
|
||||||
return errors.New("tablo okunurken hata ile karşılaşıldı")
|
|
||||||
}
|
|
||||||
|
|
||||||
elems, err := frame3.Elements("#scroll > table > tbody > tr > td[id^='tcKimlikNo']")
|
elems, err := frame3.Elements("#scroll > table > tbody > tr > td[id^='tcKimlikNo']")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@@ -609,6 +581,7 @@ func (l *Luca) BordroYaz(month, year int, b *LucaBordro, lastItem bool) error {
|
|||||||
}
|
}
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
fmt.Print(elems, tex)
|
||||||
}
|
}
|
||||||
if foundIndex == -1 {
|
if foundIndex == -1 {
|
||||||
err = ClickItem(frame3, "body > form > table > tbody > tr.altBar.alt-button-bar > th > table > tbody > tr > td:nth-child(1) > button:nth-child(3)", 1)
|
err = ClickItem(frame3, "body > form > table > tbody > tr.altBar.alt-button-bar > th > table > tbody > tr > td:nth-child(1) > button:nth-child(3)", 1)
|
||||||
@@ -643,102 +616,32 @@ func (l *Luca) BordroYaz(month, year int, b *LucaBordro, lastItem bool) error {
|
|||||||
|
|
||||||
}
|
}
|
||||||
rsp, err := l.BordroTableMaping(frame3, b)
|
rsp, err := l.BordroTableMaping(frame3, b)
|
||||||
if err != nil {
|
if len(rsp) == 0 {
|
||||||
return errors.New("Bordro Tablosu Çekilemedi")
|
return errors.New("Bordro Tablosu Çekilemedi")
|
||||||
}
|
}
|
||||||
sgkDayFlag := false
|
fmt.Print(rsp)
|
||||||
|
|
||||||
//rsp den dönden değerler ile matchlencek ve yazılcak
|
//rsp den dönden değerler ile matchlencek ve yazılcak
|
||||||
firsts := make(map[string]decimal.Decimal)
|
firsts := make(map[string]decimal.Decimal)
|
||||||
if value, ok := b.Ucretler["Normal Gün"]; ok {
|
if value, ok := b.Ucretler["Normal Gün"]; ok {
|
||||||
// Anahtarı ve değeri yeni map'e ekle
|
// Anahtarı ve değeri yeni map'e ekle
|
||||||
firsts["Normal Gün"] = value
|
firsts["Normal Gün"] = value
|
||||||
}
|
}
|
||||||
if value, ok := b.Ucretler["Hafta Tatili"]; ok {
|
|
||||||
// Anahtarı ve değeri yeni map'e ekle
|
|
||||||
firsts["Hafta Tatili"] = value
|
|
||||||
}
|
|
||||||
if value, ok := b.Ucretler["Genel Tatil"]; ok {
|
|
||||||
// Anahtarı ve değeri yeni map'e ekle
|
|
||||||
firsts["Genel Tatil"] = value
|
|
||||||
}
|
|
||||||
if value, ok := b.Ucretler["Ücretli İzin"]; ok {
|
|
||||||
// Anahtarı ve değeri yeni map'e ekle
|
|
||||||
firsts["Ücretli İzin"] = value
|
|
||||||
if !value.IsZero() {
|
|
||||||
sgkDayFlag = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if value, ok := b.Ucretler["Rapor"]; ok {
|
|
||||||
// Anahtarı ve değeri yeni map'e ekle
|
|
||||||
firsts["Rapor"] = value
|
|
||||||
if !value.IsZero() {
|
|
||||||
sgkDayFlag = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
keys := []string{"Normal Gün", "Hafta Tatili", "Genel Tatil", "Ücretli İzin", "Rapor"}
|
|
||||||
|
|
||||||
for _, v := range keys {
|
for k, v := range firsts {
|
||||||
fmt.Print(v)
|
fmt.Print(v)
|
||||||
for i := 0; i < len(rsp); i++ {
|
for i := 0; i < len(rsp); i++ {
|
||||||
value, ok := firsts[v]
|
if k == rsp[i].Value {
|
||||||
if !ok {
|
|
||||||
fmt.Printf("Key %s not found in map\n", v)
|
|
||||||
break
|
|
||||||
}
|
|
||||||
if v == rsp[i].Value {
|
|
||||||
el, err := frame3.Element("#" + rsp[i].Index)
|
el, err := frame3.Element("#" + rsp[i].Index)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if !value.Equal(value.Truncate(0)) {
|
err = el.Input(v.String())
|
||||||
nevvl := strings.ReplaceAll(value.String(), ".", ",")
|
|
||||||
strv := nevvl
|
|
||||||
err = el.Input(strv)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
err = el.Input(value.String())
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
el.Eval(`this.dispatchEvent(new KeyboardEvent('keydown', {'key': 'Enter'}))`)
|
el.Eval(`this.dispatchEvent(new KeyboardEvent('keydown', {'key': 'Enter'}))`)
|
||||||
// valueStr := value.String()
|
|
||||||
// // JS ile değeri ata, input tetikle, blur tetikle (Enter yerine geçer)
|
|
||||||
// script := fmt.Sprintf(`this.value = "%s"; this.dispatchEvent(new Event("input", { bubbles: true })); this.blur();`, strings.ReplaceAll(valueStr, `"`, `\"`))
|
|
||||||
|
|
||||||
// _, err = el.Eval(script)
|
|
||||||
// if err != nil {
|
|
||||||
// return err
|
|
||||||
// }
|
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
break
|
||||||
}
|
}
|
||||||
|
|
||||||
display, err := frame3.Element("#puantajGunTable")
|
|
||||||
if err != nil {
|
|
||||||
return errors.New("Puantaj Gün Tablosu Bulunamadı.")
|
|
||||||
}
|
|
||||||
dsp, err := display.Attribute("style")
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// `display: none;` içerip içermediğini kontrol et
|
|
||||||
if dsp != nil && !strings.Contains(*dsp, "display: none;") {
|
|
||||||
if sgkDayFlag {
|
|
||||||
ClickItem(frame3, "#ayGun2", 1)
|
|
||||||
} else {
|
|
||||||
ClickItem(frame3, "#ayGun1", 1)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for k, v := range b.Ucretler {
|
for k, v := range b.Ucretler {
|
||||||
splitValue := strings.SplitN(k, " #", 2)
|
splitValue := strings.SplitN(k, " #", 2)
|
||||||
k = strings.TrimSpace(splitValue[0])
|
k = strings.TrimSpace(splitValue[0])
|
||||||
@@ -748,7 +651,7 @@ func (l *Luca) BordroYaz(month, year int, b *LucaBordro, lastItem bool) error {
|
|||||||
if tt == "0" {
|
if tt == "0" {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if k == "Normal Gün" || k == "Hafta Tatili" || k == "Genel Tatil" || k == "Ücretli İzin" || k == "Rapor" {
|
if k == "Normal Gün" {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
Wait(frame3, 100)
|
Wait(frame3, 100)
|
||||||
@@ -758,6 +661,7 @@ func (l *Luca) BordroYaz(month, year int, b *LucaBordro, lastItem bool) error {
|
|||||||
var hashValue string
|
var hashValue string
|
||||||
if len(splitValue) > 1 {
|
if len(splitValue) > 1 {
|
||||||
hashValue = strings.TrimSpace(splitValue[1])
|
hashValue = strings.TrimSpace(splitValue[1])
|
||||||
|
fmt.Println(hashValue)
|
||||||
}
|
}
|
||||||
Wait(frame3, 200)
|
Wait(frame3, 200)
|
||||||
if rsp[i].itemType == "selectBox" {
|
if rsp[i].itemType == "selectBox" {
|
||||||
|
|||||||
@@ -1,140 +1,110 @@
|
|||||||
package bot
|
package bot
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
"fmt"
|
||||||
"fmt"
|
"time"
|
||||||
"time"
|
|
||||||
|
"github.com/go-rod/rod"
|
||||||
"github.com/go-rod/rod"
|
"github.com/go-rod/rod/lib/proto"
|
||||||
"github.com/go-rod/rod/lib/proto"
|
)
|
||||||
)
|
|
||||||
|
type Select struct {
|
||||||
type Select struct {
|
Element *rod.Element
|
||||||
Element *rod.Element
|
Selector string
|
||||||
Selector string
|
}
|
||||||
}
|
|
||||||
|
func (elemSelector *Select) SelectItem(changeValue string) error {
|
||||||
func (elemSelector *Select) SelectItem(changeValue string) error {
|
_, err := elemSelector.Element.Evaluate(rod.Eval(`()=>{document.querySelector("` + elemSelector.Selector + `").value = "` + changeValue + `";}`))
|
||||||
_, err := elemSelector.Element.Evaluate(rod.Eval(`()=>{document.querySelector("` + elemSelector.Selector + `").value = "` + changeValue + `";}`))
|
_, err = elemSelector.Element.Evaluate(rod.Eval(`()=>{document.querySelector("` + elemSelector.Selector + `").dispatchEvent(new Event('change'));}`))
|
||||||
_, err = elemSelector.Element.Evaluate(rod.Eval(`()=>{document.querySelector("` + elemSelector.Selector + `").dispatchEvent(new Event('change'));}`))
|
return err
|
||||||
return err
|
|
||||||
|
}
|
||||||
}
|
func WaitLoad(frm *rod.Page) error { // belli bir süre redirect ten önceki js fonksiyonunun tamamlanması bekleniyor
|
||||||
func WaitLoad(frm *rod.Page) error { // belli bir süre redirect ten önceki js fonksiyonunun tamamlanması bekleniyor
|
wait := frm.WaitRequestIdle(100*time.Millisecond, nil, nil, nil)
|
||||||
wait := frm.WaitRequestIdle(100*time.Millisecond, nil, nil, nil)
|
wait()
|
||||||
wait()
|
err := frm.WaitLoad()
|
||||||
err := frm.WaitLoad()
|
return err
|
||||||
return err
|
}
|
||||||
}
|
func ReceiveDOMMessages(page *rod.Page, selector string, searchValue string) (string, error) {
|
||||||
func ReceiveDOMMessages(page *rod.Page, selector string, searchValue string) (string, error) {
|
// Tek bir öğe alınması, hata durumunu kontrol etmek için
|
||||||
// Tek bir öğe alınması, hata durumunu kontrol etmek için
|
elemd := page.MustElements(selector)
|
||||||
elemd := page.MustElements(selector)
|
|
||||||
|
// Eğer elem boş ise, yani nil ise, hata döndür
|
||||||
// Eğer elem boş ise, yani nil ise, hata döndür
|
if len(elemd) == 0 {
|
||||||
if len(elemd) == 0 {
|
err := fmt.Errorf("Sellector Bulunamadı: %v", selector)
|
||||||
err := fmt.Errorf("Sellector Bulunamadı: %v", selector)
|
return "", err
|
||||||
return "", err
|
}
|
||||||
}
|
elem := page.MustElement(selector)
|
||||||
elem := page.MustElement(selector)
|
// Eğer elem boş ise, yani nil ise, hata döndür
|
||||||
// Eğer elem boş ise, yani nil ise, hata döndür
|
if elem == nil {
|
||||||
if elem == nil {
|
err := fmt.Errorf("Sellector Bulunamadı: %v", selector)
|
||||||
err := fmt.Errorf("Sellector Bulunamadı: %v", selector)
|
return "", err
|
||||||
return "", err
|
}
|
||||||
}
|
|
||||||
|
// Öğenin metnini al
|
||||||
// Öğenin metnini al
|
//text := elem.MustEval(fmt.Sprintf(`() => this.%s`, searchValue)).String()
|
||||||
//text := elem.MustEval(fmt.Sprintf(`() => this.%s`, searchValue)).String()
|
// text := elem.MustEval(`() => this.innerText`).String()
|
||||||
// text := elem.MustEval(`() => this.innerText`).String()
|
text := elem.MustEval(fmt.Sprintf(`() => this.%s`, searchValue)).String()
|
||||||
text := elem.MustEval(fmt.Sprintf(`() => this.%s`, searchValue)).String()
|
|
||||||
|
return text, nil
|
||||||
return text, nil
|
}
|
||||||
}
|
func FillInput(frm *rod.Page, selector string, value string) error {
|
||||||
func FillInput(frm *rod.Page, selector string, value string) error {
|
el, err := frm.Element(selector)
|
||||||
el, err := frm.Element(selector)
|
if err != nil {
|
||||||
if err != nil {
|
return err
|
||||||
return err
|
}
|
||||||
}
|
|
||||||
|
err = el.Input(value)
|
||||||
err = el.Input(value)
|
|
||||||
|
return err
|
||||||
return err
|
|
||||||
|
}
|
||||||
}
|
func ClickItem(frm *rod.Page, selector string, clickCount int) error {
|
||||||
func ClickItem(frm *rod.Page, selector string, clickCount int) error {
|
// Sayfadan ilgili öğeyi bul
|
||||||
// Sayfadan ilgili öğeyi bul
|
el, err := frm.Element(selector)
|
||||||
el, err := frm.Element(selector)
|
err = el.WaitLoad()
|
||||||
err = el.WaitLoad()
|
if err != nil {
|
||||||
if err != nil {
|
return err
|
||||||
return err
|
}
|
||||||
}
|
err = el.Click(proto.InputMouseButtonLeft, clickCount)
|
||||||
err = el.Click(proto.InputMouseButtonLeft, clickCount)
|
return err
|
||||||
return err
|
}
|
||||||
}
|
func Wait(frm *rod.Page, millisecond time.Duration) {
|
||||||
func Wait(frm *rod.Page, millisecond time.Duration) {
|
wait := frm.WaitRequestIdle(millisecond*time.Millisecond, nil, nil, nil)
|
||||||
wait := frm.WaitRequestIdle(millisecond*time.Millisecond, nil, nil, nil)
|
wait()
|
||||||
wait()
|
|
||||||
|
}
|
||||||
}
|
func CloseBrowser(browser *rod.Browser) {
|
||||||
func CloseBrowser(browser *rod.Browser) {
|
browser.Close()
|
||||||
browser.Close()
|
}
|
||||||
}
|
func (l *Luca) GetPageByUrl(url string) (*rod.Page, error) {
|
||||||
func (l *Luca) GetPageByUrl(url string) (*rod.Page, error) {
|
allPages, err := l.Page.Browser().Pages()
|
||||||
allPages, err := l.Page.Browser().Pages()
|
if err != nil {
|
||||||
if err != nil {
|
return nil, err
|
||||||
return nil, err
|
}
|
||||||
}
|
|
||||||
|
return allPages.FindByURL("https://auygs.luca.com.tr/Luca/luca.do")
|
||||||
return allPages.FindByURL("https://auygs.luca.com.tr/Luca/luca.do")
|
}
|
||||||
}
|
func (l *Luca) GetFrame(page *rod.Page, selector string) (*rod.Page, error) {
|
||||||
func (l *Luca) GetFrame(page *rod.Page, selector string) (*rod.Page, error) {
|
err := page.WaitLoad()
|
||||||
err := page.WaitLoad()
|
if err != nil {
|
||||||
if err != nil {
|
return nil, err
|
||||||
return nil, err
|
}
|
||||||
}
|
frm, err := page.Element(selector)
|
||||||
frm, err := page.Element(selector)
|
if err != nil {
|
||||||
if err != nil {
|
return nil, err
|
||||||
return nil, err
|
}
|
||||||
}
|
frame, err := frm.Frame()
|
||||||
frame, err := frm.Frame()
|
return frame, nil
|
||||||
return frame, nil
|
}
|
||||||
}
|
|
||||||
|
// func (elemSelector *Select) MultipleEvalute(changeValue []string) error {
|
||||||
func WaitDomElement(page *rod.Page, selector string, duration time.Duration) error {
|
// for i := 0; i < len(changeValue); i++ {
|
||||||
if page == nil {
|
// _, err := elemSelector.Element.Evaluate(rod.Eval(changeValue[i]))
|
||||||
return errors.New("page is nil sellector : " + selector)
|
// if err != nil {
|
||||||
}
|
// return err
|
||||||
//todo: [hd] : timeout taki 10 integer değerini const olarak al ve bunu bastır
|
// }
|
||||||
element, err := page.Timeout(duration * time.Second).Element(selector)
|
// }
|
||||||
if err != nil {
|
// return nil
|
||||||
return err
|
|
||||||
}
|
// }
|
||||||
err = element.WaitLoad()
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
func ReceiveDOMMessagesElements(page *rod.Page, selector string, searchValue string, duration time.Duration) (rod.Elements, error) {
|
|
||||||
//todo
|
|
||||||
// Tek bir öğe alınması, hata durumunu kontrol etmek için
|
|
||||||
elemd, err := page.Timeout(duration * time.Second).Elements(selector)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
// Eğer elem boş ise, yani nil ise, hata döndür
|
|
||||||
if len(elemd) == 0 {
|
|
||||||
err := fmt.Errorf("Sellector Bulunamadı: %v", selector)
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return elemd, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// func (elemSelector *Select) MultipleEvalute(changeValue []string) error {
|
|
||||||
// for i := 0; i < len(changeValue); i++ {
|
|
||||||
// _, err := elemSelector.Element.Evaluate(rod.Eval(changeValue[i]))
|
|
||||||
// if err != nil {
|
|
||||||
// return err
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// return nil
|
|
||||||
|
|
||||||
// }
|
|
||||||
|
|||||||
@@ -12,9 +12,9 @@ type Company struct {
|
|||||||
Password string `db:"password"`
|
Password string `db:"password"`
|
||||||
}
|
}
|
||||||
type CompanyInfo struct {
|
type CompanyInfo struct {
|
||||||
Company Company
|
company Company
|
||||||
Month float64
|
month float64
|
||||||
Year float64
|
year float64
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Company) Create() error {
|
func (c *Company) Create() error {
|
||||||
|
|||||||
@@ -1,27 +1,27 @@
|
|||||||
package company
|
package company
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bordrobot/lib/run"
|
"bordrobot/lib/run"
|
||||||
"testing"
|
"testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestCompany_Create(t *testing.T) {
|
func TestCompany_Create(t *testing.T) {
|
||||||
err := run.InitDB("../..")
|
err := run.InitDB("../..")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
c := &Company{
|
c := &Company{
|
||||||
Name: "Deneme Firması",
|
Name: "Deneme Firması",
|
||||||
MemberNumber: "1234",
|
MemberNumber: "1234",
|
||||||
Username: "u1",
|
Username: "u1",
|
||||||
Password: "p1",
|
Password: "p1",
|
||||||
}
|
}
|
||||||
|
|
||||||
err = c.Create()
|
err = c.Create()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
run.DB.Close()
|
run.DB.Close()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,30 +1,30 @@
|
|||||||
package helper
|
package helper
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
)
|
)
|
||||||
|
|
||||||
type errorInfo struct {
|
type errorInfo struct {
|
||||||
Error string
|
Error string
|
||||||
Index int
|
Index int
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *errorInfo) ErrorHandle() {
|
func (e *errorInfo) ErrorHandle() {
|
||||||
//apiden veya txt ye yaz
|
//apiden veya txt ye yaz
|
||||||
}
|
}
|
||||||
func CreateFolder(folderName string) error {
|
func CreateFolder(folderName string) error {
|
||||||
|
|
||||||
if _, err := os.Stat(folderName); os.IsNotExist(err) {
|
if _, err := os.Stat(folderName); os.IsNotExist(err) {
|
||||||
// Klasör yoksa oluştur
|
// Klasör yoksa oluştur
|
||||||
err := os.Mkdir(folderName, 0755)
|
err := os.Mkdir(folderName, 0755)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println("Klasör oluşturulamadı:", err)
|
fmt.Println("Klasör oluşturulamadı:", err)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
fmt.Println("Klasör oluşturuldu:", folderName)
|
fmt.Println("Klasör oluşturuldu:", folderName)
|
||||||
} else {
|
} else {
|
||||||
fmt.Println("Klasör zaten var:", folderName)
|
fmt.Println("Klasör zaten var:", folderName)
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
BIN
app/lib/ocr.rar
@@ -1,65 +0,0 @@
|
|||||||
package ocr
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
"errors"
|
|
||||||
|
|
||||||
"github.com/carlmjohnson/requests"
|
|
||||||
)
|
|
||||||
|
|
||||||
func DecodeGeminiCaptcha(ctx context.Context, image []byte, typ string) (string, error) {
|
|
||||||
var captchaResult string
|
|
||||||
var errBody string
|
|
||||||
|
|
||||||
url := "https://notvis.notitek.com.tr" + "/api/captcha/gemini"
|
|
||||||
|
|
||||||
err := requests.
|
|
||||||
URL(url).
|
|
||||||
Header("X-Api-Key", "3c43c4eb-4b5d-4636-8dd5-3d573a7a0a27").
|
|
||||||
//Header("Content-Type", "application/json").
|
|
||||||
//Header("Authorization", "Bearer "+l.sessionID).
|
|
||||||
BodyBytes(image).
|
|
||||||
ToString(&captchaResult).
|
|
||||||
Method("POST").
|
|
||||||
AddValidator(
|
|
||||||
requests.ValidatorHandler(
|
|
||||||
requests.DefaultValidator,
|
|
||||||
requests.ToString(&errBody),
|
|
||||||
)).
|
|
||||||
Fetch(ctx)
|
|
||||||
|
|
||||||
if err != nil {
|
|
||||||
if errors.Is(err, requests.ErrInvalidHandled) {
|
|
||||||
err = errors.New(errBody)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return captchaResult, err
|
|
||||||
}
|
|
||||||
|
|
||||||
func DecodeTwoCaptcha(ctx context.Context, image []byte, typ string) (string, error) {
|
|
||||||
var captchaResult string
|
|
||||||
var errBody string
|
|
||||||
|
|
||||||
url := "https://notvis.notitek.com.tr" + "/api/captcha/twoCaptcha"
|
|
||||||
|
|
||||||
err := requests.
|
|
||||||
URL(url).
|
|
||||||
Header("X-Api-Key", "3c43c4eb-4b5d-4636-8dd5-3d573a7a0a27").
|
|
||||||
BodyBytes(image).
|
|
||||||
ToString(&captchaResult).
|
|
||||||
Method("POST").
|
|
||||||
AddValidator(
|
|
||||||
requests.ValidatorHandler(
|
|
||||||
requests.DefaultValidator,
|
|
||||||
requests.ToString(&errBody),
|
|
||||||
)).
|
|
||||||
Fetch(ctx)
|
|
||||||
|
|
||||||
if err != nil {
|
|
||||||
if errors.Is(err, requests.ErrInvalidHandled) {
|
|
||||||
err = errors.New(errBody)
|
|
||||||
}
|
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
return captchaResult, err
|
|
||||||
}
|
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"type": "service_account",
|
"type": "service_account",
|
||||||
"project_id": "readpdf-247814",
|
"project_id": "readpdf-247814",
|
||||||
"private_key_id": "75de5191c0835028caf9413f8023f26e353064f8",
|
"private_key_id": "75de5191c0835028caf9413f8023f26e353064f8",
|
||||||
"private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDJ0D23gU4luBgN\nRUmhL9h1qaBqNcv5KGPYUjDcdCGTixea8nOkOxZwYLmKU3VpEmizAAxe2zVrTH0J\nalJwW+u6UUKrgIDbV68/IzYKKKQ7HwrpVnjh0T8kSFTCsfoCcTAmhlFLvHtQBUdU\nxl1E5X+Ckp3K2LOZwi5lrlK3VttSuzFTWmQ2ZMjeEdxwPjsyTsM8XWQ+SQUoPYFj\nuLcqHFf8caZFPWXrxXluTOcJOl/N5OAvObrftUz2stNnwhuPI7648umzdeAuMWGW\nrRd0ZTPDtH0xx56nvSoghNREw9imNVKIlUPwSwCBZ5iNH6fiTO5IdeDG9qWf/STJ\nwVvaDj1xAgMBAAECggEAAdCVktOJgwf8xLcddQ2bwghxy4K1qtqUy0Ux8J7lY7uZ\nzWg7Z1FWClH/A8zBqYg42M3ko+sPYpT1gDgsivDIqzbqhTr1QwOu17/WpJC+U/8b\nd1hdDerLyTpn82LrqfSf8ji9p74Hfdi4+NIv1IbGdsN1bSA1vT7kcUBNY3NXKuSa\nm5ceq6cSzuPH8qxjgkMIxxARCQtNVksMk8lIBoXNk4xxBgGnOwgHWEK9bGarPXZO\n8Z9ruWHCAJL1fiXjyJbVhdz4q8euVdR10KpF+u0/lHx2JMlLBPuIDlC8sxpwX+/V\nSw5wFziGETJiiRgkKxEqKIt/WvjHxDHWkaNZPcXkgQKBgQD0rJvKn4/oS/4kECFo\nAPFZs7uHiMDuTKh9P4aE7Pu1b3sEXAfsjMk3N5j1eV8ACFLzOfCjAStue1MFj81S\nz4dl9NBRNUdE+uTORmiX/Ch2t6bSlKNi8CdkHHKAs6kVk2Wr2XBD0fYKEmGkuh++\nMenBPZuOBjSULy4v1wumW/2UTQKBgQDTJ7tNFzt7hMoW3/djasIHUdJ4m1JZWa1A\n4fDUfvCFARUUr0k1TxcHAtQ5wQwue+uF5J7OixI+xavwHSXBTPQLbn2V2Ypbaa/F\nNr63IR2IKrtwJzt8LTXBvREESajjolvb31Vxf14/0nJgW67bjaLu5/Yq3/mjjRIZ\nqg7PpdNvtQKBgQCD8PTOLn9/CEPTFLO/DwsXkVmmO/O2TbZqXDBhTB5sd+KBtlM7\nl6wGT7/3V+0H6nU43lzKuh2+pVhe3m4dovXj4EHaGP4Gz7lFFyjeFMeJRX37ftYg\ny1qinMiOaNPcY7DnHAlzOS0Rv1nSZ+AoQ2hHob5ZtzTxWAPzHmcU3fR/3QKBgQC8\nJOvcffXvUlurVDafa/GlCgAKnQMcQC6C4I9xGAaBzHwXKTSG/ojbI2csatnK1Xn/\nnLzv9rT0H7fbRG1utn3BbdsS2XpRh3Mpu2Tl0ej5enH3Nc3oEHSUwz1VX7jP08wb\ntvzwG3hET+S//RFp6eMjEqaif111oG5fVcrKtMwX/QKBgCCTlt3lBaZPuUInLEIK\nNRqR7iZnepJsDUMYJj/T/zg+JL0novWViVEQaFB88soNGXjV6WRmytlUDi3PpNe/\nswfxQICn+ylZtYD8VoHL1+l9kDBVUQlKmZuMgh8YKEWKHoAok5gZYedB4Gtte1XQ\n+ase2cuWUegX3FAlcMf3GBqE\n-----END PRIVATE KEY-----\n",
|
"private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDJ0D23gU4luBgN\nRUmhL9h1qaBqNcv5KGPYUjDcdCGTixea8nOkOxZwYLmKU3VpEmizAAxe2zVrTH0J\nalJwW+u6UUKrgIDbV68/IzYKKKQ7HwrpVnjh0T8kSFTCsfoCcTAmhlFLvHtQBUdU\nxl1E5X+Ckp3K2LOZwi5lrlK3VttSuzFTWmQ2ZMjeEdxwPjsyTsM8XWQ+SQUoPYFj\nuLcqHFf8caZFPWXrxXluTOcJOl/N5OAvObrftUz2stNnwhuPI7648umzdeAuMWGW\nrRd0ZTPDtH0xx56nvSoghNREw9imNVKIlUPwSwCBZ5iNH6fiTO5IdeDG9qWf/STJ\nwVvaDj1xAgMBAAECggEAAdCVktOJgwf8xLcddQ2bwghxy4K1qtqUy0Ux8J7lY7uZ\nzWg7Z1FWClH/A8zBqYg42M3ko+sPYpT1gDgsivDIqzbqhTr1QwOu17/WpJC+U/8b\nd1hdDerLyTpn82LrqfSf8ji9p74Hfdi4+NIv1IbGdsN1bSA1vT7kcUBNY3NXKuSa\nm5ceq6cSzuPH8qxjgkMIxxARCQtNVksMk8lIBoXNk4xxBgGnOwgHWEK9bGarPXZO\n8Z9ruWHCAJL1fiXjyJbVhdz4q8euVdR10KpF+u0/lHx2JMlLBPuIDlC8sxpwX+/V\nSw5wFziGETJiiRgkKxEqKIt/WvjHxDHWkaNZPcXkgQKBgQD0rJvKn4/oS/4kECFo\nAPFZs7uHiMDuTKh9P4aE7Pu1b3sEXAfsjMk3N5j1eV8ACFLzOfCjAStue1MFj81S\nz4dl9NBRNUdE+uTORmiX/Ch2t6bSlKNi8CdkHHKAs6kVk2Wr2XBD0fYKEmGkuh++\nMenBPZuOBjSULy4v1wumW/2UTQKBgQDTJ7tNFzt7hMoW3/djasIHUdJ4m1JZWa1A\n4fDUfvCFARUUr0k1TxcHAtQ5wQwue+uF5J7OixI+xavwHSXBTPQLbn2V2Ypbaa/F\nNr63IR2IKrtwJzt8LTXBvREESajjolvb31Vxf14/0nJgW67bjaLu5/Yq3/mjjRIZ\nqg7PpdNvtQKBgQCD8PTOLn9/CEPTFLO/DwsXkVmmO/O2TbZqXDBhTB5sd+KBtlM7\nl6wGT7/3V+0H6nU43lzKuh2+pVhe3m4dovXj4EHaGP4Gz7lFFyjeFMeJRX37ftYg\ny1qinMiOaNPcY7DnHAlzOS0Rv1nSZ+AoQ2hHob5ZtzTxWAPzHmcU3fR/3QKBgQC8\nJOvcffXvUlurVDafa/GlCgAKnQMcQC6C4I9xGAaBzHwXKTSG/ojbI2csatnK1Xn/\nnLzv9rT0H7fbRG1utn3BbdsS2XpRh3Mpu2Tl0ej5enH3Nc3oEHSUwz1VX7jP08wb\ntvzwG3hET+S//RFp6eMjEqaif111oG5fVcrKtMwX/QKBgCCTlt3lBaZPuUInLEIK\nNRqR7iZnepJsDUMYJj/T/zg+JL0novWViVEQaFB88soNGXjV6WRmytlUDi3PpNe/\nswfxQICn+ylZtYD8VoHL1+l9kDBVUQlKmZuMgh8YKEWKHoAok5gZYedB4Gtte1XQ\n+ase2cuWUegX3FAlcMf3GBqE\n-----END PRIVATE KEY-----\n",
|
||||||
"client_email": "my-vision-sa@readpdf-247814.iam.gserviceaccount.com",
|
"client_email": "my-vision-sa@readpdf-247814.iam.gserviceaccount.com",
|
||||||
"client_id": "101714157123021750580",
|
"client_id": "101714157123021750580",
|
||||||
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
|
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
|
||||||
"token_uri": "https://oauth2.googleapis.com/token",
|
"token_uri": "https://oauth2.googleapis.com/token",
|
||||||
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
|
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
|
||||||
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/my-vision-sa%40readpdf-247814.iam.gserviceaccount.com"
|
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/my-vision-sa%40readpdf-247814.iam.gserviceaccount.com"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
package run
|
package run
|
||||||
|
|
||||||
import "github.com/wailsapp/wails/v3/pkg/application"
|
import "github.com/wailsapp/wails/v3/pkg/application"
|
||||||
|
|
||||||
var APP *application.App
|
var APP *application.App
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/shopspring/decimal"
|
"github.com/shopspring/decimal"
|
||||||
|
"github.com/wailsapp/wails/v3/pkg/application"
|
||||||
"github.com/xuri/excelize/v2"
|
"github.com/xuri/excelize/v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -19,11 +20,6 @@ type Srv struct {
|
|||||||
func (s *Srv) Companies() ([]company.Company, error) {
|
func (s *Srv) Companies() ([]company.Company, error) {
|
||||||
var res []company.Company
|
var res []company.Company
|
||||||
err := run.DB.Select(&res, "SELECT * FROM company order by 1")
|
err := run.DB.Select(&res, "SELECT * FROM company order by 1")
|
||||||
if err != nil {
|
|
||||||
slog.Error("Companies SELECT error", "error", err)
|
|
||||||
} else {
|
|
||||||
slog.Info("Companies SELECT success", "count", len(res), "data", res)
|
|
||||||
}
|
|
||||||
return res, err
|
return res, err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -35,13 +31,7 @@ func (s *Srv) CreateCompany(name, memberNumber, username, password string) error
|
|||||||
Password: password,
|
Password: password,
|
||||||
}
|
}
|
||||||
|
|
||||||
err := c.Create()
|
return c.Create()
|
||||||
if err != nil {
|
|
||||||
slog.Error("CreateCompany INSERT error", "error", err)
|
|
||||||
} else {
|
|
||||||
slog.Info("CreateCompany INSERT success", "name", name)
|
|
||||||
}
|
|
||||||
return err
|
|
||||||
}
|
}
|
||||||
func (s *Srv) EditCompany(id float64, name, memberNumber, username, password string) error {
|
func (s *Srv) EditCompany(id float64, name, memberNumber, username, password string) error {
|
||||||
c := &company.Company{
|
c := &company.Company{
|
||||||
@@ -56,12 +46,8 @@ func (s *Srv) EditCompany(id float64, name, memberNumber, username, password str
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *Srv) UploadExcel() string {
|
func (s *Srv) UploadExcel() string {
|
||||||
dialog := run.APP.Dialog.OpenFile()
|
dialog := application.OpenFileDialog()
|
||||||
// dialog.AddFilter("Excel Dosyaları", "*.xls;*.xlsx;*.ods")
|
dialog.AddFilter("Excel Dosyaları", "*.xls;*.xlsx")
|
||||||
dialog.AddFilter("Excel 97-2003", "*.xls")
|
|
||||||
dialog.AddFilter("Excel 2007+", "*.xlsx")
|
|
||||||
dialog.AddFilter("LibreOffice Calc", "*.ods")
|
|
||||||
|
|
||||||
dialog.SetTitle("Bordro Excel Dosyası Yükleme")
|
dialog.SetTitle("Bordro Excel Dosyası Yükleme")
|
||||||
file, err := dialog.PromptForSingleSelection()
|
file, err := dialog.PromptForSingleSelection()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -281,5 +267,8 @@ func (s *Srv) Rpa(companyID float64, month float64, year float64, devMode bool)
|
|||||||
}
|
}
|
||||||
|
|
||||||
func emitLog(logMessage string) {
|
func emitLog(logMessage string) {
|
||||||
run.APP.Event.Emit("logProcess", logMessage)
|
run.APP.Events.Emit(&application.WailsEvent{
|
||||||
|
Name: "logProcess",
|
||||||
|
Data: logMessage,
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
type LoginUser struct {
|
type LoginUser struct {
|
||||||
UserName string
|
UserName string
|
||||||
password string
|
password string
|
||||||
Token string
|
Token string
|
||||||
LoggedIn bool
|
LoggedIn bool
|
||||||
}
|
}
|
||||||
type LoginService struct{}
|
type LoginService struct{}
|
||||||
|
|
||||||
func (g *LoginService) Login(userName string, password string) LoginUser {
|
func (g *LoginService) Login(userName string, password string) LoginUser {
|
||||||
return LoginUser{password: password, UserName: userName, Token: "test", LoggedIn: true}
|
return LoginUser{password: password, UserName: userName, Token: "test", LoggedIn: true}
|
||||||
}
|
}
|
||||||
|
|||||||
13
app/main.go
@@ -6,7 +6,6 @@ import (
|
|||||||
"bordrobot/lib/srv"
|
"bordrobot/lib/srv"
|
||||||
"embed"
|
"embed"
|
||||||
"log"
|
"log"
|
||||||
"log/slog"
|
|
||||||
|
|
||||||
"github.com/wailsapp/wails/v3/pkg/application"
|
"github.com/wailsapp/wails/v3/pkg/application"
|
||||||
)
|
)
|
||||||
@@ -29,7 +28,6 @@ func main() {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
log.Println("Uygulama baslatildi ve veritabanı hazırlandı.")
|
|
||||||
|
|
||||||
// Create a new Wails application by providing the necessary options.
|
// Create a new Wails application by providing the necessary options.
|
||||||
// Variables 'Name' and 'Description' are for application metadata.
|
// Variables 'Name' and 'Description' are for application metadata.
|
||||||
@@ -39,13 +37,10 @@ func main() {
|
|||||||
run.APP = application.New(application.Options{
|
run.APP = application.New(application.Options{
|
||||||
Name: "bordro-robotu",
|
Name: "bordro-robotu",
|
||||||
Description: "A demo of using raw HTML & CSS",
|
Description: "A demo of using raw HTML & CSS",
|
||||||
LogLevel: slog.LevelDebug,
|
Bind: []any{
|
||||||
|
&company.Company{},
|
||||||
Services: []application.Service{
|
&srv.Srv{},
|
||||||
application.NewService(&company.Company{}),
|
|
||||||
application.NewService(&srv.Srv{}),
|
|
||||||
},
|
},
|
||||||
|
|
||||||
Assets: application.AssetOptions{
|
Assets: application.AssetOptions{
|
||||||
Handler: application.AssetFileServerFS(assets),
|
Handler: application.AssetFileServerFS(assets),
|
||||||
},
|
},
|
||||||
@@ -59,7 +54,7 @@ func main() {
|
|||||||
// 'Mac' options tailor the window when running on macOS.
|
// 'Mac' options tailor the window when running on macOS.
|
||||||
// 'BackgroundColour' is the background colour of the window.
|
// 'BackgroundColour' is the background colour of the window.
|
||||||
// 'URL' is the URL that will be loaded into the webview.
|
// 'URL' is the URL that will be loaded into the webview.
|
||||||
run.APP.Window.NewWithOptions(application.WebviewWindowOptions{
|
run.APP.NewWebviewWindowWithOptions(application.WebviewWindowOptions{
|
||||||
Title: "Luca Bordro Robotu",
|
Title: "Luca Bordro Robotu",
|
||||||
Mac: application.MacWindow{
|
Mac: application.MacWindow{
|
||||||
InvisibleTitleBarHeight: 50,
|
InvisibleTitleBarHeight: 50,
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 12 KiB |
@@ -1,8 +1,8 @@
|
|||||||
{
|
{
|
||||||
"name": "Vue + Vite",
|
"name": "Vue + Vite",
|
||||||
"shortname": "vue",
|
"shortname": "vue",
|
||||||
"author": "Lea Anthony",
|
"author": "Lea Anthony",
|
||||||
"description": "Vue + Vite development server",
|
"description": "Vue + Vite development server",
|
||||||
"helpurl": "https://wails.io",
|
"helpurl": "https://wails.io",
|
||||||
"version": 3
|
"version": 3
|
||||||
}
|
}
|
||||||