Webix 8.2: Ресурсы для Gantt, мульти-страничная математика в Spreadsheet и другое

Время тёплых пледов и снежных пейзажей подошло к концу. За окном поют птицы — предвестники весенней поры, а солнце всё чаще радует нас своими лучами. Однако на этом тёплые новости не заканчиваются. Месяц назад мы делились с вами нашими планами на 2021 год, а уже сегодня рады представить вам первую партию обновлений — Webix 8.2. В новую версию вошли крупные обновления Gantt, новый движок для математики в Spreadsheet, а также приятные нововведения для File Manager и ядра. Ну что, давайте читать!

Ресурсы в Gantt

Распределение ресурсов

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

Webix Gantt Resources

Посмотреть код >>

Режим просмотра ресурсов

У Gantt теперь есть дополнительный режим просмотра, который помогает получить полную картину задач и ресурсов, а также выявить задачи без назначенных ресурсов. В этом режиме гантт отображает задачи, сгруппированные по назначенным на них ресурсам. Все задачи, которым не присвоены ресурсы, собраны в отдельную группу.

Webix Gantt Resources View

Посмотреть код >>

Диаграмма ресурсов

А ещё у Gantt, появилась специальная диаграмма, которая показывает информацию о загрузке ресурсов и помогает выявить наличие свободного времени или перегруженность.

Webix Gantt Diagram

Посмотреть код >>

Критический путь

Критический путь — это последовательность задач, между которыми нет свободных дней и которые нельзя отсрочить. Как вы уже догадались, у Gantt теперь есть такая функциональность. Пользователи могут отслеживать критические задачи проекта и корректировать свой рабочий процесс, чтобы успеть всё в сроки.

Webix Gantt Critical Path

Посмотреть код >>

Дополнительные возможности

Автоматическая конвертация задач в проекты

Теперь Gantt умеет автоматически конвертировать задачи с подзадачами в проекты. Проекты ведут себя не так, как обычные задачи. Например, вы не можете задавать продолжительность или прогресс проекта вручную, т.к. они высчитываются автоматически. Если вашему проекту необходима такая функциональность, вы можете обеспечить её одной строкой кода:

{
  view: "gantt",
  projects: true
}

Возможность исключать выходные дни из продолжительности задачи

Работа, конечно, хорошо, но отдых никто не отменял. Поэтому мы добавили новый функционал, который позволяет исключать праздничные и выходные дни из продолжительности задач. В этом режиме задачи не могут выпадать на выходные дни и будут растягиваться до следующего рабочего дня. Например, если у пользователя есть задача, которая начинается в пятницу и длится 2 дня, то она растянется до понедельника, сохраняя при этом свою продолжительность.

Посмотреть код >>

Многостраничная математика в Spreadsheet

А вот и обновлённая многостраничная математика для таблиц Spreadsheet! Теперь пользователи могут полноценно работать с формулами, которые используют данные нескольких листов.

Глобальные диапазоны

Новый движок также подарил возможность создавать глобальные именованные диапазоны (для справки: раньше можно было создавать только локальные). Глобальные диапазоны видны на любом листе Spreadsheet.

Webix Named Ranges

Редактирование несколько текстовых файлов в File Manager

Меньше — это больше, однако это не про File Manager, потому что теперь этот виджет умеет открывать и редактировать несколько текстовых файлов одновременно. По ссылке ниже можно поэкспериментировать:

Посмотреть код >>

Обновление также касается Document Manager.

Обновления ядра

Возможность настраивать Tabbar

Начиная с версии 8.2, разработчики могут настраивать попап таббара, окно и сам список через свойство tabbarPopup. Например, с помощью этого свойства можно задавать свои стили для попапа:

webix.ui({
  view:"tabbar",
  options: [/* опции*/],
  tabbarPopup:{
    width: 200,
    // произвольные стили для попапа
    css: "myCSS",
  }
});

Возможность выключать изменение размеров определённого столбца

Теперь вы можете запрещать каким-либо столбцам менять ширину, даже если выставлен resizeColumn. Делается это с помощью свойства столбца resize:

webix.ui({
  view:"datatable",
  // разрешаем менять ширину столбцов
  resizeColumn: true,
  columns:[
    // а вот столбцу "rank" запрещаем менять размеры
    { id:"rank", resize:false, header:"", css:"rank", width:50},
    { id:"title", header:"Film title",  fillspace:true},
  ],
});

Посмотреть код >>

Работа с невидимыми столбцами

С версии 8.2 можно работать с невидимыми столбцами в Datatable. С помощью метода getColumns можно получить все столбцы (включая спрятанные) и обновлять таблицу, добавляя или удаляя столбцы вне зависимости от видимости.

Возможность очищать значения контролов

Пользователи могут очищать текущее значение контролов с инпутами с помощью привычного крестика. У функциональности несколько режимов и включается она свойством clear.

Попробуйте очистить значение:

Посмотреть код >>

Обновления события onChange

Событие onChange теперь передаёт в обработчик 3й аргумент — config — и отслеживает, чем вызвано изменение: пользовательским действием или API.

$$("slider").attachEvent("onChange", function(newVal, oldVal, config) {
    webix.message(`Value changed from ${oldVal} to ${newVal}. Source: ${config}`);
});

Возможность подстраивать элементы Timeline под их содержимое

Теперь элементы TimeLine можно подгонять под их содержимое. Это могут быть как все элементы, так и некоторые из них. Функциональность будет весьма кстати в случаях, когда у элементов разный объём данных.

{
  view:"timeline",
  layout:"y",
  type:{  
    // все элементы будут подстраиваться под содержимое
    height: "auto",
    // другие свойства
  }
}

Посмотреть код >>

Что дальше

Более подробную информацию о новых возможностях и обновлениях Webix 8.2 читайте на этой странице. Если вы хотите пощупать обновление вживую, скачайте библиотеку через npm, личный кабинет или нажмите на большую пурпурную кнопку.

Скачать Webix 8.2

Ну что, как вам обновление? Оправдали ваши ожидания? Делитесь своими впечатлениями и задавайте вопросы в комментариях 🙂