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