Skip to content

Commit 8a8e623

Browse files
fix: Fix failling format(Run prettier --write
1 parent ada32c6 commit 8a8e623

13 files changed

Lines changed: 3359 additions & 117 deletions

File tree

.eslintrc.cjs

Lines changed: 22 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -5,32 +5,30 @@ module.exports = {
55
browser: true,
66
es2021: true,
77
},
8-
extends: [
9-
'eslint:recommended',
10-
'plugin:vue/vue3-recommended',
11-
'plugin:@typescript-eslint/recommended',
12-
'prettier',
13-
],
14-
parser: 'vue-eslint-parser',
8+
extends: ["eslint:recommended", "plugin:vue/vue3-recommended", "plugin:@typescript-eslint/recommended", "prettier"],
9+
parser: "vue-eslint-parser",
1510
parserOptions: {
16-
ecmaVersion: 'latest',
17-
parser: '@typescript-eslint/parser',
18-
sourceType: 'module',
11+
ecmaVersion: "latest",
12+
parser: "@typescript-eslint/parser",
13+
sourceType: "module",
1914
},
20-
plugins: ['vue', '@typescript-eslint'],
15+
plugins: ["vue", "@typescript-eslint"],
2116
rules: {
22-
'vue/multi-word-component-names': 'off',
23-
'@typescript-eslint/no-explicit-any': 'off',
24-
'@typescript-eslint/no-unused-vars': ['warn', { argsIgnorePattern: '^_' }],
25-
'vue/max-attributes-per-line': 'off',
26-
'vue/singleline-html-element-content-newline': 'off',
27-
'vue/html-self-closing': ['warn', {
28-
html: { void: 'any', normal: 'always', component: 'always' },
29-
svg: 'always',
30-
math: 'always',
31-
}],
32-
'vue/attributes-order': 'off',
33-
'vue/require-default-prop': 'off',
34-
'vue/use-v-on-exact': 'off',
17+
"vue/multi-word-component-names": "off",
18+
"@typescript-eslint/no-explicit-any": "off",
19+
"@typescript-eslint/no-unused-vars": ["warn", { argsIgnorePattern: "^_" }],
20+
"vue/max-attributes-per-line": "off",
21+
"vue/singleline-html-element-content-newline": "off",
22+
"vue/html-self-closing": [
23+
"warn",
24+
{
25+
html: { void: "any", normal: "always", component: "always" },
26+
svg: "always",
27+
math: "always",
28+
},
29+
],
30+
"vue/attributes-order": "off",
31+
"vue/require-default-prop": "off",
32+
"vue/use-v-on-exact": "off",
3533
},
3634
};

.github/workflows/ci.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ jobs:
1616
- name: Setup Node.js
1717
uses: actions/setup-node@v4
1818
with:
19-
node-version: '20'
20-
cache: 'npm'
19+
node-version: "20"
20+
cache: "npm"
2121

2222
- name: Install dependencies
2323
run: npm ci
@@ -37,8 +37,8 @@ jobs:
3737
- name: Setup Node.js
3838
uses: actions/setup-node@v4
3939
with:
40-
node-version: '20'
41-
cache: 'npm'
40+
node-version: "20"
41+
cache: "npm"
4242

4343
- name: Install dependencies
4444
run: npm ci
@@ -55,8 +55,8 @@ jobs:
5555
- name: Setup Node.js
5656
uses: actions/setup-node@v4
5757
with:
58-
node-version: '20'
59-
cache: 'npm'
58+
node-version: "20"
59+
cache: "npm"
6060

6161
- name: Install dependencies
6262
run: npm ci
@@ -74,8 +74,8 @@ jobs:
7474
- name: Setup Node.js
7575
uses: actions/setup-node@v4
7676
with:
77-
node-version: '20'
78-
cache: 'npm'
77+
node-version: "20"
78+
cache: "npm"
7979

8080
- name: Install dependencies
8181
run: npm ci

README.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ FlatRun UI provides a user-friendly dashboard for managing Docker deployments th
3232
## Development
3333

3434
### Prerequisites
35+
3536
- Node.js 18+ and npm
3637

