Removing outdated, unused files

This commit is contained in:
Julien Lengrand-Lambert
2020-10-07 22:28:07 +02:00
parent 4b718872ff
commit 99aef543df
6 changed files with 0 additions and 723 deletions

View File

@@ -1,138 +0,0 @@
// from https://github.com/VoloshinS/firebase-crud-example
var config = {
apiKey: "AIzaSyBDpWYywapzpuYJerHNe1aVNPsQGULBMN0",
authDomain: "bipbipzizik.firebaseapp.com",
databaseURL: "https://bipbipzizik.firebaseio.com",
storageBucket: "bipbipzizik.appspot.com",
};
firebase.initializeApp(config);
var db = firebase.database();
// CREATE CARD
var cardForm = document.getElementById('cardForm');
var cardHiddenId = document.getElementById('hiddenIdText');
var cardName = document.getElementById('nameText');
var cardUser = document.getElementById('userText');
var cardIds = document.getElementById('idsText');
var cardAction = document.getElementById('actionText');
var cardData = document.getElementById('dataText');
var cardMode = document.getElementById('modeText');
var cardComment = document.getElementById('commentText');
cardForm.addEventListener('submit', (e) =>
{
e.preventDefault();
//Prevent empty card
if (!cardName.value || !cardIds.value || !cardAction.value || !cardData.value)
{
return null
}
var id = cardHiddenId.value || Date.now()
db.ref('cards_prod/' + id).set(
{
name: cardName.value,
ids: cardIds.value,
action: cardAction.value,
data: cardData.value,
mode: cardMode.value,
comment: cardComment.value
}
);
cardHiddenId.value = '';
cardName.value = '';
cardIds.value = '';
cardAction.value = '';
cardData.value = '';
cardMode.value = '';
cardComment.value = '';
});
// READ CARDS
var cardsDiv = document.getElementById('cards');
var cardsRef = db.ref('/cards_prod');
cardsRef.on('child_added', (data) => {
var newDiv = document.createElement('div')
newDiv.id = data.key;
newDiv.className = "cardTile";
newDiv.innerHTML = cardTemplate(data.val())
cardsDiv.appendChild(newDiv);
});
cardsRef.on('child_changed', (data) => {
var node = document.getElementById(data.key);
node.innerHTML = cardTemplate(data.val());
});
cardsRef.on('child_removed', (data) => {
var node = document.getElementById(data.key);
node.parentNode.removeChild(node);
});
// Action on CARD
cardsDiv.addEventListener('click', (e) =>
{
var cardNode = e.target.parentNode
// Update card editor view
if (e.target.classList.contains('edit'))
{
cardName.value = cardNode.querySelector('.nameTile').innerText;
cardIds.value = cardNode.querySelector('.idsTile').innerText;
cardUser.value = cardNode.querySelector('.userTile').innerText;
cardAction.value = cardNode.querySelector('.actionTile').innerText;
cardData.value = cardNode.querySelector('.dataTile').innerText;
cardMode.value = cardNode.querySelector('.modeTile').innerText;
cardComment.value = cardNode.querySelector('.commentTile').innerText;
cardHiddenId.value = cardNode.id;
}
// Delet card in database
if (e.target.classList.contains('delete'))
{
var id = cardNode.id;
db.ref('cards_prod/' + id).remove();
}
});
function cardTemplate({name, ids, user, action, data, mode, comment})
{
return `
<div class='nameTile'>${name}</div>
<div class='idsLabel'>Ids:</div>
<div class='idsTile'>${ids}</div>
<div class='userLabel'>User:</div>
<div class='userTile'>${user}</div>
<div class='actionLabel'>Action:</div>
<div class='actionTile'>${action}</div>
<div class='dataLabel'>Data:</div>
<div class='dataTile'>${data}</div>
<div class='modeLabel'>Mode:</div>
<div class='modeTile'>${mode}</div>
<div class='commentLabel'>Comment:</div>
<div class='commentTile'>${comment}</div>
<button class='delete'>Delete</button>
<button class='edit'>Edit</button>
`
};
function getUrlVars() {
var vars = {};
var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
vars[key] = value;
});
return vars;
};

