Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • geocontrib/geocontrib-frontend
  • ext_matthieu/geocontrib-frontend
  • fnecas/geocontrib-frontend
  • MatthieuE/geocontrib-frontend
4 results
Show changes
Showing
with 332 additions and 2102 deletions
public/img/icons/apple-touch-icon-152x152.png

3.95 KiB

public/img/icons/apple-touch-icon-180x180.png

4.57 KiB

public/img/icons/apple-touch-icon-60x60.png

1.46 KiB

public/img/icons/apple-touch-icon-76x76.png

1.78 KiB

public/img/icons/apple-touch-icon.png

4.57 KiB | W: 0px | H: 0px

public/img/icons/apple-touch-icon.png

16.1 KiB | W: 0px | H: 0px

public/img/icons/apple-touch-icon.png
public/img/icons/apple-touch-icon.png
public/img/icons/apple-touch-icon.png
public/img/icons/apple-touch-icon.png
  • 2-up
  • Swipe
  • Onion skin
public/img/icons/favicon-16x16.png

799 B | W: 0px | H: 0px

public/img/icons/favicon-16x16.png

717 B | W: 0px | H: 0px

public/img/icons/favicon-16x16.png
public/img/icons/favicon-16x16.png
public/img/icons/favicon-16x16.png
public/img/icons/favicon-16x16.png
  • 2-up
  • Swipe
  • Onion skin
public/img/icons/favicon-32x32.png

1.24 KiB | W: 0px | H: 0px

public/img/icons/favicon-32x32.png

1.62 KiB | W: 0px | H: 0px

public/img/icons/favicon-32x32.png
public/img/icons/favicon-32x32.png
public/img/icons/favicon-32x32.png
public/img/icons/favicon-32x32.png
  • 2-up
  • Swipe
  • Onion skin
public/img/icons/favicon.ico

15 KiB

public/img/icons/msapplication-icon-144x144.png

1.14 KiB

public/img/icons/mstile-150x150.png

4.18 KiB

