From 815003f158c295814ba5dab035878b7ad90f769d Mon Sep 17 00:00:00 2001 From: DecDuck Date: Wed, 6 Aug 2025 19:59:44 +1000 Subject: [PATCH 1/6] fix: small ui fixes --- components/Modal/CreateCompany.vue | 148 ++++++++++++++++++ components/StoreView.vue | 2 +- i18n/locales/en_us.json | 19 ++- pages/admin/metadata/companies/[id]/index.vue | 11 +- pages/admin/metadata/companies/index.vue | 29 ++-- pages/store/index.vue | 25 ++- server/api/v1/admin/company/index.post.ts | 47 ++++++ 7 files changed, 258 insertions(+), 23 deletions(-) create mode 100644 components/Modal/CreateCompany.vue create mode 100644 server/api/v1/admin/company/index.post.ts diff --git a/components/Modal/CreateCompany.vue b/components/Modal/CreateCompany.vue new file mode 100644 index 00000000..81832356 --- /dev/null +++ b/components/Modal/CreateCompany.vue @@ -0,0 +1,148 @@ + + + diff --git a/components/StoreView.vue b/components/StoreView.vue index 97e91fb9..ea9bdaa7 100644 --- a/components/StoreView.vue +++ b/components/StoreView.vue @@ -292,7 +292,7 @@
'}", + "websitePlaceholder": "{'<'}website{'>'}" }, "modals": { "nameDescription": "Edit the company's name. Used to match to new game imports.", @@ -337,7 +339,16 @@ "shortDeckDescription": "Edit the company's description. Doesn't affect long (markdown) description.", "shortDeckTitle": "Edit company description", "websiteDescription": "Edit the company's website. Note: this will be a link, and won't have redirect protection.", - "websiteTitle": "Edit company website" + "websiteTitle": "Edit company website", + + "createTitle": "Create a company", + "createDescription": "Create a company to further organize your games.", + "createFieldName": "Company Name", + "createFieldNamePlaceholder": "My New Company...", + "createFieldDescription": "Company Description", + "createFieldDescriptionPlaceholder": "A small indie studio that...", + "createFieldWebsite": "Company Website", + "createFieldWebsitePlaceholder": "https://example.com/" }, "noCompanies": "No companies", "noGames": "No games", @@ -499,7 +510,9 @@ "images": "Game Images", "lookAt": "Check it out", "noDevelopers": "No developers", - "noGame": "no game", + "noGame": "NO GAME", + "noFeatured": "NO FEATURED GAMES", + "openFeatured": "Star games in Admin Library {arrow}", "noImages": "No images", "noPublishers": "No publishers.", "noTags": "No tags", diff --git a/pages/admin/metadata/companies/[id]/index.vue b/pages/admin/metadata/companies/[id]/index.vue index 9ab083c2..db7e414b 100644 --- a/pages/admin/metadata/companies/[id]/index.vue +++ b/pages/admin/metadata/companies/[id]/index.vue @@ -30,7 +30,7 @@ {{ company.mName }} @@ -43,17 +43,20 @@ }}

- {{ company.mWebsite }} + {{ + company.mWebsite || + $t("library.admin.metadata.companies.editor.websitePlaceholder") + }}

diff --git a/pages/admin/metadata/companies/index.vue b/pages/admin/metadata/companies/index.vue index 12698eb5..44ac5dd9 100644 --- a/pages/admin/metadata/companies/index.vue +++ b/pages/admin/metadata/companies/index.vue @@ -10,20 +10,12 @@

- - - - - + {{ $t("common.create") }} +
@@ -105,6 +97,10 @@ {{ $t("library.admin.metadata.companies.noCompanies") }}

+
@@ -122,9 +118,12 @@ useHead({ title: t("library.admin.metadata.companies.title"), }); +const createCompanyOpen = ref(false); + const searchQuery = ref(""); -const companies = ref(await $dropFetch("/api/v1/admin/company")); +const rawCompanies = await $dropFetch("/api/v1/admin/company"); +const companies = ref(rawCompanies); const filteredCompanies = computed(() => companies.value.filter((e: CompanyModel) => { @@ -147,4 +146,8 @@ async function deleteCompany(id: string) { const index = companies.value.findIndex((e) => e.id === id); companies.value.splice(index, 1); } + +function createCompany(company: (typeof companies.value)[number]) { + companies.value.push(company); +} diff --git a/pages/store/index.vue b/pages/store/index.vue index 4254e1a8..656e4ed8 100644 --- a/pages/store/index.vue +++ b/pages/store/index.vue @@ -59,13 +59,30 @@

- {{ $t("store.noGame") }} + {{ $t("store.noFeatured") }}

+ + + + +
@@ -73,8 +90,12 @@