3738
### Setup
@@ -103,8 +104,8 @@ If running the UI on a different domain/port than the agent, ensure the agent's
103104
api:
104105
enable_cors: true
105106
allowed_origins:
106-
- http://localhost:5173 # Development
107-
- https://your-ui-domain.com # Production
107+
- http://localhost:5173 # Development
108+
- https://your-ui-domain.com # Production
108109
```
109110
110111
## Available Scripts
@@ -162,16 +163,19 @@ EXPOSE 80
162163
## Troubleshooting
163164

164165
### Cannot connect to agent
166+
165167
- Verify the agent is running: `systemctl status flatrun-agent`
166168
- Check `VITE_API_URL` is correct in your `.env.local`
167169
- Ensure CORS is configured if running on different domains
168170

169171
### Authentication fails
172+
170173
- Verify the API key matches the agent's configuration
171174
- Check browser console for specific error messages
172175
- Ensure JWT secret is properly set in agent config
173176

174177
### UI shows no deployments
178+
175179
- Confirm the agent's `deployments_path` is accessible
176180
- Check that deployments have valid `docker-compose.yml` files
177181

index.html

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
<!DOCTYPE html>
1+
<!doctype html>
22
<html lang="en">
33
<head>
4-
<meta charset="UTF-8">
5-
<link rel="icon" type="image/svg+xml" href="/src/assets/flatrun-icon-black.svg">
6-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
4+
<meta charset="UTF-8" />
5+
<link rel="icon" type="image/svg+xml" href="/src/assets/flatrun-icon-black.svg" />
6+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
77
<title>Flatrun - Container Orchestration</title>
88
</head>
99
<body>

src/i18n/locales/en.json

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -888,31 +888,19 @@
888888
"name": "Easy Mode",
889889
"description": "Guided setup with templates",
890890
"badge": "Recommended",
891-
"features": [
892-
"Choose from pre-built templates",
893-
"Auto-configure database",
894-
"Domain & SSL setup"
895-
]
891+
"features": ["Choose from pre-built templates", "Auto-configure database", "Domain & SSL setup"]
896892
},
897893
"image": {
898894
"name": "From Image",
899895
"description": "Deploy any Docker image",
900896
"badge": "Quick",
901-
"features": [
902-
"Use any public/private image",
903-
"Auto-generate compose",
904-
"Quick deployment"
905-
]
897+
"features": ["Use any public/private image", "Auto-generate compose", "Quick deployment"]
906898
},
907899
"compose": {
908900
"name": "Compose Mode",
909901
"description": "Full control with docker-compose",
910902
"badge": "Advanced",
911-
"features": [
912-
"Write your own compose file",
913-
"Advanced configuration",
914-
"For power users"
915-
]
903+
"features": ["Write your own compose file", "Advanced configuration", "For power users"]
916904
}
917905
},
918906
"steps": {

src/i18n/locales/es.json

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -745,21 +745,13 @@
745745
"name": "Desde Imagen",
746746
"description": "Despliegue cualquier imagen Docker",
747747
"badge": "Rápido",
748-
"features": [
749-
"Use cualquier imagen pública/privada",
750-
"Genere compose automáticamente",
751-
"Despliegue rápido"
752-
]
748+
"features": ["Use cualquier imagen pública/privada", "Genere compose automáticamente", "Despliegue rápido"]
753749
},
754750
"compose": {
755751
"name": "Modo Compose",
756752
"description": "Control total con docker-compose",
757753
"badge": "Avanzado",
758-
"features": [
759-
"Escriba su propio archivo compose",
760-
"Configuración avanzada",
761-
"Para usuarios avanzados"
762-
]
754+
"features": ["Escriba su propio archivo compose", "Configuración avanzada", "Para usuarios avanzados"]
763755
}
764756
},
765757
"steps": {

src/i18n/locales/fr.json

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -908,11 +908,7 @@
908908
"name": "Mode Compose",
909909
"description": "Contrôle total avec docker-compose",
910910
"badge": "Avancé",
911-
"features": [
912-
"Écrivez votre propre fichier compose",
913-
"Configuration avancée",
914-
"Pour utilisateurs avancés"
915-
]
911+
"features": ["Écrivez votre propre fichier compose", "Configuration avancée", "Pour utilisateurs avancés"]
916912
}
917913
},
918914
"steps": {

src/i18n/locales/it.json

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -755,11 +755,7 @@
755755
"name": "Modalità Compose",
756756
"description": "Controllo totale con docker-compose",
757757
"badge": "Avanzato",
758-
"features": [
759-
"Scrivi il tuo file compose",
760-
"Configurazione avanzata",
761-
"Per utenti esperti"
762-
]
758+
"features": ["Scrivi il tuo file compose", "Configurazione avanzata", "Per utenti esperti"]
763759
}
764760
},
765761
"steps": {

src/i18n/locales/pt.json

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -745,11 +745,7 @@
745745
"name": "De Imagem",
746746
"description": "Implemente qualquer imagem Docker",
747747
"badge": "Rápido",
748-
"features": [
749-
"Use qualquer imagem pública/privada",
750-
"Gere compose automaticamente",
751-
"Implementação rápida"
752-
]
748+
"features": ["Use qualquer imagem pública/privada", "Gere compose automaticamente", "Implementação rápida"]
753749
},
754750
"compose": {
755751
"name": "Modo Compose",

src/views/SettingsView.vue

Lines changed: 41 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -589,7 +589,9 @@
589589
</div>
590590

591591
<div class="form-group">
592-
<label class="form-label">{{ t("settings.security.autoBlocking.thresholds.authFailures.label") }}</label>
592+
<label class="form-label">{{
593+
t("settings.security.autoBlocking.thresholds.authFailures.label")
594+
}}</label>
593595
<span class="form-hint">{{ t("settings.security.autoBlocking.thresholds.authFailures.hint") }}</span>
594596
<input
595597
v-model.number="securitySettings.auth_failure_threshold"
@@ -611,7 +613,9 @@
611613
</div>
612614

613615
<div class="form-group">
614-
<label class="form-label">{{ t("settings.security.autoBlocking.thresholds.repeatedHits.label") }}</label>
616+
<label class="form-label">{{
617+
t("settings.security.autoBlocking.thresholds.repeatedHits.label")
618+
}}</label>
615619
<span class="form-hint">{{ t("settings.security.autoBlocking.thresholds.repeatedHits.hint") }}</span>
616620
<input
617621
v-model.number="securitySettings.repeated_hits_threshold"
@@ -754,7 +758,9 @@
754758
<i class="pi pi-user" />
755759
{{ cred.username }}
756760
</span>
757-
<span v-if="cred.is_default" class="credential-badge default">{{ t("settings.value.default") }}</span>
761+
<span v-if="cred.is_default" class="credential-badge default">{{
762+
t("settings.value.default")
763+
}}</span>
758764
</div>
759765
</div>
760766
<div v-if="canDeleteRegistries" class="credential-actions">
@@ -775,24 +781,24 @@
775781

776782
<!-- Delete Confirmation Modal -->
777783
<Teleport to="body">
778-
<div v-if="showDeleteConfirm" class="modal-overlay" @click.self="cancelDeleteCredential">
779-
<div class="confirm-modal">
780-
<div class="confirm-icon danger">
781-
<i class="pi pi-exclamation-triangle" />
782-
</div>
783-
<h3>{{ t("settings.credentials.delete.title") }}</h3>
784-
<i18n-t keypath="settings.credentials.delete.message" tag="p">
785-
<strong>{{ credentialToDelete?.name }}</strong>
786-
</i18n-t>
787-
<div class="confirm-actions">
788-
<button class="btn btn-secondary" @click="cancelDeleteCredential">{{ t("common.cancel") }}</button>
789-
<button class="btn btn-danger" :disabled="deletingCredentialId !== null" @click="deleteCredential">
790-
<i v-if="deletingCredentialId" class="pi pi-spin pi-spinner" />
791-
{{ t("settings.credentials.actions.delete") }}
792-
</button>
793-
</div>
784+
<div v-if="showDeleteConfirm" class="modal-overlay" @click.self="cancelDeleteCredential">
785+
<div class="confirm-modal">
786+
<div class="confirm-icon danger">
787+
<i class="pi pi-exclamation-triangle" />
788+
</div>
789+
<h3>{{ t("settings.credentials.delete.title") }}</h3>
790+
<i18n-t keypath="settings.credentials.delete.message" tag="p">
791+
<strong>{{ credentialToDelete?.name }}</strong>
792+
</i18n-t>
793+
<div class="confirm-actions">
794+
<button class="btn btn-secondary" @click="cancelDeleteCredential">{{ t("common.cancel") }}</button>
795+
<button class="btn btn-danger" :disabled="deletingCredentialId !== null" @click="deleteCredential">
796+
<i v-if="deletingCredentialId" class="pi pi-spin pi-spinner" />
797+
{{ t("settings.credentials.actions.delete") }}
798+
</button>
794799
</div>
795800
</div>
801+
</div>
796802
</Teleport>
797803
</div>
798804
</div>
@@ -1010,7 +1016,10 @@ const createCredential = async () => {
10101016
password: newCredential.password,
10111017
is_default: newCredential.is_default,
10121018
});
1013-
notifications.success(t("settings.credentials.notifications.savedTitle"), t("settings.credentials.notifications.savedDesc"));
1019+
notifications.success(
1020+
t("settings.credentials.notifications.savedTitle"),
1021+
t("settings.credentials.notifications.savedDesc"),
1022+
);
10141023
resetNewCredentialForm();
10151024
showAddCredentialForm.value = false;
10161025
await fetchCredentials();
@@ -1199,9 +1208,15 @@ const saveSecuritySettings = async () => {
11991208
if (action.errors && action.errors.length > 0) {
12001209
notifications.error(t("settings.security.notifications.updateWarningTitle"), action.errors.join(", "));
12011210
} else if (action.container_recreated) {
1202-
notifications.success(t("settings.notifications.savedTitle"), t("settings.security.notifications.savedRecreated"));
1211+
notifications.success(
1212+
t("settings.notifications.savedTitle"),
1213+
t("settings.security.notifications.savedRecreated"),
1214+
);
12031215
} else if (action.nginx_reloaded) {
1204-
notifications.success(t("settings.notifications.savedTitle"), t("settings.security.notifications.savedReloaded"));
1216+
notifications.success(
1217+
t("settings.notifications.savedTitle"),
1218+
t("settings.security.notifications.savedReloaded"),
1219+
);
12051220
} else {
12061221
notifications.success(t("settings.notifications.savedTitle"), t("settings.security.notifications.saved"));
12071222
}
@@ -1248,7 +1263,10 @@ const testConnection = async () => {
12481263
};
12491264
12501265
const refreshData = () => {
1251-
notifications.info(t("settings.general.quickActions.refreshingTitle"), t("settings.general.quickActions.refreshingDesc"));
1266+
notifications.info(
1267+
t("settings.general.quickActions.refreshingTitle"),
1268+
t("settings.general.quickActions.refreshingDesc"),
1269+
);
12521270
window.location.reload();
12531271
};
12541272

0 commit comments

Comments
 (0)