13 Commits
dev ... temp

Author SHA1 Message Date
7c3f20b709 update wails version 2026-06-17 17:15:14 +03:00
Hüseyin
d4545fb4d7 up 2026-06-16 11:14:42 +03:00
Hüseyin
bd08898bf1 merge 2026-06-16 09:07:10 +03:00
hysn99
2dfda9d553 refresh company list after create company 2024-03-26 13:44:30 +03:00
hysn99
b3901e28f7 fix uppercase problem 2024-03-26 13:40:15 +03:00
ctengiz
3fb10cf000 refactor rpa func signature 2024-03-26 11:17:45 +03:00
ctengiz
f2939d6c4d ready for rpa 2024-03-26 10:55:22 +03:00
ctengiz
465aae3710 main layout clean-up 2024-03-25 23:12:10 +03:00
ctengiz
888d0800bb compnay select 2024-03-25 23:09:30 +03:00
ctengiz
18ff9ddbfd quasar integration 2024-03-25 16:24:06 +03:00
ctengiz
63f856da34 clean-up 2024-03-25 15:20:22 +03:00
ctengiz
ea8fba58b7 gitignore, clean-up 2024-03-25 11:30:51 +03:00
ctengiz
1f62906e95 refactor, go work 2024-03-25 11:30:06 +03:00
127 changed files with 15724 additions and 3261 deletions

28
.gitignore vendored Normal file
View File

@@ -0,0 +1,28 @@
### Go template
# If you prefer the allow list template instead of the deny list, see community template:
# https://github.com/github/gitignore/blob/main/community/Golang/Go.AllowList.gitignore
#
# Binaries for programs and plugins
*.exe
*.exe~
*.dll
*.so
*.dylib
# Test binary, built with `go test -c`
*.test
# Output of the go coverage tool, specifically when used with LiteIDE
*.out
# Dependency directories (remove the comment below to include it)
# vendor/
# Go workspace file
go.work
go.work.sum
bin/
/app/wails.syso
/app/.task/
/tmp

10
.idea/.gitignore generated vendored Normal file
View File

@@ -0,0 +1,10 @@
# 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 Normal file
View File

@@ -0,0 +1,9 @@
<?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 Normal file
View File

@@ -0,0 +1,10 @@
<?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>

View File

@@ -0,0 +1,6 @@
<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 Normal file
View File

@@ -0,0 +1,8 @@
<?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 Normal file
View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

17
.vscode/launch.json vendored Normal file
View File

@@ -0,0 +1,17 @@
{
// 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 Normal file

Binary file not shown.

View File

@@ -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 Normal file
View File

@@ -0,0 +1,34 @@
.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*

View File

@@ -1 +0,0 @@
a3a24372c19044672ce31cbd893c4fdb

View File

@@ -1 +0,0 @@
2df1ef583b0bce177684c95cf1553ed8

View File

@@ -1 +0,0 @@
4a80ea531d1fa408513bc047b4b31ca6

View File

@@ -1 +0,0 @@
36d2a08f044f5811ddd2d0dfa1921114

View File

@@ -1,19 +0,0 @@
package main
import "github.com/wailsapp/wails/v3/pkg/application"
type BotService struct{}
var excelFilePath string
func (g *BotService) ClaimFile() string {
dialog := application.OpenFileDialog()
dialog.SetTitle("Lütfen yüklenecek Excel dosyanızı seçiniz")
file, err := dialog.PromptForSingleSelection()
if err != nil {
return ""
}
excelFilePath = file
return file
}

View File

@@ -1,93 +0,0 @@
Copyright 2020 The Inter Project Authors (https://github.com/rsms/inter)
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL
-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.
"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are
not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.

View File

@@ -1,15 +0,0 @@
{
"fixed": {
"file_version": "0.1.0"
},
"info": {
"0000": {
"ProductVersion": "0.1.0",
"CompanyName": "My Company",
"FileDescription": "My Product Description",
"LegalCopyright": "© now, My Company",
"ProductName": "My Product",
"Comments": "This is a comment"
}
}
}

View File

@@ -1,24 +0,0 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*
node_modules
dist
dist-ssr
*.local
# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?

View File

@@ -1,13 +0,0 @@
// @ts-check
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
import {Call} from '@wailsio/runtime';
/**
* @function ClaimFile
* @returns {Promise<string>}
**/
export async function ClaimFile() {
return Call.ByName("main.BotService.ClaimFile", ...Array.prototype.slice.call(arguments, 0));
}

View File

@@ -1,18 +0,0 @@
// @ts-check
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
import {Call} from '@wailsio/runtime';
/**
* @typedef {import('./models').LoginUser} LoginUser
*/
/**
* @function Login
* @param userName {string}
* @param password {string}
* @returns {Promise<LoginUser>}
**/
export async function Login(userName, password) {
return Call.ByName("main.LoginService.Login", ...Array.prototype.slice.call(arguments, 0));
}

View File

@@ -1,33 +0,0 @@
// @ts-check
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
export const LoginUser = class {
/**
* Creates a new LoginUser instance.
* @constructor
* @param {Object} source - The source object to create the LoginUser.
* @param {string} source.UserName
* @param {string} source.password
* @param {string} source.Token
* @param {boolean} source.LoggedIn
*/
constructor(source = {}) {
const { userName = "", password = "", token = "", loggedIn = false } = source;
this.userName = userName;
this.password = password;
this.token = token;
this.loggedIn = loggedIn;
}
/**
* Creates a new LoginUser instance from a string or object.
* @param {string|object} source - The source data to create a LoginUser instance from.
* @returns {LoginUser} A new LoginUser instance.
*/
static createFrom(source) {
let parsedSource = typeof source === 'string' ? JSON.parse(source) : source;
return new LoginUser(parsedSource);
}
};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,14 +1,15 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/wails.png" /> <link rel="icon" type="image/svg+xml" href="/wails.png" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<!-- <link rel="stylesheet" href="/style.css" /> --> <!-- <link rel="stylesheet" href="/style.css" /> -->
<title>Wails + Vue</title> <title>Wails + Vue</title>
</head> <script type="module" crossorigin src="/assets/index-CvjddRoH.js"></script>
<body> <link rel="stylesheet" crossorigin href="/assets/index-QSDk4erA.css">
<div id="app"></div> </head>
<script type="module" src="/src/main.js"></script> <body>
</body> <div id="app"></div>
</html> </body>
</html>

View File

Before

Width:  |  Height:  |  Size: 995 B

After

Width:  |  Height:  |  Size: 995 B

View File

@@ -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);
} }

