Compare commits

..

No commits in common. "9c45227337a3f9b83d499a9c55870a9f7c2abb97" and "8eb0b99959f8162e4594c324f299864c6c365d97" have entirely different histories.

44 changed files with 40728 additions and 9417 deletions

32
.gitlab-ci.yml Normal file
View File

@ -0,0 +1,32 @@
version: 2.1
jobs:
build:
working_directory: ~/repo
docker:
- image: circleci/node:11
steps:
- checkout
- run:
name: Update NPM
command: "sudo npm install -g npm"
- restore_cache:
key: dependency-cache-{{ checksum "package.json" }}
- run:
name: Install Dependencies
command: npm install
- run:
name: Install dpkg and fakeroot
command: |
sudo apt-get update -y
sudo apt-get install -y dpkg fakeroot
- save_cache:
key: dependency-cache-{{ checksum "package.json" }}
paths:
- ./node_modules
- run:
name: Generate Builds
command: npm run make
- store_artifacts:
path: ~/repo/out/make

9
git-commit.sh Normal file
View File

@ -0,0 +1,9 @@
#!/bin/bash
# $1 = Changes
# $2 = Branch
git add .
git commit -m "$1"
git push -uf origin paul-bastelt
#git push -uf paulgit paul-bastelt

7709
package-lock.json generated

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

View File

@ -1,3 +0,0 @@
@tailwind base;
@tailwind components;
@tailwind utilities;

View File

@ -1,10 +0,0 @@
<header class="bg-gray-800 text-white shadow-lg">
<nav class="container mx-auto flex justify-between items-center py-4 px-6">
<h1 class="text-2xl font-bold">AIRAC Updater</h1>
<ul class="flex space-x-6">
<li><button onclick="ChangeSite(1)" class="hover:underline transition">Home</button></li>
<li><button onclick="ChangeSite(2)" class="hover:underline transition">Push</button></li>
<li><button onclick="ChangeSite(3)" class="hover:underline transition">Settings</button></li>
</ul>
</nav>
</header>

View File

@ -1,22 +0,0 @@
const HomeType= {
Home: 1,
Push: 2,
Settings: 3
}
function ChangeSite(mimetype){
console.log(mimetype);
if (mimetype === HomeType.Home){
homeDiv.style.display = 'block';
pushDiv.style.display = 'none';
settingsDiv.style.display = 'none';
} else if (mimetype === HomeType.Push){
homeDiv.style.display = 'none';
pushDiv.style.display = 'block';
settingsDiv.style.display = 'none';
} else if (mimetype === HomeType.Settings){
homeDiv.style.display = 'none';
pushDiv.style.display = 'none';
settingsDiv.style.display = 'block';
}
}

View File

@ -1,67 +0,0 @@
<section class="container mx-auto p-6 bg-gray-800 shadow-md rounded-lg mt-6">
<div class="space-y-6">
<div class="flex space-x-4">
<div class="w-full">
<label for="homeDayDropdown" class="block text-sm font-medium text-gray-300">Day</label>
<select id="homeDayDropdown" class="mt-1 block w-full p-2 border border-gray-600 rounded-md shadow-sm focus:ring-blue-500 focus:border-blue-500 dark:bg-gray-700 dark:text-white dark:border-gray-600" style="background-color: #2d3748 !important;" onchange="handleDayChange()">
<option value="">Choose Day</option>
</select>
</div>
<div class="w-full">
<label for="homeTypeDropdown" class="block text-sm font-medium text-gray-300">Change Type:</label>
<select id="homeTypeDropdown" class="mt-1 block w-full p-2 border border-gray-600 rounded-md shadow-sm focus:ring-blue-500 focus:border-blue-500 dark:bg-gray-700 dark:text-white dark:border-gray-600" style="background-color: #2d3748 !important;">
<option value="Fix">Fix</option>
<option value="Feat">Feat</option>
<option value="Sonst">Sonst</option>
</select>
</div>
</div>
<div class="flex space-x-4">
<div class="w-full">
<label for="homeTicketTypeDropdown" class="block text-sm font-medium text-gray-300">Ticket:</label>
<select id="homeTicketTypeDropdown" class="mt-1 block w-full p-2 border border-gray-600 rounded-md shadow-sm focus:ring-blue-500 focus:border-blue-500 dark:bg-gray-700 dark:text-white dark:border-gray-600" style="background-color: #2d3748 !important;">
<option value="QA">QA</option>
<option value="DEV">DEV</option>
<option value="DEV">GD</option>
</select>
</div>
<div class="w-full">
<label for="homeTicketNumberInput" class="block text-sm font-medium text-gray-300">Ticketnumber:</label>
<input id="homeTicketNumberInput" type="text" maxlength="7" class="mt-1 block w-full p-2 border border-gray-600 rounded-md shadow-sm focus:ring-blue-500 focus:border-blue-500 dark:bg-gray-700 dark:text-white dark:border-gray-600" style="background-color: #2d3748 !important;">
</div>
</div>
<div class="space-y-6">
<div>
<label for="homeTicketDescriptionInput" class="block text-sm font-medium text-gray-300">Description:</label>
<input id="homeTicketDescriptionInput" type="text" class="mt-1 block w-full p-2 border border-gray-600 rounded-md shadow-sm focus:ring-blue-500 focus:border-blue-500 dark:bg-gray-800 dark:text-white dark:border-gray-600" style="background-color: #2d3748 !important;">
</div>
</div>
<div class="text-right">
<button id="homeDayChangeAddButton" class="bg-blue-600 text-white px-4 py-2 rounded-md shadow hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-blue-500 dark:bg-blue-700 dark:hover:bg-blue-600">
Add
</button>
</div>
</div>
</section>
<section class="container mx-auto p-6 bg-gray-800 shadow-md rounded-lg mt-6">
<h3 class="text-xl font-bold">Day</h3>
<table class="w-full table-auto border-collapse">
<thead class="bg-gray-700">
<tr>
<th class="px-4 py-2 border border-gray-600 text-left text-gray-200">Type</th>
<th class="px-4 py-2 border border-gray-600 text-left text-gray-200">Ticket</th>
<th class="px-4 py-2 border border-gray-600 text-left text-gray-200">Desciption</th>
</tr>
</thead>
<tbody id="homeDay">
</tbody>
</table>
</section>

View File

