<!DOCTYPE html>
<html>
  <head>
    <script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
    <link href="https://nightly.datatables.net/css/jquery.dataTables.css" rel="stylesheet" type="text/css" />
    <script src="https://nightly.datatables.net/js/jquery.dataTables.js"></script>
    <link href="https://nightly.datatables.net/buttons/css/buttons.dataTables.css?_=c6b24f8a56e04fcee6105a02f4027462.css" rel="stylesheet" type="text/css" />
<script src="https://nightly.datatables.net/buttons/js/dataTables.buttons.js?_=c6b24f8a56e04fcee6105a02f4027462"></script>
    <link href="https://nightly.datatables.net/select/css/select.dataTables.css?_=9a6592f8d74f8f520ff7b22342fa1183.css" rel="stylesheet" type="text/css" />
<script src="https://nightly.datatables.net/select/js/dataTables.select.js?_=9a6592f8d74f8f520ff7b22342fa1183"></script>
    <link href="https://editor.datatables.net/extensions/Editor/css/editor.dataTables.min.css" rel="stylesheet" type="text/css" />
<script src="https://editor.datatables.net/extensions/Editor/js/dataTables.editor.min.js"></script>
    <link href="https://nightly.datatables.net/autofill/css/autoFill.dataTables.css?_=bc3763029fa6dfaf4c947ef25f079107.css" rel="stylesheet" type="text/css" />
<script src="https://nightly.datatables.net/autofill/js/dataTables.autoFill.js?_=bc3763029fa6dfaf4c947ef25f079107"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>
            <script src="https://cdn.datatables.net/plug-ins/1.10.19/dataRender/datetime.js"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>
    
    <meta charset=utf-8 />
    <title>DataTables - JS Bin</title>
    <body>
    <div class="container">
 
      <table id="example" class="display" cellspacing="0" width="100%">
    <thead>
        <tr>
        <th>record start</th>
            <th>record description</th>
            <th>record length</th>
        </tr>
    </thead>
    <tbody>
        <tr id="1">
            <td>00:00:00</td>
            <td>record_1</td>
            <td>00:00:10</td>
          </tr>
          <tr id="2">
            <td>00:00:10</td>
            <td>record_2</td>
            <td>00:00:15</td>
          </tr>
          <tr id="3">
            <td>00:00:25</td>
            <td>record_3</td>
            <td>00:00:03</td>
          </tr>
          <tr id="4">
            <td>00:00:28</td>
            <td>record_4</td>
            <td>00:00:00</td>
          </tr>
    </tbody>
</table>
      
    </div>
  </body>
</html>
 
body {
  font: 90%/1.45em "Helvetica Neue", HelveticaNeue, Verdana, Arial, Helvetica, sans-serif;
  margin: 0;
  padding: 0;
  color: #333;
  background-color: #fff;
}
 
$(document).ready(function() {
  
  var changed = 'no';
   
  //$.fn.dataTable.render.moment("M/D/YYYY");
  var editor = new $.fn.dataTable.Editor({
    table: "#example",
    fields: [
            {
                label: 'Start:',
                name: 'start'
            },
            {
                label: 'Desc:',
                name: 'description'
            },
            {
                label: 'Length:',
                name: 'length'
            }
    ]
  });
  var table = $("#example").DataTable({
    dom: "Bfrtip",
    columns: [
            { data: 'start' },
            { data: 'description' },
            { data: 'length' }
    ],
    select: true,
    buttons: [
      { extend: "create", editor: editor },
      { extend: "edit", editor: editor },
      { extend: "remove", editor: editor }
    ]
  });
  
  editor.on('postSubmit', function() {
    if (changed === 'no') {
      changed = 'yes';
    }
  });
  
  editor.on('closed', function() {
    if (changed === 'yes') {
      changed = 'changing';
      var rows = table.rows({order:'applied'});
      for (var i=0; i < rows.count() - 1; i++) {
        editor.edit('#' + rows.ids()[i], false);      
        console.log(rows.data()[i+1].start)
        console.log(rows.data()[i].start)
        editor.field('length').set(moment.utc(moment.duration(rows.data()[i+1].start).subtract(moment.duration(rows.data()[i].start)).as('milliseconds')).format('HH:mm:ss'));
        editor.submit();
      }
  
      editor.edit('#' + rows.ids()[rows.count()-1], false).set('length', '00:00:00').submit();
      
      changed = 'no';
    }
    
    
  })
  
});
3 errors
Line 51: Missing semicolon.
Line 52: Missing semicolon.
Line 63: Missing semicolon.
Output

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
anonymouspro
0viewers