View File

@@ -1,69 +0,0 @@
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Firebase realtime database CRUD example</title>
<link rel="stylesheet" href="main.css">
</head>
<body>
<div class='container'>
<div class='header'>
<img src="img/card.png" height="150" alt="">
<h1>BipBipZiZik Cards editor</h1>
<h4>
This page allows to edit all cards.<br>
Edit existing card or create a new one.
</h4>
<div id="firebase-login">
<button id="firebase-login-button" onclick="logIn()">Log in using Google</button>
</div>
</div>
<h2>Cards</h2>
<h4>CREATE/UPDATE</h4>
<form id='cardForm'>
<input type="hidden" id='hiddenIdText' />
<div class=editBlock>
<label for="nameText">Name</label>
<input type="text" id='nameText' />
</div>
<div class=editBlock>
<label for="userText">User</label>
<input type="text" id="userText" />
</div>
<div class=editBlock>
<label for="idsText">Ids</label>
<input type="text" id="idsText" />
</div>
<div class=editBlock>
<label for="actionText">Action</label>
<input type="text" id='actionText' />
</div>
<div class=editBlock>
<label for="dataText">Data</label>
<input type="text" id="dataText" />
</div>
<div class=editBlock>
<label for="modeText">Mode</label>
<input type="text" id='modeText' />
</div>
<div class=editBlock>
<label for="commentText">Comment</label>
<input type="text" id="commentText" />
</div>
<div class=btnsBlock>
<button type='submit'>Add/Update card</button>
</div>
</form>
<br/>
<h4>READ/DELETE</h4>
<div id='cards'>
</div>
</div>
<script src="https://www.gstatic.com/firebasejs/7.21.0/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/7.21.0/firebase-auth.js"></script>
<script src="https://www.gstatic.com/firebasejs/7.21.0/firebase-database.js"></script>
<script src="https://www.gstatic.com/firebasejs/7.21.0/firebase-firestore.js"></script>
<script src="cards.js"></script>
</body>
</html>

View File