@ -1,57 +0,0 @@
<section class="container mx-auto p-6 bg-gray-800 shadow-md rounded-lg mt-6">
<div class="space-y-6">
<div class="flex space-x-4">
<div class="w-full">
<div>
<label for="pushRepoLabel" class="block text-sm font-medium text-gray-300">Repository:</label>
<label id="pushRepoLabel" type="text" class="mt-1 block w-full p-2 border border-gray-600 rounded-md shadow-sm focus:ring-blue-500 focus:border-blue-500 dark:bg-gray-800 dark:text-white dark:border-gray-600" style="background-color: #2d3748 !important;"></label>
</div>
</div>
<div class="w-full">
<div class="space-y-6">
<div>
<label for="pushTokenInput" class="block text-sm font-medium text-gray-300">Git Token:</label>
<label id="pushTokenInput" type="password" class="mt-1 block w-full p-2 border border-gray-600 rounded-md shadow-sm focus:ring-blue-500 focus:border-blue-500 dark:bg-gray-800 dark:text-white dark:border-gray-600" style="background-color: #2d3748 !important;"></label>
</div>
</div>
</div>
</div>
<div class="w-full">
<label for="pushTypeDropdown" class="block text-sm font-medium text-gray-300">Git Type:</label>
<select id="pushTypeDropdown" class="mt-1 block w-full p-2 border border-gray-600 rounded-md shadow-sm focus:ring-blue-500 focus:border-blue-500 dark:bg-gray-700 dark:text-white dark:border-gray-600" style="background-color: #2d3748 !important;">
<option value="Fix">GitHub</option>
<option value="Feat">GitLab</option>
<option value="Sonst">Gitea</option>
<option value="Sonst">Sonst (kommt noch)</option>
</select>
</div>
<div class="flex space-x-4">
<div class="w-full">
<label for="settingsCheckBoxSaveElse" class="flex items-center cursor-pointer">
<div class="relative">
<input type="checkbox" id="push" class="sr-only">
<div class="block bg-gray-600 w-14 h-8 rounded-full"></div>
<div class="dot absolute left-1 top-1 bg-white w-6 h-6 rounded-full transition"></div>
</div>
<label class="ml-3 block text-sm font-medium text-gray-300">Save Else</label>
</label>
</div>
<div class="w-full">
<label for="settingsCheckBoxSaveElse" class="flex items-center cursor-pointer">
<div class="relative">
<input type="checkbox" id="settingsCheckBoxSaveElse" class="sr-only">
<div class="block bg-gray-600 w-14 h-8 rounded-full"></div>
<div class="dot absolute left-1 top-1 bg-white w-6 h-6 rounded-full transition"></div>
</div>
<label class="ml-3 block text-sm font-medium text-gray-300">Save Else</label>
</label>
</div>
</div>
<div class="text-right">
<button id="push-save-button" class="bg-blue-600 text-white px-4 py-2 rounded-md shadow hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-blue-500 dark:bg-blue-700 dark:hover:bg-blue-600">
Save Settings
</button>
</div>
</div>
</section>

View File

@ -1,84 +0,0 @@
<section class="container mx-auto p-6 bg-gray-800 shadow-md rounded-lg mt-6">
<h3 class="text-xl font-bold">Profile Settings</h3>
<div class="space-y-6">
<div class="flex space-x-4">
<div class="w-full">
<label for="settingsProfileDirselectbutton" class="block text-sm font-medium text-gray-300">Profile Name:</label>
<label id="settingsProfileDirselectprofilename" class="mt-1 block w-full p-2 border border-gray-600 rounded-md shadow-sm focus:ring-blue-500 focus:border-blue-500" style="background-color: #2d3748 !important;">Kein Profil</label>
<input id="settingsProfileDirselectprofilenameInput" type="text" class="mt-1 block w-full p-2 border border-gray-600 rounded-md shadow-sm focus:ring-blue-500 focus:border-blue-500" style="background-color: #2d3748 !important; display: none"/>
</div>
<div class="w-full">
<label for="settingsProfileDirselectbutton" class="block text-sm font-medium text-gray-300">Select Profile</label>
<button id="settingsProfileDirselectbutton" class="bg-blue-600 text-white px-4 py-2 rounded-md shadow hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-blue-500">Select Directory</button>
</div>
</div>
<div class="w-full">
<label id="settingsProfileDirselectPath" class="mt-1 block w-full p-2 border border-gray-600 rounded-md shadow-sm focus:ring-blue-500 focus:border-blue-500" style="background-color: #2d3748 !important;">Kein Verzeichnis</label>
</div>
<div class="flex space-x-4">
<div class="w-full">
<label for="settingsCheckBoxSaveGitSettings" class="flex items-center cursor-pointer">
<div class="relative">
<input type="checkbox" id="settingsCheckBoxSaveGitSettings" class="sr-only">
<div class="block bg-gray-600 w-14 h-8 rounded-full"></div>
<div class="dot absolute left-1 top-1 bg-white w-6 h-6 rounded-full transition"></div>
</div>
<label class="ml-3 block text-sm font-medium text-gray-300">Save Git Settings</label>
</label>
</div>
<div class="w-full">
<label for="settingsCheckBoxSaveElse" class="flex items-center cursor-pointer">
<div class="relative">
<input type="checkbox" id="settingsCheckBoxSaveElse" class="sr-only">
<div class="block bg-gray-600 w-14 h-8 rounded-full"></div>
<div class="dot absolute left-1 top-1 bg-white w-6 h-6 rounded-full transition"></div>
</div>
<label class="ml-3 block text-sm font-medium text-gray-300">Save Else</label>
</label>
</div>
</div>
<div class="text-right">
<button id="settings-profile-edit-button" class="bg-blue-600 text-white px-4 py-2 rounded-md shadow hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-blue-500">
Edit Profile
</button>
<button id="settings-profile-save-button" class="bg-blue-600 text-white px-4 py-2 rounded-md shadow hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-blue-500">
Save Profile
</button>
</div>
</div>
</section>
<section class="container mx-auto p-6 bg-gray-800 shadow-md rounded-lg mt-6">
<h3 class="text-xl font-bold">Git Settings</h3>
<div class="space-y-6">
<div class="w-full">
<div>
<label for="settings-repo-input" class="block text-sm font-medium text-gray-300">Repository Link:</label>
<input id="settings-repo-input" type="text" class="mt-1 block w-full p-2 border border-gray-600 rounded-md shadow-sm focus:ring-blue-500 focus:border-blue-500" style="background-color: #2d3748 !important;">
</div>
</div>
<div class="w-full">
<div class="space-y-6">
<div>
<label for="settings-token-input" class="block text-sm font-medium text-gray-300">Git Token:</label>
<input id="settings-token-input" type="password" class="mt-1 block w-full p-2 border border-gray-600 rounded-md shadow-sm focus:ring-blue-500 focus:border-blue-500" style="background-color: #2d3748 !important;">
</div>
</div>
</div>
<div class="w-full">
<label for="settings-type-dropdown" class="block text-sm font-medium text-gray-300">Git Type:</label>
<select id="settings-type-dropdown" class="mt-1 block w-full p-2 border border-gray-600 rounded-md shadow-sm focus:ring-blue-500 focus:border-blue-500" style="background-color: #2d3748 !important;">
<option value="Fix">GitHub</option>
<option value="Feat">GitLab</option>
<option value="Sonst">Gitea</option>
<option value="Sonst">Sonst (noch nicht implementiert)</option>
</select>
</div>
<div class="text-right">
<button id="settings-save-button" class="bg-blue-600 text-white px-4 py-2 rounded-md shadow hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-blue-500 dark:bg-blue-700 dark:hover:bg-blue-600">
Save Settings
</button>
</div>
</div>
</section>

View File

