hino / app / routes / inbox / inbox-approval-dms.js
inbox-approval-dms.js
Raw
import Route from '@ember/routing/route';
import { inject as service } from '@ember/service';
import BaseRoute from 'hino-hearts/routes/base';

export default BaseRoute.extend({
	approvalInboxData: service(),
	document_type_code: null,
	templateName: 'inbox/inbox-approval',
	queryParams: {
		page: {
			refreshModel: true
		},
		size: {
			refreshModel: true
		},
		filter: {
			refreshModel: true
		},
		sort: {
			refreshModel: true
		},
		inboxfilter: {
			refreshModel: true
		}
	},
	model(params) {
		this.set('document_type_code', params.id);
		let filter = "\"data_source\" : { \"eq\" : \"DMS\"},\"document_type_code\" : { \"eq\" : \"" + params.id + "\"}";
		let inboxfilter = '';
		if (params.filter != null && params.filter != '') {
			let paramFilter = params.filter.slice(1, -1);
			filter += "," + paramFilter;
		}
		filter = "{" + filter + "}";
		filter = JSON.parse(filter);

		// filter khusus inbox status
		if (params.inboxfilter != null && params.inboxfilter != '') {
			let paramFilter = params.inboxfilter;
			inboxfilter = paramFilter;
		} else {
			inboxfilter = "\"inbox_status\" : \"OPEN\"";
		}
		inboxfilter = "{" + inboxfilter + "}";
		inboxfilter = JSON.parse(inboxfilter);

		let data = this.approvalInboxData.getList({
			page: params.page,
			per_page: params.perPage,
			filter: filter,
			// sort: params.sort
			sort: '-approval_inboxes.created_at',
			inboxfilter: inboxfilter,
		});
		this.set('data', data);
		return {};
	},

	setupController(controller, model) {
		this._super(...arguments);
		controller.set('document_type_code', this.get('document_type_code'));
		controller.set('model', this.get('data'));
	}
});