@@ -1,168 +0,0 @@
// from https://github.com/VoloshinS/firebase-crud-example
var config = {
apiKey: "AIzaSyBDpWYywapzpuYJerHNe1aVNPsQGULBMN0",
authDomain: "bipbipzizik.firebaseapp.com",
databaseURL: "https://bipbipzizik.firebaseio.com",
projectId: "bipbipzizik",
storageBucket: "bipbipzizik.appspot.com",
messagingSenderId: "800598547799",
appId: "1:800598547799:web:3ee8db578f5c76da60f212",
measurementId: "G-LPM9CG1HWR"
};
firebase.initializeApp(config);
var db = firebase.database();
var provider = new firebase.auth.GoogleAuthProvider();
function logIn(){
console.log("Logging in");
firebase.auth().signInWithPopup(provider).then(function(result) {
var token = result.credential.accessToken;
var user = result.user;
console.log("logged in");
console.log(user);
}).catch(function(error) {
console.log("Error when logging in");
console.log(error);
});
}
firebase.auth().onAuthStateChanged((user) =>{
if (user) {
console.log("user found");
console.log(user);
const logInDiv = document.getElementById("firebase-login");
const logInButton = document.getElementById("firebase-login-button");
logInDiv.innerText = user.email
logInButton.style.display = "none";
} else {
console.log("Not logged in");
}
});
// CREATE CARD
var cardForm = document.getElementById('cardForm');
var cardHiddenId = document.getElementById('hiddenIdText');
var cardName = document.getElementById('nameText');
var cardUser = document.getElementById('userText');
var cardIds = document.getElementById('idsText');
var cardAction = document.getElementById('actionText');
var cardData = document.getElementById('dataText');
var cardMode = document.getElementById('modeText');
var cardComment = document.getElementById('commentText');
cardForm.addEventListener('submit', (e) =>
{
e.preventDefault();
//Prevent empty card
if (!cardName.value || !cardIds.value || !cardAction.value || !cardData.value)
{
return null
}
var id = cardHiddenId.value || Date.now()
console.log(firebase.auth().currentUser.uid);
db.ref('cards_prod/' + id).set(
{
name: cardName.value,
ids: cardIds.value,
action: cardAction.value,
data: cardData.value,
mode: cardMode.value,
comment: cardComment.value
}
);
cardHiddenId.value = '';
cardName.value = '';
cardIds.value = '';
cardAction.value = '';
cardData.value = '';
cardMode.value = '';
cardComment.value = '';
});
// READ CARDS
var cardsDiv = document.getElementById('cards');
var cardsRef = db.ref('/cards_prod');
cardsRef.on('child_added', (data) => {
console.log("card added", data);
var newDiv = document.createElement('div')
newDiv.id = data.key;
newDiv.className = "cardTile";
newDiv.innerHTML = cardTemplate(data.val())
cardsDiv.appendChild(newDiv);
});
cardsRef.on('child_changed', (data) => {
var node = document.getElementById(data.key);
node.innerHTML = cardTemplate(data.val());
});
cardsRef.on('child_removed', (data) => {
var node = document.getElementById(data.key);
node.parentNode.removeChild(node);
});
// Action on CARD
cardsDiv.addEventListener('click', (e) =>
{
var cardNode = e.target.parentNode
// Update card editor view
if (e.target.classList.contains('edit'))
{
cardName.value = cardNode.querySelector('.nameTile').innerText;
cardIds.value = cardNode.querySelector('.idsTile').innerText;
cardUser.value = cardNode.querySelector('.userTile').innerText;
cardAction.value = cardNode.querySelector('.actionTile').innerText;
cardData.value = cardNode.querySelector('.dataTile').innerText;
cardMode.value = cardNode.querySelector('.modeTile').innerText;
cardComment.value = cardNode.querySelector('.commentTile').innerText;
cardHiddenId.value = cardNode.id;
}
// Delet card in database
if (e.target.classList.contains('delete'))
{
var id = cardNode.id;
console.log(firebase.auth().currentUser.uid);
db.ref('cards_prod/' + id).remove();
}
});
function cardTemplate({name, ids, user, action, data, mode, comment})
{
return `
<div class='nameTile'>${name}</div>
<div class='idsLabel'>Ids:</div>
<div class='idsTile'>${ids}</div>
<div class='userLabel'>User:</div>
<div class='userTile'>${user}</div>
<div class='actionLabel'>Action:</div>
<div class='actionTile'>${action}</div>
<div class='dataLabel'>Data:</div>
<div class='dataTile'>${data}</div>
<div class='modeLabel'>Mode:</div>
<div class='modeTile'>${mode}</div>
<div class='commentLabel'>Comment:</div>
<div class='commentTile'>${comment}</div>
<button class='delete'>Delete</button>
<button class='edit'>Edit</button>
`
};

View File

@@ -1,74 +0,0 @@
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>BipBipZiZik Congigs editor</title>
<link rel="stylesheet" href="main.css">
</head>
<body>
<div class='container'>
<div class='header'>
<img src="img/config.png" height="150" alt="">
<h1>BipBipZiZik Configs editor</h1>
<h4>
This page allows to edit all configs.<br>
Find your raspberry ID and choose your config.
</h4>
<div id="firebase-login">
<button id="firebase-login-button" onclick="logIn()">Log in using Google</button>
</div>
</div>
<h2>Configs</h2>
<h4>CREATE/UPDATE</h4>
<form id='configForm'>
<input type="hidden" id='hiddenIdText' />
<div class=editBlock>
<label for="NameText">Name</label>
<input type="text" id='NameText' />
</div>
<div class=editBlock>
<label for="userText">User</label>
<input type="text" id="userText" />
</div>
<div class=editBlock>
<label for="idText">RaspberryId</label>
<input type="text" id="idText" />
</div>
<div class=editBlock>
<label for="sonosIpText">Sonos server ip</label>
<input type="text" id='sonosIpText' />
</div>
<div class=editBlock>
<label for="sonosPortText">Sonos server port</label>
<input type="text" id="sonosPortText" />
</div>
<div class=editBlock>
<label for="roomText">Room Name</label>
<input type="text" id='roomText' />
</div>
<div class=editBlock>
<label for="multiReadText">Multi read mode</label>
<input type="text" id="multiReadText" />
</div>
<div class=editBlock>
<label for="timeoutText">Card timeout</label>
<input type="text" id="timeoutText" />
</div>
<div class=btnsBlock>
<button type='submit'>Add/Update config</button>
</div>
</form>
<br/>
<h4>READ/DELETE</h4>
<div id='configs'>
</div>
</div>
<script src="https://www.gstatic.com/firebasejs/7.21.0/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/7.21.0/firebase-auth.js"></script>
<script src="https://www.gstatic.com/firebasejs/7.21.0/firebase-database.js"></script>
<script src="https://www.gstatic.com/firebasejs/7.21.0/firebase-firestore.js"></script>
<script src="configs.js"></script>
</body>
</html>