@ -1,44 +0,0 @@
<!DOCTYPE html>
<html lang="en" class="dark">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>AIRAC Updater</title>
<link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">
<link href="components/css/index.css" rel="stylesheet">
<script src="components/js/index.js"></script>
</head>
<script src="https://code.jquery.com/jquery-3.3.1.js" integrity="sha256-2Kok7MbOyxpgUVvAk/HJ2jigOSYS2auK4Pfzbm7uH60="
crossorigin="anonymous">
</script>
<script>
$(function () {
$("#header").load("./components/html/header.html");
$("#homeDiv").load("./components/views/home.html");
$("#pushDiv").load("./components/views/push.html");
$("#settingsDiv").load("./components/views/settings.html");
$("#footer").load("./components/html/footer.html");
});
</script>
<body class="bg-gray-900 text-gray-100">
<div id="header"></div>
<div id="homeDiv"></div>
<div id="pushDiv" style="display: none;"></div>
<div id="settingsDiv" style="display: none;"></div>
<!--Footer-->
<div id="footer"></div>
<script src="./components/js/frontend_handler.js"></script>
<script src="components/js/data_structure.js"></script>
<script src="components/js/html_elements.js"></script>
<script src="renderer.js"></script>
<script src="components/js/startup.js"></script>
<script src="components/js/save.js"></script>
<script src="components/js/getFiles.js"></script>
<script src="components/js/download.js"></script>
<script src="components/js/git_ops.js"></script>
<script src="components/js/append_to_file.js"></script>
</body>
</html>

View File

@ -1,12 +0,0 @@
/** @type {import('tailwindcss').Config} */
module.exports = {
content: ["./src/**/*.{html,js}"],
theme: {
extend: {},
},
plugins: {
tailwindcss: {},
autoprefixer: {},
}
}

View File

@ -2,8 +2,6 @@
systemfile.json
settings.json
./idea
.idea/
# Logs
logs
*.log

View File

@ -0,0 +1,61 @@
name: Electron Builder Action
author: Samuel Meuli
description: GitHub Action for building and releasing Electron apps
inputs:
github_token:
description: GitHub authentication token
required: true
mac_certs:
description: Base64-encoded code signing certificate for macOS
required: false
mac_certs_password:
description: Password for decrypting `mac_certs`
required: false
release:
description: Whether the app should be released after a successful build
required: false
default: false
windows_certs:
description: Base64-encoded code signing certificate for Windows
required: false
windows_certs_password:
description: Password for decrypting `windows_certs`
required: false
package_root:
description: Directory where NPM/Yarn commands should be run
required: false
default: "."
build_script_name:
description: Name of the optional NPM build script which is executed before `electron-builder`
required: false
default: build
skip_build:
description: Whether the action should execute the NPM build script before running `electron-builder`
required: false
default: false
use_vue_cli:
description: Whether to run `electron-builder` using the Vue CLI plugin instead of calling the command directly
required: false
default: false
args:
description: Other arguments to pass to the `electron-builder` command, e.g. configuration overrides
required: false
default: ""
max_attempts:
description: Maximum number of attempts for completing the build and release step
required: false
default: "1"
# Deprecated
app_root:
description: Directory where `electron-builder` commands should be run
required: false
runs:
using: node12
main: index.js
branding:
icon: upload-cloud
color: blue

View File

@ -0,0 +1,156 @@
const { execSync } = require("child_process");
const { existsSync, readFileSync } = require("fs");
const { join } = require("path");
/**
* Logs to the console
*/
const log = (msg) => console.log(`\n${msg}`); // eslint-disable-line no-console
/**
* Exits the current process with an error code and message
*/
const exit = (msg) => {
console.error(msg);
process.exit(1);
};
/**
* Executes the provided shell command and redirects stdout/stderr to the console
*/
const run = (cmd, cwd) => execSync(cmd, { encoding: "utf8", stdio: "inherit", cwd });
/**
* Determines the current operating system (one of ["mac", "windows", "linux"])
*/
const getPlatform = () => {
switch (process.platform) {
case "darwin":
return "mac";
case "win32":
return "windows";
default:
return "linux";
}
};
/**
* Returns the value for an environment variable (or `null` if it's not defined)
*/
const getEnv = (name) => process.env[name.toUpperCase()] || null;
/**
* Sets the specified env variable if the value isn't empty
*/
const setEnv = (name, value) => {
if (value) {
process.env[name.toUpperCase()] = value.toString();
}
};
/**
* Returns the value for an input variable (or `null` if it's not defined). If the variable is
* required and doesn't have a value, abort the action
*/
const getInput = (name, required) => {
const value = getEnv(`INPUT_${name}`);
if (required && !value) {
exit(`"${name}" input variable is not defined`);
}
return value;
};
/**
* Installs NPM dependencies and builds/releases the Electron app
*/
const runAction = () => {
const platform = getPlatform();
const release = getInput("release", true) === "true";
const pkgRoot = getInput("package_root", true);
const buildScriptName = getInput("build_script_name", true);
const skipBuild = getInput("skip_build") === "true";
const useVueCli = getInput("use_vue_cli") === "true";
const args = getInput("args") || "";
const maxAttempts = Number(getInput("max_attempts") || "1");
// TODO: Deprecated option, remove in v2.0. `electron-builder` always requires a `package.json` in
// the same directory as the Electron app, so the `package_root` option should be used instead
const appRoot = getInput("app_root") || pkgRoot;
const pkgJsonPath = join(pkgRoot, "package.json");
const pkgLockPath = join(pkgRoot, "package-lock.json");
// Determine whether NPM should be used to run commands (instead of Yarn, which is the default)
const useNpm = existsSync(pkgLockPath);
log(`Will run ${useNpm ? "NPM" : "Yarn"} commands in directory "${pkgRoot}"`);
// Make sure `package.json` file exists
if (!existsSync(pkgJsonPath)) {
exit(`\`package.json\` file not found at path "${pkgJsonPath}"`);
}
// Copy "github_token" input variable to "GH_TOKEN" env variable (required by `electron-builder`)
setEnv("GH_TOKEN", getInput("github_token", true));
// Require code signing certificate and password if building for macOS. Export them to environment
// variables (required by `electron-builder`)
if (platform === "mac") {
const mac_certs = getInput("mac_certs");
const mac_certs_password = getInput("mac_certs_password");
if (mac_certs && mac_certs_password) {
setEnv("CSC_LINK", mac_certs);
setEnv("CSC_KEY_PASSWORD", mac_certs_password);
} else {
setEnv("CSC_IDENTITY_AUTO_DISCOVERY", "false");
}
} else if (platform === "windows") {
setEnv("CSC_LINK", getInput("windows_certs"));
setEnv("CSC_KEY_PASSWORD", getInput("windows_certs_password"));
}
// Disable console advertisements during install phase
setEnv("ADBLOCK", true);
// log(`Installing dependencies using ${useNpm ? "NPM" : "Yarn"}…`);
// run(useNpm ? "npm install" : "yarn", pkgRoot);
// Run NPM build script if it exists
if (skipBuild) {
log("Skipping build script because `skip_build` option is set");
} else {
log("Running the build script…");
if (useNpm) {
run(`npm run ${buildScriptName} --if-present`, pkgRoot);
} else {
// TODO: Use `yarn run ${buildScriptName} --if-present` once supported
// https://github.com/yarnpkg/yarn/issues/6894
const pkgJson = JSON.parse(readFileSync(pkgJsonPath, "utf8"));
if (pkgJson.scripts && pkgJson.scripts[buildScriptName]) {
run(`yarn run ${buildScriptName}`, pkgRoot);
}
}
}
log(`Building${release ? " and releasing" : ""} the Electron app…`);
const cmd = useVueCli ? "vue-cli-service electron:build" : `electron-builder`;
for (let i = 0; i < maxAttempts; i += 1) {
try {
run(
`${useNpm ? "npx --no-install" : "yarn run"} ${cmd} --${platform} ${
release ? "--publish always" : ""
} ${args}`,
appRoot,
);
break;
} catch (err) {
if (i < maxAttempts - 1) {
log(`Attempt ${i + 1} failed:`);
log(err);
} else {
throw err;
}
}
}
};
runAction();

