Compare commits

...

4 commits

3 changed files with 50 additions and 14 deletions

View file

@ -145,6 +145,12 @@ div.dragging-queue-entry{
}
/* Search Results */
#queue-search-prompts-result-div:not(:empty){
resize: vertical;
overflow: scroll;
height: 5em;
}
.queue-search-prompts-result-entry-div{
display: flex;
flex-direction: row;
@ -152,7 +158,7 @@ div.dragging-queue-entry{
text-wrap: nowrap;
margin: 0 0.15em;
padding: 0 0.15em;
font-size: 0.8em
font-size: 0.8em;
}
.queue-search-prompts-result-entry-div p{

View file

@ -258,6 +258,7 @@ class chatBox{
* @param {Event} event - Event passed down from Event Handler
*/
send(event){
//If we don't have an event, or if we do it isn't a keeb event, or if it is we hit enter
if((!event || !event.key || event.key == "Enter") && this.chatPrompt.value){
//Transmit the chat
this.transmit(this.chatPrompt.value);

View file

@ -148,12 +148,15 @@ class queuePanel extends panelObj{
defineListeners(){
//Render queue when we receive a new copy of the queue data from the server
//Render queue should be called within an arrow function so that it's called with default parameters, and not handed an event as a date
this.client.queueBroadcastSocket.on("queue", this.renderQueue.bind(this));
this.client.socket.on("archive", this.renderQueue.bind(this));
//Seems like before we didnt get the message (see 50b1e15a6c -> 05408bbec4)
//so just to reiterate: DON'T FUCKING REMOVE THE ARROW FUNCTIONS BELOW, NO MATTER HOW FUGLY YOU FUCKING THINK THEY ARE
this.client.queueBroadcastSocket.on("queue", ()=>{this.renderQueue()}); //YEAH ASSHOLE I MEAN THIS ONE
this.client.socket.on("archive", ()=>{this.renderQueue.bind(this)}); //THIS ONE TOO, FOR FUCK SAKES YOU BAKED CUNT
this.client.socket.on("start", this.handleStart.bind(this));
this.client.socket.on("end", this.handleEnd.bind(this));
this.client.socket.on("lock", this.handleScheduleLock.bind(this));
this.client.socket.on("error", this.handleQueueError.bind(this));
this.client.socket.on("archiveSearch", this.handleArchiveResults.bind(this));
}
/**
@ -183,6 +186,9 @@ class queuePanel extends panelObj{
//Go Live
this.goLiveOverwriteButton.addEventListener('click', this.goLive.bind(this));
this.goLivePushbackButton.addEventListener('click', this.goLive.bind(this));
//search
this.searchButton.addEventListener('click', this.search.bind(this));
this.searchPrompt.addEventListener("keydown", this.search.bind(this));
//Queue Date
this.queueDateDecrement.addEventListener('click', this.decrementDate.bind(this));
this.queueDateIncrement.addEventListener('click', this.incrementDate.bind(this));
@ -304,26 +310,49 @@ class queuePanel extends panelObj{
//Grab query
const query = this.searchPrompt.value;
//If we're searching by URL
if(utils.isURL(query)){
//Render local items matching provided URL
this.renderResults(client.searchQueue(undefined, query));
}else{
//Render local items matching title
this.renderResults(client.searchQueue(query));
//If we don't have an event, or if we do it isn't a keeb event, or if it is we hit enter and we got a query
if((!event || !event.key || event.key == "Enter") && query){
//Clear out search result div
this.searchResultDiv.innerHTML = '';
//If we're searching by URL
if(utils.isURL(query)){
//Render local items matching provided URL
this.renderResults(client.searchQueue(undefined, query));
//Ask server to search archive by URL
client.socket.emit("getArchive", {url: query, search: true});
}else{
//Render local items matching title
this.renderResults(client.searchQueue(query));
//Ask server to search archive by title
client.socket.emit("getArchive", {title: query, search: true});
}
}
}
renderResults(results){
//Keep track of whether or not we're on the first entry
let notFirst = false;
handleArchiveResults(data){
//Reverse archive order to show newest first, and render as an array of raw entries
this.renderResults(data.archive.reverse(), true);
}
renderResults(results, rawEntry = false){
//Keep track of whether or not we're on the first entry
let notFirst = this.searchResultDiv.hasChildNodes();
for(let entry of results){
//If we where handed an entry raw from a map
if(rawEntry){
//Yoink the actual media object
entry = entry[1];
}
for(const entry of results){
//Create entry div
const entryDiv = document.createElement('div');
entryDiv.classList.add('queue-search-prompts-result-entry-div');
//if this shit aint da first one
if(notFirst){
//MAKE IT SO, PILOT -ronin from tf|2 or something
entryDiv.classList.add('not-first');
}