index.html 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619
  1. <!DOCTYPE html>
  2. <html
  3. ng-app = "application"
  4. lang = "en-US">
  5. <head>
  6. <!-- Page title -->
  7. <title>Manche Numérique</title>
  8. <!-- Meta tags -->
  9. <meta charset = "UTF-8">
  10. <meta name = "description" content = "Zeno-Labs">
  11. <meta name = "keywords" content = "HTML,CSS,JavaScript">
  12. <meta name = "author" content = "Francois Beaufils">
  13. <!-- Angulars Material CSS using RawGit to load directly from `bower-material/master` -->
  14. <link rel = "stylesheet" href = "css/angular-material.css">
  15. <link rel = "stylesheet" href = "css/theme.css">
  16. <!-- Favicon-->
  17. <link rel="shortcut icon" href="img/favicon.ico" type="image/x-icon">
  18. <!-- Material design CSS font http://zavoloklom.github.io/material-design-iconic-font/examples.html -->
  19. <link rel="stylesheet" href="css/material-design-iconic-font.min.css">
  20. <link rel="stylesheet" href="css/font-awesome.min.css">
  21. <!-- Roboto font-->
  22. <link href='http://fonts.googleapis.com/css?family=Roboto:500,300,400' rel='stylesheet' type='text/css'>
  23. <!-- Specific CSS -->
  24. <link rel = "stylesheet" href = "css/main.css">
  25. <script type = "text/javascript" src = "https://code.jquery.com/jquery-2.1.3.min.js"></script>
  26. <script type = "text/javascript" src = "https://cdnjs.cloudflare.com/ajax/libs/lodash.js/2.4.1/lodash.min.js"></script>
  27. <script type = "text/javascript" src = "js/proj4js/dist/proj4.js"></script>
  28. <link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.css" />
  29. <script src="http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.js"></script>
  30. <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.9.0/moment-with-locales.min.js"></script>
  31. <!-- Angular Material Dependencies -->
  32. <script type = "text/javascript" src = "http://cdn.jsdelivr.net/hammerjs/2.0.4/hammer.js"></script>
  33. <script type = "text/javascript" src = "http://ajax.googleapis.com/ajax/libs/angularjs/1.3.6/angular.js"></script>
  34. <script type = "text/javascript" src = "http://ajax.googleapis.com/ajax/libs/angularjs/1.3.6/angular-animate.js"></script>
  35. <script type = "text/javascript" src = "http://ajax.googleapis.com/ajax/libs/angularjs/1.3.6/angular-aria.js"></script>
  36. <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/skrollr/0.6.29/skrollr.min.js"></script>
  37. <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css">
  38. <script src="//netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>
  39. <link rel="stylesheet" href="css/angular.typeahead.css" />
  40. <script src="js/bootstrap-typeahead.min.js"></script>
  41. <!-- Angular Material Javascript using RawGit to load directly from `bower-material/master` -->
  42. <script type = "text/javascript" src = "js/angular-material.js"></script>
  43. <script type = "text/javascript" src = "js/angular-adaptive-detection.js"></script>
  44. <script type = "text/javascript" src = "js/app.js"></script>
  45. </head>
  46. <body ng-controller = "mainController">
  47. <div class = "title">
  48. <div
  49. class = "data-loading"
  50. ng-if = "!loaded">
  51. <md-progress-circular
  52. class = "md-warn md-hue-3"
  53. md-mode = "indeterminate"
  54. md-diameter = "25">
  55. </md-progress-circular>
  56. <div class = "data-loading-txt">
  57. Téléchargement des données...
  58. </div>
  59. </div>
  60. <img
  61. src = "img/logo.png"
  62. ng-if = "loaded"
  63. ng-click = "toggleResultPane()"/>
  64. </div>
  65. <div class = "address-bar">
  66. <div class = "input-type">
  67. <input
  68. type = "text"
  69. placeholder = "Pour tester votre éligibilité, merci de saisir une adresse"
  70. ng-model = "address"
  71. ng-focus = "closeRight()"
  72. class = "typeahead"
  73. options = "typeAheadOpts"
  74. datasets = "allAdresses"
  75. ng-keypress = "($event.which === 13) ? onSubmitAddress():0"
  76. autofocus/>
  77. </div>
  78. <md-button
  79. aria-label = "submit"
  80. ng-click = "onSubmitAddress()"
  81. class = "md-raised md-primary">
  82. <i class = "md-search md-2x"></i>
  83. </md-button>
  84. <i class = "md-menu md-2x" ng-click = "toggleRight()"></i>
  85. </div>
  86. <md-sidenav class="md-sidenav-right md-whiteframe-z2" md-component-id="right">
  87. <md-toolbar class="md-theme-light">
  88. <h1 class="md-toolbar-tools">Options</h1>
  89. <md-progress-circular
  90. id = "layer-loading"
  91. class = "md-warn md-hue-3 force-hidden"
  92. md-mode = "indeterminate"
  93. md-diameter = "25">
  94. </md-progress-circular>
  95. </md-toolbar>
  96. <md-content class="md-padding">
  97. <div class = "section-title">
  98. Type de vue
  99. </div>
  100. <md-radio-group ng-model="mapType">
  101. <md-radio-button
  102. value = "Satellite"
  103. ng-click = "changeMap('satellite')"
  104. aria-label = "Satellite">Satellite
  105. </md-radio-button>
  106. <br/>
  107. <md-radio-button
  108. value = "Carte"
  109. ng-click = "changeMap('carte')"
  110. aria-label = "Carte">Carte
  111. </md-radio-button>
  112. </md-radio-group>
  113. <br/>
  114. <br/>
  115. <div class = "section-title">
  116. Montrer les zones de découpages
  117. </div>
  118. <md-checkbox ng-model="view.ftth" aria-label="Fibre optique">Fibre optique</md-checkbox>
  119. <br/>
  120. <md-checkbox ng-model="view.mimo" aria-label="Réseau Mimo">Réseau Mimo</md-checkbox>
  121. <br/>
  122. <md-checkbox ng-model="view.adsl" aria-label="ADSL">ADSL</md-checkbox>
  123. </md-content>
  124. </md-sidenav>
  125. <div id="map"></div>
  126. <div id="result">
  127. <div
  128. layout = "row"
  129. layout-margin
  130. class = "result-container">
  131. <div
  132. flex
  133. flex-order = "1"
  134. class = "result-box">
  135. <div class = "box-header">
  136. <div class = "box-logo">
  137. <img src = "img/fibre.png"/>
  138. </div>
  139. <div class = "box-title-description">
  140. <div class = "box-title">
  141. Fibre optique (FTTH)
  142. </div>
  143. <div class = "box-desc">
  144. Le Ftth (Fiber To The Home) “signifie la fibre optique jusqu'à l'abonné”. Cette technologie présente des atouts majeurs (un débit très fortement augmenté - de l’ordre de 100 Mbit/s - et symétrique) et ouvre des possibilités nouvelles en termes d 'usages numériques.
  145. <a
  146. href = "http://fr.wikipedia.org/wiki/Fibre_optique"
  147. target = "_blank">
  148. En savoir plus
  149. </a>
  150. </div>
  151. </div>
  152. </div>
  153. <div
  154. class = "box-body box-body-ftth"
  155. ng-style = "{'border-color': colors.ftth}">
  156. <hr>
  157. <div class = "box-eligibilite-title">
  158. éligibilité au pré-raccordement
  159. <span>
  160. <span
  161. ng-if = "results.ftth.date"
  162. class = "box-eligibilite-yes">
  163. OUI
  164. </span>
  165. <span
  166. ng-if = "!results.ftth.date"
  167. class = "box-eligibilite-no">
  168. NON
  169. </span>
  170. <button
  171. ng-if = "results.ftth.date"
  172. type = "button"
  173. class = "btn btn-primary btn-lg"
  174. data-toggle = "modal"
  175. ng-click = "initPopup()"
  176. data-target = "#mn_inscription">
  177. Inscription
  178. </button>
  179. </span>
  180. </div>
  181. <div class = "box-eligibilite">
  182. <div
  183. ng-if = "results.ftth !== undefined">
  184. <div
  185. ng-if = "results.ftth"
  186. style = "margin-top: 30px;"
  187. ng-bind-html = "formatDateFTTH(results.ftth.date)">
  188. </div>
  189. <div
  190. class = "box-description-more"
  191. ng-if = "!results.ftth._advanced"
  192. style = "margin-bottom: 30px;">
  193. <a
  194. href = ""
  195. ng-click = "results.ftth._advanced = true">
  196. + détails
  197. </a>
  198. </div>
  199. <div
  200. ng-if = "results.ftth._advanced"
  201. ng-bind-html = "formatResults('ftth', results.ftth)">
  202. </div>
  203. </div>
  204. <div
  205. ng-if = "results.ftth === undefined"
  206. class = "box-eligibilite-spinner">
  207. <md-progress-circular class="md-warn md-hue-3" md-mode="indeterminate"></md-progress-circular>
  208. </div>
  209. </div>
  210. </div>
  211. </div>
  212. <div
  213. flex
  214. flex-order = "2"
  215. class = "result-box">
  216. <div class = "box-header">
  217. <div class = "box-logo">
  218. <img src = "img/adsl.png"/>
  219. </div>
  220. <div class = "box-title-description">
  221. <div class = "box-title">
  222. ADSL (téléphone)
  223. </div>
  224. <div class = "box-desc">
  225. L'ADSL est une technologie permettant l'accès à internet haut débit par le biais de la ligne téléphonique, constituée de fils de cuivre. Cette ligne téléphonique relie votre domicile au central téléphonique de France Télécom.
  226. <a
  227. href = "http://fr.wikipedia.org/wiki/Asymmetric_Digital_Subscriber_Line"
  228. target = "_blank">
  229. En savoir plus
  230. </a>
  231. </div>
  232. </div>
  233. </div>
  234. <div
  235. class = "box-body box-body-adsl"
  236. ng-style = "{'border-color': colors.adsl}">
  237. <div class = "box-description-more">
  238. </div>
  239. <hr>
  240. <div class = "box-eligibilite-title">
  241. éligibilité
  242. <span>
  243. <span
  244. ng-if = "results.adsl"
  245. class = "box-eligibilite-yes">
  246. OUI
  247. </span>
  248. <span
  249. ng-if = "!results.adsl"
  250. class = "box-eligibilite-no">
  251. NON
  252. </span>
  253. </span>
  254. </div>
  255. <div class = "box-eligibilite">
  256. <div
  257. ng-if = "results.adsl !== undefined">
  258. <div
  259. class = "box-eligibilite-none"
  260. ng-if = "!results.adsl">
  261. Non éligible
  262. </div>
  263. <div
  264. class = "popup-line"
  265. ng-if = "!results.adsl._advanced && results.adsl.LEGENDE">
  266. <span class="popup-title">{{results.adsl.LEGENDE}}</span>
  267. </div>
  268. <div
  269. class = "box-description-more"
  270. ng-if = "!results.adsl._advanced"
  271. style = "margin-bottom: 30px;">
  272. <a
  273. href = ""
  274. ng-click = "results.adsl._advanced = true">
  275. + détails
  276. </a>
  277. </div>
  278. <div
  279. ng-if = "results.adsl._advanced"
  280. ng-bind-html = "formatResults('adsl', results.adsl)">
  281. </div>
  282. </div>
  283. <div
  284. ng-if = "results.adsl === undefined"
  285. class = "box-eligibilite-spinner">
  286. <md-progress-circular class="md-warn md-hue-3" md-mode="indeterminate"></md-progress-circular>
  287. </div>
  288. </div>
  289. </div>
  290. </div>
  291. <div
  292. flex
  293. flex-order = "3"
  294. class = "result-box">
  295. <div class = "box-header">
  296. <div class = "box-logo">
  297. <img src = "img/mimo.png"/>
  298. </div>
  299. <div class = "box-title-description">
  300. <div class = "box-title">
  301. Réseau MiMo
  302. </div>
  303. <div class = "box-desc">
  304. MiMo est une technique de multiplexage utilisée dans les réseaux sans fil et les réseaux mobiles permettant des transferts de données à plus longue portée et à plus grande vitesse qu’avec des antennes "classiques".
  305. <a
  306. href = "http://fr.wikipedia.org/wiki/MIMO_(t%C3%A9l%C3%A9communications)"
  307. target = "_blank">
  308. En savoir plus
  309. </a>
  310. </div>
  311. </div>
  312. </div>
  313. <div
  314. class = "box-body box-body-mimo"
  315. ng-style = "{'border-color': colors.mimo}">
  316. <hr>
  317. <div class = "box-eligibilite-title">
  318. éligibilité
  319. <span>
  320. <span
  321. ng-if = "results.mimo"
  322. class = "box-eligibilite-yes">
  323. OUI
  324. </span>
  325. <span
  326. ng-if = "!results.mimo"
  327. class = "box-eligibilite-no">
  328. NON
  329. </span>
  330. </span>
  331. </div>
  332. <div class = "box-eligibilite">
  333. <div
  334. ng-if = "results.mimo">
  335. <p class="bg-warning">Votre éligibilité à la technologie MiMo est théorique. Seul le passage d'un antenniste pourra confirmer votre niveau de signal.</p>
  336. <div>
  337. Vous pouvez souscrire à une offre d'accès internet auprès de ce FAI:
  338. <p class="bg-info">
  339. <a
  340. href = "https://www.ozone.net/"
  341. target = "_blank">
  342. Ozone.net
  343. </a>
  344. <br/>
  345. <i class ="fa fa-phone"></i>
  346. 0 973 01 1000
  347. </p>
  348. </div>
  349. <div
  350. class = "box-description-more"
  351. ng-if = "!results.mimo._advanced"
  352. style = "margin-bottom: 30px;">
  353. <a
  354. href = ""
  355. ng-click = "results.mimo._advanced = true">
  356. + détails
  357. </a>
  358. </div>
  359. <div
  360. ng-if = "results.mimo_advanced"
  361. ng-bind-html = "formatResults('mimo', results.mimo)">
  362. </div>
  363. </div>
  364. <div
  365. ng-if = "!results.ftth.DATE_DEB_TRAV_PREV && !results.adsl && !results.mimo">
  366. <p class="bg-warning">Nous vous invitons à contacter les services de <a href="http://www.manchenumerique.fr" >Manche Numérique</a> qui vous indiqueront la procédure pour une connecion internet par satellite et bénéficier d'une prise en charge de l'installationdu kit satellitaire par un antenniste.</p>
  367. </div>
  368. <div
  369. ng-if = "results.mimo === undefined"
  370. class = "box-eligibilite-spinner">
  371. <md-progress-circular class="md-warn md-hue-3" md-mode="indeterminate"></md-progress-circular>
  372. </div>
  373. </div>
  374. </div>
  375. </div>
  376. </div>
  377. </div>
  378. <!-- Modal -->
  379. <div
  380. class = "modal fade"
  381. id = "mn_inscription"
  382. tabindex = "-1"
  383. role = "dialog"
  384. aria-labelledby="mn_inscriptionLabel">
  385. <div
  386. class = "modal-dialog"
  387. role = "document">
  388. <div class = "modal-content">
  389. <div class = "modal-header">
  390. <button
  391. type = "button"
  392. class = "close"
  393. data-dismiss = "modal"
  394. aria-label = "Close">
  395. <span aria-hidden = "true">&times;</span>
  396. </button>
  397. <h4
  398. class = "modal-title"
  399. id = "mn_inscriptionLabel">
  400. FORMULAIRE DE DEMANDE DE PRÉ-RACCORDEMENT À LA FIBRE OPTIQUE
  401. </h4>
  402. </div>
  403. <div class = "modal-body">
  404. <div ng-if = "!postForm">
  405. Vous souhaitez être pré-raccordé au réseau de fibre optique, nous vous remercions de bien vouloir compléter ce formulaire. Après vérification de votre demande, Manche Numérique se chargera de transmettre votre demande ainsi que vos coordonnées à l’entreprise en charge des travaux de pré-raccordement pour une prise de rendez-vous.
  406. </div>
  407. <div
  408. class = "mn-form"
  409. ng-if = "!postForm"
  410. ng-include = "'./html/form.html'">
  411. </div>
  412. <div
  413. class = "mn-form-in-progress"
  414. ng-if = "postForm.inProgress">
  415. <i class="fa fa-circle-o-notch fa-spin"></i>
  416. <br/>
  417. Enregistrement en cours...
  418. </div>
  419. <div
  420. class = "mn-form-error"
  421. ng-if = "postForm.error">
  422. <i class="fa fa-exclamation-circle"></i>
  423. <br/>
  424. Error: {{postForm.error}}
  425. </div>
  426. <div
  427. class = "mn-form-ok"
  428. ng-if = "postForm.ok">
  429. <i class="fa fa-check-circle-o"></i>
  430. <br/>
  431. Votre demande a bien été prise en compte. Un mail de confirmation vous a été envoyé.
  432. </div>
  433. </div>
  434. <div class = "modal-footer">
  435. <button
  436. type = "button"
  437. class = "btn btn-default"
  438. data-dismiss = "modal">
  439. Fermer
  440. </button>
  441. <button
  442. type = "button"
  443. ng-if = "!postForm"
  444. ng-click = "ready = true; isFormValid() ? postFormEl() : null"
  445. class = "btn btn-primary">
  446. Valider
  447. </button>
  448. </div>
  449. </div>
  450. </div>
  451. </div>
  452. </body>
  453. </html>