Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<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 x
public
Bin info
anonymouspro
0viewers