Tajmkiper, part 3

Thanks to my earlier efforts (part 1, part 2 and part 3), exporting all projects to a CSV file that is saved locally is really easy. That is also the only part of the tajmkiper.com utility that I'll blog about. The complete code will be available on Github when the utility is launched for public use, so you are free to check out the complete code.

// Export to CSV

function exportToCsv() {
    // Order of properties
    var propertyOrder = ["name", "time"];

    // Create CSV exporter
    var csv = new Csv(propertyOrder);

    // Add header line
    csv.add({
        "name" : "Project",
        "time" : "Total time"
    });

    // Add all projects, using the same (omitted) formatTime function from before
    allProjects.forEach(function(project) {
        csv.add({
            "name" : project.name,
            "time" : formatTime(project.getTotalTime())
        });
    });

    // TODO: Create a formatTodaysDate function
    var filename = "tajmkiper-" + formatTodaysDate() + ".csv";
    csv.saveAs(filename);
}

Future possibilities

There is actually something that I would like to do on the server-side, that doesn't really take anything away from the beauty (?) of a purely client-side codebase. I would like to be able to transfer my projects from one browser to another. One possibility would be to simple take the JSON representation saved locally, and expose it for copy/paste, but that's not really smooth enough. I want to be able to save my projects to a server, and then load them up on another browser.

One use case for this is when I use the utility on a mobile device, but my company's time report utility uses Excel. Then I would like to open the projects on my desktop computer, export to CSV, which I then import in Excel, and keep working there.

EDIT: Tajmkiper is now publicly available to anyone who wants to use it.

Try it: tajmkiper.com

Posted by Anders Tornblad on Category JavaScript Labels
Tweet this