trc-client-core
Version:
The core of the TRC Client
120 lines (103 loc) • 2.86 kB
JavaScript
var Reflux = require('reflux');
var RequiredRolesActions = require('trc-client-core/src/requiredRoles/RequiredRolesActions');
var LoadingActions = require('trc-client-core/src/global/LoadingActions');
var RequiredRolesStore = Reflux.createStore({
listenables: RequiredRolesActions,
mixins: [
require('reflux-immutable/ImmutableStoreMixin')
],
init: function () {
this.roles = [];
this.jobPositions = [];
this.role = null;
this.dealershipRoles = {};
this.error = {};
this.adminReport = {};
this.qaReport = {};
this.setState({
dealershipRoles: {},
nominateLoading: false
});
},
// Required Role
onFetchRequiredRoleCompleted: function(data) {
this.role = data;
this.trigger();
},
onSaveRequiredRole: function () {
LoadingActions.startLoading();
},
onSaveRequiredRoleFailed: function (error) {
LoadingActions.showError(error.message);
},
onSaveRequiredRoleCompleted: function(data) {
LoadingActions.stopLoading();
this.role = data;
this.trigger();
},
// Get All Roles
onFetchAllRequiredRolesCompleted: function(data){
this.roles = data;
this.trigger();
},
// Job Positions
onFetchJobPositionsCompleted: function(data){
this.jobPositions = data;
this.trigger();
},
// Delaership roles
onFetchDealershipRolesCompleted: function(data){
this.setState({
dealershipRoles: data,
nominateLoading: false
});
},
// Admin Report
onFetchAdminReportCompleted: function(data){
this.adminReport = data;
this.trigger(data);
},
// QA Report
onFetchQAReportCompleted: function(data){
this.qaReport = data;
this.trigger(data);
},
// Nominate
onNominate() {
this.setState({
nominateLoading: true
});
},
onNominateCompleted: function(){
RequiredRolesActions.fetchDealershipRoles();
},
// Re-Nominate
onRenominateCompleted: function(){
RequiredRolesActions.fetchDealershipRoles();
},
// Remove
onRemoveCompleted: function(){
RequiredRolesActions.fetchDealershipRoles();
},
// Approve/Deny
onDecisionCompleted: function(query){
RequiredRolesActions.fetchAdminReport(query);
},
// Getters
getRole:function() {
return this.role;
},
getRoles: function(){
return this.roles;
},
getJobPositions: function(){
return this.jobPositions;
},
getAdminReport: function(){
return this.adminReport;
},
getQAReport: function(){
return this.qaReport;
}
});
module.exports = RequiredRolesStore;