View File

Before

Width:  |  Height:  |  Size: 496 B

After

Width:  |  Height:  |  Size: 496 B

View File

Before

Width:  |  Height:  |  Size: 8.8 KiB

After

Width:  |  Height:  |  Size: 8.8 KiB

View File

@@ -1,21 +0,0 @@
import {Greet} from "./bindings/main/BotService.js";
import {Events} from "@wailsio/runtime";
const resultElement = document.getElementById('result');
const timeElement = document.getElementById('time');
window.doGreet = () => {
let name = document.getElementById('name').value;
if (!name) {
name = 'anonymous';
}
Greet(name).then((result) => {
resultElement.innerText = result;
}).catch((err) => {
console.log(err);
});
}
Events.On('time', (time) => {
timeElement.innerText = time.data;
});

File diff suppressed because it is too large Load Diff

View File

@@ -1,22 +0,0 @@
{
"name": "frontend",
"private": true,
"version": "0.0.0",
"type": "module",
"scripts": {
"dev": "vite",
"build": "vite build",
"preview": "vite preview"
},
"dependencies": {
"bootstrap": "^5.3.3",
"bootstrap-icons-vue": "^1.11.3",
"vue": "^3.2.45",
"vue-router": "^4.3.0"
},
"devDependencies": {
"@vitejs/plugin-vue": "^4.0.0",
"@wailsio/runtime": "latest",
"vite": "^5.0.0"
}
}

View File

