Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions addon/controllers/products/index/category/new.js
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,15 @@ export default class ProductsIndexCategoryNewController extends BaseController {
return this.productsIndexCategoryController?.category ?? null;
}

get variantTabs() {
const variants = this.product.variants ?? [];
return variants.map((v) => ({
label: v.name,
id: v.public_id ?? v.name,
variant: v,
}));
}

/** overlay options */
@tracked overlayTitle = 'New Product';
@tracked overlayActionButtonTitle = 'Create Product';
Expand Down Expand Up @@ -117,6 +126,7 @@ export default class ProductsIndexCategoryNewController extends BaseController {
subject_uuid: this.product.id,
subject_type: 'storefront:product',
type: 'storefront_product',
resize: 'md',
},
(uploadedFile) => {
this.product.files.pushObject(uploadedFile);
Expand Down
45 changes: 15 additions & 30 deletions addon/templates/products/index/category/new.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -100,25 +100,6 @@
<div>
<MetadataEditor @value={{this.product.meta}} @onChange={{fn (mut this.product.meta)}} />
</div>
{{!-- {{#each this.product.meta_array as |metaField index|}}
<div class="px-4 py-3 border-b border-gray-200 dark:border-gray-700">
<div class="input-group">
<div class="flex justify-between items-center mb-1">
<Input
class="form-input border-0 px-2 py-1 m-0 bg-white dark:bg-gray-900 shadow-none"
@value={{metaField.label}}
disabled={{unauthorized}}
placeholder={{metaField.label}}
/>
<a href="javascript:;" class="text-xs" tabindex="-1" disabled={{unauthorized}} {{on "click" (fn this.removeMetaField index)}}>
<FaIcon @icon="trash" @size="sm" class="mr-1" />
Remove
</a>
</div>
<Input class="w-full form-input" @value={{metaField.value}} placeholder={{metaField.label}} disabled={{unauthorized}} />
</div>
</div>
{{/each}} --}}
</ContentPanel>

<InputGroup>
Expand All @@ -130,7 +111,7 @@
/>
</InputGroup>

<div class="store-boolean-settings">
<div class="store-boolean-settings mb-4">
<div class="input-group mb-0">
<Checkbox @value={{this.product.is_service}} @onToggle={{fn (mut this.product.is_service)}} @disabled={{unauthorized}}>
<FaIcon @icon="house-leave" class="text-indigo-400 mx-2" /><span class="dark:text-gray-100 text-sm">This is a service</span>
Expand Down Expand Up @@ -164,18 +145,19 @@
</div>
</div>

<ContentPanel @title="Variants" @open={{true}} @wrapperClass="bordered-top">
<div class="flex items-center justify-end">
<Button @text="New Variant" @icon="plus" @iconPrefix="fas" @onClick={{this.createProductVariant}} @permission="storefront create product-variant" />
</div>
<Tabs class="overlay-content-panel" as |Tab|>
{{#each this.product.variants as |variant|}}
<Tab @title={{variant.name}}>
<ContentPanel @title="Variants" @open={{true}} @wrapperClass="bordered-top" @panelBodyWrapperClass="px-0i">
<TabNavigation @tabs={{this.variantTabs}}>
<:actions>
<Button @text="New Variant" @size="xs" @icon="plus" @iconPrefix="fas" @onClick={{this.createProductVariant}} @permission="storefront create product-variant" />
</:actions>
<:default as |activeTab|>
{{#let activeTab.variant as |variant|}}
<div class="px-4 py-3">
<div class="flex items-center justify-end mb-3">
<Button
class="mr-2"
@type="danger"
@size="xs"
@text="Remove Variant"
@icon="trash"
@onClick={{fn this.removeProductVariant variant}}
Expand All @@ -184,6 +166,7 @@
<Button
class="mr-2"
@type="warning"
@size="xs"
@text="Edit Variant"
@icon="pencil"
@onClick={{fn this.editProductVariant variant}}
Expand All @@ -192,6 +175,7 @@
<Button
@text={{concat "New " (lowercase variant.name) " option"}}
@icon="plus"
@size="xs"
@iconPrefix="fas"
@onClick={{fn this.addVariantOption variant}}
@permission="storefront create product-variant-option"
Expand Down Expand Up @@ -238,16 +222,17 @@
{{/each}}
</div>
</div>
</Tab>
{{/each}}
</Tabs>
{{/let}}
</:default>
</TabNavigation>
</ContentPanel>

<ContentPanel @title="Add-Ons" @open={{true}} @wrapperClass="bordered-top">
<div class="flex items-center justify-end mb-2">
<Button
@text="Select Addon Categories"
@icon="plus"
@size="xs"
@iconPrefix="fas"
@onClick={{perform this.promptSelectAddonCategories}}
@permission="storefront list product-addon"
Expand Down
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "fleetbase/storefront-api",
"version": "0.4.9",
"version": "0.4.10",
"description": "Headless Commerce & Marketplace Extension for Fleetbase",
"keywords": [
"fleetbase-extension",
Expand Down
2 changes: 1 addition & 1 deletion extension.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "Storefront",
"version": "0.4.9",
"version": "0.4.10",
"description": "Headless Commerce & Marketplace Extension for Fleetbase",
"repository": "https://github.com/fleetbase/storefront",
"license": "AGPL-3.0-or-later",
Expand Down
8 changes: 4 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@fleetbase/storefront-engine",
"version": "0.4.9",
"version": "0.4.10",
"description": "Headless Commerce & Marketplace Extension for Fleetbase",
"fleetbase": {
"route": "storefront",
Expand Down Expand Up @@ -44,9 +44,9 @@
},
"dependencies": {
"@babel/core": "^7.23.2",
"@fleetbase/ember-core": "^0.3.8",
"@fleetbase/ember-ui": "^0.3.14",
"@fleetbase/fleetops-data": "^0.1.23",
"@fleetbase/ember-core": "^0.3.9",
"@fleetbase/ember-ui": "^0.3.15",
"@fleetbase/fleetops-data": "^0.1.24",
"@fortawesome/ember-fontawesome": "^2.0.0",
"@fortawesome/fontawesome-svg-core": "6.4.0",
"@fortawesome/free-brands-svg-icons": "6.4.0",
Expand Down
32 changes: 16 additions & 16 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion server/src/Http/Controllers/v1/CatalogController.php
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ public function query(Request $request)
$results = [];

if (session('storefront_store')) {
$results = Catalog::queryWithRequest($request, function (&$query) use ($limit, $offset) {
$results = Catalog::queryWithRequestCached($request, function (&$query) use ($limit, $offset) {
$query->where('subject_uuid', session('storefront_store'));

if ($limit) {
Expand Down
6 changes: 3 additions & 3 deletions server/src/Http/Controllers/v1/CategoryController.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ public function query(Request $request)
$results = [];

if (session('storefront_store')) {
$results = Category::queryWithRequest($request, function (&$query) use ($request) {
$results = Category::queryWithRequestCached($request, function (&$query) use ($request) {
$query->select([DB::raw('public_id as id'), 'public_id', 'uuid', 'parent_uuid', 'icon_file_uuid', 'name', 'description', 'tags', 'translations', 'icon', 'slug', 'created_at'])->where(['owner_uuid' => session('storefront_store'), 'for' => 'storefront_product']);

// only parent categories
Expand Down Expand Up @@ -67,7 +67,7 @@ public function query(Request $request)
})->first();

if ($store) {
$results = Category::queryWithRequest($request, function (&$query) use ($store, $request) {
$results = Category::queryWithRequestCached($request, function (&$query) use ($store, $request) {
$query->select([DB::raw('public_id as id'), 'public_id', 'uuid', 'parent_uuid', 'icon_file_uuid', 'name', 'icon', 'description', 'tags', 'translations', 'slug', 'created_at'])->where(['owner_uuid' => $store->uuid, 'for' => 'storefront_product']);

// only parent categories
Expand Down Expand Up @@ -102,7 +102,7 @@ public function query(Request $request)
}
}
} else {
$results = Category::queryWithRequest($request, function (&$query) use ($request) {
$results = Category::queryWithRequestCached($request, function (&$query) use ($request) {
$query->select([DB::raw('public_id as id'), 'public_id', 'uuid', 'parent_uuid', 'name', 'icon', 'description', 'tags', 'translations', 'slug', 'created_at'])->where(['owner_uuid' => session('storefront_network'), 'for' => 'storefront_network']);

// only parent categories
Expand Down
Loading
Loading