View File

@@ -1,174 +0,0 @@
// from https://github.com/VoloshinS/firebase-crud-example
var config = {
apiKey: "AIzaSyBDpWYywapzpuYJerHNe1aVNPsQGULBMN0",
authDomain: "bipbipzizik.firebaseapp.com",
databaseURL: "https://bipbipzizik.firebaseio.com",
projectId: "bipbipzizik",
storageBucket: "bipbipzizik.appspot.com",
messagingSenderId: "800598547799",
appId: "1:800598547799:web:3ee8db578f5c76da60f212",
measurementId: "G-LPM9CG1HWR"
};
firebase.initializeApp(config);
var db = firebase.database();
var provider = new firebase.auth.GoogleAuthProvider();
function logIn(){
console.log("Logging in");
firebase.auth().signInWithPopup(provider).then(function(result) {
var token = result.credential.accessToken;
var user = result.user;
console.log("logged in");
console.log(user);
}).catch(function(error) {
console.log("Error when logging in");
console.log(error);
});
}
firebase.auth().onAuthStateChanged((user) =>{
if (user) {
console.log("user found");
console.log(user);
const logInDiv = document.getElementById("firebase-login");
const logInButton = document.getElementById("firebase-login-button");
logInDiv.innerText = user.email
logInButton.style.display = "none";
} else {
console.log("Not logged in");
}
});
// CREATE CONFIG
var configForm = document.getElementById('configForm');
var configHiddenId = document.getElementById('hiddenIdText');
var configName = document.getElementById('NameText');
var configUser = document.getElementById('userText');
var configId = document.getElementById('idText');
var configIp = document.getElementById('sonosIpText');
var configPort = document.getElementById('sonosPortText');
var configRoom = document.getElementById('roomText');
var configMode = document.getElementById('multiReadText');
var configTimeout = document.getElementById('timeoutText');
configForm.addEventListener('submit', (e) =>
{
e.preventDefault();
//Prevent empty Config
if (!configName.value || !configUser.value || !configName.value || !configId.value)
{
return null
}
var id = configHiddenId.value || Date.now()
db.ref('config_prod/' + id).set(
{
app_name: configName.value,
app_owner: configUser.value,
app_id: configId.value,
sonos_server_ip: configIp.value,
sonos_server_port: configPort.value,
room_name: configRoom.value,
multi_read_mode: configMode.value,
card_timeout: configTimeout.value
}
);
configName = '';
configUser = '';
configId = '';
configIp = '';
configPort = '';
configRoom = '';
configMode = '';
configTimeout = '';
});
// READ CONFIGS
var configDiv = document.getElementById('configs');
var configRef = db.ref('/config_prod');
configRef.on('child_added', (data) => {
var newDiv = document.createElement('div')
newDiv.id = data.key;
newDiv.className = "configTile";
newDiv.innerHTML = configTemplate(data.val())
configDiv.appendChild(newDiv);
});
configRef.on('child_changed', (data) => {
var node = document.getElementById(data.key);
node.innerHTML = configTemplate(data.val());
});
configRef.on('child_removed', (data) => {
var node = document.getElementById(data.key);
node.parentNode.removeChild(node);
});
// Action on config
configDiv.addEventListener('click', (e) =>
{
var node = e.target.parentNode
// Update editor view
if (e.target.classList.contains('edit'))
{
node.value = node.querySelector('.nameTile').innerText;
configName.value = node.querySelector('.nameTile').innerText;
configUser.value = node.querySelector('.userTile').innerText;
configId.value = node.querySelector('.idTile').innerText;
configIp.value = node.querySelector('.ipTile').innerText;
configPort.value = node.querySelector('.portTile').innerText;
configRoom.value = node.querySelector('.roomTile').innerText;
configMode.value = node.querySelector('.modeTile').innerText;
configTimeout.value = node.querySelector('.timeoutTile').innerText;
configHiddenId.value = node.id;
}
// Delet config in database
if (e.target.classList.contains('delete'))
{
var id = node.id;
db.ref('config_prod/' + id).remove();
}
});
function configTemplate({app_name, app_owner, app_id, sonos_server_ip,
sonos_server_port, room_name, multi_read_mode, card_timeout})
{
return `
<div class='nameTile'>${app_name}</div>
<div class='userLabel'>User:</div>
<div class='userTile'>${app_owner}</div>
<div class='idLabel'>Id:</div>
<div class='idTile'>${app_id}</div>
<div class='ipLabel'>Ip:</div>
<div class='ipTile'>${sonos_server_ip}</div>
<div class='portLabel'>Port:</div>
<div class='portTile'>${sonos_server_port}</div>
<div class='roomLabel'>Room:</div>
<div class='roomTile'>${room_name}</div>
<div class='modeLabel'>Mode:</div>
<div class='modeTile'>${multi_read_mode}</div>
<div class='timeoutLabel'>Timeout:</div>
<div class='timeoutTile'>${card_timeout}</div>
<button class='delete'>Delete</button>
<button class='edit'>Edit</button>
`
};