@@ -1,23 +0,0 @@
<script setup>
</script>
<template>
<div class="container">
<router-view></router-view>
<!-- <LoginPage msg="Wails + Vue" /> -->
</div>
</template>
<style scoped>
.logo {
height: 6em;
padding: 1.5em;
will-change: filter;
}
.logo:hover {
filter: drop-shadow(0 0 2em #e80000aa);
}
.logo.vue:hover {
filter: drop-shadow(0 0 2em #42b883aa);
}
</style>

View File

@@ -1,7 +0,0 @@
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
// https://vitejs.dev/config/
export default defineConfig({
plugins: [vue()],
})

View File

@@ -1,51 +0,0 @@
module changeme
go 1.22
toolchain go1.22.1
require github.com/wailsapp/wails/v3 v3.0.0-alpha.0
require (
dario.cat/mergo v1.0.0 // indirect
github.com/Microsoft/go-winio v0.6.1 // indirect
github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371 // indirect
github.com/bep/debounce v1.2.1 // indirect
github.com/cloudflare/circl v1.3.7 // indirect
github.com/cyphar/filepath-securejoin v0.2.4 // indirect
github.com/ebitengine/purego v0.4.0-alpha.4 // indirect
github.com/emirpasic/gods v1.18.1 // indirect
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect
github.com/go-git/go-billy/v5 v5.5.0 // indirect
github.com/go-git/go-git/v5 v5.11.0 // indirect
github.com/go-ole/go-ole v1.2.6 // indirect
github.com/godbus/dbus/v5 v5.1.0 // indirect
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
github.com/google/uuid v1.3.0 // indirect
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect
github.com/jchv/go-winloader v0.0.0-20210711035445-715c2860da7e // indirect
github.com/kevinburke/ssh_config v1.2.0 // indirect
github.com/leaanthony/go-ansi-parser v1.6.1 // indirect
github.com/leaanthony/u v1.1.0 // indirect
github.com/lmittmann/tint v1.0.3 // indirect
github.com/mattn/go-colorable v0.1.13 // indirect
github.com/mattn/go-isatty v0.0.19 // indirect
github.com/pjbgf/sha1cd v0.3.0 // indirect
github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 // indirect
github.com/rivo/uniseg v0.4.4 // indirect
github.com/samber/lo v1.38.1 // indirect
github.com/sergi/go-diff v1.2.0 // indirect
github.com/skeema/knownhosts v1.2.1 // indirect
github.com/wailsapp/go-webview2 v1.0.9 // indirect
github.com/wailsapp/mimetype v1.4.1 // indirect
github.com/xanzy/ssh-agent v0.3.3 // indirect
golang.org/x/crypto v0.21.0 // indirect
golang.org/x/exp v0.0.0-20230626212559-97b1e661b5df // indirect
golang.org/x/mod v0.12.0 // indirect
golang.org/x/net v0.21.0 // indirect
golang.org/x/sys v0.18.0 // indirect
golang.org/x/tools v0.13.0 // indirect
gopkg.in/warnings.v0 v0.1.2 // indirect
)
replace github.com/wailsapp/wails/v3 => ../../../../../wails/v3

View File

@@ -1,188 +0,0 @@
dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk=
dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk=
github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY=
github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow=
github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM=
github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371 h1:kkhsdkhsCvIsutKu5zLMgWtgh9YxGCNAw8Ad8hjwfYg=
github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0=
github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8=
github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be/go.mod h1:ySMOLuWl6zY27l47sB3qLNK6tF2fkHG55UZxx8oIVo4=
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio=
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
github.com/bep/debounce v1.2.1 h1:v67fRdBA9UQu2NhLFXrSg0Brw7CexQekrBwDMM8bzeY=
github.com/bep/debounce v1.2.1/go.mod h1:H8yggRPQKLUhUoqrJC1bO2xNya7vanpDl7xR3ISbCJ0=
github.com/bwesterb/go-ristretto v1.2.3/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0=
github.com/cloudflare/circl v1.3.3/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA=
github.com/cloudflare/circl v1.3.7 h1:qlCDlTPz2n9fu58M0Nh1J/JzcFpfgkFHHX3O35r5vcU=
github.com/cloudflare/circl v1.3.7/go.mod h1:sRTcRWXGLrKw6yIGJ+l7amYJFfAXbZG0kBSc8r4zxgA=
github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg=
github.com/cyphar/filepath-securejoin v0.2.4/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/ebitengine/purego v0.4.0-alpha.4 h1:Y7yIV06Yo5M2BAdD7EVPhfp6LZ0tEcQo5770OhYUVes=
github.com/ebitengine/purego v0.4.0-alpha.4/go.mod h1:ah1In8AOtksoNK6yk5z1HTJeUkC1Ez4Wk2idgGslMwQ=
github.com/elazarl/goproxy v0.0.0-20230808193330-2592e75ae04a h1:mATvB/9r/3gvcejNsXKSkQ6lcIaNec2nyfOdlTBR2lU=
github.com/elazarl/goproxy v0.0.0-20230808193330-2592e75ae04a/go.mod h1:Ro8st/ElPeALwNFlcTpWmkr6IoMFfkjXAvTHpevnDsM=
github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc=
github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ=
github.com/gliderlabs/ssh v0.3.5 h1:OcaySEmAQJgyYcArR+gGGTHCyE7nvhEMTlYY+Dp8CpY=
github.com/gliderlabs/ssh v0.3.5/go.mod h1:8XB4KraRrX39qHhT6yxPsHedjA08I/uBVwj4xC+/+z4=
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66DAb0lQFJrpS6731Oaa12ikc+DiI=
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod h1:an3vInlBmSxCcxctByoQdvwPiA7DTK7jaaFDBTtu0ic=
github.com/go-git/go-billy/v5 v5.5.0 h1:yEY4yhzCDuMGSv83oGxiBotRzhwhNr8VZyphhiu+mTU=
github.com/go-git/go-billy/v5 v5.5.0/go.mod h1:hmexnoNsr2SJU1Ju67OaNz5ASJY3+sHgFRpCtpDCKow=
github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399 h1:eMje31YglSBqCdIqdhKBW8lokaMrL3uTkpGYlE2OOT4=
github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399/go.mod h1:1OCfN199q1Jm3HZlxleg+Dw/mwps2Wbk9frAWm+4FII=
github.com/go-git/go-git/v5 v5.11.0 h1:XIZc1p+8YzypNr34itUfSvYJcv+eYdTnTvOZ2vD3cA4=
github.com/go-git/go-git/v5 v5.11.0/go.mod h1:6GFcX2P3NM7FPBfpePbpLd21XxsgdAt+lKqXmCUiUCY=
github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY=
github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0=
github.com/godbus/dbus/v5 v5.1.0 h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk=
github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
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/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/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A=
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo=
github.com/jchv/go-winloader v0.0.0-20210711035445-715c2860da7e h1:Q3+PugElBCf4PFpxhErSzU3/PY5sFL5Z6rfv4AbGAck=
github.com/jchv/go-winloader v0.0.0-20210711035445-715c2860da7e/go.mod h1:alcuEEnZsY1WQsagKhZDsoPCRoOijYqhZvPwLG0kzVs=
github.com/kevinburke/ssh_config v1.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4gf13a4=
github.com/kevinburke/ssh_config v1.2.0/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM=
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/leaanthony/go-ansi-parser v1.6.1 h1:xd8bzARK3dErqkPFtoF9F3/HgN8UQk0ed1YDKpEz01A=
github.com/leaanthony/go-ansi-parser v1.6.1/go.mod h1:+vva/2y4alzVmmIEpk9QDhA7vLC5zKDTRwfZGOp3IWU=
github.com/leaanthony/u v1.1.0 h1:2n0d2BwPVXSUq5yhe8lJPHdxevE2qK5G99PMStMZMaI=
github.com/leaanthony/u v1.1.0/go.mod h1:9+o6hejoRljvZ3BzdYlVL0JYCwtnAsVuN9pVTQcaRfI=
github.com/lmittmann/tint v1.0.3 h1:W5PHeA2D8bBJVvabNfQD/XW9HPLZK1XoPZH0cq8NouQ=
github.com/lmittmann/tint v1.0.3/go.mod h1:HIS3gSy7qNwGCj+5oRjAutErFBl4BzdQP6cJZ0NfMwE=
github.com/matryer/is v1.4.0 h1:sosSmIWwkYITGrxZ25ULNDeKiMNzFSr4V/eqBQP0PeE=
github.com/matryer/is v1.4.0/go.mod h1:8I/i5uYgLzgsgEloJE1U6xx5HkBQpAZvepWuujKwMRU=
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA=
github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
github.com/onsi/gomega v1.27.10 h1:naR28SdDFlqrG6kScpT8VWpu1xWY5nJRCF3XaYyBjhI=
github.com/onsi/gomega v1.27.10/go.mod h1:RsS8tutOdbdgzbPtzzATp12yT7kM5I5aElG3evPbQ0M=
github.com/pjbgf/sha1cd v0.3.0 h1:4D5XXmUUBUl/xQ6IjCkEAbqXskkq/4O7LmGn0AqMDs4=
github.com/pjbgf/sha1cd v0.3.0/go.mod h1:nZ1rrWOcGJ5uZgEEVL1VUM9iRQiZvWdbZjkKyFzPPsI=
github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 h1:KoWmjvw+nsYOo29YJK9vDA65RGE3NrOnUtO7a+RF9HU=
github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8/go.mod h1:HKlIX3XHQyzLZPlr7++PzdhaXEj94dEiJgZDTsxEqUI=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
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/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis=
github.com/rivo/uniseg v0.4.4/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M=
github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA=
github.com/samber/lo v1.38.1 h1:j2XEAqXKb09Am4ebOg31SpvzUTTs6EN3VfgeLUhPdXM=
github.com/samber/lo v1.38.1/go.mod h1:+m/ZKRl6ClXCE2Lgf3MsQlWfh4bn1bz6CXEOxnEXnEA=
github.com/sergi/go-diff v1.2.0 h1:XU+rvMAioB0UC3q1MFrIQy4Vo5/4VsRDQQXHsEya6xQ=
github.com/sergi/go-diff v1.2.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM=
github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
github.com/skeema/knownhosts v1.2.1 h1:SHWdIUa82uGZz+F+47k8SY4QhhI291cXCpopT1lK2AQ=
github.com/skeema/knownhosts v1.2.1/go.mod h1:xYbVRSPxqBZFrdmDyMmsOs+uX1UZC3nTN3ThzgDxUwo=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
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/wailsapp/go-webview2 v1.0.9 h1:lrU+q0cf1wgLdR69rN+ZnRtMJNaJRrcQ4ELxoO7/xjs=
github.com/wailsapp/go-webview2 v1.0.9/go.mod h1:Uk2BePfCRzttBBjFrBmqKGJd41P6QIHeV9kTgIeOZNo=
github.com/wailsapp/mimetype v1.4.1 h1:pQN9ycO7uo4vsUUuPeHEYoUkLVkaRntMnHJxVwYhwHs=
github.com/wailsapp/mimetype v1.4.1/go.mod h1:9aV5k31bBOv5z6u+QP8TltzvNGJPmNJD4XlAL3U+j3o=
github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM=
github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw=
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4=
golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU=
golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA=
golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs=
golang.org/x/exp v0.0.0-20230626212559-97b1e661b5df h1:UA2aFVmmsIlefxMk29Dp2juaUSth8Pyn3Tq5Y5mJGME=
golang.org/x/exp v0.0.0-20230626212559-97b1e661b5df/go.mod h1:FXUEEKJgO7OQYeo8N01OfiKP8RXMtf6e8aTskBGqWdc=
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc=
golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/net v0.0.0-20210505024714-0287a6fb4125/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY=
golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc=
golang.org/x/net v0.21.0 h1:AQyQV4dYCvJ7vGmJyKki9+PBdyvhkSd8EIx/qb0AYv4=
golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/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.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.4.0 h1:zxkM55ReGkDlKSM+Fu41A+zmbZuaPVbGMzvvdUPznYQ=
golang.org/x/sync v0.4.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200810151505-1b9f1253b3ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210616045830-e2b7044e8c71/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-20220715151400-c0bba94af5f8/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.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.5.0/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.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
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.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc=
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U=
golang.org/x/term v0.18.0 h1:FcHjZXDMxI8mM3nwhX9HlKop4C0YQvCVCdwYl2wOtE8=
golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.3/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.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ=
golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME=
gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI=
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

Binary file not shown.

BIN
app/bordro_robot.db Normal file

Binary file not shown.

View File

@@ -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>

View File

@@ -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>

View File

Before

Width:  |  Height:  |  Size: 130 KiB

After

Width:  |  Height:  |  Size: 130 KiB

View File

@@ -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"

View File

@@ -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.exe" cmd = "./bin/bordro-robotu"
primary = true primary = true

BIN
app/build/icon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 21 KiB

15
app/build/info.json Normal file
View File

@@ -0,0 +1,15 @@
{
"fixed": {
"file_version": "0.1.0"
},
"info": {
"0000": {
"ProductVersion": "0.1.0",
"CompanyName": "Notitek Yazılım A.Ş",
"FileDescription": "Bordro Robotu",
"LegalCopyright": "© now, Notitek Yazılım A.Ş",
"ProductName": "Bordro Robotu",
"Comments": "Luca Bordro Robotu"
}
}
}

View File

@@ -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

View File

@@ -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

View File

@@ -0,0 +1,9 @@
package runtime
import _ "embed"
//go:embed runtime.js
var RuntimeJS []byte
//go:embed runtime.debug.js
var RuntimeDebugJS []byte

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -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>

View File

@@ -0,0 +1,9 @@
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 2
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true

View File

@@ -0,0 +1,8 @@
/dist
/src-capacitor
/src-cordova
/.quasar
/node_modules
.eslintrc.cjs
/quasar.config.*.temporary.compiled*
/bindings

View File

@@ -0,0 +1,69 @@
module.exports = {
// https://eslint.org/docs/user-guide/configuring#configuration-cascading-and-hierarchy
// 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)
root: true,
parserOptions: {
ecmaVersion: 2021, // Allows for the parsing of modern ECMAScript features
},
env: {
node: true,
browser: true,
'vue/setup-compiler-macros': true
},
// Rules order is important, please avoid shuffling them
extends: [
// Base ESLint recommended rules
// 'eslint:recommended',
// Uncomment any of the lines below to choose desired strictness,
// but leave only one uncommented!
// See https://eslint.vuejs.org/rules/#available-rules
'plugin:vue/vue3-essential', // Priority A: Essential (Error Prevention)
// 'plugin:vue/vue3-strongly-recommended', // Priority B: Strongly Recommended (Improving Readability)
// 'plugin:vue/vue3-recommended', // Priority C: Recommended (Minimizing Arbitrary Choices and Cognitive Overhead)
// https://github.com/prettier/eslint-config-prettier#installation
// usage with Prettier, provided by 'eslint-config-prettier'.
'prettier'
],
plugins: [
// https://eslint.vuejs.org/user-guide/#why-doesn-t-it-work-on-vue-files
// required to lint *.vue files
'vue',
// https://github.com/typescript-eslint/typescript-eslint/issues/389#issuecomment-509292674
// Prettier has not been included as plugin to avoid performance impact
// add it as an extension for your IDE
],
globals: {
ga: 'readonly', // Google Analytics
cordova: 'readonly',
__statics: 'readonly',
__QUASAR_SSR__: 'readonly',
__QUASAR_SSR_SERVER__: 'readonly',
__QUASAR_SSR_CLIENT__: 'readonly',
__QUASAR_SSR_PWA__: 'readonly',
process: 'readonly',
Capacitor: 'readonly',
chrome: 'readonly'
},
// add your custom rules here
rules: {
'prefer-promise-reject-errors': 'off',
// allow debugger during development only
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
// custom rules
'vue/multi-word-component-names': 'off'
}
}

34
app/frontend/.gitignore vendored Normal file
View File

@@ -0,0 +1,34 @@
.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*

5
app/frontend/.npmrc Normal file
View File

@@ -0,0 +1,5 @@
# pnpm-related options
shamefully-hoist=true
strict-peer-dependencies=false
# to get the latest compatible packages when creating the project https://github.com/pnpm/pnpm/issues/6463
resolution-mode=highest

View File

@@ -1,3 +1,3 @@
{ {
"recommendations": ["Vue.volar", "Vue.vscode-typescript-vue-plugin"] "recommendations": ["Vue.volar", "Vue.vscode-typescript-vue-plugin"]
} }

41
app/frontend/README.md Normal file
View File

@@ -0,0 +1,41 @@
# Quasar App (frontend)
A Quasar Project
## Install the dependencies
```bash
yarn
# or
npm install
```
### Start the app in development mode (hot-code reloading, error reporting, etc.)
```bash
quasar dev
```
### Lint the files
```bash
yarn lint
# or
npm run lint
```
### Format the files
```bash
yarn format
# or
npm run format
```
### Build the app for production
```bash
quasar build
```
### Customize the configuration
See [Configuring quasar.config.js](https://v2.quasar.dev/quasar-cli-vite/quasar-config-js).

View File

@@ -0,0 +1,21 @@
// @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);
}

View File

@@ -0,0 +1,12 @@
// @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";

View File

@@ -0,0 +1,63 @@
// @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));
}
}

