Use bootstrap-icons; refactor some JS
This commit is contained in:
parent
aab30f48d4
commit
8945fcb73b
@ -6,19 +6,6 @@ import './bootstrap.js';
|
|||||||
* which should already be in your base.html.twig.
|
* which should already be in your base.html.twig.
|
||||||
*/
|
*/
|
||||||
import './styles/app.css';
|
import './styles/app.css';
|
||||||
import UI from './ui.js';
|
import API_CONFIG from "./config.js";
|
||||||
import BIM from './bim.js';
|
|
||||||
|
|
||||||
document.addEventListener('DOMContentLoaded', () => {
|
window.API_CONFIG = API_CONFIG;
|
||||||
const container = document.querySelector('#scene');
|
|
||||||
UI.setScene(container);
|
|
||||||
const model = UI.ifcLoader(container);
|
|
||||||
container.ondblclick = () => BIM.activateClipper();
|
|
||||||
container.onkeydown = event => {
|
|
||||||
if (event.code === 'Delete' || event.code === 'Backspace') {
|
|
||||||
BIM.deleteClipper();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
console.log('This log comes from assets/app.js - welcome to AssetMapper! 🎉');
|
|
@ -1,5 +1,4 @@
|
|||||||
import { Controller } from "@hotwired/stimulus"
|
import { Controller } from "@hotwired/stimulus"
|
||||||
import API_CONFIG from "../config.js";
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @todo Handle errors
|
* @todo Handle errors
|
||||||
@ -12,7 +11,7 @@ export default class extends Controller {
|
|||||||
'buildingForm'
|
'buildingForm'
|
||||||
];
|
];
|
||||||
|
|
||||||
API_BASE = API_CONFIG.dev;
|
API_BASE = window.API_CONFIG.dev;
|
||||||
|
|
||||||
async submit(event) {
|
async submit(event) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
|
@ -1,16 +0,0 @@
|
|||||||
import { Controller } from '@hotwired/stimulus';
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This is an example Stimulus controller!
|
|
||||||
*
|
|
||||||
* Any element with a data-controller="hello" attribute will cause
|
|
||||||
* this controller to be executed. The name "hello" comes from the filename:
|
|
||||||
* hello_controller.js -> "hello"
|
|
||||||
*
|
|
||||||
* Delete this file or adapt it for your use!
|
|
||||||
*/
|
|
||||||
export default class extends Controller {
|
|
||||||
connect() {
|
|
||||||
this.element.textContent = 'Hello Stimulus! Edit me in assets/controllers/hello_controller.js';
|
|
||||||
}
|
|
||||||
}
|
|
43
assets/controllers/scene_controller.js
Normal file
43
assets/controllers/scene_controller.js
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
import { Controller } from '@hotwired/stimulus';
|
||||||
|
import UI from '../ui.js';
|
||||||
|
import BIM from '../bim.js';
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This is an example Stimulus controller!
|
||||||
|
*
|
||||||
|
* Any element with a data-controller="hello" attribute will cause
|
||||||
|
* this controller to be executed. The name "hello" comes from the filename:
|
||||||
|
* hello_controller.js -> "hello"
|
||||||
|
*
|
||||||
|
* Delete this file or adapt it for your use!
|
||||||
|
*/
|
||||||
|
export default class extends Controller {
|
||||||
|
static targets = ['scene'];
|
||||||
|
|
||||||
|
connect() {
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param {Element} container
|
||||||
|
*/
|
||||||
|
sceneTargetConnected(container) {
|
||||||
|
UI.setScene(container);
|
||||||
|
const model = UI.ifcLoader(container);
|
||||||
|
container.ondblclick = () => BIM.activateClipper();
|
||||||
|
container.onkeydown = event => {
|
||||||
|
console.log(event);
|
||||||
|
if (event.code === 'Delete' || event.code === 'Backspace') {
|
||||||
|
BIM.deleteClipper();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param {Event} event
|
||||||
|
*/
|
||||||
|
keyboard(event) {
|
||||||
|
console.log(event);
|
||||||
|
}
|
||||||
|
}
|
@ -1,26 +0,0 @@
|
|||||||
'use strict';
|
|
||||||
|
|
||||||
import UI from './ui.js';
|
|
||||||
import BIM from './bim.js';
|
|
||||||
import { Application } from '@hotwired/stimulus';
|
|
||||||
import FormController from './controllers/form_controller.js';
|
|
||||||
|
|
||||||
document.addEventListener('DOMContentLoaded', () => {
|
|
||||||
// Register Stimulus controllers
|
|
||||||
initStimulus();
|
|
||||||
|
|
||||||
const container = document.querySelector('#scene');
|
|
||||||
UI.setScene(container);
|
|
||||||
const model = UI.ifcLoader(container);
|
|
||||||
container.ondblclick = () => BIM.activateClipper();
|
|
||||||
container.onkeydown = event => {
|
|
||||||
if (event.code === 'Delete' || event.code === 'Backspace') {
|
|
||||||
BIM.deleteClipper();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
function initStimulus() {
|
|
||||||
window.Stimulus = Application.start();
|
|
||||||
Stimulus.register('form', FormController);
|
|
||||||
}
|
|
@ -1,4 +1,4 @@
|
|||||||
@import url('../vendor/fontawesome-free/css/all.min.css');
|
@import url('../vendor/bootstrap-icons/font/bootstrap-icons.min.css');
|
||||||
@import url('../vendor/bulma/css/bulma.min.css');
|
@import url('../vendor/bulma/css/bulma.min.css');
|
||||||
|
|
||||||
#scene {
|
#scene {
|
||||||
|
4
composer.lock
generated
4
composer.lock
generated
@ -9886,7 +9886,7 @@
|
|||||||
],
|
],
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"minimum-stability": "stable",
|
"minimum-stability": "stable",
|
||||||
"stability-flags": [],
|
"stability-flags": {},
|
||||||
"prefer-stable": true,
|
"prefer-stable": true,
|
||||||
"prefer-lowest": false,
|
"prefer-lowest": false,
|
||||||
"platform": {
|
"platform": {
|
||||||
@ -9894,6 +9894,6 @@
|
|||||||
"ext-ctype": "*",
|
"ext-ctype": "*",
|
||||||
"ext-iconv": "*"
|
"ext-iconv": "*"
|
||||||
},
|
},
|
||||||
"platform-dev": [],
|
"platform-dev": {},
|
||||||
"plugin-api-version": "2.6.0"
|
"plugin-api-version": "2.6.0"
|
||||||
}
|
}
|
||||||
|
@ -338,4 +338,8 @@ return [
|
|||||||
'@thatopen/components-front' => [
|
'@thatopen/components-front' => [
|
||||||
'version' => '2.4.4',
|
'version' => '2.4.4',
|
||||||
],
|
],
|
||||||
|
'bootstrap-icons/font/bootstrap-icons.min.css' => [
|
||||||
|
'version' => '1.11.3',
|
||||||
|
'type' => 'css',
|
||||||
|
],
|
||||||
];
|
];
|
||||||
|
@ -7,8 +7,8 @@
|
|||||||
{% include 'partials/navbar.html.twig' %}
|
{% include 'partials/navbar.html.twig' %}
|
||||||
|
|
||||||
<div class="columns">
|
<div class="columns">
|
||||||
<div class="column is-full">
|
<div class="column is-full" data-controller="scene" data-action="keydown->scene#keyboard:prevent">
|
||||||
<div id="scene"></div>
|
<div id="scene" data-scene-target="scene"></div>
|
||||||
<div id="ui" data-theme="light" data-controller="form">
|
<div id="ui" data-theme="light" data-controller="form">
|
||||||
<aside class="menu ml-4 mt-3" data-controller="clipper">
|
<aside class="menu ml-4 mt-3" data-controller="clipper">
|
||||||
<p class="menu-label is-size-6">Progetto</p>
|
<p class="menu-label is-size-6">Progetto</p>
|
||||||
@ -21,7 +21,7 @@
|
|||||||
accept=".ifc" />
|
accept=".ifc" />
|
||||||
<span class="file-cta">
|
<span class="file-cta">
|
||||||
<span class="file-icon">
|
<span class="file-icon">
|
||||||
<i class="fas fa-upload"></i>
|
<i class="bi bi-upload"></i>
|
||||||
</span>
|
</span>
|
||||||
<span class="file-label">Apri file IFC...</span>
|
<span class="file-label">Apri file IFC...</span>
|
||||||
</span>
|
</span>
|
||||||
@ -37,7 +37,7 @@
|
|||||||
<button class="button is-primary">
|
<button class="button is-primary">
|
||||||
Salva
|
Salva
|
||||||
<span class="icon ml-1">
|
<span class="icon ml-1">
|
||||||
<i class="fa fa-save"></i>
|
<i class="bi bi-floppy"></i>
|
||||||
</span>
|
</span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
<div class="navbar-brand">
|
<div class="navbar-brand">
|
||||||
<a class="navbar-item" href="/">
|
<a class="navbar-item" href="/">
|
||||||
<span class="icon mr-2">
|
<span class="icon mr-2">
|
||||||
<i class="fas fa-home"></i>
|
<i class="bi bi-house-fill"></i>
|
||||||
</span>
|
</span>
|
||||||
WebArchi
|
WebArchi
|
||||||
</a>
|
</a>
|
||||||
|
@ -2,13 +2,13 @@
|
|||||||
<div class="dropdown-trigger" data-action="click->dropdown#toggle">
|
<div class="dropdown-trigger" data-action="click->dropdown#toggle">
|
||||||
<a class="button is-primary">
|
<a class="button is-primary">
|
||||||
<span class="icon">
|
<span class="icon">
|
||||||
<i class="fa fa-user-circle"></i>
|
<i class="bi bi-person-circle"></i>
|
||||||
</span>
|
</span>
|
||||||
<span class="pl-3">
|
<span class="pl-3">
|
||||||
{{ app.user.useridentifier }}
|
{{ app.user.useridentifier }}
|
||||||
</span>
|
</span>
|
||||||
<span class="icon">
|
<span class="icon">
|
||||||
<i class="fa fa-caret-down" data-dropdown-target="caret"></i>
|
<i class="bi bi-caret-down-fill" data-dropdown-target="caret"></i>
|
||||||
</span>
|
</span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
@ -16,34 +16,34 @@
|
|||||||
<div class="dropdown-content">
|
<div class="dropdown-content">
|
||||||
<a href="/user" class="dropdown-item">
|
<a href="/user" class="dropdown-item">
|
||||||
<span class="icon is-small">
|
<span class="icon is-small">
|
||||||
<i class="fa fa-user"></i>
|
<i class="bi bi-person-fill"></i>
|
||||||
</span>
|
</span>
|
||||||
<span class="pl-2 is-size-6">Profilo</span>
|
<span class="pl-2 is-size-6">Profilo</span>
|
||||||
</a>
|
</a>
|
||||||
<a href="/projects" class="dropdown-item">
|
<a href="/projects" class="dropdown-item">
|
||||||
<span class="icon is-small">
|
<span class="icon is-small">
|
||||||
<i class="fa fa-pen-nib"></i>
|
<i class="bi bi-vector-pen"></i>
|
||||||
</span>
|
</span>
|
||||||
<span class="pl-2 is-size-6">Progetti</span>
|
<span class="pl-2 is-size-6">Progetti</span>
|
||||||
</a>
|
</a>
|
||||||
{% if is_granted('ROLE_ADMIN') %}
|
{% if is_granted('ROLE_ADMIN') %}
|
||||||
<a href="/admin" class="dropdown-item">
|
<a href="/admin" class="dropdown-item">
|
||||||
<span class="icon is-small">
|
<span class="icon is-small">
|
||||||
<i class="fa fa-cogs"></i>
|
<i class="bi bi-gear-fill"></i>
|
||||||
</span>
|
</span>
|
||||||
<span class="pl-2 is-size-6">Admin</span>
|
<span class="pl-2 is-size-6">Admin</span>
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<a href="https://git.electricmandarine.cloud/nicolo/ifc-web-app/issues" class="dropdown-item">
|
<a href="https://git.electricmandarine.cloud/nicolo/ifc-web-app/issues" class="dropdown-item">
|
||||||
<span class="icon is-small">
|
<span class="icon is-small">
|
||||||
<i class="fa fa-bug"></i>
|
<i class="bi bi-bug-fill"></i>
|
||||||
</span>
|
</span>
|
||||||
<span class="pl-2 is-size-6">Segnala un bug</span>
|
<span class="pl-2 is-size-6">Segnala un bug</span>
|
||||||
</a>
|
</a>
|
||||||
<hr class="dropdown-divider" />
|
<hr class="dropdown-divider" />
|
||||||
<a href="/logout" class="button is-link is-fullwidth">
|
<a href="/logout" class="button is-link is-fullwidth">
|
||||||
<span class="icon is-small">
|
<span class="icon is-small">
|
||||||
<i class="fa fa-sign-out"></i>
|
<i class="bi bi-box-arrow-right"></i>
|
||||||
</span>
|
</span>
|
||||||
<span class="has-text-centered"> Logout</span>
|
<span class="has-text-centered"> Logout</span>
|
||||||
</a>
|
</a>
|
||||||
|
@ -11,8 +11,8 @@
|
|||||||
<div class="card-content">
|
<div class="card-content">
|
||||||
<div class="media">
|
<div class="media">
|
||||||
<div class="media-left">
|
<div class="media-left">
|
||||||
<span class="icon is-large">
|
<span class="icon is-large is-size-4">
|
||||||
<i class="fa fa-user-circle fa-2x"></i>
|
<i class="bi bi-person-circle"></i>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="media-content">
|
<div class="media-content">
|
||||||
|
Loading…
Reference in New Issue
Block a user