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