mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-03-11 03:40:20 +00:00
WIP: Splitting Variant overrides into views
This commit is contained in:
@@ -1,2 +0,0 @@
|
||||
angular.module("admin.dropdown").controller "DropDownCtrl", ($scope) ->
|
||||
$scope.expanded = false
|
||||
@@ -1,4 +1,4 @@
|
||||
angular.module("admin.dropdown").directive "ofnCloseOnClick", ($document) ->
|
||||
angular.module("admin.dropdown").directive "closeOnClick", () ->
|
||||
link: (scope, element, attrs) ->
|
||||
element.click (event) ->
|
||||
event.stopPropagation()
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
angular.module("admin.dropdown").directive "ofnDropDown", ($document) ->
|
||||
restrict: 'C'
|
||||
scope: true
|
||||
link: (scope, element, attrs) ->
|
||||
scope.expanded = false
|
||||
|
||||
outsideClickListener = (event) ->
|
||||
unless $(event.target).is("div.ofn-drop-down##{attrs.id} div.menu") ||
|
||||
$(event.target).parents("div.ofn-drop-down##{attrs.id} div.menu").length > 0
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
angular.module("admin.indexUtils").directive "ofnToggleColumn", (Columns) ->
|
||||
angular.module("admin.indexUtils").directive "toggleColumn", (Columns) ->
|
||||
link: (scope, element, attrs) ->
|
||||
element.addClass "selected" if scope.column.visible
|
||||
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
angular.module("admin.indexUtils").directive "toggleView", (Views) ->
|
||||
link: (scope, element, attrs) ->
|
||||
Views.register
|
||||
element.addClass "selected" if scope.view.visible
|
||||
|
||||
element.click "click", ->
|
||||
scope.$apply ->
|
||||
Views.selectView(scope.viewKey)
|
||||
|
||||
scope.$watch "view.visible", (newValue, oldValue) ->
|
||||
element.toggleClass "selected", scope.view.visible
|
||||
@@ -0,0 +1,16 @@
|
||||
angular.module("admin.indexUtils").factory 'Views', ($rootScope) ->
|
||||
new class Views
|
||||
views: {}
|
||||
currentView: null
|
||||
|
||||
setViews: (views) =>
|
||||
@views = {}
|
||||
for key, view of views
|
||||
@views[key] = view
|
||||
@selectView(key) if view.visible
|
||||
@views
|
||||
|
||||
selectView: (selectedKey) =>
|
||||
@currentView = @views[selectedKey]
|
||||
for key, view of @views
|
||||
view.visible = (key == selectedKey)
|
||||
@@ -5,11 +5,14 @@ angular.module("admin.utils").directive "alertRow", ->
|
||||
message: '@'
|
||||
buttonText: '@?'
|
||||
buttonAction: '&?'
|
||||
dismissed: '=?'
|
||||
close: "&?"
|
||||
transclude: true
|
||||
templateUrl: "admin/alert_row.html"
|
||||
link: (scope, element, attrs) ->
|
||||
scope.dismissed = false
|
||||
|
||||
scope.dismiss = ->
|
||||
scope.dismissed = true
|
||||
scope.close() if scope.close?
|
||||
element.hide()
|
||||
return false
|
||||
|
||||
@@ -1,17 +1,23 @@
|
||||
angular.module("admin.variantOverrides").controller "AdminVariantOverridesCtrl", ($scope, $http, $timeout, Indexer, Columns, SpreeApiAuth, PagedFetcher, StatusMessage, RequestMonitor, hubs, producers, hubPermissions, InventoryItems, VariantOverrides, DirtyVariantOverrides) ->
|
||||
angular.module("admin.variantOverrides").controller "AdminVariantOverridesCtrl", ($scope, $http, $timeout, Indexer, Columns, Views, SpreeApiAuth, PagedFetcher, StatusMessage, RequestMonitor, hubs, producers, hubPermissions, InventoryItems, VariantOverrides, DirtyVariantOverrides) ->
|
||||
$scope.hubs = Indexer.index hubs
|
||||
$scope.hub = null
|
||||
$scope.products = []
|
||||
$scope.producers = producers
|
||||
$scope.producersByID = Indexer.index producers
|
||||
$scope.hubPermissions = hubPermissions
|
||||
$scope.showHidden = false
|
||||
$scope.productLimit = 10
|
||||
$scope.variantOverrides = VariantOverrides.variantOverrides
|
||||
$scope.inventoryItems = InventoryItems.inventoryItems
|
||||
$scope.setVisibility = InventoryItems.setVisibility
|
||||
$scope.StatusMessage = StatusMessage
|
||||
$scope.RequestMonitor = RequestMonitor
|
||||
$scope.selectView = Views.selectView
|
||||
$scope.currentView = -> Views.currentView
|
||||
|
||||
$scope.views = Views.setViews
|
||||
inventory: { name: "Inventory Products", visible: true }
|
||||
hidden: { name: "Hidden Products", visible: false }
|
||||
new: { name: "New Products", visible: false }
|
||||
|
||||
$scope.columns = Columns.setColumns
|
||||
producer: { name: "Producer", visible: true }
|
||||
@@ -22,7 +28,9 @@ angular.module("admin.variantOverrides").controller "AdminVariantOverridesCtrl",
|
||||
on_demand: { name: "On Demand", visible: false }
|
||||
reset: { name: "Reset Stock Level", visible: false }
|
||||
inheritance: { name: "Inheritance", visible: false }
|
||||
visibility: { name: "Show/Hide", visible: false }
|
||||
visibility: { name: "Hide", visible: false }
|
||||
|
||||
$scope.bulkActions = [ name: "Reset Stock Levels To Defaults", callback: 'resetStock' ]
|
||||
|
||||
$scope.resetSelectFilters = ->
|
||||
$scope.producerFilter = 0
|
||||
@@ -30,6 +38,9 @@ angular.module("admin.variantOverrides").controller "AdminVariantOverridesCtrl",
|
||||
|
||||
$scope.resetSelectFilters()
|
||||
|
||||
$scope.filtersApplied = ->
|
||||
$scope.producerFilter != 0 || $scope.query != ''
|
||||
|
||||
$scope.initialise = ->
|
||||
SpreeApiAuth.authorise()
|
||||
.then ->
|
||||
|
||||
@@ -1,12 +1,17 @@
|
||||
angular.module("admin.variantOverrides").filter "inventoryProducts", ($filter, InventoryItems) ->
|
||||
return (products, hub_id, showHidden) ->
|
||||
return (products, hub_id, views) ->
|
||||
return [] if !hub_id
|
||||
return $filter('filter')(products, (product) ->
|
||||
for variant in product.variants
|
||||
if InventoryItems.inventoryItems.hasOwnProperty(hub_id) && InventoryItems.inventoryItems[hub_id].hasOwnProperty(variant.id)
|
||||
if showHidden
|
||||
return true
|
||||
if InventoryItems.inventoryItems[hub_id][variant.id].visible
|
||||
# Important to only return if true, as other variants for this product might be visible
|
||||
return true if views.inventory.visible
|
||||
else
|
||||
return true if InventoryItems.inventoryItems[hub_id][variant.id].visible
|
||||
false
|
||||
# Important to only return if true, as other variants for this product might be visible
|
||||
return true if views.hidden.visible
|
||||
else
|
||||
# Important to only return if true, as other variants for this product might be visible
|
||||
return true if views.new.visible
|
||||
false
|
||||
, true)
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
angular.module("admin.variantOverrides").filter "inventoryVariants", ($filter, InventoryItems) ->
|
||||
return (variants, hub_id, showHidden) ->
|
||||
return (variants, hub_id, views) ->
|
||||
return [] if !hub_id
|
||||
return $filter('filter')(variants, (variant) ->
|
||||
if InventoryItems.inventoryItems.hasOwnProperty(hub_id) && InventoryItems.inventoryItems[hub_id].hasOwnProperty(variant.id)
|
||||
if showHidden
|
||||
return true
|
||||
if InventoryItems.inventoryItems[hub_id][variant.id].visible
|
||||
return views.inventory.visible
|
||||
else
|
||||
return InventoryItems.inventoryItems[hub_id][variant.id].visible
|
||||
return views.hidden.visible
|
||||
else
|
||||
false
|
||||
return views.new.visible
|
||||
, true)
|
||||
|
||||
@@ -5,4 +5,5 @@ angular.module("admin.variantOverrides").filter "newInventoryProducts", ($filter
|
||||
return $filter('filter')(products, (product) ->
|
||||
for variant in product.variants
|
||||
return true if !InventoryItems.inventoryItems[hub_id].hasOwnProperty(variant.id)
|
||||
false
|
||||
, true)
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
angular.module("admin.variantOverrides").filter "newInventoryVariants", ($filter, InventoryItems) ->
|
||||
return (variants, hub_id) ->
|
||||
return [] if !hub_id
|
||||
return variants unless InventoryItems.inventoryItems.hasOwnProperty(hub_id)
|
||||
return $filter('filter')(variants, (variant) ->
|
||||
!InventoryItems.inventoryItems[hub_id].hasOwnProperty(variant.id)
|
||||
, true)
|
||||
Reference in New Issue
Block a user