Last active
August 29, 2015 14:05
-
-
Save orlaqp/716dd63931ec5afa98bf to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(function() { | |
'use strict'; | |
var app = angular.module('nova'); | |
var controllerId = 'TransfersController'; | |
app.controller(controllerId, ['$scope', '$q', '$rootScope', 'events', 'common', 'config', 'transferFilterFactory', transfersController]); | |
/** | |
* The Transfer Controller takes care of the user interaction for the transfers screen | |
* | |
* @module nova | |
* @submodule controllers | |
* @class TransfersController | |
* @constructor | |
**/ | |
function transfersController($scope, $q, $rootScope, events, common, config, transferFilterFactory) { | |
$scope.loading = true; | |
$scope.locationInfo = { | |
locationId: null, | |
locationItems: {} | |
}; | |
$scope.tableInfo = { | |
headers: [ | |
{ title: 'ID' }, | |
{ | |
title: 'From', | |
sort: 'name' | |
}, | |
{ | |
title: 'To', | |
sort: 'category' | |
}, | |
{ | |
title: 'Notes', | |
sort: 'suggestedPrice' | |
}, | |
{ | |
title: 'Status', | |
sort: 'current' | |
}, | |
{ | |
title: '' | |
}, | |
{ | |
title: '' | |
} | |
], | |
source: transferFilterFactory.sourceUrl, | |
showSize: false, | |
page: 1, | |
total: 0, | |
itemsPerPage: 25, | |
showMin: false, | |
data: [], | |
isSelectPage: false, | |
searchText: '', | |
sort: { | |
column: '', | |
descending: false | |
}, | |
reloadCounter: 0 | |
}; | |
$scope.filterOptions = {}; | |
/** | |
* WATCHERS START | |
**/ | |
$scope.$on(events.filters.updateFilters, function(event, filterParams) { | |
params = prepareFilterParamaters(filterParams.filters); | |
$scope.reloadDataTable(); | |
//$scope.refreshProductList('','',params) | |
}); | |
/** | |
* WATCHERS END | |
**/ | |
//////////////////////////////////////////////////////////////////////////// | |
// START UP | |
//////////////////////////////////////////////////////////////////////////// | |
(function() { | |
var promises = []; | |
common.wait(promises, controllerId).then(function() { | |
$scope.loading = false; | |
$scope.filterOptions = transferFilterFactory.getFilterOptions(); | |
}); | |
})(); | |
/** | |
* Prepare filters to be sent to the server | |
* | |
* @method | |
* @return | |
**/ | |
function prepareFilterParamaters(filterParams) { | |
var preparedParameters = {}; | |
_.forEach(filterParams, function(filterItem) { | |
var selection = filterItem.selection; | |
switch (filterItem.filterBy) { | |
case 'Requested date': | |
preparedParameters.requested = { | |
start: selection[0], | |
end: selection[1] | |
}; | |
break; | |
case 'Sent date': | |
preparedParameters.send = { | |
start: selection[0], | |
end: selection[1] | |
}; | |
break; | |
case 'Received date': | |
preparedParameters.received = { | |
start: selection[0], | |
end: selection[1] | |
}; | |
break; | |
case 'From Location': | |
preparedParameters.origins = selection; | |
break; | |
case 'To Location': | |
preparedParameters.destinations = selection; | |
break; | |
case 'From Vendor': | |
preparedParameters.vendors = selection; | |
break; | |
case 'Status': | |
preparedParameters.statuses = selection; | |
break; | |
case 'Send by': | |
preparedParameters.sendBy = selection; | |
break; | |
case 'Requested by': | |
preparedParameters.requestedBy = selection; | |
break; | |
case 'Received by': | |
preparedParameters.receivedBy = selection; | |
break; | |
default: | |
var filterBy = filterItem.filterBy ? filterItem.filterBy.toLowerCase() : ''; | |
if (filterBy === '') break; | |
if (!preparedParameters[filterBy]) | |
preparedParameters[filterBy] = []; | |
preparedParameters[filterBy].push(selection); | |
break; | |
} | |
}); | |
return preparedParameters; | |
} | |
var params; | |
//////////////////////////////////////////////////////////////////////////// | |
// Public function | |
//////////////////////////////////////////////////////////////////////////// | |
/** | |
* Update Search updates the searchText value | |
* | |
* @method | |
* @return | |
**/ | |
// TODO: Why don't use just bindings here? | |
$scope.updateSearch = function(value) { | |
$scope.searchText = value; | |
}; | |
/** | |
* Refresh Product List update data from source | |
* | |
* @method | |
* @return | |
**/ | |
$scope.refreshProductList = function(sortColumn, sortOrder) { | |
return transferFilterFactory.updateSource(params); | |
}; | |
/** | |
* Reload Data Table is used to ask the table directive to reload | |
* | |
* @method | |
* @return | |
**/ | |
$scope.reloadDataTable = function() { | |
$scope.reloadCounter++; | |
}; | |
/** | |
* Edit Requested navigates to the Request Transfer Screen | |
* | |
* @method | |
* @return | |
**/ | |
$scope.editRequested = function(transferId) { | |
$state.transitionTo('get-request', { | |
transferId: transferId | |
}); | |
}; | |
/** | |
* Edit Sent navigates to the Send Transfer Screen | |
* | |
* @method | |
* @return | |
**/ | |
$scope.editSent = function(transferId) { | |
$state.transitionTo('get-sent', { | |
transferId: transferId | |
}); | |
}; | |
/** | |
* Edit Receive navigates to the Receive Transfer Screen | |
* | |
* @method | |
* @return | |
**/ | |
$scope.editReceive = function(transferId) { | |
$state.transitionTo('get-Receive', { | |
transferId: transferId | |
}); | |
}; | |
$scope.deleteRequested = function(transferId) { | |
}; | |
$scope.deleteSent = function(transferId) { | |
}; | |
$scope.deleteReceive = function(transferId) { | |
}; | |
$scope.send = function(transferId) { | |
}; | |
$scope.receieve = function(transferId) { | |
}; | |
$scope.reviewed = function(transferId) { | |
//todo: make this for both mark for reviewed or not reviewed. | |
}; | |
} | |
})(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment