From 78c3609a2ca461d93ad42a19243de13970ff424a Mon Sep 17 00:00:00 2001 From: Sai Raj <39055732+sairajzero@users.noreply.github.com> Date: Sun, 5 May 2019 13:12:46 +0530 Subject: [PATCH] Updated UI to latest version and added search --- FLO_Torrentz.html | 994 +++++++++++++++++++++++++++++++++------------- 1 file changed, 724 insertions(+), 270 deletions(-) diff --git a/FLO_Torrentz.html b/FLO_Torrentz.html index 27f75b5..2f02149 100644 --- a/FLO_Torrentz.html +++ b/FLO_Torrentz.html @@ -1,6 +1,5 @@ - FLO Torrent @@ -8,7 +7,6 @@ - + -
@@ -291,41 +353,240 @@ a{ const cryptocoin = "FLO_TEST" const mainnet = `https://flosight.duckdns.org`; const testnet = `https://testnet-flosight.duckdns.org`; -const adminID = "oTZw3ydCRKDhcYC5Bp6mRJMGTTVv9JHtg8"; +const adminID = "oW8i29qzPXX2TZ5Wb4pYkH456ccMznzYoM"; if(cryptocoin == "FLO") var server = mainnet; else if(cryptocoin == "FLO_TEST") var server = testnet; - torrents = [] +var torrents = []; +var searchResults = []; +var searchKey = ""; + + - - + @@ -568,6 +631,7 @@ function download(filename, data) { 3. Keep all the screen specific display in @@ -612,8 +739,9 @@ function download(filename, data) { screenAlpha.lastBaseDivNumber = screenAlpha.totalBoxes -1; screenAlpha.lastUserDivNumber = 0; -//One time tasks not needing repainting +//One time tasks not needing repainting + oneTimeTasks(); function oneTimeTasks(){ createAllBaseDivs(screenAlpha.totalBoxes); @@ -667,6 +795,7 @@ function download(filename, data) { var boxEffectiveWidth = boxMinimumWidth + spillOverPerBox; boxDetails.numberOfBoxesInRow = numberOfBoxesInRow; boxDetails.boxEffectiveWidth = boxEffectiveWidth; + screenAlpha.previousNumberOfBoxesInRow = screenAlpha.numberOfBoxesInRow; screenAlpha.numberOfBoxesInRow = numberOfBoxesInRow; screenAlpha.boxEffectiveWidth = boxEffectiveWidth; return boxDetails; @@ -686,6 +815,7 @@ function download(filename, data) { for (index = 0; index < screenAlpha.baseDivIdList.length; index++) { topAndLeftPositionOfBaseDivs(index); var divId = "div_"+index; + document.getElementById(divId).style.position = "absolute"; document.getElementById(divId).style.top=screenAlpha["div_"+index+"_topPosition"]+"px"; document.getElementById(divId).style.left=screenAlpha["div_"+index+"_leftPosition"]+"px"; document.getElementById(divId).style.width=screenAlpha.boxDetails.boxEffectiveWidth+"px"; @@ -695,10 +825,20 @@ function download(filename, data) { } function createUserDiv(baseDivNumber,howManyAdjacentDivs=1,heightMultiplier=1){ + + //Adjusting baseDivNumber for forward overlaps + baseDivNumber = forwardOverlapCheck(baseDivNumber,howManyAdjacentDivs,heightMultiplier); + + screenAlpha.codeOrderDivList.push(baseDivNumber); + screenAlpha["div_overlay_"+baseDivNumber+"_howManyAdjacentDivs"]=howManyAdjacentDivs; + screenAlpha["div_overlay_"+baseDivNumber+"_heightMultiplier"]=heightMultiplier; + + var topPosition = screenAlpha["div_"+baseDivNumber+"_topPosition"]; if (howManyAdjacentDivs == "full_line") { var divWidth = screenAlpha.boxEffectiveWidth*screenAlpha.numberOfBoxesInRow; var leftPosition = "0"; + } else { @@ -709,9 +849,22 @@ function download(filename, data) { var divWidth3 = divWidth1 - screenAlpha["div_"+baseDivNumber+"_leftPosition"]; var divWidthTemp = (divWidth1 > divWidth2) ? divWidth2 : divWidth1; var divWidth = (divWidthTemp > divWidth3) ? divWidth3 : divWidthTemp; + } var divHeight = screenAlpha.boxMinimumHeight*heightMultiplier; var divId="div_overlay_"+baseDivNumber; + + screenAlpha[divId+"_lineDivCount"]=divWidth/screenAlpha.boxEffectiveWidth; + var i;var j; + var lineDivCount = screenAlpha[divId+"_lineDivCount"]; + screenAlpha.userDivSpan[baseDivNumber]=[]; + + for(j=0;j divWidth2) ? divWidth2 : divWidth1; + var divWidth = (divWidthTemp > divWidth3) ? divWidth3 : divWidthTemp; + + } + var divHeight = screenAlpha.boxMinimumHeight*heightMultiplier; + var divId="div_overlay_"+baseDivNumber; + + screenAlpha[divId+"_lineDivCount"]=divWidth/screenAlpha.boxEffectiveWidth; + var i;var j; + var lineDivCount = screenAlpha[divId+"_lineDivCount"]; + screenAlpha.userDivSpan[baseDivNumber]=[]; + + for(j=0;j";} This feature is not available in flexContainerDiv */ + } + if(!screenAlpha.userDivIdList.includes(divId)) { + screenAlpha.userDivIdList.push(divId); + } + + if (!document.getElementById("flexcontainer"+baseDivNumber)){ + var flexContainerDiv = document.createElement("div"); + flexContainerDiv.id = "flexcontainer"+baseDivNumber; + flexContainerDiv.classList.add("flexcontainer"); + flexContainerDiv.style.height = screenAlpha.boxMinimumHeight; + document.getElementById("div_overlay_"+baseDivNumber).innerHTML = ""; + document.getElementById("div_overlay_"+baseDivNumber).appendChild(flexContainerDiv); + } + + return document.getElementById("flexcontainer"+baseDivNumber); + } + + + function getUserDivDimensions(userDivNumber){ var x = {}; x.height = screenAlpha["div_overlay_"+userDivNumber+"_height"]; @@ -752,12 +995,15 @@ function download(filename, data) { createUserDiv(lastBaseDivNumber,"full_line",1) } + function removeLargest(arr) { + var min = Math.max.apply(null, arr); + return arr.filter((e) => {return e != min}); + } + + function getLastUserDivNumber(){ - function removeLargest(arr) { - var min = Math.max.apply(null, arr); - return arr.filter((e) => {return e != min}); - } + var extractNumbers = screenAlpha.userDivIdList.map(x => {return parseInt(x.replace("div_overlay_",""))}); if (screenAlpha.lastUserDivShouldCoverWholeLine) extractNumbers = removeLargest(extractNumbers); @@ -765,9 +1011,217 @@ function download(filename, data) { // This condition is screwing me // if (highestValue >= screenAlpha.lastUserDivNumber) {return "All base divs are taken" } else {return highestValue+1}; - return highestValue+1 + return highestValue; } + + function deleteUserDiv(divNumber){ + //check the code .. find original divs .. delete the other userDivs + +if(typeof(divNumber) != 'undefined' && divNumber != null){ + + delete screenAlpha["div_overlay_"+divNumber+"_height"] + delete screenAlpha["div_overlay_"+divNumber+"_heightMultiplier"] + delete screenAlpha["div_overlay_"+divNumber+"_howManyAdjacentDivs"] + delete screenAlpha["div_overlay_"+divNumber+"_left"] + delete screenAlpha["div_overlay_"+divNumber+"_top"] + delete screenAlpha["div_overlay_"+divNumber+"_width"] + + delete screenAlpha.userDivSpan[divNumber]; + + //remove div_overlay_divNumber from userDivIdList + for( var i = 0; i < screenAlpha.userDivIdList.length; i++){ + if ( screenAlpha.userDivIdList[i] == "div_overlay_"+divNumber) { + screenAlpha.userDivIdList.splice(i, 1); + } + } + + var element = document.getElementById("div_overlay_"+divNumber); + if(typeof(element) != 'undefined' && element != null){ + element.style=""; + element.innerHTML="";} + + } +} + + + function deleteBaseDiv(divNumber){ + + //alert("Start deleting from "+divNumber); + var startDiv = divNumber; + while (divNumber < screenAlpha.totalBoxes ) { + + var element = document.getElementById("div_"+divNumber); + if(typeof(element) != 'undefined' && element != null){ + element.style=""; + element.innerHTML=""; + //console.log("Deleted Base Div number "+divNumber); + } + divNumber++; + + } + + //console.log("divNumber is "+startDiv); + var divSelected = document.getElementById("rootDiv"); + divSelected.style.height = Math.ceil(startDiv/screenAlpha.boxDetails.numberOfBoxesInRow)*screenAlpha.boxMinimumHeight; + + } + + +function myFunction(item,index){ + if (!(screenAlpha.codeOrderDivList.includes(item))) {deleteUserDiv(item)}; + } + +function anotherDivCleanUp(){ + var extractNumbers = screenAlpha.userDivIdList.map(x => {return parseInt(x.replace("div_overlay_",""))}); + if (screenAlpha.lastUserDivShouldCoverWholeLine) extractNumbers = removeLargest(extractNumbers); + //Pick an element from extractNumbers. Check if it is included in screenAlpha.codeOrderDivList. If not, delete it + extractNumbers.forEach(myFunction); + + } + +function nextAvailableUserDivNumber(){ + + + var nextAvailableDivNumber; + var boundaryLimit; + var udiv1 = screenAlpha.codeOrderDivList[screenAlpha.codeOrderDivList.length-1]; //last element upto now + + var n1 = screenAlpha.boxDetails.numberOfBoxesInRow; + var h1 = screenAlpha["div_overlay_"+udiv1+"_howManyAdjacentDivs"]; if (h1=="full_line") {h1 = n1}; + var heightMultiplier = screenAlpha["div_overlay_"+udiv1+"_heightMultiplier"]; + +//Full Line Cases .. if the previous element is full line .. then take the next line. Here we want if the current element is full line + if ((h1 == "full_line") || ((udiv1 % n1) + h1 > n1-1) ){ + var current_k = Math.floor(udiv1/n1); + var new_k = current_k + heightMultiplier; + nextAvailableDivNumber = new_k*n1; + + //Check for overlap here. If there is a overlap jump to next free boundary number. + //First check for overlap .. if the the resultant number is not on boundary .. increment it by boundary steps till no overlap is found + + + } +//Non full line cases + else + { + nextAvailableDivNumber = udiv1+h1; + } + +//global processing + //This rule is now deleting my previous legitimate div .. I need to fix this .. at least I know the problem + //I am down to this delete logic .. how to delete .. done + if (screenAlpha.previousDivNumber != nextAvailableDivNumber) { + // debugger; + if ((!screenAlpha.codeOrderDivList.includes(screenAlpha.previousDivNumber))){ deleteUserDiv(screenAlpha.previousDivNumber)}; + + //if (udiv1 != screenAlpha.previousDivNumber){ deleteUserDiv(screenAlpha.previousDivNumber)}; + + // deleteUserDiv(screenAlpha.previousDivNumber); + } + + //Check if any of the previous guys have occupied a div. If yes, shift the div to the next vacant slot + nextAvailableDivNumber = adjustForOverlap(nextAvailableDivNumber); + + screenAlpha.previousDivNumber = nextAvailableDivNumber; + return nextAvailableDivNumber; + + } + + + + function adjustForOverlap(divNumber) { + + do + { + var overlap =0; + for (index = 0; index < screenAlpha.codeOrderDivList.length; index++) { + if(screenAlpha.userDivSpan[screenAlpha.codeOrderDivList[index]].includes(divNumber)){overlap=1 }; + } + + if(overlap == 1) {divNumber++;} + } + while (overlap !=0); //this condition has to be false to exit do while loop .. ie ovelap must be 0 .. until then keep on increasing nextAvailableDivNumber and check no overlap exists, If condition is true, repeat the loop. + + return divNumber; + + + } + + function forwardOverlapCheck (baseDivNumber,howManyAdjacentDivs,heightMultiplier){ + + + + if (howManyAdjacentDivs == "full_line") { + var divWidth = screenAlpha.boxEffectiveWidth*screenAlpha.numberOfBoxesInRow; + + + } + else + { + + //Obtain the lowest width of 3 possibilities for overlay + var divWidth1 = screenAlpha.boxEffectiveWidth*screenAlpha.numberOfBoxesInRow; + var divWidth2 = howManyAdjacentDivs*screenAlpha.boxEffectiveWidth; + var divWidth3 = divWidth1 - screenAlpha["div_"+baseDivNumber+"_leftPosition"]; + var divWidthTemp = (divWidth1 > divWidth2) ? divWidth2 : divWidth1; + var divWidth = (divWidthTemp > divWidth3) ? divWidth3 : divWidthTemp; + + } + var divHeight = screenAlpha.boxMinimumHeight*heightMultiplier; + + var i;var j; + var lineDivCount = divWidth/screenAlpha.boxEffectiveWidth; + screenAlpha.temp=[]; + + for(j=0;j