<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://cdn.datatables.net/select/1.3.3/css/select.dataTables.css" rel="stylesheet" type="text/css" />
<script src="https://cdn.datatables.net/select/1.3.3/js/dataTables.select.js"></script>
<link href="https://cdn.datatables.net/buttons/2.1.1/css/buttons.dataTables.css" rel="stylesheet" type="text/css" />
<script src="https://cdn.datatables.net/buttons/2.1.1/js/dataTables.buttons.js"></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>
<meta charset=utf-8 />
<title>DataTables - JS Bin</title>
</head>
<body>
<div class="container">
<table id="example" class="display nowrap" width="100%">
</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 myData =
[
{
"DT_RowId": "row_50022",
"RequestID": 50022,
"ApprovedBy": 1,
"ActionID": 1
},
{
"DT_RowId": "row_50023",
"RequestID": 50023,
"ApprovedBy": 1,
"ActionID": 2
},
{
"DT_RowId": "row_50024",
"RequestID": 50024,
"ApprovedBy": 1,
"ActionID": 3
}
];
var RequestHeaderEditor = new $.fn.dataTable.Editor ({
data: myData,
table: '#example',
fields: [
{label: "RequestID", name: "RequestID"},
{label: "ActionID", name: "ActionID"},
{label: "ApprovedBy", name: "ApprovedBy"}
]
})
RequestHeaderEditor.buttons(
{
text: 'next'
}
);
RequestHeaderEditor.on('preOpen', function (e, node, data, items, type) {
console.log('preOpen', data)
$('.DTE_Form_Buttons button:eq(0)').hide();
var selected = RequestHeaderTable.row({ selected: true });
/*
RequestHeaderEditor
.hide()
.show('RequestHeader.ActionID');
RequestHeaderEditor.set('RequestHeader.DepartmentID', $('#departmentID').val());
RequestHeaderEditor.disable('RequestHeader.DepartmentID');
*/
if (data == 'edit') {
console.log('approvedby', selected.data().ApprovedBy, 'requestID', selected.data().RequestID);
loadResponsibilityEditor((selected.data().ApprovedBy != null), selected.data().RequestID);
}
});
RequestHeaderEditor.field('ActionID').input().on('change', function (e, d) {
console.log('ActionID).input().on(change', d)
if (d === undefined) {
// The change was triggered by the end user on update rather than an auto set
loadResponsibilityEditor();
}
});
var RequestHeaderTable = $('#example').DataTable( {
dom: 'Bfrtip',
data: myData,
columns: [
{title: 'RequestID', data: 'RequestID'},
{title: 'ApprovedBy', data: 'ApprovedBy'},
{title: 'ActionID', data: 'ActionID',
render: function (data, type, row) {
var options = ['', 'Add', 'Delete', 'Change'];
return options[data];
}
}
],
select: { style: 'single' },
buttons: [
{
extend: 'create', editor: RequestHeaderEditor,
text: 'Create new Request'
, formButtons: [
{
text: '',
action: function () {
console.log('action: Create new Request')
isNewRequest = 1;
console.log('ActionID:', RequestHeaderEditor.get('ActionID'))
switch (RequestHeaderEditor.get('ActionID')) {
case '2': //delete
var result = addHeader();
if (result.substring(0, 1) !== "*") {
RequestHeaderEditor.close();
RequestHeaderTable.ajax.reload();
}
//}
break;
case '1': //add
//loadDetail(0, 0);
break;
case '3': //update
//loadDetail(0, RequestHeaderEditor.get('UserID'));
break;
};
}
}
]
}
,{
extend: 'edit', editor: RequestHeaderEditor,
text: 'View Request Details',
action: function () {
console.log('action: View Request Details')
isNewRequest = 0;
$('#copyUserID').val('0');
var selected = RequestHeaderTable.row({ selected: true });
if (selected.data().ActionID == 2) { //delete request (no responsibility select)
//RequestHeaderEditor.edit(selected);
RequestHeaderEditor.edit(selected, {
submit: 'changed'
});
} else { //add/update request
loadDetail(selected.data().RequestID, 0);
}
}
}
]
} );
function loadResponsibilityEditor() {
console.log('loadResponsibilityEditor()')
RequestHeaderEditor.hide(undefined, false);
RequestHeaderEditor.show(['ActionID'], false);
var actionID = RequestHeaderEditor.get('ActionID');
console.log(actionID);
switch (actionID) {
case '1': //add
RequestHeaderEditor.show(undefined, false);
$('.DTE_Form_Buttons button:eq(0)')
.text('Next')
.show();
break;
case '2': //delete
RequestHeaderEditor
.buttons( 'Submit Request' )
.show(['ActionID', 'ApprovedBy']);
console.log('changing button', $('.DTE_Form_Buttons button:eq(0)'));
//$('.DTE_Form_Buttons button:eq(0)')
// .text('Submit Request')
// .show();
break;
case '3': //update
RequestHeaderEditor.show(['ActionID', 'ApprovedBy'], false);
$('.DTE_Form_Buttons button:eq(0)')
.text('Next')
.show();
break;
}
}
function addHeader() {
//ajax call to add a new record and returns new RequestID for other purposes
return 1234;
}
function loadDetail(headerID, userID) {
//opens another dataTable with details for the request
}
} );
You can jump to the latest bin by adding /latest
to your URL
Shortcut | Action |
---|---|
ctrl + [num] | Toggle nth panel |
ctrl + 0 | Close focused panel |
ctrl + enter | Re-render output. If console visible: run JS in console |
Ctrl + l | Clear the console |
ctrl + / | Toggle comment on selected lines |
ctrl + [ | Indents selected lines |
ctrl + ] | Unindents selected lines |
tab | Code complete & Emmet expand |
ctrl + s | Save & lock current Bin from further changes |
ctrl + shift + s | Clone Bin |
ctrl + y | Archive Bin |
Complete list of JS Bin shortcuts |
URL | Action |
---|---|
/ | Show the full rendered output. This content will update in real time as it's updated from the /edit url. |
/edit | Edit the current bin |
/watch | Follow a Code Casting session |
/embed | Create an embeddable version of the bin |
/latest | Load the very latest bin (/latest goes in place of the revision) |
/[username]/last | View the last edited bin for this user |
/[username]/last/edit | Edit the last edited bin for this user |
/[username]/last/watch | Follow the Code Casting session for the latest bin for this user |
/quiet | Remove analytics and edit button from rendered output |
.js | Load only the JavaScript for a bin |
.css | Load only the CSS for a bin |
Except for username prefixed urls, the url may start with http://jsbin.com/abc and the url fragments can be added to the url to view it differently. |