Correction form review and checks

This commit is contained in:
GRL 2021-06-22 09:43:41 +02:00
parent 232fd33ec8
commit 5cac4f52bc
4 changed files with 57 additions and 43 deletions

View file

@ -2,7 +2,7 @@
import InputTextGlobalMessage from "./InputTextGlobalMessage.svelte"; import InputTextGlobalMessage from "./InputTextGlobalMessage.svelte";
import UploadAudioGlobalMessage from "./UploadAudioGlobalMessage.svelte"; import UploadAudioGlobalMessage from "./UploadAudioGlobalMessage.svelte";
import {gameManager} from "../../Phaser/Game/GameManager"; import {gameManager} from "../../Phaser/Game/GameManager";
import {Game} from "../../Phaser/Game/Game"; import type {Game} from "../../Phaser/Game/Game";
export let game: Game; export let game: Game;
let inputSendTextActive = true; let inputSendTextActive = true;

View file

@ -1,7 +1,7 @@
<script lang="ts"> <script lang="ts">
import {ConsoleGlobalMessageManagerFocusStore, ConsoleGlobalMessageManagerVisibleStore } from "../../Stores/ConsoleGlobalMessageManagerStore"; import {ConsoleGlobalMessageManagerFocusStore, ConsoleGlobalMessageManagerVisibleStore } from "../../Stores/ConsoleGlobalMessageManagerStore";
import {onMount} from "svelte"; import {onMount} from "svelte";
import {Game} from "../../Phaser/Game/Game"; import type {Game} from "../../Phaser/Game/Game";
import {GameManager} from "../../Phaser/Game/GameManager"; import {GameManager} from "../../Phaser/Game/GameManager";
import type {PlayGlobalMessageInterface} from "../../Connexion/ConnexionModels"; import type {PlayGlobalMessageInterface} from "../../Connexion/ConnexionModels";
import {AdminMessageEventTypes} from "../../Connexion/AdminMessagesService"; import {AdminMessageEventTypes} from "../../Connexion/AdminMessagesService";
@ -33,10 +33,12 @@
export let game: Game; export let game: Game;
export let gameManager: GameManager; export let gameManager: GameManager;
let gameScene;
let gameScene = game.scene.getScene(gameManager.currentGameSceneName); if (gameManager.currentGameSceneName) {
gameScene = gameManager.getCurrentGameScene(game.scene.getScene(gameManager.currentGameSceneName));
}
let quill; let quill;
let INPUT_CONSOLE_MESSAGE = 'quill'; let INPUT_CONSOLE_MESSAGE;
const MESSAGE_TYPE = AdminMessageEventTypes.admin; const MESSAGE_TYPE = AdminMessageEventTypes.admin;
@ -53,7 +55,7 @@
}, },
}); });
quill.on('selection-change', function (range, oldRange, source) { quill.on('selection-change', function (range, oldRange) {
if (range === null && oldRange !== null) { if (range === null && oldRange !== null) {
ConsoleGlobalMessageManagerFocusStore.set(false); ConsoleGlobalMessageManagerFocusStore.set(false);
} else if (range !== null && oldRange === null) } else if (range !== null && oldRange === null)
@ -67,17 +69,15 @@
} }
function SendTextMessage() { function SendTextMessage() {
const elements = document.getElementsByClassName('ql-editor'); const text = quill.getText(0, quill.getLength());
const quillEditor = elements.item(0);
if (!quillEditor) {
throw "Error get quill node";
}
const GlobalMessage: PlayGlobalMessageInterface = { const GlobalMessage: PlayGlobalMessageInterface = {
id: "1", // FIXME: use another ID? id: "1", // FIXME: use another ID?
message: quillEditor.innerHTML, message: text,
type: MESSAGE_TYPE type: MESSAGE_TYPE
}; };
quillEditor.innerHTML = '';
quill.deleteText(0, quill.getLength());
gameScene.connection.emitGlobalMessage(GlobalMessage); gameScene.connection.emitGlobalMessage(GlobalMessage);
disableConsole(); disableConsole();
} }

View file

@ -1,6 +1,6 @@
<script lang="ts"> <script lang="ts">
import {HtmlUtils} from "../../WebRtc/HtmlUtils"; import {HtmlUtils} from "../../WebRtc/HtmlUtils";
import {Game} from "../../Phaser/Game/Game"; import type {Game} from "../../Phaser/Game/Game";
import {GameManager} from "../../Phaser/Game/GameManager"; import {GameManager} from "../../Phaser/Game/GameManager";
import {ConsoleGlobalMessageManagerFocusStore, ConsoleGlobalMessageManagerVisibleStore} from "../../Stores/ConsoleGlobalMessageManagerStore"; import {ConsoleGlobalMessageManagerFocusStore, ConsoleGlobalMessageManagerVisibleStore} from "../../Stores/ConsoleGlobalMessageManagerStore";
import {AdminMessageEventTypes} from "../../Connexion/AdminMessagesService"; import {AdminMessageEventTypes} from "../../Connexion/AdminMessagesService";
@ -14,19 +14,23 @@
export let game: Game; export let game: Game;
export let gameManager: GameManager; export let gameManager: GameManager;
let gameScene = game.scene.getScene(gameManager.currentGameSceneName); let gameScene;
if (gameManager.currentGameSceneName) {
gameScene = gameManager.getCurrentGameScene(game.scene.getScene(gameManager.currentGameSceneName));
}
let fileinput; let fileinput;
let filename: string; let filename: string;
let filesize: string; let filesize: string;
let errorfile: boolean;
const UPLOAD_CONSOLE_MESSAGE = 'input-upload-music';
const AUDIO_TYPE = AdminMessageEventTypes.audio; const AUDIO_TYPE = AdminMessageEventTypes.audio;
async function SendAudioMessage() { async function SendAudioMessage() {
const inputAudio = HtmlUtils.getElementByIdOrFail<HTMLInputElement>(UPLOAD_CONSOLE_MESSAGE); const inputAudio = HtmlUtils.getElementByIdOrFail<HTMLInputElement>("input-send-audio");
const selectedFile = inputAudio.files ? inputAudio.files[0] : null; const selectedFile = inputAudio.files ? inputAudio.files[0] : null;
if (!selectedFile) { if (!selectedFile) {
errorfile = true;
throw 'no file selected'; throw 'no file selected';
} }
@ -45,7 +49,6 @@
} }
function inputAudioFile(event: Event) { function inputAudioFile(event: Event) {
console.log('Input');
const eventTarget : EventTargetFiles = (event.target as EventTargetFiles); const eventTarget : EventTargetFiles = (event.target as EventTargetFiles);
if(!eventTarget || !eventTarget.files || eventTarget.files.length === 0){ if(!eventTarget || !eventTarget.files || eventTarget.files.length === 0){
return; return;
@ -58,6 +61,7 @@
filename = file.name; filename = file.name;
filesize = getFileSize(file.size); filesize = getFileSize(file.size);
errorfile = false;
} }
function getFileSize(number: number) { function getFileSize(number: number) {
@ -85,9 +89,41 @@
{#if filename != undefined} {#if filename != undefined}
<label for="input-send-audio">{filename} : {filesize}</label> <label for="input-send-audio">{filename} : {filesize}</label>
{/if} {/if}
{#if errorfile}
<p class="err">No file selected. You need to upload a file before sending it.</p>
{/if}
<input type="file" id="input-send-audio" bind:this={fileinput} on:change={(e) => {inputAudioFile(e)}}> <input type="file" id="input-send-audio" bind:this={fileinput} on:change={(e) => {inputAudioFile(e)}}>
</div> </div>
<div class="btn-action"> <div class="btn-action">
<button class="nes-btn is-primary" on:click|preventDefault={SendAudioMessage}>Send</button> <button class="nes-btn is-primary" on:click|preventDefault={SendAudioMessage}>Send</button>
</div> </div>
</section> </section>
<style lang="scss">
//UploadAudioGlobalMessage
.section-input-send-audio {
margin: 10px;
}
.section-input-send-audio .input-send-audio {
text-align: center;
}
.section-input-send-audio #input-send-audio{
display: none;
}
.section-input-send-audio div.input-send-audio label{
color: white;
}
.section-input-send-audio div.input-send-audio p.err {
color: #ce372b;
text-align: center;
}
.section-input-send-audio div.input-send-audio img{
height: 150px;
cursor: url('style/images/cursor_pointer.png'), pointer;
}
</style>

View file

@ -57,26 +57,4 @@ div.main-console.nes-container {
.section-input-send-text .ql-toolbar{ .section-input-send-text .ql-toolbar{
background: white; background: white;
} }
//UploadAudioGlobalMessage
.section-input-send-audio {
margin: 10px;
}
.section-input-send-audio .input-send-audio {
text-align: center;
}
.section-input-send-audio #input-send-audio{
display: none;
}
.section-input-send-audio div.input-send-audio label{
color: white;
}
.section-input-send-audio div.input-send-audio img{
height: 150px;
cursor: url('./images/cursor_pointer.png'), pointer;
}
} }