View File

@ -0,0 +1,38 @@
name: Build/release
on: push
jobs:
release:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [macos-latest, ubuntu-latest, windows-latest]
steps:
- name: Check out Git repository
uses: actions/checkout@v1
- name: Install Node.js, NPM and Yarn
uses: actions/setup-node@v1
with:
node-version: 14
- name: Installing dependencies
run: yarn
- name: Tsc
run: npx tsc
- name: Build/release Electron app
uses: ./.github/actions/release
with:
skip_build: false
# GitHub token, automatically provided to the action
# (No need to define this secret in the repo settings)
github_token: ${{ secrets.DEPLOY_TOKEN }}
# If the commit is tagged with a version (e.g. "v1.0.0"),
# release the app after building
release: ${{ startsWith(github.ref, 'refs/tags/v') }}

11776
updater/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -5,22 +5,22 @@
"description": "This application allows users to easily update and maintain their sector files. It offers a simple, intuitive interface for downloading and installing the latest version of sector files, ensuring that users have access to the most accurate and up-to-date data. With automatic update checks and notifications, users can rest assured that their sector files are always up-to-date and ready for use.",
"main": "src/index.js",
"scripts": {
"dev": "electron-forge start",
"start": "electron-forge start",
"package": "electron-forge package",
"make": "electron-forge make --platform=win32",
"publish": "electron-forge publish"
"publish": "electron-forge publish",
"lint": "echo \"No linting configured\""
},
"keywords": [],
"authors": [
"Julian <info@julscha.de>",
"Julian <JustusPlays78@gmail.com>",
"Paul <paul@pabr.de>"
],
"license": "MIT",
"config": {
"forge": {
"packagerConfig": {},
"makers": [
{
"makers": [{
"name": "@electron-forge/maker-squirrel",
"config": {
"name": "updater"
@ -61,9 +61,6 @@
"@electron-forge/maker-rpm": "^6.0.0-beta.66",
"@electron-forge/maker-squirrel": "^6.0.0-beta.66",
"@electron-forge/maker-zip": "^6.0.0-beta.66",
"autoprefixer": "^10.4.20",
"electron": "^33.2.1",
"postcss": "^8.4.49",
"tailwindcss": "^3.4.17"
"electron": "^21.0.1"
}
}

26547
updater/src/css/boot.css Normal file

File diff suppressed because it is too large Load Diff

36
updater/src/header.html Normal file
View File

@ -0,0 +1,36 @@
<link rel="stylesheet" href="./css/boot.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700">
<link rel="stylesheet" href="./index.css">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title>Euroscope SectorfileUpdater</title>
<link rel="stylesheet" href="./css/boot.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700">
<link rel="stylesheet" href="./index.css">
<div class="container-fluid">
<h1 class="navbar-brand text-white text-center">
Euroscope Sectorfile Updater
</h1>
</div>
</head>
<nav class="navbar navbar-main navbar-expand-lg px-0 mx-4 mt-3 shadow-none border-radius-xl bg-transparent" id="navbarTop">
<ul class="navbar-nav navbar-nav-hover ms-auto">
<div class="border-radius-lg d-flex me-6">
<div class="col-4 text-end">
<a href=".\index.html" class="btn ecsu-btn-light btn-sm mb-0 mx-2">Home</a>
</div>
<div class="border-radius-lg d-flex me-2">
<div class="col-4 text-end">
<a href=".\syncing.html" class="btn ecsu-btn-light btn-sm mb-0">Syncing</a>
</div>
</div>
<div class="border-radius-lg d-flex me-4">
<div class="col-4 text-end">
<a href=".\settings.html" class="btn ecsu-btn-light btn-sm mb-0">Credentials</a>
</div>
</div>
</ul>
</div>
</nav>

View File

@ -1,5 +1,5 @@
// Global Variabels
let settingsProfileDirselectbutton = document.getElementById('settingsProfileDirselectbutton');
let selectDirBtn = document.getElementById('select-dir');
let dirBox = document.getElementById('dirBox');
let usernameInput = document.getElementById('username');
let passwordInput = document.getElementById('password');
@ -22,14 +22,10 @@ let applyHoppie = document.getElementById('applyHoppie');
let dropDownGNG = document.getElementById('gng');
let dropDownFiles = document.getElementById('files');
const homeDiv = document.getElementById('homeDiv');
const pushDiv = document.getElementById('pushDiv');
const settingsDiv = document.getElementById('settingsDiv');
saveCredBtn.addEventListener('click', (e) => {
save();
});
settingsProfileDirselectbutton.addEventListener('click', (e) => {
selectDirBtn.addEventListener('click', (e) => {
changeUserpath();
});

230
updater/src/index.css Normal file
View File

@ -0,0 +1,230 @@
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica,
Arial, sans-serif;
margin: auto;
max-width: 38rem;
padding: 2rem;
}
/* Loopple Alert */
.loopple-alert {
position: relative;
margin-bottom: 16px;
padding: 16px 24px;
border: 1px solid transparent;
border-radius: 6px;
font-size: 14px;
}
.loopple-alert.loopple-alert-gradient-dark {
color: #fff;
border-color: #45484b;
background: linear-gradient(87deg, #212529 0, #212229 100%) !important;
}
.loopple-alert.loopple-alert-dismissible .close {
top: 50%;
right: 24px;
padding: 0;
transform: translateY(-50%);
opacity: 1;
position: absolute;
color: inherit;
border: 0;
background: transparent;
}
.loopple-alert.loopple-alert-dismissible .close span {
color: #fff;
}
.loopple-fade {
transition: opacity 0.15s linear;
}
/* Loopple Button */
.loopple-btn {
font-size: 14px;
font-weight: 600;
cursor: pointer;
border: 1px solid transparent;
border-radius: 4px;
text-align: center;
vertical-align: middle;
position: relative;
transition: all 0.15s ease;
padding: 10px 20px;
letter-spacing: 0.3px;
text-transform: none;
will-change: transform;
}
.loopple-btn.loopple-btn-white {
color: #212529;
border-color: #fff;
background-color: #fff;
box-shadow: 0 4px 6px rgba(50, 50, 93, 0.11), 0 1px 3px rgba(0, 0, 0, 0.08);
}
.loopple-btn.loopple-btn-white:hover {
color: #212529;
border-color: #fff;
background-color: #fff;
}
.loopple-btn.loopple-btn-white:focus,
.loopple-btn.loopple-btn-white.focus {
box-shadow: 0 4px 6px rgba(50, 50, 93, 0.11), 0 1px 3px rgba(0, 0, 0, 0.08), 0 0 0 0 rgba(255, 255, 255, 0.5) l;
}
.loopple-btn.loopple-btn-white:not(:disabled):not(.disabled):active,
.loopple-btn.loopple-btn-white:not(:disabled):not(.disabled).active {
color: #212529;
border-color: #fff;
background-color: #e6e6e6;
}
/* Loopple Utilities */
.loopple-position-absolute {
position: absolute;
}
.loopple-position-sticky {
position: sticky;
}
.loopple-position-fixed {
position: fixed;
}
.loopple-z-index-9999 {
z-index: 9999;
}
.loopple-bottom-2 {
bottom: 8px;
}
.loopple-mx-auto {
margin-left: auto !important;
margin-right: auto !important;
}
.loopple-text-center {
text-align: center;
}
.loopple-right-0 {
right: 0;
}
.loopple-left-0 {
left: 0;
}
.loopple-w-50 {
width: 50%;
}
.loopple-ml-2,
.loopple-mx-2 {
margin-left: 8px;
}
.loopple-opacity-0 {
opacity: 0;
}
.ecsu-bg-dark-out {
background: #23262c;
}
.ecsu-bg-dark-light-out {
background: #343a40;
}
.ecsu-bg-light-out {
background-color: #f8f9fa;
}
.ecsu-bg-dark-light-2-out {
background: #495057;
}
.ecsu-btn-primary {
--bs-btn-color: #fff;
--bs-btn-bg: #070752;
--bs-btn-border-color: #cb0c9f;
--bs-btn-hover-color: #fff;
--bs-btn-hover-bg: #2020a1;
--bs-btn-hover-border-color: #a20a7f;
--bs-btn-focus-shadow-rgb: 211, 48, 173;
--bs-btn-active-color: #fff;
--bs-btn-active-bg: #a20a7f;
--bs-btn-active-border-color: #980977;
--bs-btn-active-shadow: none;
--bs-btn-disabled-color: #fff;
--bs-btn-disabled-bg: #cb0c9f;
--bs-btn-disabled-border-color: #cb0c9f
}
.ecsu-btn-dark {
--bs-btn-color: #fff;
--bs-btn-bg: #14161a;
--bs-btn-border-color: #344767;
--bs-btn-hover-color: #fff;
--bs-btn-hover-bg: #4a5c7c;
--bs-btn-hover-border-color: #2a3952;
--bs-btn-focus-shadow-rgb: 82, 99, 126;
--bs-btn-active-color: #fff;
--bs-btn-active-bg: #2a3952;
--bs-btn-active-border-color: #27354d;
--bs-btn-active-shadow: none;
--bs-btn-disabled-color: #fff;
--bs-btn-disabled-bg: #344767;
--bs-btn-disabled-border-color: #344767
}
.ecsu-btn-light {
--bs-btn-color: #000;
--bs-btn-bg: #e9ecef;
--bs-btn-border-color: #e9ecef;
--bs-btn-hover-color: #000;
--bs-btn-hover-bg: #9ea3a7;
--bs-btn-hover-border-color: #ebeef1;
--bs-btn-focus-shadow-rgb: 198, 201, 203;
--bs-btn-active-color: #000;
--bs-btn-active-bg: #edf0f2;
--bs-btn-active-border-color: #ebeef1;
--bs-btn-active-shadow: none;
--bs-btn-disabled-color: #000;
--bs-btn-disabled-bg: #e9ecef;
--bs-btn-disabled-border-color: #e9ecef
}
.escu-bg-gradient-primary {
background-color: #4a5c7c;
}
.tooltip {
position: relative;
display: inline-block;
border-bottom: 1px dotted black;
}
.tooltip .tooltiptext {
visibility: hidden;
width: 450px;
background-color: black;
color: #fff;
text-align: center;
border-radius: 6px;
padding: 5px 0;
/* Position the tooltip */
position: absolute;
z-index: 1;
}
.tooltip:hover .tooltiptext {
visibility: visible;
}

View File

@ -1,3 +1,4 @@
<link rel="stylesheet" href="./css/boot.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700">
<!DOCTYPE html>
<html class="ecsu-bg-dark-out">
@ -6,8 +7,9 @@
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title>AIRAC Updater</title>
<link rel="stylesheet" href="./css/boot.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700">
<link rel="stylesheet" href="components/css/index.css">
<link rel="stylesheet" href="./index.css">
<div class="container-fluid">
<h1 class="text-white text-center">
AIRAC Updater
@ -21,7 +23,7 @@
<div>
<h3 class="text-white">Settings</h3>
<button id="settingsProfileDirselectbutton">Select Directory</button>
<button id="select-dir">Select Directory</button>
<input type="text" id="dirBox" name="name" size="50" readonly />
<progress id="progressbar" max="100" value="0"></progress>
<p id="progressbarText"></p>
@ -145,8 +147,8 @@
</div>-->
<br>
<button id="savecred">Save your Credentials</button>
</div>
</form>
</div>
<form>
If you want Eurosounds, please check the box below and click the download button. <br>
@ -169,16 +171,15 @@
</div>
<script src="components/js/data_structure.js"></script>
<script src="components/js/html_elements.js"></script>
<script src="renderer.js"></script>
<script src="components/js/startup.js"></script>
<script src="components/js/save.js"></script>
<script src="components/js/getFiles.js"></script>
<script src="components/js/download.js"></script>
<script src="components/js/git_ops.js"></script>
<script src="components/js/append_to_file.js"></script>
</div>
<script src="./data_structure.js"></script>
<script src="./html_elements.js"></script>
<script src="./renderer.js"></script>
<script src="./startup.js"></script>
<script src="./save.js"></script>
<script src="./getFiles.js"></script>
<script src="./download.js"></script>
<script src="./git_ops.js"></script>
<script src="./append_to_file.js"></script>
</body>
</html>

View File

@ -13,17 +13,17 @@ const createWindow = () => {
const mainWindow = new BrowserWindow({
width: 1000,
height: 800,
/*webPreferences: {
webPreferences: {
nodeIntegration: true,
contextIsolation: false,
nodeIntegrationInWorker: true,
preload: path.join(__dirname, 'preload.js'),
},*/
},
});
mainWindow.loadFile(path.join(__dirname, 'index1.html'));
mainWindow.webContents.openDevTools();
mainWindow.loadFile(path.join(__dirname, 'index.html'));
//mainWindow.webContents.openDevTools();
// Select Directory
/*ipcMain.on('app-path', async(event, arg) => {
ipcMain.on('app-path', async(event, arg) => {
filepath = await dialog.showOpenDialog(mainWindow, {
properties: ['openDirectory']
});
@ -35,7 +35,7 @@ const createWindow = () => {
});
ipcMain.on("app-path-get", (event) => {
mainWindow.webContents.send("app-path-get", app.getAppPath());
});*/
});
};

91
updater/src/index1.html Normal file
View File

@ -0,0 +1,91 @@
<script src="https://code.jquery.com/jquery-3.3.1.js" integrity="sha256-2Kok7MbOyxpgUVvAk/HJ2jigOSYS2auK4Pfzbm7uH60="
crossorigin="anonymous">
</script>
<script src=".\js\loople.js"></script>
<script>
$(function () {
$("#header").load("header.html");
$("#footer").load("footer.html");
});
</script>
<body class="bg-dark">
<div class="main-content" id="panel">
<!--Header-->
<div id="header"></div>
<!--CONTENT-->
<div class="card mb-4 ecsu-bg-dark-light-out">
<div class="card-body">
<form>
<div class="row">
<div class="col-8 ">
<h6 class="mb-0 text-white">Home</h6>
</div>
<div class="col-4"><button class="btn btn-sm ecsu-btn-dark" id="download">Sync</button></div>
</div>
<div class="col-lg-6">
<div class="form-group">
<label class="form-control-label text-white" for="input-last-name">Select Sectorfilefolder</label>
<input type="file" id="sctfolder" class="form-control" webkitdirectory directory />
</div>
</div>
<div>
<h6 class="text-white">Sectorfile AIRAC: 2209</h6>
</div>
<div>
<h6 class="text-uppercase text-xs font-weight-bolder text-white">Logins</h6>
<div class="progress-wrapper mb-4">
<div class="progress-info">
<div class="progress-percentage">
<span class="text-sm font-weight-bold">60%</span>
</div>
</div>
<div class="progress">
<div class="progress-bar escu-bg-gradient-primary " role="progressbar" aria-valuenow="60"
aria-valuemin="0" aria-valuemax="100" style="width: 60%;" id="progessb" id="dirBox"></div>
</div>
</div><button class="btn ecsu-btn-dark mb-4">Button</button>
</form>
</div>
</div>
<!--CONTENT PRIMARY DROPDOWN BUTTON
<div class="container-fluid pt-3 ">
<div class="col-12 col-xl-4 mb-4">
<div class="dropdown mb-4">
<button class="btn bg-gradient-primary dropdown-toggle" type="button" id="dropdownMenuButton" data-bs-toggle="dropdown" aria-expanded="false">
Primary
</button>
<ul class="dropdown-menu" aria-labelledby="dropdownMenuButton">
<li><a class="dropdown-item" href="#">Action</a></li>
<li><a class="dropdown-item" href="#">Another action</a></li>
<li><a class="dropdown-item" href="#">Something else here</a></li>
</ul>
</div>
</div>
-->
<!--Footer-->
<div id="footer"></div>
</div>
<script src="https://demos.creative-tim.com/soft-ui-dashboard/assets/js/core/popper.min.js"></script>
<script src="https://demos.creative-tim.com/soft-ui-dashboard/assets/js/core/bootstrap.min.js"></script>
<script src="https://demos.creative-tim.com/soft-ui-dashboard/assets/js/plugins/chartjs.min.js"></script>
<script src="https://demos.creative-tim.com/soft-ui-dashboard/assets/js/plugins/Chart.extension.js"></script>
<script src="https://demos.creative-tim.com/soft-ui-dashboard/assets/js/soft-ui-dashboard.min.js?v=1.0.2"></script>
<script src="./js/loopple.js"></script>
<script>
$(function () {
$("#header").load(".\html\header.html");
$("#footer").load(".\html\footer.html");
});
function kackc(){
var dragonHealth = document.getElementById("progressb").value;
dragonHealth.value = 25;
}
</script>
</body>

View File

@ -6,7 +6,10 @@ document.querySelector('.loopple-alert.loopple-alert-dismissible .close').onclic
}, 1000);}
document.getElementById('download').addEventListener('click', () => {
});
},
);

