Vagrant Box Download Helper

Add a download button in app.vagrantup.com

// ==UserScript==
// @id             vagrant-box-download-helper@senhtry
// @name           Vagrant Box Download Helper
// @version        1.0
// @author         senhtry
// @description    Add a download button in app.vagrantup.com
// @include       https://app.vagrantup.com/*
// @run-at         document-end
// @namespace https://greasyfork.org/users/81130
// ==/UserScript==

main();

function main() {

    var elementList = document.querySelectorAll(".media-list .list-group-item");

    for (var i = 0; i < elementList.length; i++) {
        addDownloadButton(elementList[i]);
    }
}

function addDownloadButton(element) {
    var versionHref = element.href;

    var div = document.createElement('div');
    div.className ='btn-group btn-group-xs"';
    div.style.cssText= 'margin-top: 10px;';

    var btn = document.createElement('button');
    btn.className = 'btn btn-default dropdown-toggle';
    btn.setAttribute("type","button");

    btn.setAttribute("aria-haspopup", "true");
    btn.setAttribute("aria-expanded", "false");
    btn.setAttribute("data-toggle", "dropdown");

    btn.innerHTML = 'download<span class="caret"></span>';


    var ul = document.createElement('ul');
    ul.className = 'dropdown-menu';


    var proList = element.querySelectorAll(".col-md-3 span.label-inline");
    var version =  element.querySelector(".col-md-5 small").innerHTML.trim().replace(/\s+/g, '').replace(/<.*$/g, '');

    for (var i = 0; i < proList.length; i++) {
        var pro = proList[i].innerHTML.trim().replace(/\s+/g, '').replace(/<.*$/g, '');
        var url =  versionHref +"/versions/" + version + '/providers/' + pro + '.box';

        var li = document.createElement('li');
        var a = document.createElement('a');

        a.setAttribute('href', url);
        a.innerHTML = pro;
        li.appendChild(a);
        ul.appendChild(li);
    }

    div.appendChild(btn);
    div.appendChild(ul);

    element.appendChild(div);
}