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};
});
К началу