├── .dockerignore ├── .gitignore ├── LICENSE ├── README.md ├── app ├── 404.html ├── favicon.ico ├── fonts │ ├── tengwarannatarm-webfont.eot │ ├── tengwarannatarm-webfont.ttf │ ├── tengwarannatarm-webfont.woff │ └── tengwarannatarm-webfont.woff2 ├── images │ ├── ami-logo-small.png │ ├── ami-logo │ │ ├── AMICAFullLogoBlackAndWhite-fr.png │ │ ├── AMICAFullLogoBlackAndWhite.png │ │ ├── AMICAFullLogoRedBackground-fr.png │ │ ├── AMICAFullLogoRedBackground.png │ │ ├── AMICAFullLogoWhiteBackground-fr.png │ │ ├── AMICAFullLogoWhiteBackground.png │ │ ├── AMICALogoBlack AndWhite-fr.png │ │ ├── AMICALogoBlack AndWhite.png.png │ │ └── AMICALogoEmblemOnly.png │ ├── amilogo-aa.png │ ├── amilogo-en.png │ ├── categories │ │ ├── 37.svg │ │ ├── 43.svg │ │ ├── 73.svg │ │ ├── chat.svg │ │ ├── dating-applications.svg │ │ ├── financial.svg │ │ ├── social-media.svg │ │ ├── telecommunications.svg │ │ └── transportation-airlines.svg │ ├── cira-logo.png │ ├── citizen-lab-logo.png │ ├── creativecommons.png │ ├── dsi-logo.png │ ├── facebook.svg │ ├── flags │ │ ├── Canada-flag-48.png │ │ ├── Hong-kong-flag-48.png │ │ ├── Indonesia-flag-48.png │ │ ├── Korea-flag-48.png │ │ └── Philippines-flag-48.png │ ├── how-it-works.png │ ├── iconic │ │ ├── account-login.svg │ │ ├── account-logout.svg │ │ ├── action-redo.svg │ │ ├── action-undo.svg │ │ ├── align-center.svg │ │ ├── align-left.svg │ │ ├── align-right.svg │ │ ├── aperture.svg │ │ ├── arrow-bottom.svg │ │ ├── arrow-circle-bottom.svg │ │ ├── arrow-circle-left.svg │ │ ├── arrow-circle-right.svg │ │ ├── arrow-circle-top.svg │ │ ├── arrow-left.svg │ │ ├── arrow-right.svg │ │ ├── arrow-thick-bottom.svg │ │ ├── arrow-thick-left.svg │ │ ├── arrow-thick-right.svg │ │ ├── arrow-thick-top.svg │ │ ├── arrow-top.svg │ │ ├── audio-spectrum.svg │ │ ├── audio.svg │ │ ├── badge.svg │ │ ├── ban.svg │ │ ├── bar-chart.svg │ │ ├── basket.svg │ │ ├── battery-empty.svg │ │ ├── battery-full.svg │ │ ├── beaker.svg │ │ ├── bell.svg │ │ ├── bluetooth.svg │ │ ├── bold.svg │ │ ├── bolt.svg │ │ ├── book.svg │ │ ├── bookmark.svg │ │ ├── box.svg │ │ ├── briefcase.svg │ │ ├── british-pound.svg │ │ ├── browser.svg │ │ ├── brush.svg │ │ ├── bug.svg │ │ ├── bullhorn.svg │ │ ├── calculator.svg │ │ ├── calendar.svg │ │ ├── camera-slr.svg │ │ ├── caret-bottom.svg │ │ ├── caret-left.svg │ │ ├── caret-right.svg │ │ ├── caret-top.svg │ │ ├── cart.svg │ │ ├── chat.svg │ │ ├── check.svg │ │ ├── chevron-bottom.svg │ │ ├── chevron-left.svg │ │ ├── chevron-right.svg │ │ ├── chevron-top.svg │ │ ├── circle-check.svg │ │ ├── circle-x.svg │ │ ├── clipboard.svg │ │ ├── clock.svg │ │ ├── cloud-download.svg │ │ ├── cloud-upload.svg │ │ ├── cloud.svg │ │ ├── cloudy.svg │ │ ├── code.svg │ │ ├── cog.svg │ │ ├── collapse-down.svg │ │ ├── collapse-left.svg │ │ ├── collapse-right.svg │ │ ├── collapse-up.svg │ │ ├── command.svg │ │ ├── comment-square.svg │ │ ├── compass.svg │ │ ├── contrast.svg │ │ ├── copywriting.svg │ │ ├── credit-card.svg │ │ ├── crop.svg │ │ ├── dashboard.svg │ │ ├── data-transfer-download.svg │ │ ├── data-transfer-upload.svg │ │ ├── delete.svg │ │ ├── dial.svg │ │ ├── document.svg │ │ ├── dollar.svg │ │ ├── double-quote-sans-left.svg │ │ ├── double-quote-sans-right.svg │ │ ├── double-quote-serif-left.svg │ │ ├── double-quote-serif-right.svg │ │ ├── droplet.svg │ │ ├── eject.svg │ │ ├── elevator.svg │ │ ├── ellipses.svg │ │ ├── envelope-closed.svg │ │ ├── envelope-open.svg │ │ ├── euro.svg │ │ ├── excerpt.svg │ │ ├── expand-down.svg │ │ ├── expand-left.svg │ │ ├── expand-right.svg │ │ ├── expand-up.svg │ │ ├── external-link.svg │ │ ├── eye.svg │ │ ├── eyedropper.svg │ │ ├── file.svg │ │ ├── fire.svg │ │ ├── flag.svg │ │ ├── flash.svg │ │ ├── folder.svg │ │ ├── fork.svg │ │ ├── fullscreen-enter.svg │ │ ├── fullscreen-exit.svg │ │ ├── globe.svg │ │ ├── graph.svg │ │ ├── grid-four-up.svg │ │ ├── grid-three-up.svg │ │ ├── grid-two-up.svg │ │ ├── hard-drive.svg │ │ ├── header.svg │ │ ├── headphones.svg │ │ ├── heart.svg │ │ ├── home.svg │ │ ├── image.svg │ │ ├── inbox.svg │ │ ├── infinity.svg │ │ ├── info.svg │ │ ├── italic.svg │ │ ├── justify-center.svg │ │ ├── justify-left.svg │ │ ├── justify-right.svg │ │ ├── key.svg │ │ ├── laptop.svg │ │ ├── layers.svg │ │ ├── lightbulb.svg │ │ ├── link-broken.svg │ │ ├── link-intact.svg │ │ ├── list-rich.svg │ │ ├── list.svg │ │ ├── location.svg │ │ ├── lock-locked.svg │ │ ├── lock-unlocked.svg │ │ ├── loop-circular.svg │ │ ├── loop-square.svg │ │ ├── loop.svg │ │ ├── magnifying-glass.svg │ │ ├── map-marker.svg │ │ ├── map.svg │ │ ├── media-pause.svg │ │ ├── media-play.svg │ │ ├── media-record.svg │ │ ├── media-skip-backward.svg │ │ ├── media-skip-forward.svg │ │ ├── media-step-backward.svg │ │ ├── media-step-forward.svg │ │ ├── media-stop.svg │ │ ├── medical-cross.svg │ │ ├── menu.svg │ │ ├── microphone.svg │ │ ├── minus.svg │ │ ├── monitor.svg │ │ ├── moon.svg │ │ ├── move.svg │ │ ├── musical-note.svg │ │ ├── paperclip.svg │ │ ├── pencil.svg │ │ ├── people.svg │ │ ├── person.svg │ │ ├── phone.svg │ │ ├── pie-chart.svg │ │ ├── pin.svg │ │ ├── play-circle.svg │ │ ├── plus.svg │ │ ├── power-standby.svg │ │ ├── print.svg │ │ ├── project.svg │ │ ├── pulse.svg │ │ ├── puzzle-piece.svg │ │ ├── question-mark.svg │ │ ├── rain.svg │ │ ├── random.svg │ │ ├── reload.svg │ │ ├── resize-both.svg │ │ ├── resize-height.svg │ │ ├── resize-width.svg │ │ ├── rss-alt.svg │ │ ├── rss.svg │ │ ├── script.svg │ │ ├── share-boxed.svg │ │ ├── share.svg │ │ ├── shield.svg │ │ ├── signal.svg │ │ ├── signpost.svg │ │ ├── sort-ascending.svg │ │ ├── sort-descending.svg │ │ ├── spreadsheet.svg │ │ ├── star.svg │ │ ├── sun.svg │ │ ├── tablet.svg │ │ ├── tag.svg │ │ ├── tags.svg │ │ ├── target.svg │ │ ├── task.svg │ │ ├── terminal.svg │ │ ├── text.svg │ │ ├── thumb-down.svg │ │ ├── thumb-up.svg │ │ ├── timer.svg │ │ ├── transfer.svg │ │ ├── trash.svg │ │ ├── underline.svg │ │ ├── vertical-align-bottom.svg │ │ ├── vertical-align-center.svg │ │ ├── vertical-align-top.svg │ │ ├── video.svg │ │ ├── volume-high.svg │ │ ├── volume-low.svg │ │ ├── volume-off.svg │ │ ├── warning.svg │ │ ├── wifi.svg │ │ ├── wrench.svg │ │ ├── x.svg │ │ ├── yen.svg │ │ ├── zoom-in.svg │ │ └── zoom-out.svg │ ├── illustrations │ │ ├── AmiIntro1.png │ │ ├── AmiIntro2.png │ │ ├── AmiIntro3.png │ │ ├── EmailOption.png │ │ └── PostalOption.png │ ├── munk-school.jpg │ ├── offline.jpg │ ├── open-effect-logo.png │ ├── open_media_logo.png │ ├── option-logo.jpg │ ├── placeholder.png │ ├── twitter.svg │ └── whatsapp.svg ├── index.html ├── robots.txt ├── scripts │ ├── app.js │ ├── controllers │ │ ├── company.js │ │ ├── content.js │ │ ├── finish.js │ │ ├── header.js │ │ ├── industry.js │ │ ├── langstyle.js │ │ ├── language.js │ │ ├── questions.js │ │ ├── request.js │ │ ├── stats.js │ │ ├── subscriberInfo.js │ │ ├── unsubscribe.js │ │ └── verify.js │ ├── license.js │ └── modules │ │ ├── AMIRequest │ │ └── amirequest.js │ │ ├── Enter │ │ └── enter.js │ │ ├── ProgressBarNav │ │ └── progressbarnav.js │ │ ├── canvasDoc │ │ └── canvasdoc.js │ │ ├── dataProviderService │ │ └── dataproviderservice.js │ │ ├── formItem │ │ └── formitem.js │ │ ├── ngJSPDF │ │ └── ngjspdf.js │ │ ├── ngTooltip │ │ ├── tooltip-html-unsafe-popup.html │ │ ├── tooltip-popup.html │ │ └── ui-bootstrap-custom-0.10.0.min.js │ │ ├── requestTemplate │ │ └── requesttemplate.js │ │ ├── ui-bootstrap-custom-1.1.2.min.js │ │ └── ui-bootstrap-custom-tpls-1.1.2.min.js ├── styles │ ├── elvish.css │ ├── main.css │ ├── tachyons.css │ └── tachyons.min.css ├── translations │ ├── locale-aa.json │ ├── locale-el-draft.json │ ├── locale-en.json │ ├── locale-fr.json │ └── locale-zh.json └── views │ ├── company.html │ ├── feedback.html │ ├── feedbackModalContent.html │ ├── industry.html │ ├── messages.html │ ├── offline.html │ ├── questions.html │ ├── remoteContent.html │ ├── request.html │ ├── stats.html │ ├── subscriber.html │ ├── tooltip-html-unsafe-popup.html │ ├── tooltip-popup.html │ ├── unsubscribe.html │ └── verify.html ├── config ├── dev.json.default └── prod.json.default ├── package.json └── webpack.config.js /.dockerignore: -------------------------------------------------------------------------------- 1 | node_modules -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist 3 | .tmp 4 | .sass-cache 5 | .DS_Store 6 | app/bower_components 7 | config/dev.json 8 | config/prod.json 9 | app/scripts/config.js 10 | yarn-error.log 11 | yarn.lock -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # THIS PROJECT IS OUT OF DATE 2 | 3 | NOTE: THIS PROJECT IS ARCHIVED AND NEWEST CODE IS UP AT https://github.com/citizenlab/ami 4 | 5 | # AMI Frontend 6 | AMI Frontend is an AngularJS application. The codebase is structured around being either served for development or compiled for production by webpack. 7 | 8 | ## User Interface 9 | The AMI user interface are HTML files stored in app/views. They represent UI Views that contain Angular elements and variable placeholders. 10 | 11 | AMI Frontend styling is done primarily using the [Tachyons Verbose CSS](https://github.com/tachyons-css/tachyons-verbose/) framework. 12 | 13 | ## Internationalization 14 | AMI is set up to be internationalized. For this reason, all user interface strings for AMI for a given language are stored in a translation file. 15 | 16 | You'll then need to create a new JSON file in the `app/translations` folder called locale-{{newLanguageCode}}.json. It's easiest to copy from an existing translation file and start editing from there. 17 | 18 | To add new translated strings to UI Views refer to the [angular translate](https://angular-translate.github.io/) documentation. -------------------------------------------------------------------------------- /app/404.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Page Not Found :( 6 | 141 | 142 | 143 |
144 |

