PageRenderTime 66ms CodeModel.GetById 18ms RepoModel.GetById 0ms app.codeStats 0ms

/flash.html

https://gitlab.com/eMerzh/pictogo
HTML | 320 lines | 312 code | 7 blank | 1 comment | 0 complexity | 007fc9e9d2de414f6d9ba0f6d9a39946 MD5 | raw file
  1. <div
  2. ng-controller="FlashReadingController as $flash"
  3. class="container"
  4. id="flash-content"
  5. >
  6. <div ng-if="$flash.isStarted" class="flash-word">
  7. <div
  8. ng-if="! $flash.isBetween"
  9. style="font-family: {{ $flash.fontChoice }}; font-size: {{ $flash.fontSize}}px;"
  10. >
  11. {{ $flash.sentenses[$flash.wordIndex].word }}
  12. </div>
  13. <div ng-if="$flash.isBetween" class="flash-between-propositions">
  14. <div ng-if="$flash.flashMode == 'words'" class="row">
  15. <div class="col-xs-4 well" ng-click="$flash.nextPropostion(1)">
  16. {{ $flash.sentenses[$flash.wordIndex].proposition_1 }}
  17. </div>
  18. <div
  19. class="col-xs-4 well col-xs-offset-2"
  20. ng-click="$flash.nextPropostion(2)"
  21. >
  22. {{ $flash.sentenses[$flash.wordIndex].proposition_2 }}
  23. </div>
  24. </div>
  25. <div ng-if="$flash.flashMode == 'pictos'" class="row">
  26. <div class="col-xs-4 well" ng-click="$flash.nextPropostion(1)">
  27. <img
  28. ng-src="{{ $flash.getPictoOrPlaceholder($flash.sentenses[$flash.wordIndex].picto_1) }}"
  29. class="picto-image"
  30. />
  31. </div>
  32. <div
  33. class="col-xs-4 well col-xs-offset-2"
  34. ng-click="$flash.nextPropostion(2)"
  35. >
  36. <img
  37. ng-src="{{ $flash.getPictoOrPlaceholder($flash.sentenses[$flash.wordIndex].picto_2) }}"
  38. class="picto-image"
  39. />
  40. </div>
  41. </div>
  42. <!-- While we pause -->
  43. </div>
  44. <button class="btn btn-primary btn-stop" ng-click="$flash.finish()">
  45. <i class="glyphicon glyphicon-stop"></i>
  46. </button>
  47. </div>
  48. <div ng-if="! $flash.isStarted">
  49. <form class="form-horizontal">
  50. <div class="form-group">
  51. <label class="col-sm-2 control-label">Name</label>
  52. <div class="col-sm-10">
  53. <p class="form-control-static">{{ $flash.name }}</p>
  54. </div>
  55. </div>
  56. <div class="form-group">
  57. <label class="col-sm-2 control-label">Folder</label>
  58. <div class="col-sm-10">
  59. <p class="form-control-static">{{ $flash.folders }}</p>
  60. </div>
  61. </div>
  62. <div class="form-group">
  63. <label class="col-sm-2 control-label">Mode</label>
  64. <div class="col-sm-10">
  65. <div class="btn-group">
  66. <label
  67. class="btn btn-success"
  68. ng-model="$flash.flashMode"
  69. uib-btn-radio="'pause'"
  70. >Rafale</label
  71. >
  72. <label
  73. class="btn btn-success"
  74. ng-model="$flash.flashMode"
  75. uib-btn-radio="'words'"
  76. >Propositions de mots</label
  77. >
  78. <label
  79. class="btn btn-success"
  80. ng-model="$flash.flashMode"
  81. uib-btn-radio="'pictos'"
  82. >Propositions de pictos</label
  83. >
  84. </div>
  85. </div>
  86. </div>
  87. <div class="form-group">
  88. <label class="col-sm-2 control-label"></label>
  89. <div class="col-sm-10">
  90. <table class="table table-striped">
  91. <thead>
  92. <th>Mot</th>
  93. <th ng-if="$flash.flashMode=='words'">Prop. 1</th>
  94. <th ng-if="$flash.flashMode=='words'">Prop. 2</th>
  95. <th ng-if="$flash.flashMode=='pictos'">Picto 1</th>
  96. <th ng-if="$flash.flashMode=='pictos'">Picto 2</th>
  97. <th></th>
  98. </thead>
  99. <tbody>
  100. <tr ng-repeat="sentens in $flash.sentenses track by $index">
  101. <td>
  102. <input ng-model="$flash.sentenses[$index].word" />
  103. </td>
  104. <td ng-if="$flash.flashMode=='words'">
  105. <input ng-model="$flash.sentenses[$index].proposition_1" />
  106. </td>
  107. <td ng-if="$flash.flashMode=='words'">
  108. <input ng-model="$flash.sentenses[$index].proposition_2" />
  109. </td>
  110. <td ng-if="$flash.flashMode=='pictos'">
  111. <img
  112. ng-src="{{ $flash.getPictoOrPlaceholder($flash.sentenses[$index].picto_1) }}"
  113. class="picto-image"
  114. />
  115. <input
  116. type="text"
  117. ng-model="$flash.sentenses[$index].picto_1"
  118. uib-typeahead="searchPic as searchPic.name for searchPic in $flash.getPicto($viewValue)"
  119. typeahead-template-url="customTemplate.html"
  120. typeahead-show-hint="true"
  121. typeahead-min-length="1"
  122. />
  123. </td>
  124. <td ng-if="$flash.flashMode=='pictos'">
  125. <img
  126. ng-src="{{ $flash.getPictoOrPlaceholder($flash.sentenses[$index].picto_2) }}"
  127. class="picto-image"
  128. />
  129. <input
  130. type="text"
  131. ng-model="$flash.sentenses[$index].picto_2"
  132. uib-typeahead="searchPic as searchPic.name for searchPic in $flash.getPicto($viewValue)"
  133. typeahead-template-url="customTemplate.html"
  134. typeahead-show-hint="true"
  135. typeahead-min-length="1"
  136. />
  137. </td>
  138. <td>
  139. <button
  140. type="button"
  141. ng-click="$flash.removeWord($index)"
  142. class="btn btn-default"
  143. >
  144. <i class="glyphicon glyphicon-remove"></i>
  145. </button>
  146. </td>
  147. </tr>
  148. </tbody>
  149. </table>
  150. <button class="btn btn-default" ng-click="$flash.addWord()">
  151. <i class="glyphicon glyphicon-plus"></i>
  152. </button>
  153. </div>
  154. </div>
  155. <div class="form-group">
  156. <label class="col-sm-2 control-label">Affichage (ms)</label>
  157. <div class="col-sm-10">
  158. <input
  159. class="form-control"
  160. type="number"
  161. ng-model="$flash.intervalofDisplay"
  162. min="0"
  163. />
  164. </div>
  165. </div>
  166. <div class="form-group" ng-show="$flash.flashMode=='pause'">
  167. <label class="col-sm-2 control-label">Pause (ms)</label>
  168. <div class="col-sm-10">
  169. <input
  170. class="form-control"
  171. type="number"
  172. ng-model="$flash.intervalBetween"
  173. min="0"
  174. />
  175. </div>
  176. </div>
  177. <div class="form-group">
  178. <label class="col-sm-2 control-label">Police</label>
  179. <div class="col-sm-5">
  180. <div><jd-fontselect stack="$flash.fontChoice" /></div>
  181. <div>
  182. <input
  183. class="form-control"
  184. type="number"
  185. ng-model="$flash.fontSize"
  186. min="1"
  187. />
  188. </div>
  189. </div>
  190. <div class="col-sm-4 col-sm-offset-1 panel panel-default">
  191. <div
  192. style="font-family: {{ $flash.fontChoice }}; font-size: {{ $flash.fontSize}}px;"
  193. >
  194. Logo
  195. </div>
  196. </div>
  197. </div>
  198. <div class="form-group">
  199. <div class="col-sm-offset-2 col-sm-10">
  200. <input type="checkbox" ng-model="$flash.isRandom" /> Aléatoire
  201. <button class="btn btn-primary" ng-click="$flash.start()">
  202. <i class="glyphicon glyphicon-play"></i>
  203. </button>
  204. <button class="btn btn-default" ng-click="$flash.fullScreen()">
  205. <i class="glyphicon glyphicon-fullscreen"></i>
  206. </button>
  207. </div>
  208. </div>
  209. </form>
  210. <div ng-if="$flash.isSessionsLoading()" class="text-mutate">
  211. <i class="glyphicon glyphicon-refresh"></i>
  212. Chargement
  213. </div>
  214. <div ng-if="!$flash.isSessionsLoading()">
  215. <form
  216. ng-submit="$flash.addSession($flash.sessionName, $flash.folders, $main.firebaseUser.uid)"
  217. ng-if="$main.firebaseUser"
  218. class="col-sm-10 col-sm-offset-2"
  219. >
  220. <label class="form-label">
  221. Nom
  222. <input
  223. class="form-control"
  224. ng-model="$flash.sessionName"
  225. placeholder="Ma Session"
  226. />
  227. </label>
  228. <label class="form-label">
  229. Folders
  230. <input
  231. class="form-control"
  232. ng-model="$flash.folders"
  233. placeholder="folder"
  234. />
  235. </label>
  236. <input
  237. type="submit"
  238. value="Enregistrer la Session"
  239. class="btn btn-primary"
  240. />
  241. </form>
  242. <div class="well col-sm-10 col-sm-offset-2">
  243. <ol class="breadcrumb">
  244. <li>
  245. <a
  246. ng-click="$flash.setFolder([])"
  247. ng-if="$flash.parentFolders.length"
  248. >
  249. <i class="glyphicon glyphicon-home"></i> Home
  250. </a>
  251. <span ng-if="! $flash.parentFolders.length">
  252. <i class="glyphicon glyphicon-home"></i> Home
  253. </span>
  254. </li>
  255. <li
  256. ng-repeat="folder in $flash.parentFolders"
  257. ng-class="{active: $last}"
  258. >
  259. <a
  260. ng-click="$flash.setFolder($flash.parentFolders.slice(0, $index-1))"
  261. ng-if="! $last"
  262. >
  263. {{ folder }}
  264. </a>
  265. <span ng-if="$last">{{ folder }}</span>
  266. </li>
  267. </ol>
  268. <ul class="list-group">
  269. <li
  270. class="list-group-item"
  271. ng-repeat="flashSession in $flash.getSessionsByFolder() track by $index"
  272. >
  273. <div
  274. ng-if="! flashSession.mode "
  275. ng-click="$flash.setFolder($flash.parentFolders.concat([flashSession]))"
  276. >
  277. <i class="glyphicon glyphicon-folder-open"></i>
  278. &nbsp;<strong>{{ flashSession }}</strong>
  279. </div>
  280. <div ng-if="flashSession.mode">
  281. <button
  282. class="btn btn-default"
  283. ng-click="$flash.loadSession(flashSession)"
  284. uib-tooltip="Charger"
  285. >
  286. <i class="glyphicon glyphicon-upload"></i>
  287. </button>
  288. {{ flashSession.name }}
  289. <span class="label label-info"
  290. >{{ $flash.flashModes[flashSession.mode]}}</span
  291. >
  292. <span class="text-muted">
  293. ( {{ flashSession.sentenses.length }} mots
  294. <i
  295. class="glyphicon glyphicon-info-sign"
  296. uib-tooltip="{{ $flash.getFirstWords(flashSession.sentenses).join(', ') }}"
  297. ></i>
  298. )
  299. </span>
  300. <button
  301. class="btn btn-link pull-right text-danger"
  302. ng-click="$flash.deleteSession(flashSession)"
  303. ng-if="$main.firebaseUser"
  304. >
  305. <i class="glyphicon glyphicon-remove"></i>
  306. </button>
  307. </div>
  308. </li>
  309. </ul>
  310. </div>
  311. </div>
  312. </div>
  313. </div>