2016-07-19 1 views
1

У меня встроенный dhtmlxGantt в проекте Laravel5, и все работает так, как ожидалось. Но я хочу изменить его для хранения диаграмм для нескольких проектов. Для этого я хочу добавить дополнительное поле под названием «project_id» и загрузить данные через фильтр.Изменить dhtmlxGantt для работы с несколькими проектами - Laravel5

Я попытался модифицировать контроллер со следующим кодом:

$connector->render_links(         
    GanttLink::where('user_id', '=', 1)->get(), 
    "id", 
    "source,target,type"     
); 

$connector->render_table(         
    GanttTask::where('user_id', '=', 1)->get(), 
    "id",                
    "start_date,duration,text,progress,parent"      
); 

Это решение позволило мне загрузить таблицу из базы данных так, как я хотел. Но он не сохраняет изменения обратно в базу данных. Я просмотрел документацию dhtmlxGantt, но для этого не получил никакого решения.

Я нашел эти ссылки в своих исследованиях и мог бы быть полезен.

Link 1: Changing values before saving

Link 2: Filtering results based on a parameter

Пожалуйста, помогите мне изменить мой проект таким образом, что позволяет работать (загрузка и редактирование) на различных картах.

ответ

0

Наконец-то я нашел решение. Во-первых, вам нужно добавить project_id столбец в таблице базы данных, а затем добавить столбец в конфигурации соединителя:

$connector->render_table(new GanttTask(), "id", "start_date,duration,text,progress,parent,project_id"); 

Тогда вы должны сделать некоторые изменения в клиентский код. Используйте что-то подобное,

var project_id = "<?php echo $project['id']; ?>"; 

для того, чтобы взять переменную в <script>..</script> Затем измените код, добавив эти два на стороне клиента обработчики:

gantt.attachEvent("onBeforeTaskDisplay", function (id, task) { 
          if (task.project_id == project_id) { 
           return true; 
          } 
          return false; 
         }); 

и

gantt.attachEvent("onBeforeTaskAdd", function (id, task) { 
          task.project_id = project_id; 
         }); 

Первый обработчик фильтрует результаты так, как вы хотите, перед отображением графика, а второй обработчик присоединяет свойство project_id до добавления задание. Теперь у вас есть dhtmlxGatt, который может отображать несколько проектов.

+0

Как я могу разработать файл – Fernando

Смежные вопросы