Skip to content

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
    • Help
    • Support
    • Submit feedback
    • Contribute to GitLab
  • Sign in
I
internship
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Labels
    • Milestones
  • Merge Requests 0
    • Merge Requests 0
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Analytics
    • Analytics
    • CI / CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • Valentin Skripnikov
  • internship
  • Wiki
  • task 3

task 3

Last edited by Valentin Skripnikov Oct 23, 2017
Page history

В начало

3. Автоматическое заполнение периода табеля

Пользователь должен заполнять табель за всю неделю целиком.

Определение текущей недели должно быть автоматическим.

Для этого необходимо реализовать следующие функции:

  • В компоненте с идентификатором ts_period_date_from установить в качестве даты понедельник текущей недели
  • В компоненте с идентификатором ts_period_date_to установить в качестве даты воскресенье текущей недели

⭐ Для расчета понедельника и воскресенья текущей недели использовать текущую дату сервера. В этом случае пользователь не сможет повлиять на бизнес-логику приложения меняя дату/время у себя на компьютере.


Рекомендации к написанию кода

Часто на форме может быть довольно большое количество скриптов, что может значительно усложнить читаемость кода и его отладку.

Хорошей практикой будет создание глобального компонента формы, в котором будут храниться все скрипты компонентов формы.

Добавьте на форму, в верхнюю левую ячейку компонент "Неизменяемый текст" со значением " " (чтобы был не виден на форме) и идентификатором main_script.

В своем приложении необходимо разместить следующий код:

        AS.FORMS.bus.on(AS.FORMS.EVENT_TYPE.formShow, function (event, model, view) {
            if (model.formCode === "timesheet") {
                model.on(AS.FORMS.EVENT_TYPE.dataLoad, function () {
                    portal.main(portal.player.view.getViewWithId("main_script"), portal.player.model.getModelWithId("main_script"));
                });
            }
        });

Суть его в том чтобы когда форма будет отображена и загружены ее данные вызвать функцию portal.main(view, model), для выполнения дальнейших скриптов.

Сигнатура функции main следующая:

main: function (view, model) {

}

Список необходимой документации
  • Скриптинг в формах
  • Справочник API функций
  • jQuery API
Clone repository
  • Home
  • prepare
  • task 1
  • task 1_1
  • task 2
  • task 3
  • task 3_1
  • task 4
  • task 5