<html>
<head>
<script src="//code.jquery.com/jquery-1.11.1.min.js"></script>
<script src="//cdn.datatables.net/1.10.2/js/jquery.dataTables.min.js"></script>
<script src="http://krtkovo.tranet.cz/jquery.dataTables.yadcf.js"></script>
<script src="http://krtkovo.tranet.cz/chosen.jquery.js"></script>
<meta charset="utf-8">
<title>JS Bin</title>
</head>
<body>
<script>
$(document).ready(function(){
initializeDataTablesForProjects([{"id":1,"leaderId":1,"name":"project 01","customer":"customer","platform":"platform","product":"product","log":"log","description":"desc","start":{"date":"2014-08-20 00:00:00","timezone_type":3,"timezone":"Europe\/Prague"},"end":{"date":"2014-08-20 00:00:00","timezone_type":3,"timezone":"Europe\/Prague"},"priority":"10","finished":"0","userName":null,"userSurname":null,"userId":null,"child":1,"projectLink":"\/20140708_TRW_nette\/www\/projects\/project-detail\/1","userLink":"\/20140708_TRW_nette\/www\/users\/user-detail"},{"id":2,"leaderId":1,"name":"project 01","customer":"customer","platform":"platform","product":"product","log":"log","description":"desc","start":{"date":"2014-08-20 00:00:00","timezone_type":3,"timezone":"Europe\/Prague"},"end":{"date":"2014-08-20 00:00:00","timezone_type":3,"timezone":"Europe\/Prague"},"priority":"10","finished":"0","userName":null,"userSurname":null,"userId":null,"child":null,"projectLink":"\/20140708_TRW_nette\/www\/projects\/project-detail\/2","userLink":"\/20140708_TRW_nette\/www\/users\/user-detail"},{"id":3,"leaderId":1,"name":"project 01","customer":"customer","platform":"platform","product":"product","log":"log","description":"desc","start":{"date":"2014-08-20 00:00:00","timezone_type":3,"timezone":"Europe\/Prague"},"end":{"date":"2014-08-20 00:00:00","timezone_type":3,"timezone":"Europe\/Prague"},"priority":"10","finished":"0","userName":null,"userSurname":null,"userId":null,"child":null,"projectLink":"\/20140708_TRW_nette\/www\/projects\/project-detail\/3","userLink":"\/20140708_TRW_nette\/www\/users\/user-detail"},{"id":4,"leaderId":1,"name":"project 01","customer":"customer","platform":"platform","product":"product","log":"log","description":"desc","start":{"date":"2014-08-20 00:00:00","timezone_type":3,"timezone":"Europe\/Prague"},"end":{"date":"2014-08-20 00:00:00","timezone_type":3,"timezone":"Europe\/Prague"},"priority":"10","finished":"0","userName":null,"userSurname":null,"userId":null,"child":null,"projectLink":"\/20140708_TRW_nette\/www\/projects\/project-detail\/4","userLink":"\/20140708_TRW_nette\/www\/users\/user-detail"},{"id":5,"leaderId":1,"name":"project 02","customer":"customer 02","platform":"platform 02","product":"product 02","log":"link 02","description":"asd","start":{"date":"2014-08-11 00:00:00","timezone_type":3,"timezone":"Europe\/Prague"},"end":{"date":"2014-08-30 00:00:00","timezone_type":3,"timezone":"Europe\/Prague"},"priority":"11","finished":"0","userName":"Karel","userSurname":"Kozelka","userId":1,"child":null,"projectLink":"\/20140708_TRW_nette\/www\/projects\/project-detail\/5","userLink":"\/20140708_TRW_nette\/www\/users\/user-detail\/1"},{"id":6,"leaderId":1,"name":"project03","customer":"customer03","platform":"platform03","product":"product03","log":"link03","description":"asdas","start":{"date":"2014-08-20 00:00:00","timezone_type":3,"timezone":"Europe\/Prague"},"end":{"date":"2014-08-20 00:00:00","timezone_type":3,"timezone":"Europe\/Prague"},"priority":"50","finished":"0","userName":"Karel","userSurname":"Kozelka","userId":1,"child":null,"projectLink":"\/20140708_TRW_nette\/www\/projects\/project-detail\/6","userLink":"\/20140708_TRW_nette\/www\/users\/user-detail\/1"},{"id":7,"leaderId":1,"name":"vxvxcvxc","customer":"","platform":"","product":"","log":"","description":"","start":{"date":"2014-08-20 00:00:00","timezone_type":3,"timezone":"Europe\/Prague"},"end":{"date":"2014-08-20 00:00:00","timezone_type":3,"timezone":"Europe\/Prague"},"priority":"0","finished":"0","userName":null,"userSurname":null,"userId":null,"child":null,"projectLink":"\/20140708_TRW_nette\/www\/projects\/project-detail\/7","userLink":"\/20140708_TRW_nette\/www\/users\/user-detail"},{"id":8,"leaderId":1,"name":"sad","customer":"","platform":"","product":"","log":"","description":"","start":{"date":"2014-08-20 00:00:00","timezone_type":3,"timezone":"Europe\/Prague"},"end":{"date":"2014-08-20 00:00:00","timezone_type":3,"timezone":"Europe\/Prague"},"priority":"0","finished":"0","userName":null,"userSurname":null,"userId":null,"child":null,"projectLink":"\/20140708_TRW_nette\/www\/projects\/project-detail\/8","userLink":"\/20140708_TRW_nette\/www\/users\/user-detail"},{"id":9,"leaderId":1,"name":"project03","customer":"customer03","platform":"platform03","product":"product03","log":"link03","description":"asdas","start":{"date":"2014-08-20 00:00:00","timezone_type":3,"timezone":"Europe\/Prague"},"end":{"date":"2014-08-20 00:00:00","timezone_type":3,"timezone":"Europe\/Prague"},"priority":"50","finished":"0","userName":"Karel","userSurname":"Kozelka","userId":1,"child":null,"projectLink":"\/20140708_TRW_nette\/www\/projects\/project-detail\/9","userLink":"\/20140708_TRW_nette\/www\/users\/user-detail\/1"}],{"u1":[{"id":1,"parentProjectId":1,"name":"task 01","customer":"customer","platform":"platform","product":"product","log":"log","description":"desc","start":{"date":"2014-08-20 00:00:00","timezone_type":3,"timezone":"Europe\/Prague"},"end":{"date":"2014-08-20 00:00:00","timezone_type":3,"timezone":"Europe\/Prague"},"priority":"0","finished":"0","parentTaskId":null,"createdBy":1,"level":0,"projectName":"project 01","userName":null,"userSurname":null,"userId":null,"parentName":null,"childId":null,"taskLink":"\/20140708_TRW_nette\/www\/tasks\/task-detail\/1","userLink":"\/20140708_TRW_nette\/www\/users\/user-detail"},{"id":2,"parentProjectId":1,"name":"project 01","customer":"customer","platform":"platform","product":"product","log":"log","description":"desc","start":{"date":"2014-08-20 00:00:00","timezone_type":3,"timezone":"Europe\/Prague"},"end":{"date":"2014-08-20 00:00:00","timezone_type":3,"timezone":"Europe\/Prague"},"priority":"0","finished":"0","parentTaskId":null,"createdBy":1,"level":0,"projectName":"project 01","userName":null,"userSurname":null,"userId":null,"parentName":null,"childId":null,"taskLink":"\/20140708_TRW_nette\/www\/tasks\/task-detail\/2","userLink":"\/20140708_TRW_nette\/www\/users\/user-detail"},{"id":3,"parentProjectId":1,"name":"project 01 task 01","customer":"customer","platform":"platform","product":"product","log":"log","description":"desc","start":{"date":"2014-08-27 00:00:00","timezone_type":3,"timezone":"Europe\/Prague"},"end":{"date":"2014-08-27 00:00:00","timezone_type":3,"timezone":"Europe\/Prague"},"priority":"0","finished":"0","parentTaskId":null,"createdBy":1,"level":0,"projectName":"project 01","userName":null,"userSurname":null,"userId":null,"parentName":null,"childId":null,"taskLink":"\/20140708_TRW_nette\/www\/tasks\/task-detail\/3","userLink":"\/20140708_TRW_nette\/www\/users\/user-detail"}]},"\/20140708_TRW_nette\/www",["leader"])
});
</script>
<div id="projects">
<table id="projects_table">
<thead>
<tr>
<th></th>
<th>Project ID</th>
<th>Customer</th>
<th>Platform</th>
<th>Product</th>
<th>Assigned</th>
<th>Start</th>
<th>End</th>
<th>Done</th>
<th>Prio</th>
<th>Link</th>
<th></th>
</tr>
</thead>
</table>
<div class="cleaner"></div>
<form id="exportTasksForm" class="exportForm" action="{plink Tasks:tasksToExcel}" method="post">
<input id="taskFormValue" type="hidden" name="taskData" >
<input type="submit" value="Export tasks">
</form>
<form id="exportProjectsForm" class="exportForm" action="{plink Projects:projectsToExcel}" method="post">
<input id="projectFormValue" type="hidden" name="projectData" >
<input type="submit" value="Export projects">
</form>
<div class="cleaner"></div>
</div>
</body>
</html>
var userRole;
var taskFilterData = new Array();
var allTablesNames = new Array();
function initializeDataTablesForProjects(projectTableData, taskTableData, basePath, loggedUserRole){
var projectsTable;
userRole = loggedUserRole;
//create main table for projects
projectsTable = initializeProjectsDataTable(projectTableData, basePath);
fillTaskFilterData(taskTableData);
}
//prepare taskFilterData array for filtering task subtables
function fillTaskFilterData(taskTableData){
for (var x in taskTableData){
allTablesNames.push(x);
for (var y in taskTableData[x]){
taskFilterData.push(taskTableData[x][y]);
}
}
}
//initialize main table for projects
//@param tableData - array with projects data
//@param basepath - project path
function initializeProjectsDataTable(tableData, basePath){
//var projectsTableWorker = new $.fn.dataTable.Api('#projects_table');
var projectsTable;
projectsTable = $('#projects_table').DataTable({
"dom": '<"cleaner">lf<"cleaner">T<"cleaner"><"cleaner">rtip',
"stateSave": true,
"data":tableData,
"tableTools":{
"aButtons": [{
"sExtends": "text",
"sButtonText": "Reset filters",
"fnClick": function (mButton, oConfig, oFlash){
}
}]
},
"columns":[
{"data": null,"type": "html"},
{"data": null},
{"data": null},
{"data": null},
{"data": null},
{"data": null},
{"data": null},
{"data": null},
{"data": null},
{"data": null},
{"data": null},
{"data": null}
],
"columnDefs": [
{
"targets":0,
"render": function (data, type, row){
if(data.child == null){
return '<img class=addNewTaskDialogOpener data-id="p' + data.id + '" class="addButtonImg" src=' + basePath + '/images/addButton.png ">';
}else{
return '<img class=addNewTaskDialogOpener data-id="p' + data.id + '" class="addButtonImg" src=' + basePath + '/images/addButton.png ">'+'<img id="p' + data.id + '" class="showHideImage" src=' + basePath + '/images/plus.png>';
}
}
},
{
"targets":1,
"filter": 'name',
"render": function (data, type, row){
return '<a href='+data.projectLink+'>'+data.name+'</a>';
}
},
{
"targets":2,
"render": "customer",
"filter": "customer"
},
{ "targets":3,
"render": "platform"
},
{
"targets":4,
"render": "product"
},
{
"targets":5,
"render": function (data, type, row){
if(data.userId == null){
return "none";
}else{
return '<a href=' + data.userLink + '>' + data.userName + ' ' + data.userSurname + '</a>';
}
}
},
{
"targets":6,
"render": function (data, type, row){
var datum = data.start.date.split(" ")[0].split("-");
return datum[2]+'.'+datum[1]+'.'+datum[0];
}
},
{
"targets":7,
"render": function (data, type, row){
var datum = data.end.date.split(" ")[0].split("-");
return datum[2]+'.'+datum[1]+'.'+datum[0];
}
},
{
"targets":8,
"render": function (data, type, row){
if (userRole == "viewOnly"){
if(data.finished == "1"){
return "Yes";
}else{
return "No";
}
}else{
if(data.finished=="1"){
return "<input type='checkbox' class='finish_button_pr' value='"+data.id+"' checked><span id='check_label_pr"+data.id+"'>Yes</span>";
}else{
return "<input type='checkbox' class='finish_button_pr' value='" + data.id + "'><span id='check_label_pr" + data.id + "'>No</span>";
}
}
}
},
{
"targets":9,
"render": "priority"
},
{
"targets":10,
"render": function (data, type, row){
if(data.log==""){
return "none";
}else{
return "<a href='file://" + data.log + "'><img src=" + basePath + "/images/log.png></a>";
}
}
},
{
"targets":11,
"render": function (data, type, row){
if (userRole == "viewOnly"){
return "";
}else{
return "<img src=" + basePath + "/images/deleteButton.png onclick='deleteProjectRow(this,"+data.id+");'>";
}
}
},
]
});
yadcf.init(projectsTable,[
{column_number :1,
filter_type: "multi_select",
select_type: 'chosen'
},
{column_number :2,
filter_type: "multi_select",
select_type: 'chosen'
},
{column_number :3,
filter_type: "multi_select",
select_type: 'chosen'
},
{column_number :4,
filter_type: "multi_select",
select_type: 'chosen'
},
{column_number :5,
filter_type: "multi_select",
select_type: 'chosen'
},
{column_number :6,
filter_type: "multi_select",
select_type: 'chosen'
},
{column_number :7,
filter_type: "multi_select",
select_type: 'chosen'
},
{column_number :8,
filter_type: "multi_select",
select_type: 'chosen'
},
{column_number :9,
filter_type: "multi_select",
select_type: 'chosen'
},
{column_number :10,
filter_type: "multi_select",
select_type: 'chosen'
},
{column_number :11,
filter_type: "multi_select",
select_type: 'chosen'
}
])
console.log(projectsTable)
return projectsTable;
}
Output
This bin was created anonymously and its free preview time has expired (learn why). — Get a free unrestricted account
Dismiss xKeyboard Shortcuts
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 + shift + L | Beautify code in active panel |
ctrl + s | Save & lock current Bin from further changes |
ctrl + shift + s | Open the share options |
ctrl + y | Archive Bin |
Complete list of JS Bin shortcuts |
JS Bin URLs
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. |