<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.00251 14.9297L0 1.07422H6.14651L8.00251 4.27503L9.84583 1.07422H16L8.00251 14.9297Z" fill="black"/>
</svg>
{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"}
\ No newline at end of file
public/img/logo-geocontrib.png

156 KiB

public/img/logo-neogeo-circle.png

120 KiB

......@@ -7,13 +7,18 @@
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<!-- import not working for roboto condensed inside component style, only in head https://stackoverflow.com/questions/36724268/roboto-condensed-google-font-falls-back-in-all-browsers -->
<style>@import url('https://fonts.googleapis.com/css?family=Roboto Condensed:400,700,400italic,700italic&subset=latin');</style>
<base href="<%= htmlWebpackPlugin.files.publicPath %>">
<title><%= htmlWebpackPlugin.options.title %></title>
</head>
<body>
<noscript>
<strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
</noscript>
<div id="app"></div>
<div id="app">
<div class="ui active dimmer">
<div class="ui indeterminate text loader">En cours de chargement ...</div>
</div>
</div>
<!-- built files will be auto injected -->
</body>
</html>
sonar.sources = src
sonar.exclusions = build/**, node_modules/**, src/assets/resources/**
#sonar.tests = api/tests/
<template>
<div v-frag>
<header class="header-menu">
<div class="ui container">
<div class="ui inverted icon menu">
<router-link to="/" class="header item">
<img
class="ui mini right spaced image"
src="@/assets/img/logo-neogeo-circle.png"
/>
<!-- :src="LOGO_PATH" -->
{{ getApplicationName() }}
</router-link>
<div
id="menu-dropdown"
:class="['ui dropdown item', { 'active visible': menuIsOpen }]"
v-if="project"
@click="menuIsOpen = !menuIsOpen"
>
Projet : {{ project.title }}
<i class="dropdown icon"></i>
<div
:class="['menu', { 'visible transition': menuIsOpen }]"
style="z-index: 401"
>
<router-link
:to="{
name: 'project_detail',
params: { slug: project.slug },
}"
class="item"
>
<i class="home icon"></i>Accueil
</router-link>
<router-link
:to="{
name: 'liste-signalements',
params: { slug: project.slug },
}"
class="item"
>
<i class="list icon"></i>Liste & Carte
</router-link>
<router-link
:to="{
name: 'project_mapping',
params: { slug: project.slug },
}"
class="item"
>
<i class="map icon"></i>Fonds cartographiques
</router-link>
<router-link
:to="{
name: 'project_members',
params: { slug: project.slug },
}"
class="item"
>
<i class="users icon"></i>Membres
</router-link>
<!-- {% endif %} -->
</div>
</div>
<div class="right menu">
<router-link v-if="user" to="/my_account/" class="item">
{{ userFullname || user.username || "Utilisateur inconnu" }}
<!-- // ? full_name n'existe pas côté django... -->
</router-link>
<div
v-if="user && user.is_administrator"
class="item ui label vertical"
>
<span v-if="USER_LEVEL_PROJECTS && project">
{{ USER_LEVEL_PROJECTS[project.slug] }}</span
>
<br />
<span v-if="user.is_administrator"> Gestionnaire métier </span>
</div>
<!-- // todo : find out SSO_SETTED in django -->
<!-- // ? condition bizarre (if !sso_setted pui elif !sso_setted) ? -->
<!-- <a class="item" href="{% url 'geocontrib:logout' %}"><i class="ui logout icon"></i></a> -->
<a v-if="user && !SSO_SETTED" @click="logout" class="item"
><i class="ui logout icon"></i>
</a>
<router-link v-else-if="!user" to="/connexion/" class="item"
>Se Connecter</router-link
>
</div>
<div id="app">
<GeorchestraHeader
v-if="isGeorchestra"
:key="$route.fullPath"
/>
<AppHeader v-else />
<div id="app-content">
<span id="scroll-top-anchor" />
<div
:class="{ active: loader.isLoading }"
class="ui inverted dimmer"
>
<div class="ui text loader">
{{ loader.message }}
</div>
</div>
</header>
<main>
<div class="ui stackable grid centered container">
<!-- // todo : add messages -->
<!-- {% if messages %} -->
<div v-if="messages" class="row">
<div class="fourteen wide column">
<div
v-for="(message, index) in messages"
:key="'message-' + index"
class="ui positive message"
>
<div class="ui info message">
<div class="header">
<i class="info circle icon"></i> Informations
</div>
<ul class="list">
{{
message.comment
}}
</ul>
</div>
</div>
</div>
</div>
<!-- {% endif %} -->
<router-view />
<!-- //* Les views sont injectées ici -->
</div>
</main>
<footer>
<div class="ui compact text menu">
<router-link to="/mentions/" class="item">Mentions légales</router-link>
<router-link to="/aide/" class="item">Aide</router-link>
<p class="item">Version {{ PACKAGE_VERSION }}</p>
</div>
</footer>
<!-- //* Les views sont injectées ici -->
<router-view class="page-content" />
</div>
<AppFooter />
</div>
</template>
<script>
import { mapState } from 'vuex';
import frag from "vue-frag";
import { mapState } from "vuex";
import { mapGetters } from "vuex";
import AppHeader from '@/components/AppHeader';
import AppFooter from '@/components/AppFooter';
import GeorchestraHeader from '@/components/GeorchestraHeader.vue';
export default {
name: "App",
name: 'App',
directives: {
frag,
components: {
GeorchestraHeader,
AppHeader,
AppFooter,
},
data() {
return {
menuIsOpen: false,
messages: null,
rightMenuIsOpen: true,
baseUrl: this.$store.state.configuration.BASE_URL,
width: window.innerWidth > 0 ? window.innerWidth : screen.width,
};
},
computed: {
...mapState(["projects", "user", "SSO_SETTED", "USER_LEVEL_PROJECTS","configuration"]),
...mapGetters(["project"]),
//LOGO_PATH: () => require(`${configuration.VUE_APP_LOGO_PATH}`),
//APPLICATION_NAME: () => this.configuration.VUE_APP_APPLICATION_NAME,
PACKAGE_VERSION: () => process.env.PACKAGE_VERSION || "0",
userFullname: function () {
if (this.user.first_name || this.user.last_name)
return this.user.first_name + " " + this.user.last_name;
return null;
...mapState([
'user',
'USER_LEVEL_PROJECTS',
'configuration',
'loader',
]),
...mapState('projects', [
'projects',
'project',
]),
isGeorchestra() {
return this.configuration.GEORCHESTRA_INTEGRATION?.HEADER;
},
},
methods: {
logout() {
this.$store.dispatch("LOGOUT");
},
getApplicationName() {
return this.configuration.VUE_APP_APPLICATION_NAME;
},
clickOutsideMenu(e) {
if (!e.target.closest("#menu-dropdown")) this.menuIsOpen = false;
},
},
created() {
window.addEventListener("mousedown", this.clickOutsideMenu);
},
beforeDestroy() {
window.removeEventListener("mousedown", this.clickOutsideMenu);
},
};
</script>
<style>
@import "./assets/styles/base.css";
@import "./assets/resources/semantic-ui-2.4.2/semantic.min.css";
.header-menu {
min-width: 560px;
}
body {
height: 100vh;
margin: 0;
}
header {
min-height: 61px;
}
footer {
min-height: 40px;
}
/* Trick */
body {
display: flex;
flex-direction: column;
}
footer {
margin-top: auto;
}
.vertical {
flex-direction: column;
justify-content: center;
<style scoped>
.ui.active.dimmer {
position: fixed;
}
</style>
\ No newline at end of file
const faIcons = [
'circle',
'address-book',
'address-card',
'adjust',
'ambulance',
'anchor',
'angle-double-down',
'angle-double-left',
'angle-double-right',
'angle-double-up',
'angle-down',
'angle-left',
'angle-right',
'angle-up',
'apple-alt',
'archive',
'archway',
'arrow-alt-circle-down',
'arrow-alt-circle-left',
'arrow-alt-circle-right',
'arrow-alt-circle-up',
'arrow-circle-down',
'arrow-circle-left',
'arrow-circle-right',
'arrow-circle-up',
'arrow-down',
'arrow-left',
'arrow-right',
'arrow-up',
'arrows-alt',
'arrows-alt-h',
'arrows-alt-v',
'assistive-listening-systems',
'asterisk',
'at',
'atlas',
'award',
'baby',
'baby-carriage',
'backspace',
'backward',
'bahai',
'balance-scale',
'ban',
'band-aid',
'baseball-ball',
'basketball-ball',
'bed',
'beer',
'bicycle',
'biking',
'binoculars',
'blind',
'bolt',
'bong',
'book',
'book-medical',
'book-open',
'book-reader',
'box-open',
'briefcase',
'briefcase-medical',
'broadcast-tower',
'building',
'bus',
'bus-alt',
'camera',
'camera-retro',
'campground',
'car',
'car-alt',
'car-side',
'caravan',
'caret-down',
'caret-left',
'caret-right',
'caret-square-down',
'caret-square-left',
'caret-square-right',
'caret-square-up',
'caret-up',
'carrot',
'cart-arrow-down',
'cart-plus',
'cash-register',
'check',
'check-circle',
'check-square',
'chevron-circle-down',
'chevron-circle-left',
'chevron-circle-right',
'chevron-circle-up',
'chevron-down',
'chevron-left',
'chevron-right',
'chevron-up',
'city',
'clinic-medical',
'clock',
'cocktail',
'code-branch',
'coffee',
'cog',
'cogs',
'comment',
'comment-alt',
'compass',
'compress',
'compress-alt',
'compress-arrows-alt',
'concierge-bell',
'credit-card',
'cross',
'crosshairs',
'crow',
'deaf',
'directions',
'dog',
'edit',
'envelope',
'euro-sign',
'exclamation',
'exclamation-circle',
'exclamation-triangle',
'expand',
'eye',
'eye-slash',
'faucet',
'female',
'file',
'fire-alt',
'fish',
'flag',
'flask',
'gas-pump',
'gavel',
'graduation-cap',
'h-square',
'hammer',
'hiking',
'home',
'hospital',
'hospital-symbol',
'hotel',
'hourglass-half',
'house-damage',
'house-user',
'image',
'industry',
'info',
'info-circle',
'landmark',
'laptop-house',
'leaf',
'life-ring',
'lightbulb',
'location-arrow',
'lock',
'long-arrow-alt-down',
'long-arrow-alt-left',
'long-arrow-alt-right',
'long-arrow-alt-up',
'male',
'map',
'map-marked',
'map-marked-alt',
'map-marker',
'map-marker-alt',
'map-pin',
'map-signs',
'marker',
'medal',
'medkit',
'microphone',
'microscope',
'mobile-alt',
'money-bill',
'motorcycle',
'mountain',
'mouse-pointer',
'mug-hot',
'music',
'paint-brush',
'palette',
'paper-plane',
'parking',
'paw',
'pen',
'phone-alt',
'plane',
'plug',
'plus',
'plus-circle',
'plus-square',
'podcast',
'question',
'question-circle',
'radiation',
'recycle',
'road',
'running',
'satellite-dish',
'search',
'search-location',
'seedling',
'share-alt',
'ship',
'shopping-basket',
'shopping-cart',
'shuttle-van',
'skiing',
'snowflake',
'sort-down',
'square',
'square-full',
'star',
'star-and-crescent',
'star-of-david',
'star-of-life',
'stethoscope',
'sticky-note',
'store',
'store-alt',
'street-view',
'subway',
'suitcase',
'suitcase-rolling',
'sun',
'swimmer',
'syringe',
'tag',
'taxi',
'temperature-high',
'temperature-low',
'thumbs-down',
'thumbs-up',
'thumbtack',
'times',
'times-circle',
'tint',
'tint-slash',
'toolbox',
'tools',
'tractor',
'train',
'tram',
'trash-alt',
'tree',
'trophy',
'truck',
'truck-moving',
'tshirt',
'tv',
'umbrella',
'umbrella-beach',
'university',
'user-circle',
'user-friends',
'user-graduate',
'user-md',
'utensils',
'vial',
'video',
'walking',
'water',
'weight-hanging',
'wheelchair',
'wifi',
'wine-glass-alt',
'wrench'
];
export default faIcons;