Skip to content

Instantly share code, notes, and snippets.

@orlaqp
Last active August 29, 2015 14:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save orlaqp/716dd63931ec5afa98bf to your computer and use it in GitHub Desktop.
Save orlaqp/716dd63931ec5afa98bf to your computer and use it in GitHub Desktop.
(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