Advertisement
Guest User

projectInfo.php

a guest
Apr 20th, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 11.53 KB | None | 0 0
  1. <?php
  2. $dir = dirname(dirname(dirname(__FILE__)));
  3. $functions = new Functions($db);
  4. $projectReport = $app->getObject("ProjectReport");
  5. $projectInfo = $projectReport->getProjectTaskInfo($id);
  6. $options['nodes'] = 'all';
  7. $user->getLowerLevelNodes($options);
  8.  
  9. ?>
  10.  
  11.   <link rel="stylesheet" href="chosen_v1.8.5/chosen.css">
  12.  
  13. <div class="main-wrapper">
  14.     <div class="table-wrapper">  
  15.         <h2> <?= $projectInfo['name'] ?> nustatymai</h2><br>
  16.         <div class="project-settings">
  17.             <form id="projectInfo" action="action">
  18.                 <div class="side-by-side clearfix">
  19.                      <div class="row">
  20.                         <label>Projekto vadovai</label>
  21.                         <select class="multiSelect"  name="managers[]" onchange="" multiple>
  22.                             <?php foreach ($projectReport->getProjectManagers() as $manager) { ?>
  23.                                 <option value="<?= $manager['id'] ?>" <?php echo in_array($manager['id'], $projectInfo['managers']) ? "selected" : "" ?>><?php echo $manager['name'] ?></option>
  24.                             <?php } ?>
  25.                         </select>
  26.                     </div>
  27.                 </div>
  28.                 <div class="row">
  29.                     <div class="col-100">
  30.                         <label>Grupė(-ės)</label>
  31.                         <select class="multiSelect" id="node" name="nodes[]" onchange="getEmployeesByNodes(this);" multiple>
  32.                             <?php foreach ($user->getLowerLevelNodes($options) as $value) {
  33.                                 $value = (array) $value;?>
  34.                                 <option value="<?= $value['id'] ?>" <?php echo in_array($value['id'], $projectInfo['nodes']) ? "selected" : "" ?>><?= $value['name'] ?></option>
  35.                             <?php } ?>
  36.                         </select>
  37.                     </div>
  38.                 </div>
  39.                 <div class="row">
  40.                     <div class="row">
  41.                         <div class="row">
  42.                             <label>Projekto statusas</label>
  43.                             <select class="text-input" name="status">
  44.                                 <option value="<?= $projectInfo['status'] ?>"><?= $projectInfo['status'] ?></option>
  45.                             <?php if ($projectInfo['status'] !== 'TU'){ ?>
  46.                                     <option value="TU">TU</option>
  47.                             <?php } if($projectInfo['status'] !== 'PTU'){ ?>
  48.                                     <option value="PTU">PTU</option>
  49.                             <?php } if($projectInfo['status'] !== 'KA'){ ?>
  50.                                     <option value="KA">KA</option>
  51.                             <?php } if($projectInfo['status'] !== 'Priduotas'){ ?>
  52.                                     <option value="Priduotas">Priduotas</option>
  53.                                 <?php } ?>
  54.                             </select>
  55.                         </div>
  56.                     </div>
  57.                 </div>
  58.                 <div class="row">
  59.                     <div class="col-33">
  60.                         <label>Termino pradžia</label>
  61.                         <input class="text-input date-input" type="text" name="date_from" value="<?= $projectInfo['start_date'] ?>">
  62.                     </div>
  63.                     <div class="col-33">
  64.                         <label>Termino pabaiga</label>
  65.                         <input class="text-input date-input" type="text" name="date_to" value="<?= $projectInfo['end_date'] ?>">
  66.                     </div>
  67.                     <div class="col-33">
  68.                         <label>Projekto valandų skaičius</label>
  69.                         <input class="text-input" id="projectHours"  name="hours" value="<?= $projectInfo['hours'] ?>" readonly>
  70.                     </div>
  71.                 </div>
  72.                 <div class="row" id="add-employee">
  73.                 </div>
  74.                 <table>
  75.                     <thead>
  76.                         <tr>
  77.                             <th>Vardas pavardė</th>
  78.                             <th>Darbuotojo grupė</th>
  79.                             <th>Laikas</th>
  80.  
  81.                         </tr>
  82.                     </thead>
  83.                     <tbody id="employee-lists">
  84.                         <?php if (isset($projectInfo['employees'])){
  85.                                 foreach ($projectInfo['employees'] as $key => $employee) {
  86.                                 if(!empty($key)){ ?>
  87.                                 <tr id="<?= $key ?>">
  88.                                     <td  value="<?= $key ?>"><?= $employee['name'] ?></td>
  89.                                     <td value="<?= $employee['node_name'] ?>"><?= $employee['node_name'] ?></td>
  90.                                     <td> <input type="number" onchange="calculateHours();" id="employee-hours" value="<?= $employee['hours'] ?>"></td>
  91.                                     <td><img src="img/delete.png" class="delete_button_category right_add_button" onclick="deleteEmployee(<?= $key ?>, '<?= $employee['name'] ?>', '<?= $employee['node_name'] ?>');" alt="Ištrinti darbuotoją"></td>
  92.                                     <td><input type="hidden" name="employee_id" value="<?= $key ?>"></td>
  93.                                 <?php }
  94.                                 }
  95.                             }?>
  96.                         </tr>
  97.                     </tbody>
  98.                 </table>
  99.                 <br>
  100.                 <div class="">
  101.                     <input id="submit" type="button" class="btn" value="Atnaujinti" />
  102.                 </div>
  103.  
  104.             </form>
  105.         </div>
  106.     </div>
  107. </div>
  108.     <script src="chosen_v1.8.5/docsupport/jquery-3.2.1.min.js" type="text/javascript"></script>
  109.   <script src="chosen_v1.8.5/chosen.jquery.js" type="text/javascript"></script>
  110.   <script src="chosen_v1.8.5/docsupport/prism.js" type="text/javascript" charset="utf-8"></script>
  111.   <script src="chosen_v1.8.5/docsupport/init.js" type="text/javascript" charset="utf-8"></script>
  112. <style>
  113.     .project-settings{
  114.         max-width: 600px;
  115.         width: 100%;
  116.     }
  117.     .btn-back {
  118.     padding-left: 5px;    
  119.     width: 110px;
  120.     height: 36px;
  121.     border-radius: 8px;
  122.     border: none;
  123.     color: #fff !important;
  124.     font-weight: 400;
  125.     line-height: 35px;
  126.     cursor: pointer;
  127.     background-size: 200% 100%;
  128.     background-color: #336699;
  129.     background-image: linear-gradient(to right, #336699 50%, #004D8C 50%);
  130.     -webkit-transition: background-position .45s;
  131.     -moz-transition: background-position .45s;
  132.     transition: background-position .45s;
  133.     behavior: url(css/PIE.htc);
  134.     z-index: 0;
  135.     font-size: 1em;
  136.     }
  137. </style>
  138. <script type="text/javascript">
  139.     $('.tab-navigation .tab-item').on('click', function(element) {
  140.     $(".tab-item").removeClass("active");
  141.     $(this).addClass("active");
  142.     $('#'+element.target.id+'-form').show();
  143.     if (element.target.id == "user-info") {
  144.         $('#user-permissions').removeClass("active");
  145.         $('#user-permissions-form').hide();
  146.     } else if (element.target.id == "user-permissions"){
  147.         $('#user-info').removeClass("active");
  148.         $('#user-info-form').hide();
  149.     }
  150. })
  151.     $(document).ready(function () {
  152.         $(".multiSelect").chosen({width: "100%"});
  153.     });
  154.  
  155.     $(function () {
  156.         $('.date-input').datepicker({
  157.             controlType: 'select',
  158.             dateFormat: "yy-mm-dd",
  159.             oneLine: true,
  160.             firstDay: 1,
  161.             autoclose: true
  162.         });
  163.     });
  164.  
  165.     $(document).ready(function () {
  166.         getEmployeesByNodes();
  167.     });
  168.     function calculateHours() {
  169.         var sum = 0;
  170.         $("[id^=employee-hours]").each(function () {
  171.             sum = sum + (parseInt(this.value, 10));
  172.         });
  173.         $('#projectHours').val(sum);
  174.     }
  175.  
  176.     function addEmployee(ele) {
  177.         var info = ele.value.split('&');
  178.         var htmlText;
  179.         htmlText = "<tr id=" + info[0] + ">";
  180.         htmlText += "<td value=" + info[0] + ">" + info[1] + "</td>";
  181.         htmlText += "<td value=''>" + info[2] + "</td>";
  182.         htmlText += "<td><input onchange='calculateHours()' id='employee-hours' type=number value='0'></td>";
  183.         var name = info[1];
  184.         var node_name = info[2];
  185.         htmlText += "<td><img src=img/delete.png class='delete_button_category right_add_button' onclick='deleteEmployee(" + info[0] + ", \"" + name + "\", \"" + node_name + "\");' alt='Ištrinti darbuotoją'></td>";
  186.         htmlText += "<td><input type=hidden name=employee_id value=" + info[0] + "></td>"
  187. //        var table = document.getElementById('employee-lists');
  188.         $("#employee-lists").append(htmlText);
  189.         var deleteOption = document.getElementById("added-employee-" + info[0]);
  190.         deleteOption.remove(deleteOption.selectedIndex);
  191.     }
  192.  
  193.     function deleteEmployee(key, userName, node_name) {
  194.         var htmlText;
  195.         $('#' + key).remove();
  196.         htmlText += "<option id=added-employee-" + key + " value=\"" + key + "&" + userName + "&" + node_name + "\">" + userName + "</option>";
  197.         var option = document.getElementById('projectEmployee');
  198.         option.innerHTML += htmlText;
  199.         calculateHours();
  200.     }
  201.     function getEmployeesByNodes(ele) {
  202.         var nodes = $(ele).val();
  203.         if (ele === undefined) {
  204.             var selected = [];
  205.             $("#node option").each(function () {
  206.                 if ($(this).attr("selected")) {
  207.                     selected.push($(this)[0].value);
  208.                     nodes = selected;
  209.                 }
  210.             });
  211.         }
  212.  
  213.         $.ajax({
  214.             url: 'ajax_controller.php?page=getEmployeesByGroups',
  215.             data: {'nodes': nodes, 'id' : <?=$id?>},
  216.             datatype: 'json',
  217.             type: "POST",
  218.             success: function (data) {
  219.                 var div = document.getElementById('add-employee');
  220.                 div.innerHTML = data;
  221.             }
  222.  
  223.         });
  224.     }
  225.  
  226.     $('#submit').on('click', function (e) {
  227. //        e.preventDefault();
  228. //    $(this).prop('disabled',true);
  229.         var formData = {
  230.             'project_id': <?= $id ?>,
  231.             'managers': $('select[name="managers[]"]').val(),
  232.             'nodes': $('select[name="nodes[]"').val(),
  233.             'status': $('select[name=status]').val(),
  234.             'date_from': $('input[name=date_from]').val(),
  235.             'date_to': $('input[name=date_to]').val(),
  236.             'hours': $('input[name=hours]').val(),
  237.         }
  238.         var empList = [];
  239.         $("#employee-lists tr").each(function () {
  240.             var emp = {};
  241.             emp['id'] = $(this).find('input[type="hidden"]').val();
  242.             emp['name'] = $(this).children("td:eq(0)").text();
  243.             emp['node_name'] = $(this).children("td:eq(1)").text();
  244.             emp['hours'] = $(this).find("input").val();
  245.  
  246.             empList.push(emp);
  247.         });
  248.         formData['employees'] = empList;
  249.         $.ajax({
  250.             url: 'requestController.php?action=addProjectInfo',
  251.             data: {formData: formData, 'id': <?= $id ?>},
  252.             async: true,
  253.             type: 'POST',
  254.             success: function (response) {
  255.                 response = JSON.parse(response);
  256.                 if (response.display === true) {
  257.                     error_alert(response.msg);
  258. //                    $('#submit').prop('disabled',false);
  259.                 } else {
  260.                     location.reload();
  261. //                    window.location.href = "index.php?page=taskControl";
  262.                 }
  263.             }
  264.         });
  265.     })
  266. </script>
  267.  
  268. </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement