Advertisement
arlendafitranto

frappe-gantt-view

Oct 4th, 2023
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.14 KB | Source Code | 0 0
  1. <!DOCTYPE html>
  2. <html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
  3.  
  4. <head>
  5.     <meta charset="utf-8">
  6.     <meta name="viewport" content="width=device-width, initial-scale=1">
  7.  
  8.     <title>Laravel</title>
  9.  
  10.     <!-- Fonts -->
  11.     <link rel="preconnect" href="https://fonts.bunny.net">
  12.     <link href="https://fonts.bunny.net/css?family=figtree:400,600&display=swap" rel="stylesheet" />
  13.  
  14.     <link rel="stylesheet" href="{{ asset('plugins\bootstrap\css\bootstrap.min.css') }}">
  15.     <link rel="stylesheet" href="{{ asset('plugins\frappe_gantt\frappe-gantt.min.css') }}">
  16.  
  17.     <style>
  18.         .gantt-container {
  19.             width: 90vw;
  20.             margin: 0 auto;
  21.         }
  22.  
  23.         .gantt-container .details-container {
  24.             width: 200px;
  25.             padding: 0 5px;
  26.         }
  27.     </style>
  28.  
  29. </head>
  30.  
  31. <body class="container">
  32.     <h6>Frappe Gantt</h6>
  33.  
  34.     <svg id='gantt'></svg>
  35.  
  36.     <script src="{{ asset('plugins\bootstrap\js\bootstrap.bundle.min.js') }}"></script>
  37.     <script src="{{ asset('plugins\frappe_gantt\frappe-gantt.min.js') }}"></script>
  38.     <script>
  39.         const todo = [
  40.             {
  41.                 id: 'Task 1',
  42.                 name: 'Buy hosting',
  43.                 start: '2022-01-22',
  44.                 end: '2022-01-23',
  45.                 progress: 100,
  46.             },
  47.             {
  48.                 id: 'Task 2',
  49.                 name: 'Draw wireframes',
  50.                 start: '2022-01-23',
  51.                 end: '2022-01-25',
  52.                 progress: 100,
  53.             },
  54.             {
  55.                 id: 'Task 3',
  56.                 name: 'Visual Design',
  57.                 start: '2022-01-25',
  58.                 end: '2022-01-27',
  59.                 progress: 20,
  60.                 dependencies: 'Task 2'
  61.             },
  62.             {
  63.                 id: 'Task 4',
  64.                 name: 'Build frontend',
  65.                 start: '2022-02-01',
  66.                 end: '2022-02-03',
  67.                 progress: 0,
  68.                 dependencies: 'Task 3'
  69.             },
  70.             {
  71.                 id: 'Task 5',
  72.                 name: 'Build backend',
  73.                 start: '2022-02-03',
  74.                 end: '2022-02-07',
  75.                 progress: 0,
  76.             },
  77.             {
  78.                 id: 'Task 6',
  79.                 name: 'Deploy Website',
  80.                 start: '2022-02-07',
  81.                 end: '2022-02-09',
  82.                 progress: 0,
  83.                 dependencies: 'Task 4, Task 5'
  84.             },
  85.         ]
  86.  
  87.         const task = {{ Js::from($todo) }}
  88.         console.log(todo);
  89.  
  90.         const gantt = new Gantt("#gantt", task, {
  91.             view_mode: 'Day',
  92.             bar_corner_radius: 8,
  93.             custom_popup_html: function(task) {
  94.                 return `
  95.                     <div class="details-container">
  96.                         <h5>${task.name}</h5>
  97.                         <p>Task started on: ${task._start.getDate()}</p>
  98.                         <p>Expected to finish by ${task._start.getDate()}</p>
  99.                         <p>${task.progress}% completed!</p>
  100.                     </div>
  101.                 `}
  102.         });
  103.  
  104.        
  105.     </script>
  106. </body>
  107.  
  108. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement