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
<template>
<div class="fourteen wide column">
<h1 class="ui header">Gérer les membres</h1>
<form
id="form-members"
action="."
method="post"
enctype="multipart/form-data"
class="ui form"
>
<!-- {% csrf_token %} // todo: add csrf_token in post -->
{{ formset.non_form_errors }}
<table class="ui red table">
<tbody>
<thead>
<tr>
<th>Membre</th>
<th>{{ formset.empty_form.level.label }}</th>
</tr>
</thead>
<div id="formsets-members">
{{ formset.management_form }}
<!-- {% for form in formset %} {% if not form.DELETE.value %} {% for
hidden in form.hidden_fields %} -->
// ! À adapter une fois défini comment faire le formulaire
<!-- <div v-frag v-for="form in Object.entries(formset)" :key="form.level.id_for_label">
<div v-frag v-if="!form.DELETE.value">
<span v-for="hidden in form.hidden_fields" :key="hidden">
{{ hidden }}
</span>
<tr>
<td>
{{ form.last_name.value }} {{ form.first_name.value
}}<br /><i>{{ form.username.value }}</i>
</td>
<td>
<div class="required field">
<div class="ui selection search dropdown">
<input
type="hidden"
:name="form.level.html_name"
:id="form.level.id_for_label"
:value="form.level.value"
/>
<div class="default text"></div>
<i class="dropdown icon"></i>
<div class="menu">
{% for x,y in form.level.field.choices %}
<div
v-for="(x, y) in form.level.field.choices"
:key="y"
class="item"
:data-value="x"
:selected="form.level.value === x"
>
{{ y }}
</div>
</div>
</div>
{{ form.level.errors }}
</div>
</td>
</tr>
</div>
</div> -->
</div>
</tbody>
</table>
<div class="ui divider"></div>
<button type="submit" class="ui teal icon button">
<i class="white save icon"></i> Enregistrer les changements
</button>
</form>
</div>
</template>
<script>
import frag from "vue-frag";
export default {
name: "Project_members",
directives: {
frag,
},
data() {
return {
formset: {
non_form_errors: null,
empty_form: {
level: {
label: null,
},
non_form_errors: null,
management_form: null,
forms: [
{
title: {
value: "test",
},
},
],
prefix: null,
hidden_fields: null,
title: {
id_for_label: null,
field: {
max_length: null,
},
},
nested: {
management_form: null,
},
},
management_form: null,
forms: [],
prefix: null,
hidden_fields: null,
title: {
id_for_label: null,
field: {
max_length: null,
},
},
nested: {
management_form: null,
},
},
};
},
};
</script>
\ No newline at end of file
<template>
<div class="row">
<div class="seven wide column">
<h3 class="ui header">
Créer un projet à partir d'un modèle disponible:
</h3>
<div class="ui divided items">
<div v-for="project in projects" :key="project.slug" class="item">
<div class="ui tiny image">
<img :src="project.thumbnail" />
</div>
<div class="middle aligned content">
<div class="description">
<a
:href="`project_create?create_from=${project.slug}`"
>{{ project.title }}</a
>
<p>{{ project.description }}</p>
<strong v-if="project.moderation">Projet modéré</strong>
<strong v-else>Projet non modéré</strong>
</div>
<div class="meta">
<span data-tooltip="Délai avant archivage">
{{ project.archive_feature }}&nbsp;<i class="box icon"></i>
</span>
<span data-tooltip="Délai avant suppression">
{{ project.archive_feature }}&nbsp;<i
class="trash alternate icon"
></i>
</span>
<span data-tooltip="Date de création">
{{ project.created_on }}&nbsp;<i class="calendar icon"></i>
</span>
</div>
<div class="meta">
<span data-tooltip="Visibilité des signalement publiés">
{{ project.access_level_pub_feature }}&nbsp;<i
class="eye icon"
></i>
</span>
<span data-tooltip="Visibilité des signalement archivés">
{{ project.access_level_arch_feature }}&nbsp;<i
class="archive icon"
></i>
</span>
</div>
</div>
</div>
<span v-if="!projects || projects.length === 0">Aucun projet type n'est défini.</span>
</div>
</div>
</div>
</template>
<script>
import { mapState } from "vuex"
// todo : récupérer les projets type
export default {
name: "Project_type_list",
/* data() {
return {
projects: []
}
}, */
computed: {
...mapState(["projects"])
}
}
</script>
\ No newline at end of file
<template>
<div>
<div class="row">
<div class="fourteen wide column">
<img
class="ui centered small image"
src="@/assets/img/logo-neogeo-circle.png"
/>
<h2 class="ui center aligned icon header">
<div class="content">
{{ APPLICATION_NAME }}
<div class="sub header">{{ APPLICATION_ABSTRACT }}</div>
</div>
</h2>
</div>
</div>
<div class="row">
<div class="six wide column">
<h3 class="ui horizontal divider header">CONNEXION</h3>
<div v-if="form.errors" class="ui warning message">
<div class="header">
Les informations d'identification sont incorrectes.
</div>
NB: Seuls les comptes actifs peuvent se connecter.
</div>
<form class="ui form" role="form" type="post" @submit.prevent="login">
<!-- {% csrf_token %} -->
<!-- // todo : check if working or usefull, not sure...-->
<input name="csrfmiddlewaretoken" :value="$store.csrftoken" type="hidden" />
<div class="ui stacked secondary segment">
<div class="six field required">
<div class="ui left icon input">
<i class="user icon"></i>
<input
v-model="username_value"
type="text"
name="username"
placeholder="Utilisateur"
/>
</div>
</div>
<div class="six field required">
<div class="ui left icon input">
<i class="lock icon"></i>
<input
v-model="password_value"
type="password"
name="password"
placeholder="Mot de passe"
/>
</div>
</div>
<button class="ui fluid large teal submit button" type="submit">
Login
</button>
</div>
</form>
</div>
</div>
</div>
</template>
<script>
export default {
name: "Login",
data() {
return {
username_value: null,
password_value: null,
logged: false,
form: {
errors: null,
},
};
},
computed: {
LOGO_PATH: () => process.env.VUE_APP_LOGO_PATH,
APPLICATION_NAME: () => process.env.VUE_APP_APPLICATION_NAME,
APPLICATION_ABSTRACT: () => process.env.VUE_APP_APPLICATION_ABSTRACT,
},
methods: {
login() {
this.$store.dispatch("LOGIN", {
username: this.username_value,
password: this.password_value,
});
},
},
};
</script>
\ No newline at end of file
const webpack = require('webpack')
const fs = require('fs')
const packageJson = fs.readFileSync('./package.json')
const version = JSON.parse(packageJson).version || 0
const webpack = require('webpack');
const fs = require('fs');
const packageJson = fs.readFileSync('./package.json');
const version = JSON.parse(packageJson).version || 0;
module.exports = {
configureWebpack: {
plugins: [
new webpack.DefinePlugin({
'process.env': {
PACKAGE_VERSION: '"' + version + '"'
}
})
]
publicPath: '/geocontrib/',
devServer: {
proxy: {
'^/api': {
target: 'https://geocontrib.dev.neogeo.fr/api',
ws: true,
changeOrigin: true
}
}
},
pwa: {
workboxPluginMode: 'InjectManifest',
workboxOptions: {
swSrc: 'src/service-worker.js',
exclude: [
/\.map$/,
/config\/config.*\.json$/,
/manifest\.json$/
],
},
// the rest of your original module.exports code goes here
}
\ No newline at end of file
iconPaths: {
faviconSVG: null,
favicon32: null,
favicon16: null,
appleTouchIcon: null,
maskIcon: null,
msTileImage: null,
},
themeColor: '#1da025'
},
configureWebpack: {
devtool: 'source-map',
plugins: [
new webpack.DefinePlugin({
'process.env': {
PACKAGE_VERSION: '"' + version + '"'
}
})
]
},
transpileDependencies: [
// Add dependencies that use modern JavaScript syntax, based on encountered errors
'ol',
'color-rgba',
'color-parse',
'@sentry/browser',
'@sentry/core',
'@sentry/vue',
'@sentry-internal'
]
};
module.exports = {
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
use: {
loader: 'babel-loader'
}
},
{
test: /\.vue$/,
loader: 'vue-loader'
}
]
}
};
\ No newline at end of file