Skip to content
Snippets Groups Projects
selectdriver.js 4.06 KiB
Newer Older
Adrian Hartarto Pramudita's avatar
Adrian Hartarto Pramudita committed
var prefDriver = document.getElementById("pref-driver");
var otherDriver = document.getElementById("other-driver");
var driverSumRating = [];
var driverCountRating = [];
var driverNameList = [];

for (var i = 0; i < driverArr.length; i++) {
    for(var j = 0; j < ratingArr.length; j++) {
        if(driverArr[i] === ratingArr[j]["usernameDriver"]){
            driverSumRating[driverArr[i]] = (driverSumRating[driverArr[i]] === undefined) ? parseFloat(ratingArr[j]["rating"]) : driverSumRating[driverArr[i]] + parseFloat(ratingArr[j]["rating"]);
            driverCountRating[driverArr[i]] = (driverCountRating[driverArr[i]] === undefined) ? 1 : driverCountRating[driverArr[i]]+1;
        }
    }
    for(var k = 0; k < driverNameArr.length; k++) {
        if(driverArr[i] === driverNameArr[k]["username"]){
            driverNameList[driverArr[i]] = driverNameArr[k]["fullname"];
            break;
        }
    }
}

for(var j = 0; j < ratingArr.length; j++) {
    if(preferredDriver === ratingArr[j]["usernameDriver"]){
        driverSumRating[preferredDriver] = (driverSumRating[preferredDriver] === undefined) ? parseFloat(ratingArr[j]["rating"]) : driverSumRating[preferredDriver] + parseFloat(ratingArr[j]["rating"]);
        driverCountRating[preferredDriver] = (driverCountRating[preferredDriver] === undefined) ? 1 : driverCountRating[preferredDriver]+1;
    }
}
for(var k = 0; k < driverNameArr.length; k++) {
    if(preferredDriver === driverNameArr[k]["username"]){
        driverNameList[preferredDriver] = driverNameArr[k]["fullname"];
        break;
    }
}

if(preferredDriver !== "") {
    CreateDriverDisplay(prefDriver, preferredDriver);
} else {
    CreateNotFoundDisplay(prefDriver);
}

if(driverArr.length > 0) {
    for (var i = 0; i < driverArr.length; i++) {
        CreateDriverDisplay(otherDriver, driverArr[i]);
    }
} else {
    CreateNotFoundDisplay(otherDriver);
}

function CreateDriverDisplay(driverType, driverUsrName) {
    var newForm = driverType.appendChild(document.createElement("form"));
    var newContainer = newForm.appendChild(document.createElement("div"));
    var newImg = newContainer.appendChild(document.createElement("img"));
    var newName = newContainer.appendChild(document.createElement("div"));
    var newRating = newContainer.appendChild(document.createElement("div"));
    var postUsrName = newContainer.appendChild(document.createElement("input"));
    var newPickLoc = newContainer.appendChild(document.createElement("input"));
    var newDest = newContainer.appendChild(document.createElement("input"));
    var newBtn = newContainer.appendChild(document.createElement("input"));


    var avgRating = (driverSumRating[driverUsrName]/driverCountRating[driverUsrName]).toFixed(1).toString();

    newForm.setAttribute('method', 'post');
    newForm.setAttribute('action', '/order/' + user + '/completeorder');
    newContainer.classList.add("driver-content");

    newImg.classList.add("driver-pic");
    newImg.setAttribute('src', '/public/img/' + driverUsrName);

    newName.classList.add("driver-name-disp");
    newName.innerHTML = driverNameList[driverUsrName];

    newRating.classList.add("driver-rating-disp");
    newRating.innerHTML = "" + avgRating + " <span class='vote-disp'>(" + driverCountRating[driverUsrName] + " votes)</span>";

    postUsrName.setAttribute('type', 'hidden');
    postUsrName.setAttribute('name', 'driver-username');
    postUsrName.setAttribute('value', driverUsrName);

    newPickLoc.setAttribute('type','hidden');
    newPickLoc.setAttribute('name','pickLoc');
    newPickLoc.setAttribute('value', pickLoc);
    newDest.setAttribute('type','hidden');
    newDest.setAttribute('name','dest');
    newDest.setAttribute('value', dest);

    newBtn.classList.add("accept-button");
    newBtn.classList.add("select-driver-btn");
    newBtn.setAttribute('type','submit');
    newBtn.setAttribute('value','Select Driver');
}

function CreateNotFoundDisplay(driverType) {
    var newContainer = driverType.appendChild(document.createElement("div"));
    newContainer.classList.add("driver-not-found");
    newContainer.innerHTML = "Nothing to display.";
}