[TIC-Web] add the section for the job.
[archive/20170607/tools/tic.git] / public / src / js / model / JobModel.js
1 define([
2     'jquery',
3     'lodash',
4     'js/util',
5     'js/logger'
6 ], function (
7     $,
8     _,
9     Util,
10     Logger
11 ) {
12     'use strict';
13
14     var logger = Logger('model/JobModel.js');
15
16     var AppConfig = null;
17     Util.getAppConfig()
18     .then(function (data) {
19         AppConfig = data;
20     });
21
22     var JobStatusModel = [
23         {
24             value: 'READY',
25             text: 'Ready'
26         },
27         {
28             value: 'DONE', 
29             text: 'Done'
30         },
31         {
32             value: 'CANCELED',
33             text: 'Canceled'
34         },
35         {
36             value: 'FAILED',
37             text: 'Failed'
38         },
39         {
40             value: 'INPROGRESS',
41             text: 'In Progress'
42         }
43     ];
44
45     var JobModel = function (paramObj) {
46         logger.info('new JobModel');
47
48         this.tableIndex;
49         this.jobId;
50         this.jobStatus;
51         this.jobStatusText;
52         this.jobImageName;
53         this.jobImageSize;
54         this.jobPath;
55         this.jobImagePath;
56         this.jobKsPath;
57         this.jobLogPath;
58         this.jobUptime;
59         this.isDownload;//{boolean}
60
61         this.init(paramObj);
62     };
63
64     JobModel.prototype.init = function (obj) {
65         logger.info('JobModel.init: ' + JSON.stringify(obj));
66
67         this.setTableIndex(obj.job_index);
68         this.setJobId(obj.job_id);
69         this.setJobStatus(obj.job_status);
70         this.setJobImageName(obj.job_image_name);
71         this.setJobImageSize(obj.job_image_size);
72         this.setJobPath();
73         this.setJobImagePath();
74         this.setJobKsPath();
75         this.setJobLogPath();
76         this.setJobUptime(obj.job_uptime);
77     };
78
79     JobModel.prototype.getIsDownload = function () {
80         return this.isDownload;
81     };
82
83     JobModel.prototype.setIsDownload = function (value) {
84         this.isDownload = value;
85     };
86
87     JobModel.prototype.getJobUptime = function () {
88         return this.jobUptime;
89     };
90
91     JobModel.prototype.setJobUptime = function (value) {
92         this.jobUptime = value;
93     };
94
95     JobModel.prototype.getJobLogPath = function () {
96         return this.jobLogPath;
97     };
98
99     JobModel.prototype.setJobLogPath = function () {
100         this.jobLogPath = this.getJobPath() + '/log.js';
101     };
102
103     JobModel.prototype.getJobKsPath = function () {
104         return this.jobKsPath;
105     };
106
107     JobModel.prototype.setJobKsPath = function () {
108         this.jobKsPath = this.getJobPath() + '/ks.js';
109     };
110
111     JobModel.prototype.getJobImagePath = function () {
112         return this.jobImagePath;
113     };
114
115     JobModel.prototype.setJobImagePath = function () {
116         this.jobImagePath = this.getJobPath() + '/' + this.getJobImageName();
117     };
118
119     JobModel.prototype.getJobImageSize = function () {
120         return this.jobImageSize;
121     };
122
123     JobModel.prototype.setJobImageSize = function (value) {
124         this.jobImageSize = value ? Util.bytesToSize(value) : '0KB';
125     };
126
127     JobModel.prototype.getJobPath = function () {
128         return this.jobPath;
129     };
130
131     JobModel.prototype.setJobPath = function () {
132         this.jobPath = AppConfig.TIC_WEB.PATH + this.getJobId();
133     };
134
135     JobModel.prototype.getJobImageName = function () {
136         return this.jobImageName;
137     };
138
139     JobModel.prototype.setJobImageName = function (value) {
140         this.jobImageName = value ? value : '-';
141     };
142
143     JobModel.prototype.getJobStatusText = function (){
144         return this.jobStatusText;
145     };
146
147     JobModel.prototype.getJobStatus = function (){
148         return this.jobStatus;
149     };
150
151     JobModel.prototype.setJobStatus = function (status) {
152         /**
153          * FIXME
154          * temporal value -> status
155          */
156         status = 'DONE';
157
158         var statusInfo = _.find(JobStatusModel, {value: status});
159
160         this.jobStatus = statusInfo.value;
161         this.jobStatusText = statusInfo.text;
162
163         /**
164          * TODO :
165          * depends on status
166          * when 'done', can download.
167          */
168         this.setIsDownload(true);
169     };
170
171     JobModel.prototype.getJobId = function () {
172         return this.jobId;
173     };
174
175     JobModel.prototype.setJobId = function (value) {
176         this.jobId = value;
177     };
178
179     JobModel.prototype.getTableIndex = function () {
180         return this.tableIndex;
181     };
182
183     JobModel.prototype.setTableIndex = function (value) {
184         this.tableIndex = value;
185     };
186
187     return JobModel;
188 });