View File

@@ -0,0 +1,8 @@
// @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
};

View File

@@ -0,0 +1,65 @@
// @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);

View File

@@ -0,0 +1,9 @@
//@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);

View File

@@ -0,0 +1,2 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT

21
app/frontend/index.html Normal file
View File

@@ -0,0 +1,21 @@
<!DOCTYPE html>
<html>
<head>
<title><%= productName %></title>
<meta charset="utf-8">
<meta name="description" content="<%= productDescription %>">
<meta name="format-detection" content="telephone=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<% } %>">
<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="32x32" href="icons/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="icons/favicon-16x16.png">
<link rel="icon" type="image/ico" href="favicon.ico">
</head>
<body>
<!-- quasar:entry-point -->
</body>
</html>

View File

@@ -0,0 +1,39 @@
{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"src/*": [
"src/*"
],
"app/*": [
"*"
],
"components/*": [
"src/components/*"
],
"layouts/*": [
"src/layouts/*"
],
"pages/*": [
"src/pages/*"
],
"assets/*": [
"src/assets/*"
],
"boot/*": [
"src/boot/*"
],
"stores/*": [
"src/stores/*"
],
"vue$": [
"node_modules/vue/dist/vue.runtime.esm-bundler.js"
]
}
},
"exclude": [
"dist",
".quasar",
"node_modules"
]
}

