Compare commits
2
Commits
874226a140
...
vgaNAR6ta
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9f7e957979 | ||
|
|
7c25390ead |
No files matched your search
@@ -15,4 +15,6 @@ POUR LE STATUT D'OUVERTURE DU LIEU IL FAUT :
|
|||||||
|
|
||||||
NB: les infos indiquées sont surtout là pour prévisualiser, mais ne sont pour l'instant pas plus que des envies personelles par rapport au lieu (rien d'officiel pour l'instant, juste des idées)
|
NB: les infos indiquées sont surtout là pour prévisualiser, mais ne sont pour l'instant pas plus que des envies personelles par rapport au lieu (rien d'officiel pour l'instant, juste des idées)
|
||||||
|
|
||||||
|
PS: BESOIN DE QQN POUR FAIRE LE BACKEND SVP <3 <3 <3
|
||||||
|
|
||||||
333
|
333
|
||||||
@@ -17,9 +17,10 @@
|
|||||||
<p>  Artiste     →</p>
|
<p>  Artiste     →</p>
|
||||||
<input type="text" name="songArtist" v-model="artist">
|
<input type="text" name="songArtist" v-model="artist">
|
||||||
</div>
|
</div>
|
||||||
|
<p v-show="editingSong" id="note">Note : Laisser vide pour conserver le fichier ↘</p>
|
||||||
<div class="inputDiv" id="src">
|
<div class="inputDiv" id="src">
|
||||||
<p>  Fichier MP3   →</p>
|
<p>  Fichier MP3   →</p>
|
||||||
<input type="file" name="songFile" ref="audioFile" @change="loadFile">
|
<input type="file" name="songFile" ref="audioFile" @change="modifyFile">
|
||||||
</div>
|
</div>
|
||||||
<button type="button" name="saveChanges" class="textBtnStyle" @click="savePlaylist" :class="{alert: playlistAlertActive}">SAUVEGARDER !</button>
|
<button type="button" name="saveChanges" class="textBtnStyle" @click="savePlaylist" :class="{alert: playlistAlertActive}">SAUVEGARDER !</button>
|
||||||
</div>
|
</div>
|
||||||
@@ -108,6 +109,15 @@
|
|||||||
color: var(--back-color);
|
color: var(--back-color);
|
||||||
background-color: var(--main-color);
|
background-color: var(--main-color);
|
||||||
}
|
}
|
||||||
|
#note{
|
||||||
|
width: 66%;
|
||||||
|
font-family: 'velvelyne';
|
||||||
|
font-weight: normal;
|
||||||
|
font-size: 13.12px;
|
||||||
|
color: var(--main-color);
|
||||||
|
margin: 0;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
.inputDiv{
|
.inputDiv{
|
||||||
display: flex;
|
display: flex;
|
||||||
@@ -251,13 +261,12 @@
|
|||||||
src: null
|
src: null
|
||||||
},
|
},
|
||||||
editingSong: null,
|
editingSong: null,
|
||||||
fileInput: null
|
selectedInput: null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
displayedPlaylists(){
|
displayedPlaylists(){
|
||||||
let list = loadAudioData()
|
return loadAudioData
|
||||||
return list
|
|
||||||
},
|
},
|
||||||
playlistPannel(){
|
playlistPannel(){
|
||||||
return pannelStatusList.playlist;
|
return pannelStatusList.playlist;
|
||||||
@@ -286,7 +295,6 @@
|
|||||||
backToDefaultPlaylist(){
|
backToDefaultPlaylist(){
|
||||||
this.track = this.playlistDefault.track;
|
this.track = this.playlistDefault.track;
|
||||||
this.artist = this.playlistDefault.artist;
|
this.artist = this.playlistDefault.artist;
|
||||||
this.src = this.playlistDefault.src;
|
|
||||||
this.editingSong = null;
|
this.editingSong = null;
|
||||||
this.newSongText = 'Nouveau Son';
|
this.newSongText = 'Nouveau Son';
|
||||||
},
|
},
|
||||||
@@ -296,16 +304,16 @@
|
|||||||
artist: this.artist,
|
artist: this.artist,
|
||||||
src: this.src
|
src: this.src
|
||||||
}
|
}
|
||||||
|
console.log('created or modified entry :', entry)
|
||||||
return entry
|
return entry
|
||||||
},
|
},
|
||||||
savePlaylist(){
|
savePlaylist(){
|
||||||
let entry = this.createListEntry();
|
let entry = this.createListEntry();
|
||||||
if(this.editingSong){
|
if(this.editingSong){
|
||||||
Object.assign(this.editingSong, {
|
Object.assign(this.editingSong, {
|
||||||
title: this.title,
|
track: this.track,
|
||||||
href: this.href,
|
artist: this.artist,
|
||||||
desc: this.desc
|
src: this.src
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
this.displayedPlaylists.push(entry);
|
this.displayedPlaylists.push(entry);
|
||||||
@@ -324,6 +332,7 @@
|
|||||||
this.track = obj.track;
|
this.track = obj.track;
|
||||||
this.artist = obj.artist;
|
this.artist = obj.artist;
|
||||||
this.src = obj.src;
|
this.src = obj.src;
|
||||||
|
|
||||||
this.newSongText = 'Éditer les infos'
|
this.newSongText = 'Éditer les infos'
|
||||||
this.toggleNewPlaylist();
|
this.toggleNewPlaylist();
|
||||||
},
|
},
|
||||||
@@ -336,10 +345,16 @@
|
|||||||
this.eventAlertActive = false;
|
this.eventAlertActive = false;
|
||||||
this.submitPlaylistText = 'SAUVEGARDER';
|
this.submitPlaylistText = 'SAUVEGARDER';
|
||||||
}, 1610)
|
}, 1610)
|
||||||
|
},
|
||||||
|
modifyFile(){
|
||||||
|
if (this.selectedInput.files[0]){
|
||||||
|
this.src = this.selectedInput.files[0];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted(){
|
mounted(){
|
||||||
this.fileInput = this.$refs.audioFile;
|
this.selectedInput = this.$refs.audioFile;
|
||||||
|
console.log(this.selectedInput)
|
||||||
watch( () => this.playlistPannel, () => {
|
watch( () => this.playlistPannel, () => {
|
||||||
if(!this.playlistPannel){
|
if(!this.playlistPannel){
|
||||||
this.newSong = false;
|
this.newSong = false;
|
||||||
|
|||||||
+2
-2
@@ -94,7 +94,7 @@
|
|||||||
<div id="aboutSection">
|
<div id="aboutSection">
|
||||||
<div class="uiStyle" id="aboutText">
|
<div class="uiStyle" id="aboutText">
|
||||||
<p>
|
<p>
|
||||||
Le Laboratoire Ouvert Lyonnais (LOL) est un lieu de rassemblement et d'expérimentations pour tout les passionné·es d'informatique, d'électronique et de technique,
|
Le Laboratoire Ouvert Lyonnais (LOL) est un lieu de rassemblement et d'expérimentations pour tous·tes les passionné·es d'informatique, d'électronique et de technique,
|
||||||
qui souhaitent réparer, recycler, et se réapproprier les objets et outils qui nous entourent.<br>
|
qui souhaitent réparer, recycler, et se réapproprier les objets et outils qui nous entourent.<br>
|
||||||
Le LOL est un lieu d'exploration des alternatives et de bidouille anti-systèmes.
|
Le LOL est un lieu d'exploration des alternatives et de bidouille anti-systèmes.
|
||||||
</p>
|
</p>
|
||||||
@@ -106,7 +106,7 @@
|
|||||||
<p>
|
<p>
|
||||||
Nous revendiquons l'ouverture du code et des techniques,
|
Nous revendiquons l'ouverture du code et des techniques,
|
||||||
le partage des connaissances et l'autogestion,
|
le partage des connaissances et l'autogestion,
|
||||||
la liberté et l'anti-fascisme. <br><br>
|
l'anti-capitalisme et l'anti-fascisme. <br><br>
|
||||||
Nous condamnons donc toute forme de violence et de discrimination dans nos locaux.<br>
|
Nous condamnons donc toute forme de violence et de discrimination dans nos locaux.<br>
|
||||||
Tout comportement assimilé pourra, sur décision collective, vous mener à la sortie.
|
Tout comportement assimilé pourra, sur décision collective, vous mener à la sortie.
|
||||||
</p>
|
</p>
|
||||||
|
|||||||
+2
-3
@@ -1,5 +1,5 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import PlayerIcon from './assets/icons/play.svg'
|
import PlayerIcon from './assets/icons/player.svg'
|
||||||
import LinkIcon from './assets/icons/folder.svg'
|
import LinkIcon from './assets/icons/folder.svg'
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
@@ -89,9 +89,8 @@
|
|||||||
openPannel(str){
|
openPannel(str){
|
||||||
if(!(this.pannelStatus.activePannels.includes(str))){
|
if(!(this.pannelStatus.activePannels.includes(str))){
|
||||||
this.pannelStatus.activePannels.push(str)
|
this.pannelStatus.activePannels.push(str)
|
||||||
} else {
|
|
||||||
this.focusPannel(str)
|
|
||||||
}
|
}
|
||||||
|
this.focusPannel(str)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted(){
|
mounted(){
|
||||||
|
|||||||
@@ -92,9 +92,9 @@ function analogLikeNoise(){
|
|||||||
for(let x = 0; x<tW; x++){
|
for(let x = 0; x<tW; x++){
|
||||||
const sx = x * scale + offset
|
const sx = x * scale + offset
|
||||||
for(let y = 0; y<tH; y++){
|
for(let y = 0; y<tH; y++){
|
||||||
let lum = Math.random()*200
|
let lum = Math.random()*161
|
||||||
|
|
||||||
//img.data[index++] = lum;
|
//img.data[index++] = lum*150/255;
|
||||||
index++
|
index++
|
||||||
img.data[index++] = lum;
|
img.data[index++] = lum;
|
||||||
img.data[index++] = lum;
|
img.data[index++] = lum;
|
||||||
|
|||||||
@@ -0,0 +1,4 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg id="Calque_1" data-name="Calque 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 97.51 84.66">
|
||||||
|
<path d="M18.91,0v49.74c-.47-.03-.94-.06-1.42-.06-4.72,0-8.81,1.74-12.28,5.21-3.47,3.47-5.21,7.51-5.21,12.1,0,4.96,1.74,9.15,5.21,12.56,3.47,3.41,7.57,5.12,12.28,5.12,4.96,0,9.12-1.7,12.47-5.12,3.35-3.41,5.02-7.6,5.02-12.56,0-.53-.03-1.05-.07-1.57V16h46.6v22.48c-.49-.04-.99-.07-1.49-.07-4.72,0-8.81,1.74-12.28,5.21-3.47,3.47-5.21,7.51-5.21,12.1,0,4.96,1.74,9.15,5.21,12.56,3.47,3.41,7.57,5.12,12.28,5.12,4.96,0,9.12-1.7,12.47-5.12,3.31-3.37,4.97-7.49,5.02-12.37h0V0H18.91Z"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 626 B |
@@ -38,6 +38,17 @@
|
|||||||
left: 77px;
|
left: 77px;
|
||||||
padding-bottom: 3.33px;
|
padding-bottom: 3.33px;
|
||||||
|
|
||||||
|
@media(min-width:650px){
|
||||||
|
left: 333px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media(min-width: 1300px){
|
||||||
|
width: 333px;
|
||||||
|
max-height: 333px;
|
||||||
|
top: 222px;
|
||||||
|
left: 1000px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#eventContent{
|
#eventContent{
|
||||||
padding: 7.77px;
|
padding: 7.77px;
|
||||||
@@ -63,13 +74,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*================ PC LARGE*/
|
|
||||||
@media(min-width:650px){
|
|
||||||
#eventPannel{
|
|
||||||
left: 333px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|||||||
@@ -48,6 +48,17 @@
|
|||||||
height: 333px;
|
height: 333px;
|
||||||
top: 222px;
|
top: 222px;
|
||||||
left: 117px;
|
left: 117px;
|
||||||
|
|
||||||
|
@media(min-width:650px){
|
||||||
|
left: 477px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media(min-width: 1300px){
|
||||||
|
width: 333px;
|
||||||
|
height: 444px;
|
||||||
|
top: 420px;
|
||||||
|
left: 555px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#linkContent{
|
#linkContent{
|
||||||
@@ -95,13 +106,6 @@
|
|||||||
margin-bottom: 7.77px;;
|
margin-bottom: 7.77px;;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*================ PC LARGE*/
|
|
||||||
@media(min-width:650px){
|
|
||||||
#linkPannel{
|
|
||||||
left: 477px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|||||||
@@ -5,7 +5,6 @@
|
|||||||
import PauseIcon from '../assets/icons/pause.svg'
|
import PauseIcon from '../assets/icons/pause.svg'
|
||||||
import NextIcon from '../assets/icons/next.svg'
|
import NextIcon from '../assets/icons/next.svg'
|
||||||
import PrevIcon from '../assets/icons/prev.svg'
|
import PrevIcon from '../assets/icons/prev.svg'
|
||||||
import { loadAudioData } from '@/data/audioData.js'
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
@@ -24,13 +23,13 @@
|
|||||||
<marquee direction="left" behavior="scroll" scrollamount="7" width="100%">{{selectedSong.track}} — {{selectedSong.artist}}</marquee>
|
<marquee direction="left" behavior="scroll" scrollamount="7" width="100%">{{selectedSong.track}} — {{selectedSong.artist}}</marquee>
|
||||||
</div>
|
</div>
|
||||||
<div id="controls">
|
<div id="controls">
|
||||||
<button type="button" class="iconBtnStyle" @click="prevTrack" data-tooltip="précédente">
|
<button type="button" class="iconBtnStyle" @mousedown.stop @touchstart.stop @click="prevTrack" data-tooltip="précédente">
|
||||||
<PrevIcon name="prev" class="icon"/>
|
<PrevIcon name="prev" class="icon"/>
|
||||||
</button>
|
</button>
|
||||||
<button type="button" class="iconBtnStyle" @click="toggleAudio" data-tooltip="lancer">
|
<button type="button" class="iconBtnStyle" @mousedown.stop @touchstart.stop @click="toggleAudio" data-tooltip="lancer">
|
||||||
<component :is="isPlaying? PauseIcon : PlayIcon" class="icon"/>
|
<component :is="isPlaying? PauseIcon : PlayIcon" class="icon"/>
|
||||||
</button>
|
</button>
|
||||||
<button type="button" class="iconBtnStyle" @click="nextTrack" data-tooltip="suivante">
|
<button type="button" class="iconBtnStyle" @mousedown.stop @touchstart.stop @click="nextTrack" data-tooltip="suivante">
|
||||||
<NextIcon name="next" class="icon"/>
|
<NextIcon name="next" class="icon"/>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
@@ -66,6 +65,16 @@
|
|||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
cursor: move;
|
cursor: move;
|
||||||
|
|
||||||
|
@media(min-width:700px){
|
||||||
|
left: 477px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media(min-width: 1300px){
|
||||||
|
width: 333px;
|
||||||
|
top: 333px;
|
||||||
|
left: 333px;
|
||||||
|
}
|
||||||
|
|
||||||
.closeBtn{
|
.closeBtn{
|
||||||
position: absolute;
|
position: absolute;
|
||||||
align-self: flex-end;
|
align-self: flex-end;
|
||||||
@@ -109,16 +118,11 @@
|
|||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*================ PC LARGE*/
|
|
||||||
@media(min-width:650px){
|
|
||||||
#playerPannel{
|
|
||||||
left: 477px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import { loadAudioData } from '../data/audioData.js'
|
||||||
|
|
||||||
import Moveable from 'vue3-moveable';
|
import Moveable from 'vue3-moveable';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
@@ -130,7 +134,6 @@
|
|||||||
return{
|
return{
|
||||||
target: null,
|
target: null,
|
||||||
audioTarget: null,
|
audioTarget: null,
|
||||||
audioData: [],
|
|
||||||
selectedSong:{
|
selectedSong:{
|
||||||
track: "",
|
track: "",
|
||||||
artist: "",
|
artist: "",
|
||||||
@@ -142,6 +145,11 @@
|
|||||||
isPlaying: false
|
isPlaying: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
computed: {
|
||||||
|
audioData(){
|
||||||
|
return loadAudioData
|
||||||
|
}
|
||||||
|
},
|
||||||
emits: ['close','focus'],
|
emits: ['close','focus'],
|
||||||
methods: {
|
methods: {
|
||||||
onDrag({ target, transform }) {
|
onDrag({ target, transform }) {
|
||||||
@@ -186,10 +194,8 @@
|
|||||||
},
|
},
|
||||||
async mounted(){
|
async mounted(){
|
||||||
this.target = this.$refs.playerPannel;
|
this.target = this.$refs.playerPannel;
|
||||||
|
|
||||||
this.audioData = await loadAudioData();
|
|
||||||
this.audioTarget = this.$refs.selectedAudio;
|
this.audioTarget = this.$refs.selectedAudio;
|
||||||
//console.log('AUDIO/', this.audioData);
|
console.log('AUDIO/', this.audioData);
|
||||||
this.loadAudio();
|
this.loadAudio();
|
||||||
|
|
||||||
console.log("Player pannel is loaded!");
|
console.log("Player pannel is loaded!");
|
||||||
|
|||||||
@@ -1,9 +1,11 @@
|
|||||||
|
import { reactive } from 'vue'
|
||||||
|
|
||||||
import audio01 from './juste-tek.mp3'
|
import audio01 from './juste-tek.mp3'
|
||||||
import audio02 from './sinking-into-.mp3'
|
import audio02 from './sinking-into-.mp3'
|
||||||
import audio03 from './technoloooogia.mp3'
|
import audio03 from './technoloooogia.mp3'
|
||||||
|
|
||||||
export async function loadAudioData() {
|
export const loadAudioData = reactive (
|
||||||
let audioFiles = [
|
[
|
||||||
{
|
{
|
||||||
track: 'the sink',
|
track: 'the sink',
|
||||||
artist: '333',
|
artist: '333',
|
||||||
@@ -20,6 +22,4 @@ export async function loadAudioData() {
|
|||||||
src: audio03
|
src: audio03
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
//console.log(audioFiles);
|
)
|
||||||
return audioFiles
|
|
||||||
}
|
|
||||||
Reference in new issue
Block a user