Project management spreadsheet

A simple online task management spreadsheet.



Source code

<html>
<script src="https://jspreadsheet.com/v7/jspreadsheet.js"></script>
<script src="https://jsuites.net/v4/jsuites.js"></script>
<link rel="stylesheet" href="https://jspreadsheet.com/v7/jspreadsheet.css" type="text/css" />
<link rel="stylesheet" href="https://jsuites.net/v4/jsuites.css" type="text/css" />

<div id="spreadsheet"></div>

<script>
var data1 = [
    [ '=B1', '2', 'New products section', '2019-02-12', '80' ],
    [ '=B2', '2', 'API integration', '2019-03-01', '100' ],
    [ '=B3', '3', 'Deck', '2018-11-10', '30' ],
    [ '=B4', '2', 'Prototype', '2019-01-12', '0' ],
];

var spreadsheet = jspreadsheet(document.getElementById('spreadsheet'), {
    worksheets: [{
        data: data1,
        columns: [
            { type: 'text', width: '60px', title: 'Photo', readOnly:true },
            { type: 'dropdown', width: '140px', title: 'Name', source: [ { id:'2', name: 'Jorge'}, { id:'4', name: 'Paul' }] },
            { type: 'text', width: '200px', title: 'Task' },
            { type: 'calendar', width: '100px', title: 'When' },
            { type: 'progressbar', width: '200px', title: '%' },
         ],
         allowComments:true,
    }],
    updateTable: function(instance, cell, col, row, val, label, cellName) {
         if (col == 0) {
             if (instance.options.data[row][col+1]) {
                 var tmp = '<img src="/templates/v8/img/' + instance.options.data[row][col+1] + '.jpg" style="width:24px;height:24px;border-radius:16px">';
             } else {
                 var tmp = '<img src="/templates/v8/img/nophoto.jpg" style="width:24px;height:24px;border-radius:16px">';
             }

             // Only update when the content is different
             if (cell.innerHTML != tmp) {
                 cell.innerHTML = tmp;
             }
         }
    },
    license: 'MWEzMTE4MGFkNWY5YzQzNjE4NjZiNmE1NThhM2M0Yjc1NmUyNGM2N2YzZjU2NDQ5ZjM1MGFiYWNmOTFkNTkwODFiYmYwNDE1YjhhM2ViNGUyMzM2YjYzY2Q4NTcyMWE4MGQ4YjVjNjI2NWY4NWYyMTBjMWU5M2ZmNTU4OGI1MDQsZXlKdVlXMWxJam9pY0dGMWJDNW9iMlJsYkNJc0ltUmhkR1VpT2pFMk5UZzVOakk0TURBc0ltUnZiV0ZwYmlJNld5SnFjM0J5WldGa2MyaGxaWFF1WTI5dElpd2lZM05pTG1Gd2NDSXNJbXB6YUdWc2JDNXVaWFFpTENKc2IyTmhiR2h2YzNRaVhTd2ljR3hoYmlJNklqSWlMQ0p6WTI5d1pTSTZXeUoyTnlJc0luWTRJaXdpY0dGeWMyVnlJaXdpYzJobFpYUnpJaXdpWm05eWJYTWlMQ0p5Wlc1a1pYSWlMQ0ptYjNKdGRXeGhJbDE5',
});
</script>
</html>