Add Project entity, user routes and clipper controls
This commit is contained in:
@@ -4,22 +4,13 @@
|
||||
|
||||
{% block body %}
|
||||
|
||||
<nav class="navbar has-background-light" role="navigation" aria-label="main navigation">
|
||||
<div class="navbar-brand">
|
||||
<a class="navbar-item" href="/">
|
||||
<span class="icon mr-2">
|
||||
<i class="fas fa-home"></i>
|
||||
</span>
|
||||
WebArchi
|
||||
</a>
|
||||
<!-- navbar items, navbar burger... -->
|
||||
</div>
|
||||
</nav>
|
||||
{% include 'partials/navbar.html.twig' %}
|
||||
|
||||
<div class="columns">
|
||||
<div class="column is-full">
|
||||
<div id="scene"></div>
|
||||
<div id="ui" data-theme="light" data-controller="form">
|
||||
<aside class="menu ml-4 mt-3">
|
||||
<aside class="menu ml-4 mt-3" data-controller="clipper">
|
||||
<p class="menu-label is-size-6">Progetto</p>
|
||||
<div class="file mt-4 is-link">
|
||||
<label class="file-label">
|
||||
@@ -66,9 +57,36 @@
|
||||
<ul class="menu-list">
|
||||
<li id="selected-prop"></li>
|
||||
</ul>
|
||||
<p class="menu-label is-size-6">Strumenti</p>
|
||||
<ul class="menu-list">
|
||||
<li class="menu-item">
|
||||
Clipper
|
||||
<ul class="menu-list">
|
||||
<li class="menu-item"><label class="checkbox">Attivo <input class="checkbox ml-2" id="clip-en" type="checkbox" checked></label></li>
|
||||
<li class="menu-item">
|
||||
Colore piani
|
||||
<div class="mt-2 p-2 input is-small" data-clipper-target="hex">
|
||||
<input type="color" data-action="input->clipper#color change->clipper#color"
|
||||
class="is-small is-clickable mr-2" aria-label="Colore clipper" value="#202932" style="border: none">
|
||||
<span>#202932</span>
|
||||
</div>
|
||||
</li>
|
||||
<li class="menu-item">
|
||||
Grandezza piani
|
||||
<div class="mt-2 input is-small" data-clipper-target="range">
|
||||
<input class="is-clickable is-small" data-action="change->clipper#size"
|
||||
type="range" step="0.1" min="5" max="15" style="width: 100%;">
|
||||
</div>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="buttons ml-6">
|
||||
<button class="button is-danger" data-action="clipper#deleteAll" title="Elimina tutti i piani">Elimina</button>
|
||||
</div>
|
||||
</aside>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{% extends 'base.html.twig' %}
|
||||
|
||||
{% block title %}Login | ArCOA{% endblock %}
|
||||
{% block title %}Login | WebArchi{% endblock %}
|
||||
|
||||
{% block body %}
|
||||
|
||||
|
||||
18
templates/partials/navbar.html.twig
Normal file
18
templates/partials/navbar.html.twig
Normal file
@@ -0,0 +1,18 @@
|
||||
<nav class="navbar has-background-light" role="navigation" aria-label="main navigation">
|
||||
<div class="navbar-brand">
|
||||
<a class="navbar-item" href="/">
|
||||
<span class="icon mr-2">
|
||||
<i class="fas fa-home"></i>
|
||||
</span>
|
||||
WebArchi
|
||||
</a>
|
||||
<!-- navbar items, navbar burger... -->
|
||||
</div>
|
||||
{% if app.user %}
|
||||
<div class="navbar-end">
|
||||
<div class="navbar-item" data-controller="dropdown">
|
||||
{% include 'partials/user.html.twig' %}
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
</nav>
|
||||
51
templates/partials/user.html.twig
Normal file
51
templates/partials/user.html.twig
Normal file
@@ -0,0 +1,51 @@
|
||||
<div class="buttons dropdown is-right" data-dropdown-target="drop">
|
||||
<div class="dropdown-trigger" data-action="click->dropdown#toggle">
|
||||
<a class="button is-primary">
|
||||
<span class="icon">
|
||||
<i class="fa fa-user-circle"></i>
|
||||
</span>
|
||||
<span class="pl-3">
|
||||
{{ app.user.useridentifier }}
|
||||
</span>
|
||||
<span class="icon">
|
||||
<i class="fa fa-caret-down" data-dropdown-target="caret"></i>
|
||||
</span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="dropdown-menu" role="menu">
|
||||
<div class="dropdown-content">
|
||||
<a href="/user" class="dropdown-item">
|
||||
<span class="icon is-small">
|
||||
<i class="fa fa-user"></i>
|
||||
</span>
|
||||
<span class="pl-2 is-size-6">Profilo</span>
|
||||
</a>
|
||||
<a href="/projects" class="dropdown-item">
|
||||
<span class="icon is-small">
|
||||
<i class="fa fa-pen-nib"></i>
|
||||
</span>
|
||||
<span class="pl-2 is-size-6">Progetti</span>
|
||||
</a>
|
||||
{% if is_granted('ROLE_ADMIN') %}
|
||||
<a href="/admin" class="dropdown-item">
|
||||
<span class="icon is-small">
|
||||
<i class="fa fa-cogs"></i>
|
||||
</span>
|
||||
<span class="pl-2 is-size-6">Admin</span>
|
||||
</a>
|
||||
{% endif %}
|
||||
<a href="https://git.electricmandarine.cloud/nicolo/ifc-web-app/issues" class="dropdown-item">
|
||||
<span class="icon is-small">
|
||||
<i class="fa fa-bug"></i>
|
||||
</span>
|
||||
<span class="pl-2 is-size-6">Segnala un bug</span>
|
||||
</a>
|
||||
<hr class="dropdown-divider" />
|
||||
<a href="/logout" class="button is-link is-fullwidth">
|
||||
<span class="icon is-small">
|
||||
<i class="fa fa-sign-out"></i>
|
||||
</span>
|
||||
<span class="has-text-centered"> Logout</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
122
templates/user/index.html.twig
Normal file
122
templates/user/index.html.twig
Normal file
@@ -0,0 +1,122 @@
|
||||
{% extends 'base.html.twig' %}
|
||||
{% block title %}Profilo | WebArchi{% endblock %}
|
||||
|
||||
{% block body %}
|
||||
{% include 'partials/navbar.html.twig' %}
|
||||
<div class="container" style="max-width: 50vw">
|
||||
<h1 class="is-size-1 mt-2 has-text-centered">Profilo utente</h1>
|
||||
|
||||
<div class="container mt-6">
|
||||
<div class="card">
|
||||
<div class="card-content">
|
||||
<div class="media">
|
||||
<div class="media-left">
|
||||
<span class="icon is-large">
|
||||
<i class="fa fa-user-circle fa-2x"></i>
|
||||
</span>
|
||||
</div>
|
||||
<div class="media-content">
|
||||
<p class="title is-4">{{ app.user.useridentifier }}</p>
|
||||
<p class="subtitle is-6">
|
||||
<span class="icon is-small">
|
||||
<i class="fa fa-envelope"></i>
|
||||
</span>
|
||||
{{ app.user.email ?? 'no email' }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="content">
|
||||
<p class="is-size-4 pl-3">
|
||||
<strong>Ruolo utente:</strong>
|
||||
{% if 'ROLE_ADMIN' in app.user.roles %}
|
||||
Amministratore
|
||||
{% elseif 'ROLE_REVISOR' in app.user.roles %}
|
||||
Revisore
|
||||
{% else %}
|
||||
Utente
|
||||
{% endif %}
|
||||
</p>
|
||||
<article class="message is-info">
|
||||
<div class="message-header">
|
||||
<p>
|
||||
<span class="icon is-small is-size-5 mr-3">
|
||||
<i class="fa fa-info-circle"></i>
|
||||
</span>
|
||||
Permessi
|
||||
</p>
|
||||
</div>
|
||||
<div class="message-body">
|
||||
{% if 'ROLE_ADMIN' in app.user.roles %}
|
||||
<p>
|
||||
Administrators can create and edit users of the ArCOA data entry system,
|
||||
including changing passwords and user roles, and disabling accounts.
|
||||
</p>
|
||||
<p>
|
||||
They can perform all actions on all records and vocabularies
|
||||
(create, view, edit, delete).
|
||||
</p>
|
||||
{% elseif 'ROLE_REVISOR' in app.user.roles %}
|
||||
<p>Revisors can perform all actions (create, view, edit, delete) on all records and vocabs.</p>
|
||||
{% elseif 'ROLE_EDITOR' in app.user.roles %}
|
||||
<p>
|
||||
Editors can view vocabs, view and search all records, create new records with "draft" or "complete" status,
|
||||
edit their own records and those created by other editors; they can only delete their own records, as long as the status
|
||||
is "draft" or "complete".
|
||||
</p>
|
||||
{% else %}
|
||||
<p>
|
||||
Readers can view and search records that are either published, excluded or unindexed (draft and complete records cannot be viewed).
|
||||
</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
</article>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card content">
|
||||
{% for message in app.flashes('error') %}
|
||||
<article class="message is-danger">
|
||||
<div class="message-body">{{ message }}</div>
|
||||
</article>
|
||||
{% endfor %}
|
||||
{% for message in app.flashes('notice') %}
|
||||
<article class="message is-success">
|
||||
<div class="message-body">{{ message }}</div>
|
||||
</article>
|
||||
{% endfor %}
|
||||
<form class="card-content" id="change-password" method="post" action="">
|
||||
<div class="field">
|
||||
<h3 class="is-size-4 has-text-centered">Modifica password</h3>
|
||||
</div>
|
||||
<div class="field">
|
||||
<label class="label">Password attuale</label>
|
||||
<p class="control">
|
||||
<input class="input" name="_current_pass" required type="password" placeholder="Current password">
|
||||
</p>
|
||||
</div>
|
||||
<div class="field">
|
||||
<label class="label">Nuova password</label>
|
||||
<p class="control">
|
||||
<input class="input" name="_new_pass" required type="password" placeholder="New password">
|
||||
</p>
|
||||
</div>
|
||||
<div class="field">
|
||||
<label class="label">Conferma password</label>
|
||||
<p class="control">
|
||||
<input class="input" name="_confirm_pass" required type="password" placeholder="Confirm password">
|
||||
</p>
|
||||
</div>
|
||||
<input type="hidden" name="_csrf_token" value="{{ csrf_token('authenticate') }}">
|
||||
<div class="field mt-5">
|
||||
<p class="control" id="submit">
|
||||
<button class="button is-link is-fullwidth" type="submit">
|
||||
Invio
|
||||
</button>
|
||||
</p>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
Reference in New Issue
Block a user