Перейти к основному содержимому

Inline Editors Extension

Более подробную информацию о расширении Inline editors вы можете найти в статье Редактирование 'на месте' в гриде.

Объект inlineEditors предоставляет следующий API:

Методы

Действия:

  • startEdit (taskId, columnName): void - открывает редактор для указанной задачи и ячейки, заполняет его сопоставленным значением и устанавливает фокус на редактор
    • taskId - (number | string) - ID задачи
    • columnName - (string) - имя колонки
  • show (taskId, columnName): void - открывает пустой редактор в указанной задаче и ячейке
    • taskId - (number | string) - ID задачи
    • columnName - (string) - имя колонки
  • setValue (): void - заполняет открытый редактор значениями из задачи
  • save (): void - сохраняет изменения и закрывает редактор
  • hide (): void - закрывает редактор без сохранения изменений
  • focus (): void - устанавливает фокус на редактор
  • getState (): object - возвращает объект состояния редактора (id: taskId, columnName: columnName, placeholder: HTMLElement)
  • getValue (): string - возвращает текущее значение редактора

Состояние:

  • isChanged (): boolean - определяет, отличается ли текущее значение редактора от начального
  • isVisible (): boolean - определяет, открыт ли редактор в данный момент

События:

  • attachEvent (name, handler): string - добавляет обработчик события к объекту inlineEditors
    • name - (string) - имя события
    • handler - (Function) - функция-обработчик, вызываемая при наступлении события
  • detachEvent (id): void - удаляет ранее добавленный обработчик события
    • id - (string) - ID обработчика события

Навигация:

  • editNextCell (canChangeRow): void - сохраняет текущий редактор и переходит к следующей ячейке
    • canChangeRow? - (boolean) - определяет, может ли редактор перейти к первой ячейке следующей строки после последней ячейки текущей строки
  • editNextRow (skipReadonly): void - сохраняет текущий редактор и открывает редактор в той же ячейке задачи ниже
    • skipReadonly? - (boolean) - если true, пропускает только для чтения задачи и открывает редактор в первой доступной для редактирования задаче ниже; если false (по умолчанию), закрывает редактор при попытке перейти к задаче только для чтения
  • editPrevCell (canChangeRow): void - сохраняет текущий редактор и переходит к предыдущей ячейке
    • canChangeRow? - (boolean) - определяет, может ли редактор перейти к последней ячейке предыдущей строки после первой ячейки текущей строки
  • editPrevRow (skipReadonly): void - сохраняет текущий редактор и открывает редактор в той же ячейке задачи выше
    • skipReadonly? - (boolean) - если true, пропускает только для чтения задачи и открывает редактор в первой доступной для редактирования задаче выше; если false (по умолчанию), закрывает редактор при попытке перейти к задаче только для чтения
  • getFirstCell (): string - возвращает имя первой доступной для редактирования колонки в гриде
  • getLastCell (): string - возвращает имя последней доступной для редактирования колонки в гриде
  • getNextCell (direction): string | null - возвращает имя следующей доступной для редактирования колонки
    • direction - (number) - направление движения: 1 - вправо, -1 - влево

Вспомогательные функции:

  • locateCell (node): object | null - проверяет, является ли указанный DOM-элемент ячейкой задачи, и возвращает объект состояния редактора, если это так: (id: taskId, columnName: columnName)
    • node - (HTMLElement) - HTML-элемент

Маппинг мыши/клавиатуры:

  • setMapping (mapping): void - задаёт объект конфигурации маппинга
    • mapping - (object) - объект, определяющий маппинг:
      • init - (Function): void - инициализирует маппинг
        • inlineEditors - (InlineEditorMethods) - объект inlineEditors
        • grid - (any) - представление грида
      • onShow - (Function): void - вызывается при открытии inline редактора
        • inlineEditors - (InlineEditorMethods) - объект inlineEditors
        • node - (HTMLElement) - HTML-элемент
        • grid - (any) - представление грида
      • onHide - (Function): void - вызывается при закрытии inline редактора
        • inlineEditors - (InlineEditorMethods) - объект inlineEditors
        • node - (HTMLElement) - HTML-элемент
        • grid - (any) - представление грида
      • destroy - (Function): void - очищает маппинг
  • getMapping (): object - возвращает текущий применённый объект маппинга

События

onBeforeEditStart

Аргументы:

  • state - (object) - объект состояния редактора
    • id - (number | string) - ID редактируемой задачи
    • columnName - (string) - имя колонки
var inlineEditors = gantt.ext.inlineEditors;

inlineEditors.attachEvent("onBeforeEditStart", function(state){
console.log(state);
// -> {id: itemId, columnName: columnName};
return true;
});

onEditStart

Аргументы:

  • state - (object) - объект состояния редактора
    • id - (number | string) - ID редактируемой задачи
    • columnName - (string) - имя колонки
var inlineEditors = gantt.ext.inlineEditors;

inlineEditors.attachEvent("onEditStart", function(state){
console.log(state);
// -> {id: itemId, columnName: columnName};
});

onBeforeSave

Вызывается, когда редактор собирается закрыться и сохранить изменения

Аргументы:

  • state - (object) - объект состояния редактора
    • id - (number | string) - ID редактируемой задачи
    • columnName - (string) - имя колонки
    • oldValue - (any) - исходное значение в редакторе
    • newValue - (any) - текущее значение в редакторе, может быть изменено
var inlineEditors = gantt.ext.inlineEditors;

inlineEditors.attachEvent("onBeforeSave", function(state){
console.log(state);
// -> { id: itemId,
// columnName: columnName,
// oldValue: value,
// newValue: value
// };
return true;
});

onSave

Вызывается после того, как задача была обновлена из редактора

Аргументы:

  • state - (object) - объект состояния редактора
    • id - (number | string) - ID редактируемой задачи
    • columnName - (string) - имя колонки
    • oldValue - (any) - исходное значение в редакторе
    • newValue - (any) - текущее значение в редакторе
var inlineEditors = gantt.ext.inlineEditors;

inlineEditors.attachEvent("onSave", function(state){
console.log(state);
// -> { id: itemId,
// columnName: columnName,
// oldValue: value,
// newValue: value
// };
});

onEditEnd

Вызывается после закрытия inline редактора

Аргументы:

  • state - (object) - объект состояния редактора
    • id - (number | string) - ID редактируемой задачи
    • columnName - (string) - имя колонки
var inlineEditors = gantt.ext.inlineEditors;

inlineEditors.attachEvent("onEditEnd", function(state){
console.log(state);
// -> {id: itemId, columnName: columnName};
});