View File

@ -2,8 +2,8 @@ const { contextBridge, ipcRenderer } = require('electron')
process.once('loaded', () => {
window.addEventListener('message', evt => {
if (evt.data.type === 'settingsProfileDirselectbutton') {
ipcRenderer.send('settingsProfileDirselectbutton')
if (evt.data.type === 'select-dirs') {
ipcRenderer.send('select-dirs')
}
})
})

View File

@ -26,7 +26,7 @@ function removeFileItems() {
}
}
export function changeUserpath() {
function changeUserpath() {
ipcRenderer.send('app-path');
}

278
updater/src/settings.html Normal file
View File

@ -0,0 +1,278 @@
<script src="https://code.jquery.com/jquery-3.3.1.js" integrity="sha256-2Kok7MbOyxpgUVvAk/HJ2jigOSYS2auK4Pfzbm7uH60="
crossorigin="anonymous">
</script>
<script>
$(function () {
$("#header").load("header.html");
$("#footer").load("footer.html");
});
</script>
<body class="g-sidenav-show bg-dark">
<div class="main-content" id="panel">
<!--Header-->
<div id="header"></div>
<!--CONTENT-->
<div class="card mb-4 ecsu-bg-dark-light-out" id="login">
<div class="card-body">
<form>
<div class="row">
<div class="col-8 ">
<h6 class="mb-0 text-white">Credentials</h6>
</div>
<div class="col-4"><button class="btn btn-sm ecsu-btn-dark " id="savecred">Save your Credentials</button></div>
</div>
<div>
<div class="row">
<div class="col-lg-6">
<div class="form-group form-switch ps-0">
<label class="form-control-label text-white" for="input-username">Name</label><input class="form-check-input ms-auto" type="checkbox" id="saverealname">
<input type="text" id="input-username" class="form-control" placeholder="Name" id="realname">
</div>
</div>
<div class="col-lg-6">
<div class="form-group form-switch ps-0">
<label class="form-control-label text-white" for="input-email">CID</label><input class="form-check-input ms-auto" type="checkbox" id="saveuser" >
<input type="email" id="input-email" class="form-control" placeholder="1234567" id="username">
</div>
</div>
</div>
<div class="row">
<div class="col-lg-6">
<div class="form-group form-switch ps-0">
<label class="form-control-label text-white" for="input-first-name">Password</label><input class="form-check-input ms-auto" type="checkbox" id="savepw" >
<input type="password" id="input-first-name" class="form-control" placeholder="password" id="password">
</div>
<div class="col-lg-6">
<div class="form-group form-switch ps-0">
<label class="form-control-label text-white" for="input-last-name">CPDLC HoppieCode</label><input class="form-check-input ms-auto" type="checkbox" id="savepwhoppie" >
<input type="password" id="input-last-name" class="form-control" placeholder="CPDLC Code" id="passwordhoppie">
</div>
</div>
<label class="form-control-label text-white" for="input-last-name">Select Your Rating</label>
<select id="rating">
<option id="0">obs</option>
<option id="1">s1</option>
<option id="2">s2</option>
<option id="3">s3</option>
<option id="4">c1</option>
<option id="6">c3</option>
<option id="7">i1</option>
<option id="9">i3</option>
<option id="10">sup</option>
<option id="11">adm</option>
</select>
<div class="form-group form-switch ps-0">
<label class="form-control-label text-white" for="input-last-name">If you want Eurosounds, please check the box below and click the download button. </label>
<input class="form-check-input ms-auto" type="checkbox" id="download-checkbox" onclick="toggleDownloadButton()">
<br>
<a href="https://cdn.ganderoceanic.ca/resources/files/eurosounds/eurosounds-8apr20.zip" id="download-link" style="display:none">Download Sounds</a>
</div>
<script>
function toggleDownloadButton() {
const downloadLink = document.getElementById("download-link");
if (document.getElementById("download-checkbox").checked) {
downloadLink.style.display = "block";
} else {
downloadLink.style.display = "none";
}
}
</script>
</div>
</div>
</div>
</form>
</div>
</div>
<!--Footer-->
<div id="footer"></div>
</div>
<script src="https://demos.creative-tim.com/soft-ui-dashboard/assets/js/core/popper.min.js"></script>
<script src="https://demos.creative-tim.com/soft-ui-dashboard/assets/js/core/bootstrap.min.js"></script>
<script src="https://demos.creative-tim.com/soft-ui-dashboard/assets/js/plugins/chartjs.min.js"></script>
<script src="https://demos.creative-tim.com/soft-ui-dashboard/assets/js/plugins/Chart.extension.js"></script>
<script src="https://demos.creative-tim.com/soft-ui-dashboard/assets/js/soft-ui-dashboard.min.js?v=1.0.2"></script>
<script src="./js/html_elements.js"></script>
<script src="./js/renderer.js"></script>
<script src="./js/startup.js"></script>
<script src="./js/save.js"></script>
<script src="./js/getFiles.js"></script>
<script src="./js/data_structure.js"></script>
<script src="./js/download.js"></script>
<script src="./js/git_ops.js"></script>
<script src="./js/append_to_file.js"></script>
<script>
if (document.querySelector("#chart-bars")) {
var ctx = document.getElementById("chart-bars").getContext("2d");
new Chart(ctx, {
type: "bar",
data: {
labels: ["Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
datasets: [{
label: "Sales",
tension: 0.4,
borderWidth: 0,
borderRadius: 4,
borderSkipped: false,
backgroundColor: "#fff",
data: [450, 200, 100, 220, 500, 100, 400, 230, 500],
maxBarThickness: 6
},],
},
options: {
responsive: true,
maintainAspectRatio: false,
plugins: {
legend: {
display: false,
}
},
interaction: {
intersect: false,
mode: 'index',
},
scales: {
y: {
grid: {
drawBorder: false,
display: false,
drawOnChartArea: false,
drawTicks: false,
},
ticks: {
suggestedMin: 0,
suggestedMax: 500,
beginAtZero: true,
padding: 15,
font: {
size: 14,
family: "Open Sans",
style: 'normal',
lineHeight: 2
},
color: "#fff"
},
},
x: {
grid: {
drawBorder: false,
display: false,
drawOnChartArea: false,
drawTicks: false
},
ticks: {
display: false
},
},
},
},
});
};
if (document.querySelector("#chart-line")) {
var ctx2 = document.getElementById("chart-line").getContext("2d");
var gradientStroke1 = ctx2.createLinearGradient(0, 230, 0, 50);
gradientStroke1.addColorStop(1, "rgba(203,12,159,0.2)");
gradientStroke1.addColorStop(0.2, "rgba(72,72,176,0.0)");
gradientStroke1.addColorStop(0, "rgba(203,12,159,0)");
var gradientStroke2 = ctx2.createLinearGradient(0, 230, 0, 50);
gradientStroke2.addColorStop(1, "rgba(20,23,39,0.2)");
gradientStroke2.addColorStop(0.2, "rgba(72,72,176,0.0)");
gradientStroke2.addColorStop(0, "rgba(20,23,39,0)");
new Chart(ctx2, {
type: "line",
data: {
labels: ["Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
datasets: [{
label: "Mobile apps",
tension: 0.4,
borderWidth: 0,
pointRadius: 0,
borderColor: "#cb0c9f",
borderWidth: 3,
backgroundColor: gradientStroke1,
fill: true,
data: [50, 40, 300, 220, 500, 250, 400, 230, 500],
maxBarThickness: 6
},
{
label: "Websites",
tension: 0.4,
borderWidth: 0,
pointRadius: 0,
borderColor: "#3A416F",
borderWidth: 3,
backgroundColor: gradientStroke2,
fill: true,
data: [30, 90, 40, 140, 290, 290, 340, 230, 400],
maxBarThickness: 6
},
],
},
options: {
responsive: true,
maintainAspectRatio: false,
plugins: {
legend: {
display: false,
}
},
interaction: {
intersect: false,
mode: 'index',
},
scales: {
y: {
grid: {
drawBorder: false,
display: true,
drawOnChartArea: true,
drawTicks: false,
borderDash: [5, 5]
},
ticks: {
display: true,
padding: 10,
color: '#b2b9bf',
font: {
size: 11,
family: "Open Sans",
style: 'normal',
lineHeight: 2
},
}
},
x: {
grid: {
drawBorder: false,
display: false,
drawOnChartArea: false,
drawTicks: false,
borderDash: [5, 5]
},
ticks: {
display: true,
color: '#b2b9bf',
padding: 20,
font: {
size: 11,
family: "Open Sans",
style: 'normal',
lineHeight: 2
},
}
},
},
},
});
};
</script>
<script src="./js/loopple.js"></script>
</script>
</body>

265
updater/src/syncing.html Normal file
View File

@ -0,0 +1,265 @@
<script src="https://code.jquery.com/jquery-3.3.1.js" integrity="sha256-2Kok7MbOyxpgUVvAk/HJ2jigOSYS2auK4Pfzbm7uH60="
crossorigin="anonymous">
</script>
<script>
$(function () {
$("#header").load("header.html");
$("#footer").load("footer.html");
});
</script>
<body class="g-sidenav-show bg-dark">
<div class="main-content" id="panel">
<!--Header-->
<div id="header"></div>
<!--CONTENT-->
<div class="card mb-4 ecsu-bg-dark-light-out">
<div class="card-body">
<form>
<div class="row">
<div class="col-8 ">
<h6 class="mb-0 text-white">Syncing</h6>
</div>
<div class="col-4"><button class="btn btn-sm ecsu-btn-dark ">Save (WIP)</button></div>
</div>
<div>
<h6 class="text-uppercase text-xs font-weight-bolder text-white">Apply to Update</h6>
<ul class="list-group ">
<li class="list-group-item border-0 px-0 ecsu-bg-dark-light-out">
<div class="form-check form-switch ps-0">
<input class="form-check-input ms-auto" type="checkbox" id="applyToPrf" checked="">
<label class="form-check-label text-white ms-3 text-truncate w-80 mb-0"
for="flexSwitchCheckDefault">Credentials into Profiles</label>
</div>
</li>
<li class="list-group-item border-0 px-0 ecsu-bg-dark-light-out">
<div class="form-check form-switch ps-0">
<input class="form-check-input ms-auto" type="checkbox" id="applyHoppie">
<label class="form-check-label text-white ms-3 text-truncate w-80 mb-0"
for="flexSwitchCheckDefault1">Hoppie Code into Txt File</label>
</div>
</li>
<!-- <li class="list-group-item border-0 px-0 ecsu-bg-dark-light-out">
<div class="form-check form-switch ps-0">
<input class="form-check-input ms-auto" type="checkbox" id="flexSwitchCheckDefault2" checked="">
<label class="form-check-label text-white ms-3 text-truncate w-80 mb-0"
for="flexSwitchCheckDefault2">OBS</label>
</div>
</li> -->
</ul>
<!-- <h6 class="text-uppercase text-white text-xs font-weight-bolder mt-4">Application</h6>
<ul class="list-group">
<li class="list-group-item border-0 px-0 ecsu-bg-dark-light-out">
<div class="form-check form-switch ps-0">
<input class="form-check-input ms-auto" type="checkbox" id="flexSwitchCheckDefault3">
<label class="form-check-label text-white ms-3 text-truncate w-80 mb-0"
for="flexSwitchCheckDefault3">New launches and projects</label>
</div>
</li>
<li class="list-group-item border-0 px-0 ecsu-bg-dark-light-out">
<div class="form-check form-switch ps-0">
<input class="form-check-input ms-auto" type="checkbox" id="flexSwitchCheckDefault4" checked="">
<label class="form-check-label text-white ms-3 text-truncate w-80 mb-0"
for="flexSwitchCheckDefault4">Monthly product updates</label>
</div>
</li>
<li class="list-group-item border-0 px-0 pb-0 ecsu-bg-dark-light-out">
<div class="form-check form-switch ps-0">
<input class="form-check-input ms-auto" type="checkbox" id="flexSwitchCheckDefault5">
<label class="form-check-label text-white ms-3 text-truncate w-80 mb-0"
for="flexSwitchCheckDefault5">Subscribe to newsletter</label>
</div>
</li>
</ul> -->
</div>
</div>
</form>
</div>
</div>
<!--Footer-->
<div id="footer"></div>
</div>
<script src="https://demos.creative-tim.com/soft-ui-dashboard/assets/js/core/popper.min.js"></script>
<script src="https://demos.creative-tim.com/soft-ui-dashboard/assets/js/core/bootstrap.min.js"></script>
<script src="https://demos.creative-tim.com/soft-ui-dashboard/assets/js/plugins/chartjs.min.js"></script>
<script src="https://demos.creative-tim.com/soft-ui-dashboard/assets/js/plugins/Chart.extension.js"></script>
<script src="https://demos.creative-tim.com/soft-ui-dashboard/assets/js/soft-ui-dashboard.min.js?v=1.0.2"></script>
<script>
if (document.querySelector("#chart-bars")) {
var ctx = document.getElementById("chart-bars").getContext("2d");
new Chart(ctx, {
type: "bar",
data: {
labels: ["Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
datasets: [{
label: "Sales",
tension: 0.4,
borderWidth: 0,
borderRadius: 4,
borderSkipped: false,
backgroundColor: "#fff",
data: [450, 200, 100, 220, 500, 100, 400, 230, 500],
maxBarThickness: 6
},],
},
options: {
responsive: true,
maintainAspectRatio: false,
plugins: {
legend: {
display: false,
}
},
interaction: {
intersect: false,
mode: 'index',
},
scales: {
y: {
grid: {
drawBorder: false,
display: false,
drawOnChartArea: false,
drawTicks: false,
},
ticks: {
suggestedMin: 0,
suggestedMax: 500,
beginAtZero: true,
padding: 15,
font: {
size: 14,
family: "Open Sans",
style: 'normal',
lineHeight: 2
},
color: "#fff"
},
},
x: {
grid: {
drawBorder: false,
display: false,
drawOnChartArea: false,
drawTicks: false
},
ticks: {
display: false
},
},
},
},
});
};
if (document.querySelector("#chart-line")) {
var ctx2 = document.getElementById("chart-line").getContext("2d");
var gradientStroke1 = ctx2.createLinearGradient(0, 230, 0, 50);
gradientStroke1.addColorStop(1, "rgba(203,12,159,0.2)");
gradientStroke1.addColorStop(0.2, "rgba(72,72,176,0.0)");
gradientStroke1.addColorStop(0, "rgba(203,12,159,0)");
var gradientStroke2 = ctx2.createLinearGradient(0, 230, 0, 50);
gradientStroke2.addColorStop(1, "rgba(20,23,39,0.2)");
gradientStroke2.addColorStop(0.2, "rgba(72,72,176,0.0)");
gradientStroke2.addColorStop(0, "rgba(20,23,39,0)");
new Chart(ctx2, {
type: "line",
data: {
labels: ["Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
datasets: [{
label: "Mobile apps",
tension: 0.4,
borderWidth: 0,
pointRadius: 0,
borderColor: "#cb0c9f",
borderWidth: 3,
backgroundColor: gradientStroke1,
fill: true,
data: [50, 40, 300, 220, 500, 250, 400, 230, 500],
maxBarThickness: 6
},
{
label: "Websites",
tension: 0.4,
borderWidth: 0,
pointRadius: 0,
borderColor: "#3A416F",
borderWidth: 3,
backgroundColor: gradientStroke2,
fill: true,
data: [30, 90, 40, 140, 290, 290, 340, 230, 400],
maxBarThickness: 6
},
],
},
options: {
responsive: true,
maintainAspectRatio: false,
plugins: {
legend: {
display: false,
}
},
interaction: {
intersect: false,
mode: 'index',
},
scales: {
y: {
grid: {
drawBorder: false,
display: true,
drawOnChartArea: true,
drawTicks: false,
borderDash: [5, 5]
},
ticks: {
display: true,
padding: 10,
color: '#b2b9bf',
font: {
size: 11,
family: "Open Sans",
style: 'normal',
lineHeight: 2
},
}
},
x: {
grid: {
drawBorder: false,
display: false,
drawOnChartArea: false,
drawTicks: false,
borderDash: [5, 5]
},
ticks: {
display: true,
color: '#b2b9bf',
padding: 20,
font: {
size: 11,
family: "Open Sans",
style: 'normal',
lineHeight: 2
},
}
},
},
},
});
};
</script>
<script src="./js/loopple.js"></script>
<script>
$(function () {
$("#header").load(".\html\header.html");
$("#footer").load(".\html\footer.html");
});
</script>
</body>

3
updater/systemfile.json Normal file
View File

@ -0,0 +1,3 @@
{
"path": "F:\\02 Benutzer\\Chef\\Downloads\\Donwload tets"
}

File diff suppressed because it is too large Load Diff