Ticket #6373: grid.html

File grid.html, 11.7 kB (added by BryanForbes, 4 months ago)

Place in dojox/grid/tests

Line 
1<html>
2
3<head>
4        <title>Grid Bug</title>
5
6        <script type="text/javascript" src="../../../dojo/dojo.js"
7                djConfig="isDebug:false, parseOnLoad: true"></script>
8               
9                <!--<script type="text/javascript" src="dojo/dojo/grid.js"></script>-->
10               
11        <style type="text/css">
12                @import "../resources/Grid.css";
13                @import "../resources/tundraGrid.css";
14                @import "../../../dojo/resources/dojo.css";
15                @import "../../../dijit/themes/tundra/tundra.css";
16                @import "../../../dijit/tests/css/dijitTests.css";
17        </style>
18       
19
20
21        <script type="text/javascript">
22                dojo.require("dojox.grid.DataGrid");
23                dojo.require("dojo.data.ItemFileReadStore");
24                dojo.require("dijit.form.CheckBox");
25                dojo.require("dojo.date.locale");
26
27var drc={};
28drc.gridData = {
29        identifier: 'id',
30        label: 'id',
31        items: [
32                { id: 5301, created: 1204243230266, completed: 1204244264554, status: 'COMPLETED', completion_log: null, instructor_decision: 'YES', course: 'AGB 322', section: '02', exam_date: 1204920600000, end_time: 1204925100000 },
33                { id: 5401, created: 1204314408874, completed: 1204834363267, status: 'COMPLETED', completion_log: null, instructor_decision: null, course: 'AGB 322', section: '02', exam_date: 1205176200000, end_time: 1204314408000 },
34                { id: 5402, created: 1204314413361, completed: 1204834364132, status: 'COMPLETED', completion_log: null, instructor_decision: null, course: 'AGB 322', section: '02', exam_date: 1205176200000, end_time: 1204314413000 },
35                { id: 5403, created: 1204315176468, completed: 1205787777855, status: 'COMPLETED', completion_log: null, instructor_decision: null, course: 'AGB 322', section: '02', exam_date: 1205960400000, end_time: 1204315176000 },
36                { id: 5404, created: 1204335924874, completed: 1205165567663, status: 'COMPLETED', completion_log: null, instructor_decision: null, course: 'FRSC 415', section: '03', exam_date: 1205338200000, end_time: 1204335924000 },
37                { id: 5405, created: 1204741820851, completed: 1204743423882, status: 'COMPLETED', completion_log: null, instructor_decision: 'somethinginvalid', course: 'FRSC 415', section: '02', exam_date: 1206731400000, end_time: 1206746700000 },
38                { id: 5406, created: 1204744307957, completed: 1205274662191, status: 'TERMINATED', completion_log: null, instructor_decision: null, course: 'FRSC 415', section: '02', exam_date: 1206731400000, end_time: 1204744307000 },
39                { id: 5407, created: 1204840355867, completed: 1205537683853, status: 'COMPLETED', completion_log: null, instructor_decision: 'YES', course: 'FRSC 415', section: '02', exam_date: 1206040200000, end_time: 1206055500000 },
40                { id: 5504, created: 1205274223961, completed: 1205274408372, status: 'COMPLETED', completion_log: 'APPROVED', instructor_decision: 'YES', course: 'AGB 322', section: '01', exam_date: 1207579200000, end_time: 1207586400000 },
41                { id: 5505, created: 1205274698075, completed: 1205274757197, status: 'TERMINATED', completion_log: null, instructor_decision: null, course: 'AGB 322', section: '01', exam_date: 1206974400000, end_time: 1205274698000 },
42                { id: 5506, created: 1205274723562, completed: 1206628811409, status: 'COMPLETED', completion_log: 'TIMEOUT', instructor_decision: null, course: 'AGB 322', section: '01', exam_date: 1206974400000, end_time: 1205274723000 },
43                { id: 4807, created: 1203037851016, completed: 1204045887212, status: 'COMPLETED', completion_log: null, instructor_decision: null, course: 'FRSC 415', section: '03', exam_date: 1204218600000, end_time: null },
44                { id: 4808, created: 1203037857289, completed: 1204045888187, status: 'COMPLETED', completion_log: null, instructor_decision: null, course: 'FRSC 415', section: '03', exam_date: 1204218600000, end_time: null },
45                { id: 4809, created: 1203039859756, completed: 1203970285117, status: 'COMPLETED', completion_log: null, instructor_decision: null, course: 'AGB 322', section: '02', exam_date: 1204143000000, end_time: null },
46                { id: 4810, created: 1203039862593, completed: 1203970285693, status: 'COMPLETED', completion_log: null, instructor_decision: null, course: 'AGB 322', section: '02', exam_date: 1204143000000, end_time: null },
47                { id: 4811, created: 1203039914652, completed: 1203970286217, status: 'COMPLETED', completion_log: null, instructor_decision: null, course: 'FRSC 415', section: '02', exam_date: 1204143000000, end_time: null },
48                { id: 4812, created: 1203039917115, completed: 1203970286693, status: 'COMPLETED', completion_log: null, instructor_decision: null, course: 'FRSC 415', section: '02', exam_date: 1204143000000, end_time: null },
49                { id: 4813, created: 1203718608148, completed: 1204226860378, status: 'COMPLETED', completion_log: null, instructor_decision: null, course: 'WVIT 463', section: '01', exam_date: 1204330200000, end_time: null },
50                { id: 4816, created: 1203720084402, completed: 1207077016546, status: 'COMPLETED', completion_log: null, instructor_decision: null, course: 'AGB 322', section: '02', exam_date: 1207249800000, end_time: null },
51                { id: 5201, created: 1203725528974, completed: 1204243139125, status: 'TERMINATED', completion_log: null, instructor_decision: null, course: 'AGB 322', section: '02', exam_date: 1204747800000, end_time: null },
52                { id: 5702, created: 1206489796519, completed: null, status: 'RUNNING', completion_log: null, instructor_decision: null, course: 'AGB 322', section: '01', exam_date: 1207320000000, end_time: 1206489796000 },
53                { id: 5701, created: 1206462566705, completed: 1207077017340, status: 'COMPLETED', completion_log: 'TIMEOUT', instructor_decision: null, course: 'FRSC 415', section: '02', exam_date: 1207249800000, end_time: 1206462566000 },
54                { id: 5703, created: 1206489800523, completed: null, status: 'RUNNING', completion_log: null, instructor_decision: null, course: 'AGB 322', section: '01', exam_date: 1207320000000, end_time: 1206489800000 },
55                { id: 5704, created: 1206555988187, completed: 1207072817249, status: 'COMPLETED', completion_log: 'TIMEOUT', instructor_decision: null, course: 'FRSC 415', section: '02', exam_date: 1207245600000, end_time: 1206555988000 },
56                { id: 5705, created: 1206556755331, completed: 1206557243510, status: 'COMPLETED', completion_log: 'APPROVED', instructor_decision: 'WITH_MODS', course: 'AGB 322', section: '01', exam_date: 1207320000000, end_time: 1207324020000 },
57                { id: 5706, created: 1206557320052, completed: 1206557366393, status: 'COMPLETED', completion_log: 'APPROVED', instructor_decision: 'YES', course: 'FRSC 415', section: '02', exam_date: 1207336200000, end_time: 1207340220000 },
58                { id: 5601, created: 1205522914023, completed: 1205522971080, status: 'COMPLETED', completion_log: 'REJECTED', instructor_decision: 'NO', course: 'FRSC 415', section: '02', exam_date: 1206645000000, end_time: 1205522914000 },
59                { id: 5602, created: 1205522920401, completed: 1205523821411, status: 'COMPLETED', completion_log: 'APPROVED', instructor_decision: 'WITH_MODS', course: 'FRSC 415', section: '02', exam_date: 1206645000000, end_time: 1206660300000 },
60                { id: 5603, created: 1205530930988, completed: 1205537697586, status: 'COMPLETED', completion_log: 'REJECTED', instructor_decision: 'NO', course: 'AGB 322', section: '02', exam_date: 1206558600000, end_time: 1205530930000 },
61                { id: 5604, created: 1205539366682, completed: 1205881854926, status: 'COMPLETED', completion_log: 'APPROVED', instructor_decision: 'YES', course: 'WVIT 463', section: '01', exam_date: 1206745800000, end_time: 1206755700000 },
62                { id: 5605, created: 1205539369772, completed: 1205539670553, status: 'COMPLETED', completion_log: 'APPROVED', instructor_decision: 'YES', course: 'WVIT 463', section: '01', exam_date: 1206745800000, end_time: 1206755700000 },
63                { id: 5606, created: 1205882032439, completed: 1205967437022, status: 'COMPLETED', completion_log: 'APPROVED', instructor_decision: 'WITH_MODS', course: 'FRSC 415', section: '03', exam_date: 1206720600000, end_time: 1206725100000 },
64                { id: 5607, created: 1206035981735, completed: 1206461410540, status: 'COMPLETED', completion_log: 'TIMEOUT', instructor_decision: null, course: 'FRSC 415', section: '03', exam_date: 1206634200000, end_time: 1206035981000 },
65                { id: 5608, created: 1206035986106, completed: 1206461411245, status: 'COMPLETED', completion_log: 'TIMEOUT', instructor_decision: null, course: 'FRSC 415', section: '03', exam_date: 1206634200000, end_time: 120603598600 }
66        ]
67};
68
69drc.filterPast = true;
70
71drc.courseFormat = function(course, rowIndex){
72        var item = this.grid.getItem(rowIndex);
73        var sec = this.grid.store.getValue(item, "section");
74        return course+"-"+sec;
75}
76
77drc.fullDateFormat = function(dateTime){
78        if(dateTime == null){
79                return null;
80        }
81        var d = new Date();
82        d.setTime(dateTime);
83        return dojo.date.locale.format(d, {datePattern:"MMM d y h:mm a",selector:'date'});
84}
85
86drc.timeFormat = function(dateTime){
87        if(dateTime == null){
88                return null;
89        }
90        var d = new Date();
91        d.setTime(dateTime);
92        return dojo.date.locale.format(d, {datePattern:"h:mm a",selector:'time'});
93}
94
95drc.filterPastChecked = function(value){
96        drc.filterPast = this.checked;
97        drc.grid.filter(null, true);
98}
99
100drc.statusFormat = function(value, rowIndex){
101        var item = this.grid.getItem(rowIndex);
102        var store = this.grid.store;
103        var state = store.getValue(item, "state");
104        var completion_log = store.getValue(item, "completion_log");
105        var instructor_decision = store.getValue(item, "instructor_decision");
106        var finishTime = store.getValue(item, "completed");
107       
108        if(state == 'RUNNING'){
109                return 'Pending Instructor Approval';
110        }
111       
112        var s = '';
113        if(state == 'TERMINATED'){
114                s += 'Canceled'
115        }
116        else if(state == 'COMPLETED'){
117                if(completion_log == 'APPROVED'){
118                        s += 'Approved';
119                        if(instructor_decision == 'WITH_MODS'){
120                                s += ' with modifications';
121                        }
122                }
123                else if(completion_log == 'REJECTED'){
124                        s += 'Denied';
125                }
126                else if(completion_log == 'TIMEOUT'){
127                        s += 'Expired';
128                }
129                else{
130                        s += completion_log;
131                }
132        }
133        return s;
134}
135
136drc.onBeforeRow = function(inDataIndex, inRow){
137        var item = this.grid.getItem(inDataIndex);
138        if(!item){ return; }
139        var store = this.grid.store;
140        if(inDataIndex >= 0) {
141                if (drc.filterPast) {
142                        var d = new Date();
143                        d.setTime(1207088855078); //set to static time so filter will always have something to filter
144                        //If exam date is past, don't show
145                        var exam_date = store.getValue(item, "exam_date");
146                        if (exam_date < d.getTime()) {
147                                inRow[0].hidden = true;
148                                return;
149                        }
150                }
151        }
152        inRow[0].hidden=false;
153}
154
155drc.viewButtonFormat = function(value, rowIndex){
156        return '<a class="drc-view-button" href="'
157        + drc.baseActionURL + '?submittedform=view&processId='+value+'"/>';
158}
159
160
161dojo.addOnLoad(function() {     
162        console.debug("initializing...");
163       
164        var check = new dijit.form.CheckBox({checked:true},"altTestingPastCheck");
165        dojo.connect(check,"onClick", drc.filterPastChecked);
166
167        var jsonStore = new dojo.data.ItemFileReadStore({ data: drc.gridData });
168       
169    var layout = [{
170                onBeforeRow: drc.onBeforeRow,
171                noscroll: true,
172                cells: [       
173                        {name: 'Id',field:'id',width:3},
174                        {name: 'Created',field:'created',formatter:drc.fullDateFormat,width:11},
175                        {name: 'Status',field:'status',formatter:drc.statusFormat,width:13},
176                        {name: 'Completed',field:'completed',formatter:drc.fullDateFormat,width:11},
177                        {name: 'Course',field:'course',formatter:drc.courseFormat,width:7},
178                        {name: 'Exam Date', field:'exam_date',formatter:drc.fullDateFormat,width:11},
179                        {name: 'End Time', field:'end_time', formatter:drc.timeFormat,width:6},
180                        {name: 'View',field:'id',width:3,formatter:drc.viewButtonFormat}                       
181                ]
182        }];
183       
184
185        drc.grid = new dojox.grid.DataGrid({store:jsonStore,structure:layout,query: { id: '*' },rowsPerPage:20,
186                autoHeight:true,autoWidth:true,style:"clear:both;"},"altTestingMainGrid");
187        drc.grid.startup();
188
189        console.debug("done.");
190});
191
192</script>
193               
194</head>
195
196<body class="tundra">
197               
198       
199       
200        <div id="altTestingPastCheck"></div>
201        <label for="altTestingPastCheck">Filter past exams</label>
202       
203        <div style="background: red; padding: 10px 10px 10px 10px">
204        <div id="altTestingMainGrid"></div>
205        </div>
206       
207       
208</body>
209</html>