Not found :(

145 |

Sorry, but the page you were trying to view does not exist.

146 |

It looks like this was the result of either:

147 | 151 | 154 | 155 |
156 | 157 | 158 | -------------------------------------------------------------------------------- /app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/citizenlab/ami-frontend/8226849dfdbe7baf9035e540e46054a2185ae462/app/favicon.ico -------------------------------------------------------------------------------- /app/fonts/tengwarannatarm-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/citizenlab/ami-frontend/8226849dfdbe7baf9035e540e46054a2185ae462/app/fonts/tengwarannatarm-webfont.eot -------------------------------------------------------------------------------- /app/fonts/tengwarannatarm-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/citizenlab/ami-frontend/8226849dfdbe7baf9035e540e46054a2185ae462/app/fonts/tengwarannatarm-webfont.ttf -------------------------------------------------------------------------------- /app/fonts/tengwarannatarm-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/citizenlab/ami-frontend/8226849dfdbe7baf9035e540e46054a2185ae462/app/fonts/tengwarannatarm-webfont.woff -------------------------------------------------------------------------------- /app/fonts/tengwarannatarm-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/citizenlab/ami-frontend/8226849dfdbe7baf9035e540e46054a2185ae462/app/fonts/tengwarannatarm-webfont.woff2 -------------------------------------------------------------------------------- /app/images/ami-logo-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/citizenlab/ami-frontend/8226849dfdbe7baf9035e540e46054a2185ae462/app/images/ami-logo-small.png -------------------------------------------------------------------------------- /app/images/ami-logo/AMICAFullLogoBlackAndWhite-fr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/citizenlab/ami-frontend/8226849dfdbe7baf9035e540e46054a2185ae462/app/images/ami-logo/AMICAFullLogoBlackAndWhite-fr.png -------------------------------------------------------------------------------- /app/images/ami-logo/AMICAFullLogoBlackAndWhite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/citizenlab/ami-frontend/8226849dfdbe7baf9035e540e46054a2185ae462/app/images/ami-logo/AMICAFullLogoBlackAndWhite.png -------------------------------------------------------------------------------- /app/images/ami-logo/AMICAFullLogoRedBackground-fr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/citizenlab/ami-frontend/8226849dfdbe7baf9035e540e46054a2185ae462/app/images/ami-logo/AMICAFullLogoRedBackground-fr.png -------------------------------------------------------------------------------- /app/images/ami-logo/AMICAFullLogoRedBackground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/citizenlab/ami-frontend/8226849dfdbe7baf9035e540e46054a2185ae462/app/images/ami-logo/AMICAFullLogoRedBackground.png -------------------------------------------------------------------------------- /app/images/ami-logo/AMICAFullLogoWhiteBackground-fr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/citizenlab/ami-frontend/8226849dfdbe7baf9035e540e46054a2185ae462/app/images/ami-logo/AMICAFullLogoWhiteBackground-fr.png -------------------------------------------------------------------------------- /app/images/ami-logo/AMICAFullLogoWhiteBackground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/citizenlab/ami-frontend/8226849dfdbe7baf9035e540e46054a2185ae462/app/images/ami-logo/AMICAFullLogoWhiteBackground.png -------------------------------------------------------------------------------- /app/images/ami-logo/AMICALogoBlack AndWhite-fr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/citizenlab/ami-frontend/8226849dfdbe7baf9035e540e46054a2185ae462/app/images/ami-logo/AMICALogoBlack AndWhite-fr.png -------------------------------------------------------------------------------- /app/images/ami-logo/AMICALogoBlack AndWhite.png.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/citizenlab/ami-frontend/8226849dfdbe7baf9035e540e46054a2185ae462/app/images/ami-logo/AMICALogoBlack AndWhite.png.png -------------------------------------------------------------------------------- /app/images/ami-logo/AMICALogoEmblemOnly.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/citizenlab/ami-frontend/8226849dfdbe7baf9035e540e46054a2185ae462/app/images/ami-logo/AMICALogoEmblemOnly.png -------------------------------------------------------------------------------- /app/images/amilogo-aa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/citizenlab/ami-frontend/8226849dfdbe7baf9035e540e46054a2185ae462/app/images/amilogo-aa.png -------------------------------------------------------------------------------- /app/images/amilogo-en.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/citizenlab/ami-frontend/8226849dfdbe7baf9035e540e46054a2185ae462/app/images/amilogo-en.png -------------------------------------------------------------------------------- /app/images/categories/37.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | 10 | 14 | 15 | 16 | 18 | 19 | 20 | 23 | 24 | 25 | 27 | 28 | 29 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /app/images/categories/43.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | 10 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /app/images/categories/73.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 15 | 16 | 17 | 19 | 20 | 21 | 23 | 24 | 25 | 27 | 28 | 29 | 31 | 32 | 33 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /app/images/categories/chat.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | 10 | 17 | 18 | 19 | 21 | 22 | 23 | 25 | 26 | 27 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /app/images/categories/dating-applications.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | 10 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /app/images/categories/financial.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | 10 | 12 | 13 | 14 | 16 | 17 | 18 | 20 | 21 | 22 | 24 | 25 | 26 | 28 | 29 | 30 | 33 | 34 | 35 | 37 | 38 | 39 | 41 | 42 | 43 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /app/images/categories/social-media.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | 10 | 15 | 16 | 17 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /app/images/categories/telecommunications.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | 10 | 12 | 13 | 14 | 19 | 20 | 21 | 25 | 26 | 27 | 32 | 33 | 34 | 38 | 39 | 40 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /app/images/categories/transportation-airlines.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | 10 | 22 | 23 | 24 | 26 | 27 | 28 | 30 | 31 | 32 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /app/images/cira-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/citizenlab/ami-frontend/8226849dfdbe7baf9035e540e46054a2185ae462/app/images/cira-logo.png -------------------------------------------------------------------------------- /app/images/citizen-lab-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/citizenlab/ami-frontend/8226849dfdbe7baf9035e540e46054a2185ae462/app/images/citizen-lab-logo.png -------------------------------------------------------------------------------- /app/images/creativecommons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/citizenlab/ami-frontend/8226849dfdbe7baf9035e540e46054a2185ae462/app/images/creativecommons.png -------------------------------------------------------------------------------- /app/images/dsi-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/citizenlab/ami-frontend/8226849dfdbe7baf9035e540e46054a2185ae462/app/images/dsi-logo.png -------------------------------------------------------------------------------- /app/images/facebook.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/images/flags/Canada-flag-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/citizenlab/ami-frontend/8226849dfdbe7baf9035e540e46054a2185ae462/app/images/flags/Canada-flag-48.png -------------------------------------------------------------------------------- /app/images/flags/Hong-kong-flag-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/citizenlab/ami-frontend/8226849dfdbe7baf9035e540e46054a2185ae462/app/images/flags/Hong-kong-flag-48.png -------------------------------------------------------------------------------- /app/images/flags/Indonesia-flag-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/citizenlab/ami-frontend/8226849dfdbe7baf9035e540e46054a2185ae462/app/images/flags/Indonesia-flag-48.png -------------------------------------------------------------------------------- /app/images/flags/Korea-flag-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/citizenlab/ami-frontend/8226849dfdbe7baf9035e540e46054a2185ae462/app/images/flags/Korea-flag-48.png -------------------------------------------------------------------------------- /app/images/flags/Philippines-flag-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/citizenlab/ami-frontend/8226849dfdbe7baf9035e540e46054a2185ae462/app/images/flags/Philippines-flag-48.png -------------------------------------------------------------------------------- /app/images/how-it-works.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/citizenlab/ami-frontend/8226849dfdbe7baf9035e540e46054a2185ae462/app/images/how-it-works.png -------------------------------------------------------------------------------- /app/images/iconic/account-login.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/account-logout.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/action-redo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/action-undo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/align-center.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/align-left.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/align-right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/aperture.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/images/iconic/arrow-bottom.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/arrow-circle-bottom.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/arrow-circle-left.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/arrow-circle-right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/arrow-circle-top.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/arrow-left.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/arrow-right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/arrow-thick-bottom.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/arrow-thick-left.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/arrow-thick-right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/arrow-thick-top.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/arrow-top.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/audio-spectrum.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/audio.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/images/iconic/badge.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/ban.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/bar-chart.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/basket.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/images/iconic/battery-empty.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/battery-full.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/beaker.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/images/iconic/bell.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/bluetooth.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/bold.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/bolt.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/book.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/bookmark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/box.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/briefcase.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/images/iconic/british-pound.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/images/iconic/browser.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/images/iconic/brush.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/images/iconic/bug.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/images/iconic/bullhorn.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/images/iconic/calculator.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/calendar.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/camera-slr.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/images/iconic/caret-bottom.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/caret-left.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/caret-right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/caret-top.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/cart.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/images/iconic/chat.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/check.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/chevron-bottom.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/chevron-left.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/chevron-right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/chevron-top.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/circle-check.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/circle-x.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/clipboard.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/clock.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/cloud-download.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/images/iconic/cloud-upload.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/cloud.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/cloudy.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/images/iconic/code.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/cog.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/images/iconic/collapse-down.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/collapse-left.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/collapse-right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/collapse-up.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/command.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/images/iconic/comment-square.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/compass.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/contrast.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/copywriting.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/credit-card.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/crop.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/dashboard.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/images/iconic/data-transfer-download.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/data-transfer-upload.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/delete.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/dial.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/document.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/dollar.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/images/iconic/double-quote-sans-left.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/double-quote-sans-right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/double-quote-serif-left.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/double-quote-serif-right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/droplet.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/eject.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/elevator.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/ellipses.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/envelope-closed.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/envelope-open.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/euro.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/images/iconic/excerpt.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/expand-down.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/expand-left.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/expand-right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/expand-up.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/external-link.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/eye.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/images/iconic/eyedropper.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/images/iconic/file.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/fire.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/flag.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/flash.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/folder.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/fork.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/images/iconic/fullscreen-enter.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/fullscreen-exit.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/globe.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/images/iconic/graph.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/grid-four-up.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/images/iconic/grid-three-up.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/grid-two-up.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/hard-drive.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/images/iconic/header.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/headphones.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/heart.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/images/iconic/home.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/image.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/inbox.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/infinity.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/images/iconic/info.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/images/iconic/italic.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/justify-center.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/justify-left.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/justify-right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/key.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/laptop.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/layers.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/lightbulb.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/images/iconic/link-broken.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/images/iconic/link-intact.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/images/iconic/list-rich.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/list.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/images/iconic/location.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/lock-locked.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/lock-unlocked.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/loop-circular.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/loop-square.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/loop.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/magnifying-glass.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/images/iconic/map-marker.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/map.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/images/iconic/media-pause.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/media-play.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/media-record.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/media-skip-backward.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/media-skip-forward.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/media-step-backward.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/media-step-forward.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/media-stop.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/medical-cross.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/menu.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/microphone.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/images/iconic/minus.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/monitor.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/moon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/move.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/musical-note.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/paperclip.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/images/iconic/pencil.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/people.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/images/iconic/person.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/phone.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/pie-chart.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/images/iconic/pin.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/play-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/plus.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/power-standby.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/images/iconic/print.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/project.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/pulse.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/puzzle-piece.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/images/iconic/question-mark.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/images/iconic/rain.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/images/iconic/random.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/images/iconic/reload.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/resize-both.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/resize-height.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/resize-width.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/rss-alt.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/rss.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/script.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/share-boxed.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/share.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/shield.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/images/iconic/signal.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/signpost.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/sort-ascending.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/sort-descending.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/spreadsheet.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/star.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/sun.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/images/iconic/tablet.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/tag.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/tags.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/target.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/task.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/terminal.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/text.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/thumb-down.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/thumb-up.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/images/iconic/timer.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/images/iconic/transfer.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/trash.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/underline.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/vertical-align-bottom.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/images/iconic/vertical-align-center.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/images/iconic/vertical-align-top.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/images/iconic/video.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/volume-high.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/images/iconic/volume-low.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/volume-off.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/warning.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/wifi.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/images/iconic/wrench.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/images/iconic/x.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/yen.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/images/iconic/zoom-in.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/images/iconic/zoom-out.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /app/images/illustrations/AmiIntro1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/citizenlab/ami-frontend/8226849dfdbe7baf9035e540e46054a2185ae462/app/images/illustrations/AmiIntro1.png -------------------------------------------------------------------------------- /app/images/illustrations/AmiIntro2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/citizenlab/ami-frontend/8226849dfdbe7baf9035e540e46054a2185ae462/app/images/illustrations/AmiIntro2.png -------------------------------------------------------------------------------- /app/images/illustrations/AmiIntro3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/citizenlab/ami-frontend/8226849dfdbe7baf9035e540e46054a2185ae462/app/images/illustrations/AmiIntro3.png -------------------------------------------------------------------------------- /app/images/illustrations/EmailOption.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/citizenlab/ami-frontend/8226849dfdbe7baf9035e540e46054a2185ae462/app/images/illustrations/EmailOption.png -------------------------------------------------------------------------------- /app/images/illustrations/PostalOption.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/citizenlab/ami-frontend/8226849dfdbe7baf9035e540e46054a2185ae462/app/images/illustrations/PostalOption.png -------------------------------------------------------------------------------- /app/images/munk-school.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/citizenlab/ami-frontend/8226849dfdbe7baf9035e540e46054a2185ae462/app/images/munk-school.jpg -------------------------------------------------------------------------------- /app/images/offline.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/citizenlab/ami-frontend/8226849dfdbe7baf9035e540e46054a2185ae462/app/images/offline.jpg -------------------------------------------------------------------------------- /app/images/open-effect-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/citizenlab/ami-frontend/8226849dfdbe7baf9035e540e46054a2185ae462/app/images/open-effect-logo.png -------------------------------------------------------------------------------- /app/images/open_media_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/citizenlab/ami-frontend/8226849dfdbe7baf9035e540e46054a2185ae462/app/images/open_media_logo.png -------------------------------------------------------------------------------- /app/images/option-logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/citizenlab/ami-frontend/8226849dfdbe7baf9035e540e46054a2185ae462/app/images/option-logo.jpg -------------------------------------------------------------------------------- /app/images/placeholder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/citizenlab/ami-frontend/8226849dfdbe7baf9035e540e46054a2185ae462/app/images/placeholder.png -------------------------------------------------------------------------------- /app/images/twitter.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/images/whatsapp.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/robots.txt: -------------------------------------------------------------------------------- 1 | # robotstxt.org 2 | 3 | User-agent: * 4 | -------------------------------------------------------------------------------- /app/scripts/controllers/content.js: -------------------------------------------------------------------------------- 1 | /************** 2 | 3 | Copyright 2016 Open Effect 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at: 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. 9 | 10 | ***************/ 11 | 12 | class ContentCtrl { 13 | constructor($scope, pageContent, $translate, dataProviderService, urls, $window, NavCollection){ 14 | $window.scrollTo(0,0); 15 | $scope.title = pageContent.title; 16 | $scope.body = pageContent.content; 17 | $scope.selectedNavItem = NavCollection.selectedNavItem; 18 | $scope.lang = $translate.use(); 19 | $scope.$watch(function() { 20 | var newLang = $translate.use(); 21 | console.log("!!", newLang, $scope.lang); 22 | if(newLang !== $scope.lang){ 23 | $scope.lang = newLang; 24 | dataProviderService.getItem(urls.apiPagesURL, "/"+pageContent.ID) 25 | .then(function(data){ 26 | $scope.title = data.title; 27 | $scope.body = data.content; 28 | }); 29 | } 30 | }); 31 | } 32 | } 33 | module.exports = ['$scope', 'pageContent', '$translate', 'dataProviderService', 'urls', '$window', 'NavCollection', ContentCtrl]; -------------------------------------------------------------------------------- /app/scripts/controllers/finish.js: -------------------------------------------------------------------------------- 1 | /************** 2 | 3 | Copyright 2016 Open Effect 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at: 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. 9 | 10 | ***************/ 11 | 12 | 'use strict'; 13 | 14 | AMIApp.controller('FinishCtrl', ['$scope', '$location', 'NavCollection', 'dataProviderService', 'urls', 'AMIRequest', function ($scope, $location, NavCollection, dataProviderService, urls, AMIRequest) { 15 | $scope.$watch(function(){ 16 | $scope.previousStage = NavCollection.previousItem(); 17 | $scope.nextStage = NavCollection.nextItem(); 18 | }); 19 | $scope.previous = function(){ 20 | $location.url($scope.previousStage.id); 21 | } 22 | $scope.next = function(){ 23 | $location.url($scope.nextStage.id); 24 | } 25 | 26 | $scope.url = window.location.origin; 27 | $scope.serverResponse = AMIRequest.serverResponse; 28 | 29 | $scope.$watch('AMIRequest.serverResponse', function(){ 30 | $scope.serverResponse = AMIRequest.serverResponse; 31 | }); 32 | }]); -------------------------------------------------------------------------------- /app/scripts/controllers/header.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | class HeaderCtrl { 4 | constructor($scope, $translate) { 5 | $translate.onReady().then(function(){ 6 | $scope.$watch(function(){ 7 | $scope.lang = $translate.use(); 8 | }); 9 | }); 10 | } 11 | } 12 | 13 | module.exports = ["$scope", "$translate", HeaderCtrl]; -------------------------------------------------------------------------------- /app/scripts/controllers/industry.js: -------------------------------------------------------------------------------- 1 | /************** 2 | 3 | Copyright 2016 Open Effect 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at: 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. 9 | 10 | ***************/ 11 | 12 | 'use strict'; 13 | class IndustryCtrl { 14 | constructor($scope, $timeout, $location, $window, NavCollection, industries, industries_en, AMIRequest, dataProviderService, urls, $translate, envOptions) { 15 | $scope.jurisdiction = AMIRequest.get('jurisdiction'); 16 | AMIRequest.set('industries_en', industries_en); 17 | $window.scrollTo(0,0) 18 | $scope.previous = function(){ 19 | $location.path('/'); 20 | } 21 | $scope.nextIsLoading = false; 22 | // $scope.companies = companies; 23 | $scope.industries = industries; 24 | 25 | if(AMIRequest.has('industry')){ 26 | $scope.industry = AMIRequest.get('industry'); 27 | $scope.isIndustrySelected = true; 28 | } 29 | 30 | $scope.selectIndustry = function(industry){ 31 | $scope.industry = industry; 32 | $scope.isIndustrySelected = true; 33 | $location.path(NavCollection.nextItem().id); 34 | } 35 | 36 | $scope.$watch('industry', function(oldIndustry, newIndustry){ 37 | if(newIndustry === null){ 38 | AMIRequest.drop('industry'); 39 | } 40 | if($scope.industry && $scope.industry.id){ 41 | AMIRequest.set('industry', $scope.industry); 42 | $scope.isIndustrySelected = true; 43 | //NavCollection.unRestrict('operator'); 44 | } 45 | else{ 46 | AMIRequest.drop('industry'); 47 | $scope.isIndustrySelected = false; 48 | //NavCollection.restrict('operator'); 49 | } 50 | }); 51 | $scope.lang = $translate.use(); 52 | 53 | $scope.$watch(function(){ 54 | $scope.nextStage = NavCollection.nextItem(); 55 | var newLang = $translate.use(); 56 | console.log("!!", newLang, $scope.lang); 57 | if(newLang !== $scope.lang){ 58 | $scope.lang = newLang; 59 | var params = {"per_page": 100} 60 | dataProviderService.getItem(urls.apiURL(), "/jurisdictions/" + envOptions.jurisdictionID + "/industries") 61 | .then(function(industries){ 62 | $scope.industries = industries; 63 | }); 64 | } 65 | }); 66 | } 67 | } 68 | module.exports = ['$scope', '$timeout', '$location', '$window', 'NavCollection', 'industries', 'industries_en', 'AMIRequest', 'dataProviderService', 'urls', '$translate', 'envOptions', IndustryCtrl]; -------------------------------------------------------------------------------- /app/scripts/controllers/langstyle.js: -------------------------------------------------------------------------------- 1 | class LangStyleCtrl { 2 | constructor($scope, $translate) { 3 | 4 | $scope.lang = $translate.use(); 5 | 6 | $scope.$watch(function() { 7 | $scope.lang = $translate.use(); 8 | }); 9 | 10 | } 11 | } 12 | module.exports = ["$scope", "$translate", LangStyleCtrl]; -------------------------------------------------------------------------------- /app/scripts/controllers/language.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | class LanguageCtrl { 4 | constructor($scope, $timeout, $location, $window, $translate, AMIRequest, $cookies, urls, envOptions) { 5 | 6 | $scope.languages = envOptions.supportedLanguages; 7 | 8 | $scope.lang = $scope.languages[$translate.use()]; 9 | 10 | $scope.selectLanguage = function(lang){ 11 | $translate.use(lang.languageCode); 12 | urls.setLanguageCode(lang.languageCode); 13 | moment.lang(lang.languageCodeMoment); 14 | $cookies.put('languageCode', lang.languageCode); 15 | AMIRequest.drop('operator'); 16 | } 17 | $scope.$watch(function() { 18 | $scope.showControls = (AMIRequest.hierarchy.indexOf($location.path().substring(1)) <= 1); 19 | $scope.lang = $scope.languages[$translate.use()]; 20 | }); 21 | } 22 | } 23 | 24 | module.exports = ["$scope", "$timeout", "$location", "$window", "$translate", "AMIRequest", "$cookies", "urls", "envOptions", LanguageCtrl]; -------------------------------------------------------------------------------- /app/scripts/controllers/questions.js: -------------------------------------------------------------------------------- 1 | /************** 2 | 3 | Copyright 2016 Open Effect 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at: 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. 9 | 10 | ***************/ 11 | 12 | 'use strict'; 13 | class QuestionsCtrl { 14 | constructor ($scope, $timeout, $location, $window, NavCollection, components, components_en, AMIRequest, dataProviderService, urls) { 15 | AMIRequest.set('components_en', components_en); 16 | $window.scrollTo(0,0) 17 | $scope.$watch(function(){ 18 | $scope.previousStage = NavCollection.previousItem(); 19 | $scope.nextStage = NavCollection.nextItem(); 20 | }); 21 | $scope.previous = function(){ 22 | $location.url($scope.previousStage.id); 23 | } 24 | $scope.next = function(){ 25 | $location.url($scope.nextStage.id); 26 | } 27 | var componentType = function(id){ 28 | return { 29 | id: id, 30 | items: [], 31 | toAdd: null, 32 | toUpdate: null, 33 | activated: false, 34 | add: function(title, description, editable, selected, serverID, weight){ 35 | var isCollapsed = false; 36 | if(typeof selected == "undefined"){ 37 | selected = true; 38 | } 39 | if(typeof editable == "undefined"){ 40 | editable = false; 41 | } 42 | if(this.verify(title)){ 43 | if(description){ 44 | isCollapsed = true; 45 | } 46 | this.items.push(newComponent(title, description, editable, selected, isCollapsed, serverID, weight)); 47 | } 48 | }, 49 | new: function(){ 50 | if(this.verify(this.toAdd)){ 51 | this.items.push(newComponent(this.toAdd, null, true, true)); 52 | delete this.toAdd; 53 | } 54 | }, 55 | verify: function(item){ 56 | return ( 57 | item 58 | && item !== "" 59 | && ( 60 | this.items.indexOf(item) === -1 61 | )); 62 | }, 63 | update: function(item, index){ 64 | //if(this.verify(item) && this.items[index] !== item){ 65 | this.items[index] = item; 66 | delete this.toUpdate; 67 | //} 68 | }, 69 | startUpdate: function(index){ 70 | this.toUpdate = this.items[index]; 71 | }, 72 | delete: function(index){ 73 | this.items.splice(index, 1); 74 | }, 75 | hasSelectedItems: function(){ 76 | for (var i = this.items.length - 1; i >= 0; i--) { 77 | if(this.items[i].selected){ 78 | return true; 79 | } 80 | }; 81 | return false; 82 | }, 83 | activate: function(){ 84 | this.activated = true; 85 | } 86 | } 87 | } 88 | 89 | var newComponent = function(data, description, editable, selected, isCollapsed, serverID, weight){ 90 | var component = { 91 | data: data, 92 | description: description, 93 | editable: editable, 94 | selected: selected, 95 | isCollapsed: isCollapsed, 96 | serverID: serverID, 97 | weight: weight 98 | } 99 | return component; 100 | } 101 | 102 | $scope.operator = AMIRequest.get('operator'); 103 | 104 | if(AMIRequest.has('components')){ 105 | $scope.components = AMIRequest.get('components'); 106 | } 107 | else{ 108 | $scope.components = { 109 | questions: new componentType('questions'), 110 | data: new componentType('data'), 111 | dataBanks: new componentType('dataBanks') 112 | }; 113 | for(var i=0; i < components.length; i++){ 114 | console.log("component!", components[i].id); 115 | if(components[i].meta.component_type == "Data"){ 116 | $scope.components['data'].add(components[i].meta.component_value, null, false, true, components[i].id, components[i].weight); 117 | $scope.components['data'].activate(); 118 | } 119 | else if(components[i].meta.component_type == "Question"){ 120 | $scope.components['questions'].add(components[i].meta.component_value, null, false, true, components[i].id, components[i].weight); 121 | $scope.components['questions'].activate(); 122 | } 123 | else if(components[i].meta.data_bank_number){ 124 | $scope.components['dataBanks'].add(components[i].title + " (" + components[i].meta.data_bank_number + ")", components[i].content, false, false, components[i].id, components[i].weight); 125 | $scope.components['dataBanks'].activate(); 126 | } 127 | } 128 | 129 | var validateComponentSelection = function(){ 130 | if(($scope.components['data'].hasSelectedItems() || !$scope.components['data'].activated) && ($scope.components['questions'].hasSelectedItems() || !$scope.components['questions'].activated) && ($scope.components['dataBanks'].hasSelectedItems() || !$scope.components['dataBanks'].activated)){ 131 | AMIRequest.set('components', $scope.components); 132 | } 133 | else{ 134 | AMIRequest.drop('components'); 135 | } 136 | } 137 | 138 | $scope.$watch(function(){ 139 | $scope.nextStage = NavCollection.next; 140 | console.log("navigated, next stage assigned"); 141 | validateComponentSelection(); 142 | }); 143 | $scope.nextStage = NavCollection.next; 144 | console.log("navigated stage", $scope.nextStage.id); 145 | } 146 | } 147 | } 148 | module.exports = ['$scope', '$timeout', '$location', '$window', 'NavCollection', 'components', 'components_en', 'AMIRequest', 'dataProviderService', 'urls', QuestionsCtrl] -------------------------------------------------------------------------------- /app/scripts/controllers/stats.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | class StatsCtrl { 3 | constructor($scope, total, byDate, byCompany, operators, $translate, dataProviderService, urls, $window){ 4 | var companyLabels = []; 5 | var companyData = []; 6 | var dateLabels = []; 7 | var dateData = []; 8 | 9 | $window.scrollTo(0,0); 10 | $scope.total = total; 11 | $scope.options = { 12 | animation: false 13 | } 14 | $scope.operators = operators; 15 | console.log(operators); 16 | _.each( byCompany, function( val, key ) { 17 | if ( val ) { 18 | var operator_id = parseInt(val["operator_id"]); 19 | console.log(operator_id); 20 | var operator = _.findWhere(operators, {id: operator_id}); 21 | try{ 22 | var title = operator.title; 23 | companyLabels.push(title); 24 | companyData.push(val["count"]); 25 | } 26 | catch(e){ 27 | console.log("ignoring custom company from stats"); 28 | } 29 | } 30 | }); 31 | 32 | _.each( byDate, function( val, key ) { 33 | if ( val ) { 34 | dateLabels.push(val["request_date"]); 35 | dateData.push(val["count"]); 36 | } 37 | }); 38 | 39 | $scope.byCompany = { 40 | labels: companyLabels, 41 | data: [companyData] 42 | }; 43 | $scope.byDate = { 44 | labels: dateLabels, 45 | data: [dateData] 46 | }; 47 | } 48 | }; 49 | module.exports = ['$scope', 'total', 'byDate', 'byCompany', 'operators', '$translate', 'dataProviderService', 'urls', '$window', StatsCtrl]; -------------------------------------------------------------------------------- /app/scripts/controllers/subscriberInfo.js: -------------------------------------------------------------------------------- 1 | /************** 2 | 3 | Copyright 2016 Open Effect 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at: 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. 9 | 10 | ***************/ 11 | class SubscriberCtrl { 12 | constructor ($scope, $location, $window, NavCollection, AMIRequest, identifiers, identifiers_en, urls, dataProviderService, $translate) { 13 | var subject_en = { 14 | basic_personal_info: identifiers_en['basic_personal_info'], 15 | service_identifiers: identifiers_en 16 | } 17 | delete subject_en.service_identifiers['basic_personal_info']; 18 | for(i in subject_en.service_identifiers){ 19 | if(typeof subject_en.service_identifiers[i] == "undefined"){ 20 | subject_en.service_identifiers[i] = {}; 21 | } 22 | } 23 | AMIRequest.set('subject_en', subject_en); 24 | $window.scrollTo(0,0); 25 | $scope.nextIsLoading = false; 26 | 27 | $scope.$watch(function(){ 28 | $scope.previousStage = NavCollection.previousItem(); 29 | $scope.nextStage = NavCollection.nextItem(); 30 | }); 31 | $scope.previous = function(){ 32 | $location.url($scope.previousStage.id); 33 | } 34 | $scope.next = function(){ 35 | $location.url($scope.nextStage.id); 36 | } 37 | if(!AMIRequest.has('services')){ 38 | $scope.previous(); 39 | return; 40 | } 41 | $scope.operator = AMIRequest.get('operator'); 42 | $scope.services = AMIRequest.get('services'); 43 | if(identifiers){ 44 | if(AMIRequest.has('subject')){ 45 | $scope.subject = AMIRequest.get('subject'); 46 | } 47 | else{ 48 | $scope.subject = {}; 49 | $scope.subject.basic_personal_info = {}; 50 | $scope.subject.service_identifiers = {}; 51 | console.log("subject overwrite", $scope.subject); 52 | AMIRequest.set('subject', $scope.subject); 53 | } 54 | console.log($scope.subject); 55 | if(identifiers['basic_personal_info']){ 56 | $scope.basic_identifiers = identifiers['basic_personal_info']; 57 | } 58 | $scope.service_identifiers = identifiers; 59 | delete $scope.service_identifiers['basic_personal_info']; 60 | for(i in $scope.service_identifiers){ 61 | if(typeof $scope.subject.service_identifiers[i] == "undefined"){ 62 | $scope.subject.service_identifiers[i] = {}; 63 | } 64 | } 65 | } 66 | $scope.$on("$destroy", function(){ 67 | $scope.submit(); 68 | }); 69 | var emailFieldREGEX; 70 | // $translate('subject.emailField').then(function (emailField) { 71 | emailFieldREGEX = new RegExp(/email|courriel/i); 72 | // }); 73 | 74 | var findEmail = function(subject){ 75 | var email = null; 76 | var keys; 77 | for(var property in subject.basic_personal_info){ 78 | console.log(subject.basic_personal_info[property]); 79 | if(subject.basic_personal_info[property]['title'].toLowerCase().match(emailFieldREGEX)){ 80 | email = subject.basic_personal_info[property]['value']; 81 | console.log(email) 82 | } 83 | if(email){ 84 | break; 85 | } 86 | } 87 | return email; 88 | } 89 | 90 | $scope.hasEmailField = (typeof findEmail($scope.service_identifiers) !== "undefined"); 91 | 92 | $scope.email = {}; 93 | $scope.rateLimited = false; 94 | if(AMIRequest.has('statistics')){ 95 | $scope.statistics = AMIRequest.get('statistics'); 96 | } 97 | else{ 98 | $scope.statistics = true; 99 | } 100 | if(AMIRequest.has('subscribe')){ 101 | $scope.subscribe = AMIRequest.get('subscribe'); 102 | } 103 | else{ 104 | $scope.subscribe = false; 105 | } 106 | $scope.anon = AMIRequest.getAnon(); 107 | $scope.servicelist = ''; 108 | for(var i=0; i < $scope.anon.services.length; i++){ 109 | var dividerChar = ""; 110 | if(i == $scope.anon.services.length - 1){ 111 | dividerChar = "" 112 | } 113 | else{ 114 | dividerChar = ", "; 115 | } 116 | $scope.servicelist = $scope.servicelist + $scope.anon.services[i].title + dividerChar; 117 | } 118 | 119 | if(AMIRequest.has('operator')){ 120 | $scope.company = AMIRequest.get('operator'); 121 | } 122 | 123 | $scope.$watch('subject', function(newVal, oldVal){ 124 | console.log("subject", newVal); 125 | AMIRequest.set('subject', newVal); 126 | }); 127 | 128 | $scope.$watch(function(){ 129 | AMIRequest.set('statistics', $scope.statistics); 130 | if($scope.statistics === false){ 131 | $scope.subscribe = false; 132 | } 133 | AMIRequest.set('subscribe', $scope.subscribe); 134 | $scope.nextStage = NavCollection.nextItem(); 135 | if(AMIRequest.has('subject')){ 136 | if(findEmail(AMIRequest.get('subject'))){ 137 | $scope.hasEmail = true; 138 | $scope.email.address = findEmail(AMIRequest.get('subject')); 139 | } 140 | } 141 | else{ 142 | $scope.hasEmail = false; 143 | } 144 | }); 145 | 146 | $scope.submit = function(){ 147 | if(!AMIRequest.get('statistics')){ 148 | return; 149 | } 150 | var payload = { 151 | data: $scope.anon, 152 | subscribe: AMIRequest.get('subscribe'), 153 | language: $translate.use(), 154 | email: false 155 | } 156 | if(AMIRequest.get('subscribe')){ 157 | payload.email = $scope.email; 158 | } 159 | AMIRequest.serverResponse = {}; 160 | AMIRequest.serverIsLoading = true; 161 | dataProviderService.postItem(urls.enrollmentURL(), "/enroll/", {}, payload) 162 | .then(function(response){ 163 | AMIRequest.serverResponse.serverIsLoading = false; 164 | AMIRequest.serverResponse.serverError = false; 165 | AMIRequest.serverResponse.serverDown = false; 166 | AMIRequest.serverResponse.response = response.title; 167 | AMIRequest.serverResponse.responseStatuses = {}; 168 | AMIRequest.serverResponse.responseStatuses[response.title.statusCode] = true; 169 | AMIRequest.serverResponse.success = true; 170 | }, function(response){ 171 | AMIRequest.serverResponse.serverIsLoading = false; 172 | AMIRequest.serverResponse.serverError = true; 173 | if(response.status === -1){ 174 | AMIRequest.serverResponse.serverDown = true; 175 | } 176 | else{ 177 | AMIRequest.serverResponse.serverDown = false; 178 | } 179 | if(response.status === 429){ 180 | AMIRequest.serverResponse.rateLimited = true; 181 | } 182 | }); 183 | } 184 | $scope.submitAndNext = function(){ 185 | $scope.next(); 186 | } 187 | } 188 | } 189 | module.exports = ['$scope', '$location', '$window', 'NavCollection', 'AMIRequest', 'identifiers', 'identifiers_en', 'urls', 'dataProviderService', '$translate', SubscriberCtrl] -------------------------------------------------------------------------------- /app/scripts/controllers/unsubscribe.js: -------------------------------------------------------------------------------- 1 | /************** 2 | 3 | Copyright 2016 Open Effect 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at: 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. 9 | 10 | ***************/ 11 | 12 | class UnsubscribeCtrl { 13 | constructor ($scope, AMIRequest, NavCollection, $location, unsubscribeStatus){ 14 | $scope.response = unsubscribeStatus.message; 15 | $scope.responseStatuses = {}; 16 | $scope.responseStatuses[unsubscribeStatus.message.statusCode] = true; 17 | } 18 | } 19 | module.exports = ['$scope', 'AMIRequest', 'NavCollection', '$location', 'unsubscribeStatus', UnsubscribeCtrl]; -------------------------------------------------------------------------------- /app/scripts/controllers/verify.js: -------------------------------------------------------------------------------- 1 | /************** 2 | 3 | Copyright 2016 Open Effect 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at: 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. 9 | 10 | ***************/ 11 | 12 | class VerificationCtrl { 13 | constructor($scope, AMIRequest, NavCollection, $location, verificationStatus){ 14 | console.log(verificationStatus); 15 | $scope.response = verificationStatus.message; 16 | $scope.hi = "hi"; 17 | $scope.responseStatuses = {}; 18 | $scope.responseStatuses[verificationStatus.message.statusCode] = true; 19 | } 20 | } 21 | module.exports = ['$scope', 'AMIRequest', 'NavCollection', '$location', 'verificationStatus', VerificationCtrl]; -------------------------------------------------------------------------------- /app/scripts/license.js: -------------------------------------------------------------------------------- 1 | /************ 2 | @license 3 | 4 | Copyright 2016 Open Effect 5 | 6 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at: 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. 11 | 12 | Source code available here: https://github.com/digitalstewards/pirs 13 | 14 | 15 | Here's a PIRANHA all up in your business!! 16 | 17 | 'kx 18 | ';cxK0KO' 19 | ;k0O00KXXK0x, 20 | ,k0K00KXX000XXK. 21 | .',;kK0000KK000KKXWXkO. 22 | ':ldxdoox0KKXXK000000KXK00Xo 23 | ,lddoddxxdddddxKOk0KXK000000K00. 24 | cdccxKXXXXXXK0OdollccdOKXK00KKX0; 25 | .dolooKXW0OkkkdooolollllcldOKXKXXO, 26 | .dodxlkKWO;....:oOxolodllllcclxOKKKc 27 | .xolxcl0XWl''.. .00dl:oocodl;::lkX: :k 28 | .,lOxololOXWO,.',,. dMXol:cxl:dd:;:lkKx: :OKx 29 | xkxxkkxokXKNXdXx. .. .XMNdcl;;dd;l0c;;lxOx00O; l0K0l. 30 | :KxkdloooxO00l'. .'. :00kolclc;;ko;lx;:lc:coOK; :OKXN0xo 31 | l:;lcOxkocclokOxxo;cdxllcclllc;:Oc;;x,;;coxlldd..'l0K00K000d 32 | o:: ocl:o0koccldxkloc:::;,:c,,,lo,,:d;ooOKXo;cdkxxXK0KKXXNKc 33 | kl .xc' clxd0koccc,llc;cl,:;';;:,';k0oook0Oc;:ccloXK000000Kc 34 | d. .x: cl.;ookKxc:c:::oxo::;;d:;,lOOk000Ko;:oOOodNK000000X; 35 | ;. :c :d: xKKdllccccldxddkc;cOOOkkkk0o:cdOxdON0000000N' 36 | . .k. ld'00ollcccccxKOl:OK0KXNNKxlclxc'cKX000KXN0c 37 | .: oOkdlllccld0KxkO0K000KOlldd' .OX000KXX; 38 | .,.lxdkOOOXklkOdodOOkkox0: ,OK000X: 39 | ,0xolloKkdxodxxlokKXKx;. ,0NNN, 40 | ...ddkccccd0dolldOOxxOkkxdl: ;kd. 41 | . .x,l0ccllk0xkoldOx: . 42 | . lc.'xKolloO0xOxkkl. 43 | . .d,.cdlkllldOkO0o:. 44 | dl. 'ol:d0llokkkc. 45 | .x, :d:,;cdklldxxc. 46 | .ol;,,cc:kdlodd: 47 | .cl:::kKdoOd, 48 | .;coxddc. 49 | oXKk. 50 | 51 | 52 | 53 | ************/ -------------------------------------------------------------------------------- /app/scripts/modules/AMIRequest/amirequest.js: -------------------------------------------------------------------------------- 1 | /************** 2 | 3 | Copyright 2015 Open Effect 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at: 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. 9 | 10 | ***************/ 11 | 12 | 'use strict'; 13 | 14 | class AMIRequest { 15 | constructor ($rootScope, $location, NavCollection){ 16 | var getEnglishDate = function(){ 17 | var eng_moment = moment(); 18 | eng_moment.locale('en'); 19 | return eng_moment.format('MMMM Do, YYYY'); 20 | } 21 | var request = {}; 22 | request.date = moment().format('MMMM Do, YYYY'); 23 | request.date_en = getEnglishDate(); 24 | request.get = function(key){ 25 | if(this.has(key)){ 26 | return this[key]['data']; 27 | } 28 | else{ 29 | return null; 30 | } 31 | } 32 | request.isComplete = function(key){ 33 | if(this.has(key)){ 34 | return this[key].completed 35 | } 36 | else{ 37 | return false; 38 | } 39 | } 40 | request.markAsComplete = function(key){ 41 | if(this[key] && !this[key].completed){ 42 | console.log("markingAsComplete"); 43 | this[key].completed = true; 44 | this.resolveHierarchy(key, this[key]); 45 | } 46 | } 47 | request.set = function(key, value, isComplete){ 48 | delete value['$$hashKey']; 49 | 50 | console.log(key, "set", value); 51 | var oldValue = null; 52 | var isChanged = true; 53 | if(typeof isComplete == "undefined"){ 54 | isComplete = true; 55 | } 56 | if(this[key]){ 57 | oldValue = this[key].data; 58 | } 59 | isChanged = (JSON.stringify(oldValue) !== JSON.stringify(value)); 60 | 61 | if(isChanged){ 62 | console.log("changed", isComplete); 63 | this[key] = {"data": value, "completed": isComplete} 64 | } 65 | if(this.hierarchy.indexOf(key) >= 0){ 66 | this.resolveHierarchy(key, this[key], isChanged); 67 | } 68 | return isChanged; 69 | } 70 | request.drop = function(key){ 71 | console.log("Dropping " + key + " from request"); 72 | delete this[key]; 73 | if(this.hierarchy.indexOf(key) >= 0){ 74 | this.resolveHierarchy(key); 75 | } 76 | } 77 | request.has = function(key){ 78 | return (typeof this[key] !== "undefined"); 79 | } 80 | request.resolveHierarchy = function(key, value, isChanged){ 81 | var index; 82 | 83 | if(typeof value == "undefined" || !value.completed){ 84 | index = this.hierarchy.indexOf(key); 85 | } 86 | else{ 87 | index = this.hierarchy.indexOf(key) + 1; 88 | } 89 | 90 | for (var i = 0; i < this.hierarchy.length; i++) { 91 | console.log(this.hierarchy[i]); 92 | if(i > index && isChanged){ 93 | if(typeof this[this.hierarchy[i]] !== "undefined"){ 94 | console.log("deleting", this.hierarchy[i]); 95 | delete this[this.hierarchy[i]]; 96 | } 97 | } 98 | if(i <= index){ 99 | try{ 100 | console.log("unrestricting past items", this.hierarchy[i]); 101 | NavCollection.unRestrict(this.hierarchy[i]); 102 | } 103 | catch(e){ 104 | continue; 105 | } 106 | } 107 | else{ 108 | try{ 109 | if(isChanged){ 110 | console.log("\tDropping " + this.hierarchy[i] + " from request"); 111 | NavCollection.restrict(this.hierarchy[i]); 112 | console.log("Restricting incomplete future items", this.hierarchy[i]); 113 | } 114 | else{ 115 | if(this.has(this.hierarchy[i])){ 116 | if(this.isComplete(this.hierarchy[i])){ 117 | console.log("Unrestricting complete future item", this.hierarchy[i]); 118 | NavCollection.unRestrict(this.hierarchy[i]); 119 | } 120 | else{ 121 | console.log("Restricting incomplete future items 2 ", this.hierarchy[i]); 122 | NavCollection.restrict(this.hierarchy[i]); 123 | } 124 | } 125 | else{ 126 | console.log("Restricting incomplete future items 3", this.hierarchy[i]); 127 | NavCollection.restrict(this.hierarchy[i]); 128 | } 129 | } 130 | } 131 | catch(e){ 132 | console.log(e); 133 | continue; 134 | } 135 | } 136 | } 137 | } 138 | request.hierarchy = ['jurisdiction', 'industry', 'operator', 'services', 'components', 'subject', 'request']; 139 | request.getAnon = function(){ 140 | var date = this.date_en; 141 | if(typeof date.data !=="undefined"){ 142 | date = date.data; 143 | } 144 | return { 145 | jurisdiction: this.jurisdiction.data, 146 | operator: this.operator.data, 147 | services: this.services.data, 148 | date: date 149 | } 150 | } 151 | request.getEnglish = function(key, englishCollectionKey, collection){ 152 | var englishItem; 153 | var naturalLangItem = this.get(key); 154 | var englishCollection; 155 | if(typeof englishCollectionKey == "string"){ 156 | englishCollection = this.get(englishCollectionKey); 157 | } 158 | else if(typeof englishCollectionKey == "object"){ 159 | englishCollection = englishCollectionKey; 160 | } 161 | if(naturalLangItem){ 162 | if(typeof englishCollection !== "undefined"){ 163 | englishItem = _.find(englishCollection, function(item){ 164 | return (item.id === naturalLangItem.id); 165 | }); 166 | } 167 | else{ 168 | return null; 169 | } 170 | } 171 | else{ 172 | englishItem = [] 173 | _.each(collection, function(c, index, list){ 174 | var mergedItem; 175 | mergedItem = angular.copy(c); 176 | var item = _.find(englishCollection, function(e){ 177 | // else{ 178 | return (e.id === c.id || e.id === c.serverID || e.id == index); 179 | //} 180 | }); 181 | if(item){ 182 | if(item.title){ 183 | mergedItem.title = item.title; 184 | } 185 | if(typeof item['meta'] !== "undefined"){ 186 | mergedItem['meta'] = angular.copy(item['meta']); 187 | if(typeof item['meta']['component_value'] !== "undefined"){ 188 | mergedItem['data'] = item['meta']['component_value']; 189 | } 190 | } 191 | englishItem.push(mergedItem); 192 | } 193 | else{ 194 | // Add natural language equivalent if no Eng present. 195 | englishItem.push(c); 196 | } 197 | }); 198 | } 199 | 200 | return englishItem; 201 | } 202 | return request; 203 | } 204 | }; 205 | 206 | module.exports = ['$rootScope', '$location', 'NavCollection', AMIRequest]; -------------------------------------------------------------------------------- /app/scripts/modules/Enter/enter.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | var ngEnter = function (scope, element, attrs) { 3 | element.bind("keydown keypress", function (event) { 4 | if(event.which === 13) { 5 | scope.$apply(function (){ 6 | scope.$eval(attrs.ngEnter); 7 | }); 8 | event.preventDefault(); 9 | } 10 | }); 11 | }; 12 | module.exports = ngEnter; -------------------------------------------------------------------------------- /app/scripts/modules/dataProviderService/dataproviderservice.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | class dataProviderService { 3 | constructor ($route, $q, $http, urls, cmsStatus, $translate ) { 4 | var self = { 5 | getItem: function (baseURL, itemPath, params, responseType) { 6 | return $translate.onReady().then(function(){ 7 | if(typeof baseURL === 'function'){ 8 | baseURL = baseURL($translate.use()); 9 | } 10 | return self.promiseRequest(baseURL, itemPath, params, 'GET', responseType); 11 | }); 12 | }, 13 | postItem: function (baseURL, itemPath, params, data, responseType) { 14 | return self.promiseRequest(baseURL, itemPath, params, 'POST', data, responseType); 15 | }, 16 | promiseRequest: function (baseURL, itemPath, params, httpMethod, data, setCache, responseType) { 17 | var delay = $q.defer(); 18 | self.request(baseURL, itemPath, params, httpMethod, data, setCache, responseType) 19 | .then( function(data, status, headers, config) { 20 | if(urls.apiURL === baseURL && !cmsStatus.isOnline()){ 21 | cmsStatus.isOnline(true); 22 | } 23 | delay.resolve( data.data ); 24 | }).catch( function(data, status, headers, config) { 25 | if(urls.apiURL === baseURL){ 26 | cmsStatus.isOnline(false); 27 | } 28 | delay.reject( {data: data, status: status} ); 29 | }); 30 | return delay.promise; 31 | }, 32 | request: function (baseURL, itemPath, params, httpMethod, data, setCache, responseType) { 33 | var itemURL; 34 | var options; 35 | var cache = true; 36 | if(setCache === false){ 37 | cache = false; 38 | } 39 | 40 | itemURL = baseURL + itemPath; 41 | 42 | if(typeof params == "undefined"){ 43 | params = {}; 44 | } 45 | if(httpMethod == 'POST'){ 46 | cache = false; 47 | } 48 | options = { 49 | method: httpMethod, 50 | url: itemURL, 51 | params: params, 52 | cache: cache, 53 | } 54 | if(typeof data !== "undefined"){ 55 | options.data = data; 56 | } 57 | if(typeof responseType !== "undefined"){ 58 | options.responseType = responseType; 59 | } 60 | return $http(options); 61 | } 62 | }; 63 | return self; 64 | } 65 | }; 66 | module.exports = ['$route', '$q', '$http', 'urls', 'cmsStatus', '$translate', dataProviderService]; -------------------------------------------------------------------------------- /app/scripts/modules/formItem/formitem.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | class FormItem{ 4 | constructor ($compile, dataProviderService){ 5 | var templates = { 6 | text: '