index.html 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665
  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-1.11.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. <script src="js/typeahead.js"></script>
  40. <!-- Angular Material Javascript using RawGit to load directly from `bower-material/master` -->
  41. <script type = "text/javascript" src = "js/angular-material.js"></script>
  42. <script type = "text/javascript" src = "js/angular-adaptive-detection.js"></script>
  43. <script type = "text/javascript" src = "js/app.js"></script>
  44. </head>
  45. <body ng-controller = "mainController">
  46. <div class = "title">
  47. <div
  48. class = "data-loading"
  49. ng-if = "!loaded">
  50. <md-progress-circular
  51. class = "md-warn md-hue-3"
  52. md-mode = "indeterminate"
  53. md-diameter = "25">
  54. </md-progress-circular>
  55. <div class = "data-loading-txt">
  56. Téléchargement des données...
  57. </div>
  58. </div>
  59. <img
  60. src = "img/logo.png"
  61. ng-if = "loaded"
  62. ng-click = "toggleResultPane()"/>
  63. </div>
  64. <div class = "address-bar">
  65. <div class = "input-type">
  66. <input
  67. type = "text"
  68. placeholder = "Pour tester votre éligibilité, merci de saisir une adresse"
  69. ng-model = "address"
  70. ng-focus = "closeRight()"
  71. class = "typeahead"
  72. options = "typeAheadOpts"
  73. datasets = "allAdresses"
  74. typeahead-on-select = "onSubmitAddress($item, $model, $label)"
  75. uib-typeahead = "address for address in suggestLocation($viewValue)"
  76. typeahead-loading = "loadingLocations"
  77. typeahead-no-results = "noResults"
  78. autofocus/>
  79. <div
  80. ng-show = "loadingLocations"
  81. class = "loading-typeahead-results">
  82. <i
  83. class = "glyphicon glyphicon-refresh">
  84. </i>
  85. Recherche en cours...
  86. </div>
  87. <div
  88. ng-show = "noResults"
  89. class = "no-typeahead-results">
  90. <i class = "glyphicon glyphicon-remove"></i>
  91. Aucun résultat trouvé!
  92. </div>
  93. <!--
  94. <input
  95. type="text"
  96. class="form-control"
  97. ng-model="asyncSelected"
  98. placeholder="Locations loaded via $http"
  99. uib-typeahead="address for address in getLocation($viewValue)"
  100. typeahead-loading="loadingLocations"
  101. typeahead-no-results="noResults" />
  102. -->
  103. </div>
  104. <md-button
  105. aria-label = "submit"
  106. ng-click = "suggestionsReady && onSubmitAddress()"
  107. class = "md-raised md-primary">
  108. <i class = "md-search md-2x"></i>
  109. </md-button>
  110. <i class = "md-menu md-2x" ng-click = "toggleRight()"></i>
  111. </div>
  112. <md-sidenav class="md-sidenav-right md-whiteframe-z2" md-component-id="right">
  113. <md-toolbar class="md-theme-light">
  114. <h1 class="md-toolbar-tools">Options</h1>
  115. <md-progress-circular
  116. id = "layer-loading"
  117. class = "md-warn md-hue-3 force-hidden"
  118. md-mode = "indeterminate"
  119. md-diameter = "25">
  120. </md-progress-circular>
  121. </md-toolbar>
  122. <md-content class="md-padding">
  123. <div class = "section-title">
  124. Type de vue
  125. </div>
  126. <md-radio-group ng-model="mapType">
  127. <md-radio-button
  128. value = "Satellite"
  129. ng-click = "changeMap('satellite')"
  130. aria-label = "Satellite">Satellite
  131. </md-radio-button>
  132. <br/>
  133. <md-radio-button
  134. value = "Carte"
  135. ng-click = "changeMap('carte')"
  136. aria-label = "Carte">Carte
  137. </md-radio-button>
  138. </md-radio-group>
  139. <br/>
  140. <br/>
  141. <div class = "section-title">
  142. Montrer les zones de découpages
  143. </div>
  144. <md-checkbox ng-model="view.ftth" aria-label="Fibre optique">Fibre optique</md-checkbox>
  145. <br/>
  146. <md-checkbox ng-model="view.mimo" aria-label="Réseau Mimo">Réseau Mimo</md-checkbox>
  147. <br/>
  148. <md-checkbox ng-model="view.adsl" aria-label="ADSL">ADSL</md-checkbox>
  149. </md-content>
  150. </md-sidenav>
  151. <div id="map"></div>
  152. <div id="result">
  153. <div
  154. layout = "row"
  155. layout-margin
  156. class = "result-container">
  157. <div
  158. flex
  159. flex-order = "1"
  160. class = "result-box">
  161. <div class = "box-header">
  162. <div class = "box-logo">
  163. <img src = "img/fibre.png"/>
  164. </div>
  165. <div class = "box-title-description">
  166. <div class = "box-title">
  167. Fibre optique (FTTH)
  168. </div>
  169. <div class = "box-desc">
  170. 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.
  171. <a
  172. href = "http://www.manchenumerique.fr/Un-citoyen/Equipes-et-connectes/Internet-a-tres-haut-debit#ancre_contenu"
  173. target = "_blank">
  174. En savoir plus
  175. </a>
  176. </div>
  177. </div>
  178. </div>
  179. <div
  180. class = "box-body box-body-ftth"
  181. ng-style = "{'border-color': colors.ftth}">
  182. <hr>
  183. <div
  184. class = "box-eligibilite-title"
  185. ng-if = "results.ftth !== undefined">
  186. éligibilité au pré-raccordement
  187. <span>
  188. <span
  189. ng-if = "results.ftth.date && isInscriptionOpen()"
  190. class = "box-eligibilite-yes">
  191. OUI
  192. </span>
  193. <span
  194. ng-if = "!results.ftth.date || !isInscriptionOpen()"
  195. class = "box-eligibilite-no">
  196. NON
  197. </span>
  198. <div
  199. ng-if = "results.ftth.date && isInscriptionOpen()"
  200. style = "text-align: center; margin-top: 14px;">
  201. <button
  202. type = "button"
  203. class = "btn btn-primary btn-lg"
  204. data-toggle = "modal"
  205. data-backdrop = "static"
  206. data-keyboard = "false"
  207. ng-click = "initPopup()"
  208. data-target = "#mn_inscription">
  209. Inscription
  210. </button>
  211. </div>
  212. </span>
  213. </div>
  214. <div class = "box-eligibilite">
  215. <div
  216. ng-if = "results.ftth !== undefined">
  217. <div
  218. ng-if = "results.ftth"
  219. style = "margin-top: 30px;"
  220. ng-bind-html = "formatDateFTTH(results.ftth.date)">
  221. </div>
  222. <div ng-if = "!results.ftth.date">
  223. Déploiement prévu ultérieurement.
  224. </div>
  225. <div
  226. class = "box-description-more"
  227. ng-if = "!results.ftth._advanced"
  228. style = "margin-bottom: 30px;">
  229. <a
  230. href = ""
  231. ng-click = "results.ftth._advanced = true">
  232. + détails
  233. </a>
  234. </div>
  235. <div
  236. ng-if = "results.ftth._advanced"
  237. ng-bind-html = "formatResults('ftth', results.ftth)">
  238. </div>
  239. </div>
  240. <div
  241. ng-if = "results.ftth === undefined"
  242. class = "box-eligibilite-spinner">
  243. <md-progress-circular class="md-warn md-hue-3" md-mode="indeterminate"></md-progress-circular>
  244. </div>
  245. </div>
  246. </div>
  247. </div>
  248. <div
  249. flex
  250. flex-order = "2"
  251. class = "result-box">
  252. <div class = "box-header">
  253. <div class = "box-logo">
  254. <img src = "img/adsl.png"/>
  255. </div>
  256. <div class = "box-title-description">
  257. <div class = "box-title">
  258. ADSL (téléphone)
  259. </div>
  260. <div class = "box-desc">
  261. 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.
  262. <a
  263. href = "http://www.manchenumerique.fr/Un-citoyen/Equipes-et-connectes/Acceder-a-internet-haut-debit-partout-dans-la-Manche"
  264. target = "_blank">
  265. En savoir plus
  266. </a>
  267. </div>
  268. </div>
  269. </div>
  270. <div
  271. class = "box-body box-body-adsl"
  272. ng-style = "{'border-color': colors.adsl}">
  273. <div class = "box-description-more">
  274. </div>
  275. <hr>
  276. <div
  277. class = "box-eligibilite-title"
  278. ng-if = "results.adsl !== undefined">
  279. éligibilité
  280. <span>
  281. <span
  282. ng-if = "results.adsl && results.adsl.LEGENDE !== 'Non eligible'"
  283. class = "box-eligibilite-yes">
  284. OUI
  285. </span>
  286. <span
  287. ng-if = "!results.adsl || results.adsl.LEGENDE === 'Non eligible'"
  288. class = "box-eligibilite-no">
  289. NON
  290. </span>
  291. </span>
  292. </div>
  293. <div class = "box-eligibilite">
  294. <div
  295. ng-if = "results.adsl !== undefined">
  296. <div
  297. class = "popup-line"
  298. ng-if = "!results.adsl._advanced && results.adsl.LEGENDE && results.adsl.LEGENDE !== 'Non eligible'">
  299. <span class="popup-title">{{results.adsl.LEGENDE}}</span>
  300. </div>
  301. <div
  302. class = "box-description-more"
  303. ng-if = "!results.adsl._advanced"
  304. style = "margin-bottom: 30px;">
  305. <a
  306. href = ""
  307. ng-click = "results.adsl._advanced = true">
  308. + détails
  309. </a>
  310. </div>
  311. <div
  312. ng-if = "results.adsl._advanced"
  313. ng-bind-html = "formatResults('adsl', results.adsl)">
  314. </div>
  315. </div>
  316. <div
  317. ng-if = "results.adsl === undefined"
  318. class = "box-eligibilite-spinner">
  319. <md-progress-circular class="md-warn md-hue-3" md-mode="indeterminate"></md-progress-circular>
  320. </div>
  321. </div>
  322. </div>
  323. </div>
  324. <div
  325. flex
  326. flex-order = "3"
  327. class = "result-box">
  328. <div class = "box-header">
  329. <div class = "box-logo">
  330. <img src = "img/mimo.png"/>
  331. </div>
  332. <div class = "box-title-description">
  333. <div class = "box-title">
  334. Réseau MiMo
  335. </div>
  336. <div class = "box-desc">
  337. Cette technologie hertzienne, déployée par Manche Numérique, permet de desservir les zones non-éligibles à I'ADSL dites "zones blanches" et les zones qui seront déployées ultérieurement par la fibre optique. Le MiMo permet un accès à internet et à un service de téléphonie. Cette technologie offre des débits de l'ordre de 10 Mbit/s descendants et de 3 Mbit/s montants.
  338. <a
  339. href = "http://www.manchenumerique.fr/Un-citoyen/Equipes-et-connectes/MiMo"
  340. target = "_blank">
  341. En savoir plus
  342. </a>
  343. </div>
  344. </div>
  345. </div>
  346. <div
  347. class = "box-body box-body-mimo"
  348. ng-style = "{'border-color': colors.mimo}">
  349. <hr>
  350. <div
  351. class = "box-eligibilite-title"
  352. ng-if = "results.mimo !== undefined">
  353. éligibilité
  354. <span>
  355. <span
  356. ng-if = "results.mimo"
  357. class = "box-eligibilite-yes">
  358. OUI
  359. </span>
  360. <span
  361. ng-if = "!results.mimo"
  362. class = "box-eligibilite-no">
  363. NON
  364. </span>
  365. </span>
  366. </div>
  367. <div class = "box-eligibilite">
  368. <div
  369. ng-if = "results.mimo">
  370. <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>
  371. <div>
  372. Vous pouvez souscrire à une offre d'accès internet auprès de ce FAI:
  373. <p class="bg-info">
  374. <a
  375. href = "https://www.ozone.net/"
  376. target = "_blank">
  377. Ozone.net
  378. </a>
  379. <br/>
  380. <i class ="fa fa-phone"></i>
  381. 0 973 01 1000
  382. </p>
  383. </div>
  384. <div
  385. class = "box-description-more"
  386. ng-if = "!results.mimo._advanced"
  387. style = "margin-bottom: 30px;">
  388. <a
  389. href = ""
  390. ng-click = "results.mimo._advanced = true">
  391. + détails
  392. </a>
  393. </div>
  394. <div
  395. ng-if = "results.mimo_advanced"
  396. ng-bind-html = "formatResults('mimo', results.mimo)">
  397. </div>
  398. </div>
  399. <div
  400. ng-if = "(!results.ftth.date || !isInscriptionOpen()) && (!results.adsl || results.adsl.LEGENDE === 'Non eligible') && !results.mimo && results.mimo !== undefined">
  401. <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'installation du kit satellitaire par un antenniste.</p>
  402. </div>
  403. <div
  404. ng-if = "results.mimo === undefined"
  405. class = "box-eligibilite-spinner">
  406. <md-progress-circular class="md-warn md-hue-3" md-mode="indeterminate"></md-progress-circular>
  407. </div>
  408. </div>
  409. </div>
  410. </div>
  411. </div>
  412. </div>
  413. <!-- Modal -->
  414. <div
  415. class = "modal fade"
  416. id = "mn_inscription"
  417. tabindex = "-1"
  418. role = "dialog"
  419. backdrop = "static"
  420. aria-labelledby = "mn_inscriptionLabel">
  421. <div
  422. class = "modal-dialog"
  423. role = "document">
  424. <div class = "modal-content">
  425. <div class = "modal-header">
  426. <button
  427. type = "button"
  428. class = "close"
  429. data-dismiss = "modal"
  430. aria-label = "Close">
  431. <span aria-hidden = "true">&times;</span>
  432. </button>
  433. <h4
  434. class = "modal-title"
  435. id = "mn_inscriptionLabel">
  436. FORMULAIRE DE DEMANDE DE PRÉ-RACCORDEMENT À LA FIBRE OPTIQUE
  437. </h4>
  438. </div>
  439. <div class = "modal-body">
  440. <div ng-if = "!postForm">
  441. 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.
  442. </div>
  443. <div
  444. class = "mn-form"
  445. ng-if = "!postForm"
  446. ng-include = "'./html/form.html'">
  447. </div>
  448. <div
  449. class = "mn-form-in-progress"
  450. ng-if = "postForm.inProgress">
  451. <i class="fa fa-circle-o-notch fa-spin"></i>
  452. <br/>
  453. Enregistrement en cours...
  454. </div>
  455. <div
  456. class = "mn-form-error"
  457. ng-if = "postForm.error">
  458. <i class="fa fa-exclamation-circle"></i>
  459. <br/>
  460. Error: {{postForm.error}}
  461. </div>
  462. <div
  463. class = "mn-form-ok"
  464. ng-if = "postForm.ok">
  465. <i class="fa fa-check-circle-o"></i>
  466. <br/>
  467. Votre demande a bien été prise en compte. Un mail de confirmation vous a été envoyé.
  468. </div>
  469. </div>
  470. <div class = "modal-footer">
  471. <button
  472. type = "button"
  473. class = "btn btn-default"
  474. data-dismiss = "modal">
  475. Fermer
  476. </button>
  477. <button
  478. type = "button"
  479. ng-if = "!postForm"
  480. ng-click = "ready = true; isFormValid() ? postFormEl() : null"
  481. class = "btn btn-primary">
  482. Valider
  483. </button>
  484. </div>
  485. </div>
  486. </div>
  487. </div>
  488. </body>
  489. </html>