assessment.html 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373
  1. <link rel="stylesheet" type="text/css" href="module/assessment/css/assessment.css" />
  2. <section class="user_page container">
  3. <div class="sales_report">
  4. <div class="sales_report_in">
  5. <div class="sales_card" ng-show="listFound">
  6. <div class="container-fluid table_area">
  7. <div class="row top_box">
  8. <div class="left_box">
  9. <div class="input-group mb-3">
  10. </div>
  11. </div>
  12. <div class="right_box">
  13. <div class="sear">
  14. <form class="row form_2">
  15. <div class="form-group col-sm-12 disable">
  16. <input type="search" ng-change="onSearchChange()" class="form-control" ng-model="formData.mymodel" name="Search" placeholder="Search"
  17. autocomplete="off" required>
  18. </div>
  19. </form>
  20. </div>
  21. <div class="addbtn">
  22. <button class="btn export" ng-click="addFun()">
  23. <p>Add</p>
  24. </button>
  25. </div>
  26. </div>
  27. </div>
  28. <div class="row bottom_box">
  29. <div class="col-sm-12 table_box">
  30. <div class="table-fixed">
  31. <table class="table table-fixed">
  32. <thead>
  33. <tr class="row-name">
  34. <th class="col-xs-4">Assessment Name</th>
  35. <th class="col-xs-2">Assessment Time</th>
  36. <th class="col-xs-2">Published Date</th>
  37. <th class="col-xs-2">End Date</th>
  38. <th class="col-xs-2">Action</th>
  39. </tr>
  40. </thead>
  41. <tbody>
  42. <tr ng-repeat="item in itemdetail">
  43. <td class="col-xs-4">{{item.assessmentname}}</td>
  44. <td class="col-xs-2">{{item.assessmenttime}}</td>
  45. <td class="col-xs-2">{{item.publisheddate}}</td>
  46. <td class="col-xs-2">{{item.enddate}}</td>
  47. <td class="col-xs-2">
  48. <div ng-if="item.is_edit==1" class="clsicon deleteicon ion-edit" title="Edit" ng-click="editrow(item,$index,0)"></div>
  49. <div ng-if="item.is_edit!=1" class="clsicondis ion-edit" title="Edit"></div>
  50. <div ng-if="item.is_edit==1" class="clsicon editicon ion-trash-a" title="Delete" ng-click="deleterow(item,$index)"></div>
  51. <div ng-if="item.is_edit!=1" class="clsicondis ion-trash-a" title="Delete"></div>
  52. <div ng-if="item.is_edit==1"title="copy" class="clsicon editicon" ng-click="editrow(item,$index,1)">
  53. <svg version="1.1" id="Capa_1" x="0px" y="0px"
  54. viewBox="0 0 488.3 488.3" style="enable-background:new 0 0 488.3 488.3;"
  55. xml:space="preserve">
  56. <g>
  57. <g>
  58. <path d="M314.25,85.4h-227c-21.3,0-38.6,17.3-38.6,38.6v325.7c0,21.3,17.3,38.6,38.6,38.6h227c21.3,0,38.6-17.3,38.6-38.6V124
  59. C352.75,102.7,335.45,85.4,314.25,85.4z M325.75,449.6c0,6.4-5.2,11.6-11.6,11.6h-227c-6.4,0-11.6-5.2-11.6-11.6V124
  60. c0-6.4,5.2-11.6,11.6-11.6h227c6.4,0,11.6,5.2,11.6,11.6V449.6z" />
  61. <path d="M401.05,0h-227c-21.3,0-38.6,17.3-38.6,38.6c0,7.5,6,13.5,13.5,13.5s13.5-6,13.5-13.5c0-6.4,5.2-11.6,11.6-11.6h227
  62. c6.4,0,11.6,5.2,11.6,11.6v325.7c0,6.4-5.2,11.6-11.6,11.6c-7.5,0-13.5,6-13.5,13.5s6,13.5,13.5,13.5c21.3,0,38.6-17.3,38.6-38.6
  63. V38.6C439.65,17.3,422.35,0,401.05,0z" />
  64. </g>
  65. </g>
  66. </svg>
  67. </div>
  68. <div ng-if="item.is_edit!=1"title="copy" class="clsicon editicon" ng-click="editrow(item,$index,1)">
  69. <svg version="1.1" id="Capa_1" x="0px" y="0px"
  70. viewBox="0 0 488.3 488.3" style="enable-background:new 0 0 488.3 488.3;"
  71. xml:space="preserve">
  72. <g>
  73. <g>
  74. <path d="M314.25,85.4h-227c-21.3,0-38.6,17.3-38.6,38.6v325.7c0,21.3,17.3,38.6,38.6,38.6h227c21.3,0,38.6-17.3,38.6-38.6V124
  75. C352.75,102.7,335.45,85.4,314.25,85.4z M325.75,449.6c0,6.4-5.2,11.6-11.6,11.6h-227c-6.4,0-11.6-5.2-11.6-11.6V124
  76. c0-6.4,5.2-11.6,11.6-11.6h227c6.4,0,11.6,5.2,11.6,11.6V449.6z" />
  77. <path d="M401.05,0h-227c-21.3,0-38.6,17.3-38.6,38.6c0,7.5,6,13.5,13.5,13.5s13.5-6,13.5-13.5c0-6.4,5.2-11.6,11.6-11.6h227
  78. c6.4,0,11.6,5.2,11.6,11.6v325.7c0,6.4-5.2,11.6-11.6,11.6c-7.5,0-13.5,6-13.5,13.5s6,13.5,13.5,13.5c21.3,0,38.6-17.3,38.6-38.6
  79. V38.6C439.65,17.3,422.35,0,401.05,0z" />
  80. </g>
  81. </g>
  82. </svg>
  83. </div>
  84. <!-- <div ng-if="item.is_edit==1" class="clsicon copyicon ion-trash-a" title="copy" ng-click="editrow(item,$index,1)"></div>
  85. <div ng-if="item.is_edit!=1" class="clsicondis ion-trash-a" title="Copy"></div> -->
  86. </td>
  87. </tr>
  88. </tbody>
  89. </table>
  90. </div>
  91. </div>
  92. </div>
  93. </div>
  94. <div class="container">
  95. <div class="row">
  96. <nav aria-label="Page navigation" id="div1">
  97. <ul class="pagination pager" uib-pagination total-items="totalItems" ng-model="currentPage" ng-change="pageChanged()" max-size="maxSize"
  98. boundary-links="true" rotate="false" num-pages="numPages" items-per-page="itemsPerPage"></ul>
  99. </nav>
  100. </div>
  101. </div>
  102. </div>
  103. <!---ADD / EDIT FORM -------->
  104. <div class="profile_bg" ng-if="formLoad">
  105. <div class="container-fluid pro_head">
  106. <h4 class="text4">{{formtitle}}</h4>
  107. <button type="button" class="close ass-close" ng-click="closeForm()">
  108. <span>×</span>
  109. </button>
  110. </div>
  111. <div class="container-fluid form_bg" ng-if="sideselect.id == 1">
  112. <div class="left-part">
  113. <h4 class="title">Questions</h4>
  114. <select class="pull-right" ng-model="formData.tag" ng-change="changeTag()">
  115. <option value="" selected="">Tag</option>
  116. <option ng-repeat="tag in tagList" value="{{tag.tag}}">{{tag.tag}}</option>
  117. </select>
  118. <!-- <div class="form-group col-sm-6 pull-right">
  119. <input id="total_ques" type="text" class="form-control" ng-model="formData.total_question" required="required" />
  120. <label for="total_ques" class="control-label form-control-placeholder">Total Questions</label>
  121. </div> -->
  122. <div class="w100 left-inn">
  123. <div class="w100" ng-repeat="ques in assessment_question">
  124. <div class="panel-body form-group">
  125. <input type="hidden" class="checkcls" ng-model="ques.selected" value="{{ques.id}}" >
  126. <input type="checkbox" class="checkcls checkbox" id="{{ques.id}}" ng-model="ques.selected" ng-change="quesChange(ques,$index)" required >
  127. <label class="checkbox" for="{{ques.id}}">{{ques.questiontext}}</label>
  128. </div>
  129. <div class="col-sm-5" ng-if="formData.questionList[ques.id]">
  130. <input type="radio" class="radio" name="quesradio{{ques.id}}" ng-model="formData.is_mandatory[ques.id]" id="radio_{{ques.id}}"
  131. value="1" />
  132. <label class="radio" for="radio_{{ques.id}}">Yes, mandatory</label>
  133. <input type="radio" class="radio" name="quesradio{{ques.id}}" ng-model="formData.is_mandatory[ques.id]" id="{{ques.id}}"
  134. value="0" />
  135. <label class="radio" for="{{ques.id}}">No, mandatory</label>
  136. </div>
  137. </div>
  138. </div>
  139. <div class="col-sm-12 text-center fixed_add">
  140. <div class="color_error shake">
  141. <a class="text-left shake">
  142. {{question_tag_error}}</a>
  143. </div>
  144. <!-- <button type="button" class="btn primary fixed" ng-click="closeForm()">Cancel</button> -->
  145. <button type="submit" class="btn primary fixed" ng-click="addQuestions()">Add</button>
  146. </div>
  147. </div>
  148. <form class="form_2 right-part form-scroll" ng-submit="assessmentSubmit()" novalidate>
  149. <div class="form-group col-sm-6 phone">
  150. <input id="topic" type="text" class="form-control" autocomplete="off" ng-model="formData.assessmentname" required="required"
  151. />
  152. <label for="topic" class="control-label form-control-placeholder">{{sideselect.formText[0]}}</label>
  153. <div class="color_error shake" ng-if="assessment_error!=''">
  154. <a class="text-left shake">
  155. {{assessment_error}}</a>
  156. </div>
  157. </div>
  158. <div class="form-group col-sm-6 phone">
  159. <select name="clstime" class="form-control check" ng-model="formData.assessmenttimetype" required select-option>
  160. <option value="" selected="" disabled="disabled">--Select Assessment Type--</option>
  161. <!-- <option value="0">No Timer</option> -->
  162. <option value="1">Timer Assessment</option>
  163. </select>
  164. <div class="color_error shake" ng-if="type_error!=''">
  165. <a class="text-left shake">
  166. {{type_error}}</a>
  167. </div>
  168. </div>
  169. <div class="form-group col-sm-12 phone">
  170. <select name="clstime" class="pull-left form-control check role" ng-model="formData.roleList" required select-option>
  171. <option value="" selected="">Select Role</option>
  172. <option ng-repeat="tag in UserType" value="{{tag.id}}">{{tag.title}}</option>
  173. </select>
  174. <!-- <multiple-autocomplete ng-model="formData.roleList" object-property="rolename" suggestions-arr="role">
  175. </multiple-autocomplete> -->
  176. <div class="color_error shake" ng-if="role_error!=''">
  177. <a class="text-left shake">
  178. {{role_error}}</a>
  179. </div>
  180. </div>
  181. <div class="form-group col-sm-12 phone">
  182. <label for="segment" class="control-label ">Segment</label>
  183. <select id='segment' name="clscategory" ng-model="formData.segment" class="form-control selectbox"
  184. required select-option>
  185. <option value="" selected="" disabled="disabled">{{sideselect.formText[20]}}</option>
  186. <option value="0" >Student Learner</option>
  187. <option value="1" >Parents/Guardian</option>
  188. <option value="2" >Instructor</option>
  189. </select>
  190. <div class="color_error shake" ng-if="segment_error!=''">
  191. <a class="text-left shake">
  192. {{segment_error}}</a>
  193. </div>
  194. </div>
  195. <div class="form-group col-sm-6 phone">
  196. <input type="text" id="start_date" class="form-control datepicker" name="start_date" ng-model="formData.publisheddate" autocomplete="off"
  197. data-isblockdate="true" ng-datepickermin required>
  198. <label for="start_date" class="control-label form-control-placeholder">Start Date</label>
  199. <div class="color_error shake" ng-if="publisheddate_error!=''">
  200. <a class="text-left shake">
  201. {{publisheddate_error}}</a>
  202. </div>
  203. </div>
  204. <div class="form-group col-sm-6 phone">
  205. <input type="text" id="end_date" class="form-control datepicker" name="clsenddate" ng-model="formData.enddate" autocomplete="off"
  206. data-isblockdate="true" ng-datepickermax required>
  207. <label for="end_date" class="control-label form-control-placeholder">End Date</label>
  208. <div class="color_error shake" ng-if="enddate_error!=''">
  209. <a class="text-left shake">
  210. {{enddate_error}}</a>
  211. </div>
  212. </div>
  213. <div class="clearfix"></div>
  214. <div class="form-group col-sm-6 phone">
  215. <!-- <input ng-model="formData.publishedtime" type="time" placeholder="HH:mm" min="00:00" max="24:00" required > -->
  216. <select name="clstime" class="form-control check" ng-model="formData.publishedtime" required select-option>
  217. <option value="" selected="" disabled="disabled">Start Time</option>
  218. <option ng-repeat="assessmenttime in start_time" value={{assessmenttime.value}}>{{assessmenttime.title}}</option>
  219. </select>
  220. <div class="color_error shake" ng-if="starttime_error!=''">
  221. <a class="text-left shake">
  222. {{starttime_error}}</a>
  223. </div>
  224. </div>
  225. <div class="form-group col-sm-6 phone">
  226. <select name="clstime" class="form-control check" ng-model="formData.endtime" required select-option>
  227. <option value="" selected="" disabled="disabled">End Time</option>
  228. <option ng-repeat="endtime in end_time" value={{endtime.value}}>{{endtime.title}}</option>
  229. </select>
  230. <div class="color_error shake" ng-if="endtime_error!=''">
  231. <a class="text-left shake">
  232. {{endtime_error}}</a>
  233. </div>
  234. </div>
  235. <div class="form-group col-sm-6" ng-if="formData.assessmenttimetype==1">
  236. <input id="assessmenttime" class="form-control" ng-model="formData.assessmenttime" autocomplete="off" required="required">
  237. <label for="assessmenttime" class="control-label form-control-placeholder">{{sideselect.formText[1]}}</label>
  238. <div class="color_error shake" ng-if="assessmenttime_error!=''">
  239. <a class="text-left shake">
  240. {{assessmenttime_error}}</a>
  241. </div>
  242. </div>
  243. <div class="form-group col-md-6">
  244. <select name="clstime" class="form-control check" ng-model="formData.randomcond" required select-option>
  245. <option value="" selected="" disabled="disabled">--Select Question Type--</option>
  246. <option value="0">No random question</option>
  247. <option value="1">Random question</option>
  248. </select>
  249. <div class="color_error shake" ng-if="ques_error!=''">
  250. <a class="text-left shake">
  251. {{ques_error}}</a>
  252. </div>
  253. </div>
  254. <div class="form-group col-sm-6 phone">
  255. <input id="attempts" type="text" class="form-control" ng-model="formData.attemptslimit"
  256. />
  257. <label for="attempts" class="control-label form-control-placeholder">Attempts Limit</label>
  258. <div class="color_error shake" ng-if="limit_error!=''">
  259. <a class="text-left shake">
  260. {{limit_error}}</a>
  261. </div>
  262. </div>
  263. <div class="clearfix"></div>
  264. <div class="form-group col-md-6">
  265. <select name="clstime" class="form-control check" ng-model="formData.pass_score" required select-option>
  266. <option value="" selected="" disabled="disabled">{{sideselect.formText[17]}}</option>
  267. <option ng-repeat="score in scoreList">{{score}}</option>
  268. </select>
  269. <label class="control-label form-control-placeholder">Pass Percentage</label>
  270. <div class="color_error shake" ng-if="ques_error!=''">
  271. <a class="text-left shake">
  272. {{ques_error}}</a>
  273. </div>
  274. </div>
  275. <div class="form-group col-sm-12 phone">
  276. <input type="checkbox" class="checkbox" id="notify" ng-disabled="true" ng-change="zoneChanged(obj,$index)" ng-model="formData.assessmentnotification"
  277. value="1" ng-checked="true">
  278. <label class="checkbox" for="notify">{{sideselect.formText[16]}}</label>
  279. <!-- <input id="notify" type="text" class="form-control" ng-model="formData.assessmentnotification" required="required" />
  280. <label for="notify" class="control-label form-control-placeholder">{{sideselect.formText[16]}}</label> -->
  281. <div class="color_error shake" ng-if="notify_error!=''">
  282. <a class="text-left shake">
  283. {{notify_error}}</a>
  284. </div>
  285. </div>
  286. <!-- <div class="w100 region">
  287. <div>
  288. <label>Filters</label>
  289. </div>
  290. <div class="form-group col-sm-4 pt0">
  291. <label>Zone</label>
  292. <div class="region_box scroll">
  293. <div ng-repeat="obj in zoneList track by $index">
  294. <input type="checkbox" class="checkbox" id="{{obj.zone}}" ng-change="zoneChanged(obj,$index)" ng-model="formData.zoneList[obj.zone]"
  295. value="{{obj.zone}}">
  296. <label class="checkbox" for="{{obj.zone}}">{{obj.zone}}</label>
  297. </div>
  298. </div>
  299. </div>
  300. <div class="form-group col-sm-4 pt0" ng-show="stateVisible">
  301. <label>City</label>
  302. <div class="col-sm-12 region_box scroll_bar">
  303. <div ng-repeat="obj in regionList">
  304. <div ng-repeat="child in obj.child">
  305. <input type="checkbox" class="checkbox" id="{{child}}" ng-change="regionChanged(child,$index)" ng-model="formData.regionList[child]"
  306. value="{{child}}">
  307. <label class="checkbox" for="{{child}}">{{child}}</label>
  308. </div>
  309. </div>
  310. </div>
  311. </div>
  312. <div class="form-group col-sm-4 pt0" ng-show="dealerVisible">
  313. <label>Dealer</label>
  314. <div class="col-sm-12 region_box scroll_bar">
  315. <div ng-repeat="obj in dealerList">
  316. <div ng-repeat="child in obj.child">
  317. <input type="checkbox" class="checkbox" id="{{child.dealer_code}}" ng-model="formData.dealerList[child.dealer_code]" value="{{child.dealer_code}}">
  318. <label class="checkbox" for="{{child.dealer_code}}">{{child.dealer_name}}</label>
  319. </div>
  320. </div>
  321. </div>
  322. </div>
  323. </div>
  324. <div class="color_error shake" ng-if="zone_error!=''">
  325. <a class="text-left shake">
  326. {{zone_error}}</a>
  327. </div> -->
  328. <div class="clearfix"></div>
  329. <h4 class="sub-tit" ng-if="questionTempList.length>0">Question List</h4>
  330. <div class="w100 question" ng-if="questionTempList.length>0">
  331. <!-- <label>Question list</label> -->
  332. <!-- <table class="table table-fixed ques-table">
  333. <tbody>
  334. <tr class="table-row remove" ng-repeat="item in random_question track by $index">
  335. <td>{{$index+1}}. {{item}} </td>
  336. <td class='remove' ng-click="onremoveQuestion()">Remove</td>
  337. </tr>
  338. </tbody>
  339. </table> -->
  340. <div class="qlist">
  341. <div class="w100 prel qlist-inn" ng-repeat="list in questionTempList track by $index">
  342. <!-- <input type="checkbox" class="checkbox" id="formData.quesTempList[list.id]" ng-model="formData.quesTempList[list.id]" value="formData.quesTempList[list.id]"> -->
  343. <label class="checkbox" for="formData.questionTempList[list.id]">{{$index+1}}. {{list.questiontext}}</label>
  344. <div class="ion-trash-a question_delete" title="Delete" ng-click='deleteQuestion(list)'></div>
  345. </div>
  346. </div>
  347. </div>
  348. <div class="color_error shake" ng-if="addquestion_error!=''">
  349. <a class="text-left shake">
  350. {{addquestion_error}}</a>
  351. </div>
  352. <div class="col-sm-12 text-center ">
  353. <button type="button" class="btn primary fixed" ng-click="closeForm()">Cancel</button>
  354. <button type="submit" class="btn primary fixed">Submit</button>
  355. </div>
  356. </form>
  357. </div>
  358. </div>
  359. </div>
  360. </div>
  361. </section>