View File

@@ -1,100 +0,0 @@
body {
font-family: Roboto, sans-serif;
font-size: 16px;
background-color: #FDFDFD;
}
div, input, a, button, ul, li {
box-sizing: border-box;
}
.container {
max-width: 100%;
width: 760px;
margin: 0 auto;
}
.editBlock{
display:inline-block;
}
.btnsBlock{
text-align:center;
margin: 20px;
}
#cards {
list-style-type: none;
margin: 0;
padding: 0;
border-bottom: 1px solid #EEE;
border-radius: 2px;
box-shadow: 0 1px 6px rgba(0,0,0,.1),0 1px 4px rgba(0,0,0,.1);
background-color: #fff;
min-height: 20px;
margin-bottom: 20px;
}
#configs {
list-style-type: none;
margin: 0;
padding: 0;
border-bottom: 1px solid #EEE;
border-radius: 2px;
box-shadow: 0 1px 6px rgba(0,0,0,.1),0 1px 4px rgba(0,0,0,.1);
background-color: #fff;
min-height: 20px;
margin-bottom: 20px;
}
.cardTile {
display: inline-block;
width: 250px;
padding: 10px;
border: 1px solid #EEE;
border-bottom: none;
border-radius: 2px;
background-color: #fff;
}
.configTile {
display: inline-block;
width: 250px;
padding: 10px;
border: 1px solid #EEE;
border-bottom: none;
border-radius: 2px;
background-color: #fff;
}
input[type="text"],
textarea {
border: 1px solid #EEE;
display: block;
width: 200px;
padding: 8px;
font-size: 16px;
background-color: #fff;
border-radius: 2px;
box-shadow: 0 1px 6px rgba(0,0,0,.1),0 1px 4px rgba(0,0,0,.1);
}
textarea {
min-height: 100px;
}
.header {
text-align: center;
padding-top: 50px;
}
.header h1,
.header h4 {
font-weight: normal;
margin: 10px 0;
}
.header img {
border-radius: 50%;
box-shadow: 0 1px 1px rgba(0,0,0,.1),0 1px 1px rgba(0,0,0,.1);
}