5995
app/frontend/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

36
app/frontend/package.json Normal file
View File

@@ -0,0 +1,36 @@
{
"name": "frontend",
"version": "0.0.1",
"description": "A Quasar Project",
"productName": "Quasar App",
"author": "ctengiz <cagatay.tengiz@gmail.com>",
"private": true,
"scripts": {
"lint": "eslint --ext .js,.vue ./",
"format": "prettier --write \"**/*.{js,vue,scss,html,md,json}\" --ignore-path .gitignore",
"test": "echo \"No test specified\" && exit 0",
"dev": "quasar dev",
"build": "quasar build"
},
"dependencies": {
"@quasar/extras": "^1.16.4",
"quasar": "^2.8.0",
"vue": "^3.4.18",
"vue-router": "^4.0.12"
},
"devDependencies": {
"@quasar/app-vite": "^1.4.3",
"@wailsio/runtime": "^3.0.0-alpha.79",
"autoprefixer": "^10.4.2",
"eslint": "^8.11.0",
"eslint-config-prettier": "^8.1.0",
"eslint-plugin-vue": "^9.0.0",
"postcss": "^8.4.14",
"prettier": "^2.5.1"
},
"engines": {
"node": "^20 || ^18 || ^16",
"npm": ">= 6.13.4",
"yarn": ">= 1.21.1"
}
}

View File

@@ -0,0 +1,27 @@
/* eslint-disable */
// https://github.com/michael-ciniawsky/postcss-load-config
module.exports = {
plugins: [
// https://github.com/postcss/autoprefixer
require('autoprefixer')({
overrideBrowserslist: [
'last 4 Chrome versions',
'last 4 Firefox versions',
'last 4 Edge versions',
'last 4 Safari versions',
'last 4 Android versions',
'last 4 ChromeAndroid versions',
'last 4 FirefoxAndroid versions',
'last 4 iOS versions'
]
})
// https://github.com/elchininet/postcss-rtlcss
// If you want to support RTL css, then
// 1. yarn/npm install postcss-rtlcss
// 2. optionally set quasar.config.js > framework > lang to an RTL language
// 3. uncomment the following line:
// require('postcss-rtlcss')
]
}

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 859 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

View File

@@ -0,0 +1 @@
<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>

After

Width:  |  Height:  |  Size: 995 B

View File

@@ -0,0 +1,146 @@
: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);
}

View File

@@ -0,0 +1 @@
<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>

After

Width:  |  Height:  |  Size: 496 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB

View File

