Merge pull request #2474 from Matt-Yorkley/pi/import_options

PI: import options UI
This commit is contained in:
Maikel
2018-07-24 10:34:14 +10:00
committed by GitHub
12 changed files with 123 additions and 310 deletions

View File

@@ -3,6 +3,7 @@ angular.module("admin.productImport").controller "ImportFormCtrl", ($scope, $htt
$scope.entries = {}
$scope.update_counts = {}
$scope.reset_counts = {}
$scope.importSettings = null
$scope.updates = {}
$scope.updated_total = 0
@@ -72,20 +73,21 @@ angular.module("admin.productImport").controller "ImportFormCtrl", ($scope, $htt
'end': end
'filepath': $scope.filepath
'settings': $scope.importSettings
).success((data, status, headers, config) ->
).success((data, status) ->
angular.merge($scope.entries, angular.fromJson(data['entries']))
$scope.sortUpdates(data['reset_counts'])
$scope.updateProgress()
).error((data, status, headers, config) ->
).error((data, status) ->
$scope.exception = data
console.error(data)
)
$scope.importSettings = null
$scope.getSettings = () ->
$scope.importSettings = ProductImportService.getSettings()
$scope.importSettings = {
reset_all_absent: document.getElementsByName('settings[reset_all_absent]')[0].value,
import_into: document.getElementsByName('settings[import_into]')[0].value
}
$scope.sortUpdates = (data) ->
angular.forEach data, (value, key) ->
@@ -104,7 +106,7 @@ angular.module("admin.productImport").controller "ImportFormCtrl", ($scope, $htt
'end': end
'filepath': $scope.filepath
'settings': $scope.importSettings
).success((data, status, headers, config) ->
).success((data, status) ->
$scope.sortResults(data['results'])
angular.forEach data['updated_ids'], (id) ->
@@ -114,7 +116,7 @@ angular.module("admin.productImport").controller "ImportFormCtrl", ($scope, $htt
$scope.update_errors.push(error)
$scope.updateProgress()
).error((data, status, headers, config) ->
).error((data, status) ->
$scope.exception = data
console.error(data)
)
@@ -129,10 +131,11 @@ angular.module("admin.productImport").controller "ImportFormCtrl", ($scope, $htt
$scope.updated_total += value
$scope.resetAbsent = () ->
return unless $scope.importSettings['reset_all_absent']
enterprises_to_reset = []
angular.forEach $scope.importSettings, (settings, enterprise) ->
if settings['reset_all_absent']
enterprises_to_reset.push(enterprise)
angular.forEach $scope.reset_counts, (count, enterprise_id) ->
enterprises_to_reset.push(enterprise_id)
if enterprises_to_reset.length && $scope.updated_ids.length
$http(
@@ -144,11 +147,9 @@ angular.module("admin.productImport").controller "ImportFormCtrl", ($scope, $htt
'reset_absent': true,
'updated_ids': $scope.updated_ids,
'enterprises_to_reset': enterprises_to_reset
).success((data, status, headers, config) ->
console.log(data)
).success((data, status) ->
$scope.updates.products_reset = data
).error((data, status, headers, config) ->
).error((data, status) ->
console.error(data)
)

View File

@@ -2,37 +2,24 @@ angular.module("admin.productImport").controller "ImportOptionsFormCtrl", ($scop
$scope.initForm = () ->
$scope.settings = {} if $scope.settings == undefined
$scope.settings[$scope.supplierId] = {
import_into: 'product_list'
defaults:
count_on_hand:
mode: 'overwrite_all'
on_hand:
mode: 'overwrite_all'
tax_category_id:
mode: 'overwrite_all'
shipping_category_id:
mode: 'overwrite_all'
available_on:
mode: 'overwrite_all'
$scope.settings = {
import_into: 'product_list',
reset_all_absent: false
}
$scope.import_into = 'product_list'
$scope.updateImportInto = () ->
$scope.import_into = $scope.settings[$scope.supplierId]['import_into']
$scope.$watch 'settings', (updated) ->
ProductImportService.updateSettings(updated)
, true
$scope.toggleResetAbsent = (id) ->
checked = $scope.settings[id]['reset_all_absent']
$scope.toggleResetAbsent = ->
checked = $scope.settings['reset_all_absent']
confirmed = confirm t('js.product_import.confirmation') if checked
if confirmed or !checked
ProductImportService.updateResetAbsent($scope.supplierId, $scope.reset_counts[$scope.supplierId], checked)
else
$scope.settings[id]['reset_all_absent'] = false
$scope.settings['reset_all_absent'] = false
$scope.resetTotal = ProductImportService.resetTotal