customers.html 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267
  1. <button type="button" class="btn btn-info" ng-click="save()">
  2. <span class="glyphicon glyphicon-floppy-disk"></span> Speichern
  3. </button>
  4. <br/><br/>
  5. <form role="form">
  6. <table class="table table-bordered table-striped" style="width: auto;">
  7. <tr>
  8. <th style="width: 230px;">Kunde</th>
  9. <th style="width: 130px;">Aktiv</th>
  10. <th style="width: 180px;">System</th>
  11. <th style="width: 200px;">Awork-Link</th>
  12. <th style="width: 140px;">Start</th>
  13. <th style="width: 140px;">Ende</th>
  14. <th style="width: 190px;">Erster Bericht</th>
  15. <th style="width: 130px;">Arbeitstage</th>
  16. <th style="width: 250px;">Bundesland</th>
  17. <th style="width: 100px;">PLZ</th>
  18. <th style="width: 200px;">Ort</th>
  19. <th style="width: 220px;">Optionen</th>
  20. </tr>
  21. <tr>
  22. <td><input ng-model="Filter.kunde"/></td>
  23. <td>
  24. <div class="dropdown">
  25. <a class="btn dropdown-toggle" role="button" data-toggle="dropdown">{{domain.aktiv[Filter.aktiv]||'alle'}}&nbsp;<b class="caret"></b></a>
  26. <ul class="dropdown-menu" role="menu">
  27. <li><a ng-click="Filter.aktiv=''">alle</a></li>
  28. <li class="divider"></li>
  29. <li ng-repeat="(key,val) in domain.aktiv"><a ng-click="Filter.aktiv=key">{{val}}</a></li>
  30. </ul>
  31. </div>
  32. </td>
  33. <td>
  34. <div class="dropdown">
  35. <a class="btn dropdown-toggle" role="button" data-toggle="dropdown">{{Filter.system||'alle'}}&nbsp;<b class="caret"></b></a>
  36. <ul class="dropdown-menu" role="menu">
  37. <li><a ng-click="Filter.system=''">alle</a></li>
  38. <li class="divider"></li>
  39. <li ng-repeat="val in domain.system"><a ng-click="Filter.system=val">{{val}}</a></li>
  40. </ul>
  41. </div>
  42. </td>
  43. <td></td>
  44. <td></td>
  45. <td></td>
  46. <td></td>
  47. <td>
  48. <div class="dropdown">
  49. <a class="btn dropdown-toggle" role="button" data-toggle="dropdown">{{Filter.woche||'alle'}}&nbsp;<b class="caret"></b></a>
  50. <ul class="dropdown-menu" role="menu">
  51. <li><a ng-click="Filter.woche=''">alle</a></li>
  52. <li class="divider"></li>
  53. <li ng-repeat="val in domain.woche"><a ng-click="Filter.woche=val">{{val}}</a></li>
  54. </ul>
  55. </div>
  56. </td>
  57. <td>
  58. <div class="dropdown">
  59. <a class="btn dropdown-toggle" role="button" data-toggle="dropdown">{{domain.bundesland[Filter.bundesland]||'alle'}}&nbsp;<b class="caret"></b></a>
  60. <ul class="dropdown-menu" role="menu">
  61. <li><a ng-click="Filter.bundesland=''">alle</a></li>
  62. <li class="divider"></li>
  63. <li ng-repeat="(key,val) in domain.bundesland"><a ng-click="Filter.bundesland=key">{{val}}</a></li>
  64. </ul>
  65. </div>
  66. </td>
  67. <td></td>
  68. <td></td>
  69. <td></td>
  70. </tr>
  71. <tr ng-repeat="zeile in kunden | filter:Filter">
  72. <td><strong>{{zeile.kunde}}</strong></td>
  73. <td><select class="form-control" ng-model="zeile.aktiv" ng-options="k as v for (k,v) in domain.aktiv"></select></td>
  74. <td>
  75. <div class="input-group">
  76. <div class="input-group-addon label-{{zeile.system}}">{{firstChar(zeile.system)}}</div>
  77. <select class="form-control" ng-model="zeile.system" ng-options="v for v in domain.system"></select>
  78. </div>
  79. </td>
  80. <td><select class="form-control" ng-model="zeile.awork_company_id" ng-options="k.awork_company_id as k.kunde_name for k in aworkKunden"></select></td>
  81. <td><input class="form-control" type="time" ng-model="zeile.start_soll"/></td>
  82. <td><input class="form-control" type="time" ng-model="zeile.ende_soll"/></td>
  83. <td><input class="form-control" type="date" ng-model="zeile.erster_status"/></td>
  84. <td><select class="form-control" ng-model="zeile.woche" ng-options="v for v in domain.woche"></select></td>
  85. <td>
  86. <div class="input-group">
  87. <div class="input-group-addon">{{zeile.bundesland}}</div>
  88. <select class="form-control" ng-model="zeile.bundesland" ng-options="k as v for (k,v) in domain.bundesland"></select>
  89. </div>
  90. </td>
  91. <td><input class="form-control" ng-model="zeile.plz"/></td>
  92. <td><input class="form-control" ng-model="zeile.ort"/></td>
  93. <td>
  94. <a ng-href="#/overview/{{zeile.kunde}}/all/all"><button type="button" class="btn btn-default" title="Fehlermeldungen"><span class="glyphicon glyphicon-exclamation-sign"></span></button></a>
  95. <a ng-href="#/stats/{{zeile.kunde}}"><button type="button" class="btn btn-default" title="Statistik"><span class="glyphicon glyphicon-stats"></span></button></a>
  96. <a ng-href="#/config/{{zeile.kunde}}/current"><button type="button" class="btn btn-default" title="Konfiguration"><span class="glyphicon glyphicon-list-alt"></span></button></a>
  97. <a><button type="button" class="btn btn-default" title="Kalender"><span class="glyphicon glyphicon-calendar"></span></button></a>
  98. </td>
  99. </tr>
  100. </table>
  101. </form>
  102. <!-- Modal -->
  103. <div class="modal fade" id="fehler-modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  104. <div class="modal-dialog">
  105. <div class="modal-content">
  106. <div class="modal-header">
  107. <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
  108. <h4 class="modal-title" id="myModalLabel">Fehlerbericht {{current.kunde}} - {{current.datum}}</h4>
  109. </div>
  110. <div class="modal-body">
  111. <pre>
  112. {{current.fehler.logdatei}}
  113. </pre>
  114. <div class="logdatei" ng-repeat="e in current.fehler.fehlerbericht">
  115. <p class="modell" ng-class="{'rot':e.ErrorLevel < 3}">{{e.Type}}: {{e.Name}}</p>
  116. <p class="dateiname">
  117. Dateiname: {{e.Filename}}<br />
  118. Stand: {{dateFormat(e.Modified)}} ({{e.LastChangedDays}} Tage)
  119. </p>
  120. <div ng-show="e.Errors.length > 0">
  121. <ul class="fehler" ng-show="e.Type=='Modell'">
  122. <li ng-repeat="error in e.Errors"><a href="http://wiki.global-cube.de/{{error.Number}}">{{error.Number}}</a>:
  123. ({{error.Level}}) {{error.Message}}</li>
  124. </ul>
  125. <ul class="fehler" ng-show="e.Type=='WebCreator'">
  126. <li ng-repeat="error in e.Errors"><a href="http://wiki.global-cube.de/{{error.Number}}">{{error.Number}}</a>:
  127. ({{error.Level}}) {{error.Message}}</li>
  128. </ul>
  129. <table class="ft" ng-show="e.Type=='Portal'||e.Type=='Versand'">
  130. <tbody ng-repeat="error in e.Errors">
  131. <tr>
  132. <td rowspan="5" class="number">{{$index+1}}
  133. <td>Datei:</td>
  134. <td>{{error.Filename}}</td>
  135. </tr>
  136. <tr>
  137. <td>Stand:</td>
  138. <td>{{error.Modified}}</td>
  139. </tr>
  140. <tr>
  141. <td>Benutzer:</td>
  142. <td>{{error.User}}</td>
  143. </tr>
  144. <tr>
  145. <td>Bericht:</td>
  146. <td>{{error.Report}} (Schicht {{error.Layer}})</td>
  147. </tr>
  148. <tr class="strich">
  149. <td>Empfänger:</td>
  150. <td>{{error.MailTo}}</td>
  151. </tr>
  152. </tbody>
  153. </table>
  154. </div>
  155. </div>
  156. <table class="table table-hover table-bordered">
  157. <tr>
  158. <th>Benutzer</th>
  159. <td>
  160. <input type="text" ng-model="current.fehler.benutzer" />
  161. </td>
  162. </tr>
  163. <tr>
  164. <th>Kommentar</th>
  165. <td>
  166. <label>
  167. <textarea cols="40" rows="5">{{current.fehler.kommentar}}</textarea>
  168. </label>
  169. </td>
  170. </tr>
  171. <tr>
  172. <th>Anzahl Fehler</th>
  173. <td>
  174. <label>
  175. <input type="text" ng-model="current.fehler.anzahl"/>
  176. </label>
  177. </td>
  178. </tr>
  179. <tr>
  180. <th>Bearbeitungsstand</th>
  181. <td>
  182. <label>
  183. <select ng-model="current.fehler.bearbeitet" ng-options="k as v for (k,v) in domain.bearbeitet"></select>
  184. </label>
  185. </td>
  186. </tr>
  187. </table>
  188. </div>
  189. <div class="modal-footer">
  190. <button type="button" class="btn btn-primary" ng-click="saveComments()" data-dismiss="modal">Speichern</button>
  191. </div>
  192. </div>
  193. </div>
  194. </div>
  195. <style>
  196. .table tbody tr td {
  197. vertical-align: middle;
  198. }
  199. .label-0 {
  200. background-color: #aaaaaa;
  201. }
  202. .label-1 {
  203. background-color: #bbbb00;
  204. }
  205. .label-2 {
  206. background-color: #bb8800;
  207. }
  208. .label-3 {
  209. background-color: #bb0000;
  210. }
  211. table.ft {
  212. border: 1px solid #888;
  213. }
  214. table.ft td {
  215. padding: 3px 5px;
  216. margin: 2px;
  217. background-color: #ddd;
  218. }
  219. .logdatei {
  220. margin: 10px 5px 20px 5px;
  221. padding: 0 20px 10px 20px;
  222. background-color: #eee;
  223. border: 1px solid #888;
  224. }
  225. .modell {
  226. font-weight: bold;
  227. background-color: #ccc;
  228. padding: 10px;
  229. margin: 0 -20px;
  230. }
  231. .rot {
  232. background-color: #e88;
  233. }
  234. .number {
  235. font-weight: bold;
  236. background-color: #ccc;
  237. border: 1px solid #888888;
  238. }
  239. .strich {
  240. border-bottom: 1px solid #888888;
  241. }
  242. </style>