@@ -0,0 +1,216 @@
/* eslint-env node */
/*
* 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/
*/
// Configuration for your app
// https://v2.quasar.dev/quasar-cli-vite/quasar-config-js
const { configure } = require('quasar/wrappers');
module.exports = configure(function (/* ctx */) {
return {
eslint: {
// fix: true,
// include: [],
// exclude: [],
// rawOptions: {},
warnings: true,
errors: true
},
// https://v2.quasar.dev/quasar-cli-vite/prefetch-feature
// preFetch: true,
// app boot file (/src/boot)
// --> boot files are part of "main.js"
// https://v2.quasar.dev/quasar-cli-vite/boot-files
boot: [
],
// https://v2.quasar.dev/quasar-cli-vite/quasar-config-js#css
css: [
'app.scss'
],
// https://github.com/quasarframework/quasar/tree/dev/extras
extras: [
// 'ionicons-v4',
'mdi-v7',
// 'fontawesome-v6',
// 'eva-icons',
// 'themify',
// 'line-awesome',
// 'roboto-font-latin-ext', // this or either 'roboto-font', NEVER both!
'roboto-font', // 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
build: {
target: {
browser: [ 'es2019', 'edge88', 'firefox78', 'chrome87', 'safari13.1' ],
node: 'node20'
},
vueRouterMode: 'hash', // available values: 'hash', 'history'
// vueRouterBase,
// vueDevtools,
// vueOptionsAPI: false,
// rebuildCache: true, // rebuilds Vite/linter/etc cache on startup
// publicPath: '/',
// analyze: true,
// env: {},
// rawDefine: {}
// ignorePublicFolder: true,
// minify: false,
// polyfillModulePreload: true,
// distDir
// extendViteConf (viteConf) {},
// viteVuePluginOptions: {},
// vitePlugins: [
// [ 'package-name', { ..options.. } ]
// ]
},
// Full list of options: https://v2.quasar.dev/quasar-cli-vite/quasar-config-js#devServer
devServer: {
// https: true
open: true, // opens browser window automatically,
port: 5173
},
// https://v2.quasar.dev/quasar-cli-vite/quasar-config-js#framework
framework: {
config: {},
// iconSet: 'material-icons', // Quasar icon set
// lang: 'en-US', // Quasar language pack
// For special cases outside of where the auto-import strategy can have an impact
// (like functional components as one of the examples),
// you can manually specify Quasar components/directives to be available everywhere:
//
// components: [],
// directives: [],
// Quasar plugins
plugins: [
'Dialog'
]
},
// animations: 'all', // --- includes all animations
// https://v2.quasar.dev/options/animations
animations: [],
// https://v2.quasar.dev/quasar-cli-vite/quasar-config-js#property-sourcefiles
// sourceFiles: {
// rootComponent: 'src/App.vue',
// router: 'src/router/index',
// store: 'src/store/index',
// registerServiceWorker: 'src-pwa/register-service-worker',
// serviceWorker: 'src-pwa/custom-service-worker',
// pwaManifestFile: 'src-pwa/manifest.json',
// electronMain: 'src-electron/electron-main',
// electronPreload: 'src-electron/electron-preload'
// },
// https://v2.quasar.dev/quasar-cli-vite/developing-ssr/configuring-ssr
ssr: {
// ssrPwaHtmlFilename: 'offline.html', // do NOT use index.html as name!
// will mess up SSR
// extendSSRWebserverConf (esbuildConf) {},
// extendPackageJson (json) {},
pwa: false,
// manualStoreHydration: true,
// manualPostHydrationTrigger: true,
prodPort: 3000, // The default port that the production server should use
// (gets superseded if process.env.PORT is specified at runtime)
middlewares: [
'render' // keep this as last one
]
},
// https://v2.quasar.dev/quasar-cli-vite/developing-pwa/configuring-pwa
pwa: {
workboxMode: 'generateSW', // or 'injectManifest'
injectPwaMetaTags: true,
swFilename: 'sw.js',
manifestFilename: 'manifest.json',
useCredentialsForManifestTag: false,
// useFilenameHashes: true,
// extendGenerateSWOptions (cfg) {}
// extendInjectManifestOptions (cfg) {},
// extendManifestJson (json) {}
// extendPWACustomSWConf (esbuildConf) {}
},
// Full list of options: https://v2.quasar.dev/quasar-cli-vite/developing-cordova-apps/configuring-cordova
cordova: {
// 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
capacitor: {
hideSplashscreen: true
},
// Full list of options: https://v2.quasar.dev/quasar-cli-vite/developing-electron-apps/configuring-electron
electron: {
// extendElectronMainConf (esbuildConf)
// extendElectronPreloadConf (esbuildConf)
// specify the debugging port to use for the Electron app when running in development mode
inspectPort: 5858,
bundler: 'packager', // 'packager' or 'builder'
packager: {
// https://github.com/electron-userland/electron-packager/blob/master/docs/api.md#options
// OS X / Mac App Store
// appBundleId: '',
// appCategoryType: '',
// osxSign: '',
// protocol: 'myapp://path',
// Windows only
// win32metadata: { ... }
},
builder: {
// https://www.electron.build/configuration/configuration
appId: 'frontend'
}
},
// Full list of options: https://v2.quasar.dev/quasar-cli-vite/developing-browser-extensions/configuring-bex
bex: {
contentScripts: [
'my-content-script'
],
// extendBexScriptsConf (esbuildConf) {}
// extendBexManifestJson (json) {}
}
}
});

11
app/frontend/src/App.vue Normal file
View File

@@ -0,0 +1,11 @@
<template>
<router-view />
</template>
<script>
import { defineComponent } from 'vue'
export default defineComponent({
name: 'App'
})
</script>

View File

@@ -0,0 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 356 360">
<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" />
<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" />
<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" />
<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" />
<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" />
<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" />
<path fill="none" d="M-565.2 324H-252v15.8h-313.2z" />
</svg>

After

Width:  |  Height:  |  Size: 4.4 KiB

View File

@@ -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>

View File

@@ -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> -->

View File

@@ -0,0 +1,53 @@
<template>
<q-dialog ref="dialogRef" persistent @hide="onDialogHide">
<q-card style="width: 600px;">
<q-card-section class="bg-purple text-white">
<span class="text-h6 text-weight-bolder">Şirket Ekleme</span>
</q-card-section>
<q-card-section>
<q-input v-model="ld.name" label="Şirket Adı"/>
<q-input v-model="ld.memberNumber" label="Üye No"/>
<q-input v-model="ld.username" label="Kullanıcı Adı"/>
<q-input v-model="ld.password" label="Parola"/>
</q-card-section>
<q-card-actions align="right">
<q-btn label="İptal"
icon="cancel"
no-caps outline
@click="onDialogCancel"
/>
<q-btn label="Kaydet" no-caps outline color="positive"
icon="check"
@click="onDialogOK(toRaw(ld))"/>
</q-card-actions>
</q-card>
</q-dialog>
</template>
<script setup>
import { useDialogPluginComponent } from 'quasar'
import { reactive, toRaw } from 'vue'
defineEmits([
// REQUIRED; need to specify some events that your
// component will emit through useDialogPluginComponent()
...useDialogPluginComponent.emits,
])
const { dialogRef, onDialogHide, onDialogOK, onDialogCancel } = useDialogPluginComponent()
const ld = reactive({
name: '',
memberNumber: '',
username: '',
password: '',
})
</script>
<style scoped>
</style>

View File

@@ -0,0 +1,61 @@
<template>
<q-dialog ref="dialogRef" persistent @hide="onDialogHide">
<q-card style="width: 600px;">
<q-card-section class="bg-purple text-white">
<p>Şirket Adı: {{ props.name }}</p>
<!-- <span class="text-h6 text-weight-bolder">{{props.name}}</span> -->
</q-card-section>
<q-card-section>
<q-input v-model="ld.name" label="Şirket Adı"/>
<q-input v-model="ld.memberNumber" label="Üye No"/>
<q-input v-model="ld.userName" label="Kullanıcı Adı"/>
<q-input v-model="ld.password" label="Parola"/>
</q-card-section>
<q-card-actions align="right">
<q-btn label="İptal"
icon="cancel"
no-caps outline
@click="onDialogCancel"
/>
<q-btn label="Kaydet" no-caps outline color="positive"
icon="check"
@click="onDialogOK(toRaw(ld))"/>
</q-card-actions>
</q-card>
</q-dialog>
</template>
<script setup>
import { useDialogPluginComponent } from 'quasar'
import { reactive, toRaw ,defineProps } from 'vue'
defineEmits([
// REQUIRED; need to specify some events that your
// component will emit through useDialogPluginComponent()
...useDialogPluginComponent.emits,
])
const { dialogRef, onDialogHide, onDialogOK, onDialogCancel } = useDialogPluginComponent()
const props = defineProps({
id: Number,
name: String,
memberNumber: Number,
userName: String,
password: String
})
const ld = reactive({
id : props.id || 0,
name: props.name || '',
memberNumber: props.memberNumber || 0,
userName: props.userName || '',
password: props.password || '',
})
</script>
<style scoped>
</style>

View File

@@ -0,0 +1 @@
// app global css in SCSS form

View File

@@ -0,0 +1,25 @@
// Quasar SCSS (& Sass) Variables
// --------------------------------------------------
// To customize the look and feel of this app, you can override
// the Sass/SCSS variables found in Quasar's source Sass/SCSS files.
// Check documentation for full list of Quasar variables
// 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
// It's highly recommended to change the default colors
// to match your app's branding.
// Tip: Use the "Theme Builder" on Quasar's documentation website.
$primary : #1976D2;
$secondary : #26A69A;
$accent : #9C27B0;
$dark : #1D1D1D;
$dark-page : #121212;
$positive : #21BA45;
$negative : #C10015;
$info : #31CCEC;
$warning : #F2C037;

View File

@@ -0,0 +1,31 @@
<template>
<q-layout view="lHh Lpr lFf">
<q-header elevated style="margin-top: 40px;">
<q-toolbar>
<q-toolbar-title>
Bordro Robotu
</q-toolbar-title>
<q-space/>
</q-toolbar>
</q-header>
<q-page-container style="margin-top: 40px;">
<router-view/>
</q-page-container>
</q-layout>
</template>
<script setup>
</script>
<style scoped lang="scss">
.header-input .q-field .q-field__control-container .q-field__native, .q-field__label {
color: white !important;
}
</style>

View File

@@ -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');

View File

@@ -0,0 +1,31 @@
<template>
<div class="fullscreen bg-blue text-white text-center q-pa-md flex flex-center">
<div>
<div style="font-size: 30vh">
404
</div>
<div class="text-h2" style="opacity:.4">
Oops. Nothing here...
</div>
<q-btn
class="q-mt-xl"
color="white"
text-color="blue"
unelevated
to="/"
label="Go Home"
no-caps
/>
</div>
</div>
</template>
<script>
import { defineComponent } from 'vue'
export default defineComponent({
name: 'ErrorNotFound'
})
</script>

View File

@@ -0,0 +1,222 @@
<template>
<q-page padding>
<q-card>
<q-card-section>
<div class="row">
<div class="col">
<q-select v-model="ld.companyID"
label="Şirket"
option-label="Name"
option-value="Id"
:options="ld.companies"
map-options
emit-value
>
<template v-slot:after>
<q-btn
label="Düzenle"
color="primary"
@click="editCompany"
:disable="!ld.companyID"
no-caps
/>
<q-btn
label="Yeni Şirket Ekle"
color="primary"
@click="createCompany"
no-caps
/>
</template>
</q-select>
<!-- Debug Info -->
<div class="q-mt-sm q-pa-sm bg-grey-2 text-black text-caption" style="border: 1px dashed gray;">
Durum: {{ ld.errorMessage }} <br/>
Şirket Sayısı: {{ ld.companies.length }}
<div v-for="(c, idx) in ld.companies" :key="idx">
#{{ idx }}: ID={{ c.Id }} (type: {{ typeof c.Id }}), Name={{ c.Name }} (type: {{ typeof c.Name }}), Raw: {{ JSON.stringify(c) }}
</div>
</div>
</div>
</div>
</q-card-section>
<q-card-section>
<div class="row q-col-gutter-sm items-center">
<div class="col-shrink">
<q-btn label="Excel Yükle"
@click="upload"
no-caps
color="secondary"
/>
<q-checkbox
label="Tarayıcı Görünmesin"
v-model="ld.right"
style="font-size : 15px"
/>
</div>
<div class="col-11 text-right">
{{ ld.xlsFile }}
</div>
<div class="col-6">
<q-select v-model="ld.year" :options="[2024, 2025, 2026, 2027, 2028]"
label="Aktarım Yıl"
/>
</div>
<div class="col-6">
<q-select v-model="ld.month" :options="[1,2,3,4,5,6,7,8,9,10,11,12]"
label="Aktarım Ay"
/>
</div>
<div class="col-12">
<q-btn
no-caps
label="Aktarıma Başla"
color="warning"
class="full-width"
@click="doRpa"
:disable="!ld.xlsFile || !ld.companyID"
/>
</div>
</div>
</q-card-section>
<q-card-section>
<!-- <q-card>
<q-tabs
v-model="tab"
dense
class="text-grey"
active-color="primary"
indicator-color="primary"
align="justify"
narrow-indicator
>
<q-tab name="mails" label="Mails"></q-tab>
<q-tab name="alarms" label="Alarms"></q-tab>
<q-tab name="movies" label="Movies"></q-tab>
</q-tabs>
<q-separator></q-separator>
<q-tab-panels v-model="tab" animated>
<q-tab-panel name="mails">
<div class="text-h6"></div>
Lorem ipsum dolor sit amet consectetur adipisicing elit.
</q-tab-panel>
<q-tab-panel name="alarms">
<div class="text-h6">Alarms</div>
Lorem ipsum dolor sit amet consectetur adipisicing elit.
</q-tab-panel>
<q-tab-panel name="movies">
<div class="text-h6">Movies</div>
Lorem ipsum dolor sit amet consectetur adipisicing elit.
</q-tab-panel>
</q-tab-panels>
</q-card> -->
<div style="max-height: 200px; overflow: scroll; border: 1px gray solid; display: grid;" class="q-pa-xs">
<span v-for="(ln, ndx) in ld.logProcess" :key="ndx">
{{ ndx }} {{ ln }}
</span>
</div>
</q-card-section>
</q-card>
</q-page>
</template>
<script setup>
import { onMounted, reactive,ref } from 'vue'
import Company from 'components/dlg/Company.vue'
import EditCompanyPage from 'components/dlg/EditCompany.vue'
import { useQuasar } from 'quasar'
import { Companies, CreateCompany, Rpa, UploadExcel ,EditCompany} from 'app/bindings/bordrobot/lib/srv/srv'
import * as wails from '@wailsio/runtime'
const $q = useQuasar()
const ld = reactive({
companyID: null,
companies: [],
errorMessage: '',
xlsFile: '',
logProcess: [],
year: 2024,
month: 1,
right : true
})
// let tab = ref('mails')
onMounted(() => {
getCompanies()
wails.Events.On('logProcess', function (ev) {
ld.logProcess.push(ev.data)
})
})
const editCompany = function () {
const selectedCompanyID = ld.companyID;
if (!selectedCompanyID) return;
const selectedCompany = ld.companies.find(company => company.Id === selectedCompanyID);
if (!selectedCompany) return;
$q.dialog({
component: EditCompanyPage,
parent: this,
componentProps: {
id : parseInt(selectedCompany.Id),
name: selectedCompany.Name,
memberNumber: selectedCompany.MemberNumber,
userName : selectedCompany.Username,
password : selectedCompany.Password,
},
// ----------------------
// props that are passed to component instance
}).onOk(data => {
EditCompany(data.id, data.name, data.memberNumber, data.userName, data.password).then(()=>{
getCompanies()
})
})
}
const createCompany = function () {
$q.dialog({
component: Company,
parent: this,
// ----------------------
// props that are passed to component instance
}).onOk(data => {
CreateCompany(data.name, data.memberNumber, data.username, data.password).then(()=>{
getCompanies()
})
})
}
const getCompanies = function () {
ld.companies.splice(0)
ld.errorMessage = 'Yükleniyor...'
Companies().then(res => {
console.error("COMPANIES FETCHED:", JSON.stringify(res))
ld.errorMessage = 'Başarılı. Gelen şirket sayısı: ' + (res ? res.length : 0)
if (res) {
ld.companies.push(...res)
}
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>

View File

@@ -0,0 +1,39 @@
<template>
<q-page padding>
<q-input v-model="ld.name" label='İsim'/>
<q-btn label="Selamla" @click="doGreet" />
{{ld.result}}
</q-page>
</template>
<script setup>
import { onMounted, reactive } from 'vue'
// import {Events} from "@wailsio/runtime";
const ld = reactive({
name: '',
result: '',
time: ''
})
/*
onMounted(() => {
Events.On('time', (timeValue) => {
console.log(timeValue)
ld.time = timeValue.data;
});
})
*/
const doGreet = () => {
let localName = ld.name;
if (!localName) {
localName = 'anonymous';
}
Greet(localName).then((resultValue) => {
ld.result = resultValue;
}).catch((err) => {
console.log(err);
});
}
</script>

View File

@@ -0,0 +1,30 @@
import { route } from 'quasar/wrappers'
import { createRouter, createMemoryHistory, createWebHistory, createWebHashHistory } from 'vue-router'
import routes from './routes'
/*
* If not building with SSR mode, you can
* directly export the Router instantiation;
*
* The function below can be async too; either use
* async/await or return a Promise which resolves
* with the Router instance.
*/
export default route(function (/* { store, ssrContext } */) {
const createHistory = process.env.SERVER
? createMemoryHistory
: (process.env.VUE_ROUTER_MODE === 'history' ? createWebHistory : createWebHashHistory)
const Router = createRouter({
scrollBehavior: () => ({ left: 0, top: 0 }),
routes,
// Leave this as is and make changes in quasar.conf.js instead!
// quasar.conf.js -> build -> vueRouterMode
// quasar.conf.js -> build -> publicPath
history: createHistory(process.env.VUE_ROUTER_BASE)
})
return Router
})

View File

@@ -0,0 +1,19 @@
const routes = [
{
path: '/',
component: () => import('layouts/MainLayout.vue'),
children: [
{ path: '', component: () => import('pages/IndexPage.vue') },
{ path: '/page2', component: () => import('pages/page2.vue') },
]
},
// Always leave this as last one,
// but you can also remove it
{
path: '/:catchAll(.*)*',
component: () => import('pages/ErrorNotFound.vue')
}
]
export default routes

Some files were not shown because too many files have changed in this diff Show More