{"version":3,"sources":["node_modules/browserify/node_modules/browser-pack/_prelude.js","dev/js/404/module.js","dev/js/404/router.js","dev/js/app.config.js","dev/js/app.js","dev/js/app.modules.js","dev/js/approve/approve.controller.js","dev/js/approve/approve.service.js","dev/js/approve/module.js","dev/js/approve/router.js","dev/js/auth/auth.config.js","dev/js/auth/auth.interceptor.js","dev/js/auth/module.js","dev/js/auth/router.js","dev/js/auth/success/module.js","dev/js/auth/success/router.js","dev/js/auth/success/success.controller.ts","dev/js/shared/BackendUri.constant.js","dev/js/shared/HttpRequestedWith.interceptor.js","dev/js/shared/abstract-classes/OnCheckIsFrame.ts","dev/js/shared/directives/account-autocomplete.directive.ts","dev/js/shared/directives/customImg.directive.js","dev/js/shared/directives/datepicker-day.direcrive.ts","dev/js/shared/directives/gkhTypedModel.directive.js","dev/js/shared/directives/newAppealEvent.directive.ts","dev/js/shared/directives/requiredPermissions.directive.ts","dev/js/shared/module.js","dev/js/shared/services/TimeoutListener.service.ts","dev/js/shared/services/excel-export.service.ts","dev/js/shared/services/flowConfigurator.service.ts","dev/js/shared/services/localDatabase.service.ts","dev/js/shared/services/missed-record.service.ts","dev/js/shared/services/toast.service.ts","dev/js/shared/services/user.service.ts","dev/js/site/detail/charges/charges-table.directive.ts","dev/js/site/detail/charges/charges.controller.ts","dev/js/site/detail/charges/charges.service.ts","dev/js/site/detail/charges/dialogs/chargesExamples.dialog.ts","dev/js/site/detail/charges/dialogs/chargesFromFile.dialog.ts","dev/js/site/detail/charges/module.js","dev/js/site/detail/charges/router.js","dev/js/site/detail/companyInfo/companyInfo.controller.ts","dev/js/site/detail/companyInfo/companyInfo.service.ts","dev/js/site/detail/companyInfo/module.js","dev/js/site/detail/companyInfo/router.js","dev/js/site/detail/detail.controller.ts","dev/js/site/detail/dialogs/img-popup.dialog.ts","dev/js/site/detail/dispatcher/appeal/appeal.controller.ts","dev/js/site/detail/dispatcher/appeal/appeal.details.controller.ts","dev/js/site/detail/dispatcher/appeal/appeal.service.ts","dev/js/site/detail/dispatcher/appeal/dialogs/link-appeal-to-record.dialog.ts","dev/js/site/detail/dispatcher/appeal/directives/appeal-table.directive.ts","dev/js/site/detail/dispatcher/dispatcher-report/dispatcher-report.controller.ts","dev/js/site/detail/dispatcher/dispatcher-report/report-propertes/performers.ts","dev/js/site/detail/dispatcher/dispatcher-report/report-propertes/repair-request-logbook.ts","dev/js/site/detail/dispatcher/dispatcher-report/report-propertes/repair-request.ts","dev/js/site/detail/dispatcher/dispatcher.controller.ts","dev/js/site/detail/dispatcher/missed-record/missed-record.controller.ts","dev/js/site/detail/dispatcher/module.js","dev/js/site/detail/dispatcher/new-appeal/new-appeal.controller.ts","dev/js/site/detail/dispatcher/performers/performers.controller.ts","dev/js/site/detail/dispatcher/records/bottom-sheet/records.bottom-sheet.ts","dev/js/site/detail/dispatcher/records/directives/records-table.directive.ts","dev/js/site/detail/dispatcher/records/records.controller.ts","dev/js/site/detail/dispatcher/records/records.model.ts","dev/js/site/detail/dispatcher/records/records.service.ts","dev/js/site/detail/dispatcher/repair-request/dialogs/print.dialog.ts","dev/js/site/detail/dispatcher/repair-request/dialogs/rapair-request-status.dialog.ts","dev/js/site/detail/dispatcher/repair-request/dialogs/rapair-request.dialog.ts","dev/js/site/detail/dispatcher/repair-request/directives/repair-request-list.directive.ts","dev/js/site/detail/dispatcher/repair-request/directives/repair-request-table.directive.ts","dev/js/site/detail/dispatcher/repair-request/repair-request.controller.ts","dev/js/site/detail/dispatcher/repair-request/repair-request.model.ts","dev/js/site/detail/dispatcher/repair-request/repair-request.service.ts","dev/js/site/detail/dispatcher/repiar-request-types/repiar-request-types.controller.ts","dev/js/site/detail/dispatcher/router.js","dev/js/site/detail/district/district.controller.ts","dev/js/site/detail/district/district.service.ts","dev/js/site/detail/district/module.js","dev/js/site/detail/district/router.js","dev/js/site/detail/emails/dialogs/recipientFromEmail.dialog.ts","dev/js/site/detail/emails/directives/circleChart.directive.ts","dev/js/site/detail/emails/directives/emailRecipient.directive.ts","dev/js/site/detail/emails/directives/emailTemplate.directive.ts","dev/js/site/detail/emails/emails.controller.ts","dev/js/site/detail/emails/emails.service.ts","dev/js/site/detail/emails/module.js","dev/js/site/detail/emails/router.js","dev/js/site/detail/gis/directives/gisAttachment.directive.ts","dev/js/site/detail/gis/gis.controller.ts","dev/js/site/detail/gis/module.js","dev/js/site/detail/gis/router.js","dev/js/site/detail/gis/services/filesBackend.service.ts","dev/js/site/detail/gis/services/tasksBackend.service.ts","dev/js/site/detail/houses/houses.controller.ts","dev/js/site/detail/houses/houses.service.ts","dev/js/site/detail/houses/module.js","dev/js/site/detail/houses/router.js","dev/js/site/detail/module.js","dev/js/site/detail/notes/module.js","dev/js/site/detail/notes/note-types/note-types.controller.ts","dev/js/site/detail/notes/note-types/note-types.service.ts","dev/js/site/detail/notes/note.ts","dev/js/site/detail/notes/notes.controller.ts","dev/js/site/detail/notes/notesAdd.controller.ts","dev/js/site/detail/notes/router.js","dev/js/site/detail/notes/services/notesBackend.service.ts","dev/js/site/detail/router.js","dev/js/site/detail/sidenav-menu.directive.ts","dev/js/site/detail/theme/module.js","dev/js/site/detail/theme/router.js","dev/js/site/detail/theme/theme.controller.ts","dev/js/site/detail/theme/theme.service.ts","dev/js/site/module.js","dev/js/site/router.js","dev/js/site/site.controller.ts","dev/js/site/site.service.js","dev/js/site/siteblocked/router.js","dev/js/v2/directives/baseInfo.directive.ts","dev/js/v2/model.ts","dev/js/v2/module.js","dev/js/v2/router.js","dev/js/v2/siteV2.controller.ts","node_modules/authentication-npm-module/lib/app.js","node_modules/authentication-npm-module/lib/authenticationModule.js","node_modules/authentication-npm-module/lib/models/LocalStorage.js","node_modules/authentication-npm-module/lib/models/Resource.js","node_modules/authentication-npm-module/lib/models/ResourceSource.js","node_modules/authentication-npm-module/lib/models/hash256.js","node_modules/authentication-npm-module/lib/models/http.js","node_modules/authentication-npm-module/lib/models/queryString.js","node_modules/authentication-npm-module/lib/models/rutoken.js","node_modules/authentication-npm-module/lib/models/rutokenPlugin.js","node_modules/authentication-npm-module/lib/provider/resourceSource.provider.js","node_modules/authentication-npm-module/lib/services/authentication-additional.service.js","node_modules/authentication-npm-module/lib/services/authentication.service.js","node_modules/authentication-npm-module/lib/services/rutoken.service.js","node_modules/authentication-npm-module/lib/services/user.service.js","node_modules/es6-promise/dist/es6-promise.js","node_modules/process/browser.js","node_modules/q/q.js","node_modules/rutokenweb/rutokenweb.min.js"],"names":[],"mappings":"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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AC1FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACxJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AC3pCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACxLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AC5hEA","file":"bundle.js","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o {\r\n\t\tif (file && file.type && file.type.split('/')[1] && ['png', 'jpeg'].indexOf(file.type.split('/')[1])) {\r\n\t\t\ttry {\r\n\t\t\t\tconst options = { maxSizeMB: 1, maxWidthOrHeight: 1920, useWebWorker: true };\r\n\t\t\t\treturn imageCompression(file, options).then((compressedFile) => {\r\n\t\t\t\t\tfile = compressedFile;\r\n\t\t\t\t\tconsole.log('картинка без ошибки');\r\n\t\t\t\t\treturn file;\r\n\t\t\t\t}).catch(() => {\r\n\t\t\t\t\tconsole.log('картинка c ошибкой');\r\n\t\t\t\t\treturn file;\r\n\t\t\t\t})\r\n\t\t\t} catch (error) {\r\n\t\t\t\tconsole.log('картинка c ошибкой');\r\n\t\t\t\treturn $q.resolve(file);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tconsole.log('не картинка');\r\n\t\t\treturn $q.resolve(file);\r\n\t\t}\r\n\t};\r\n\tflowFactoryProvider.factory = (options) => {\r\n\t\tconst factory = new Flow(options);\r\n\t\tconst factoryOldAddFiles = factory.addFiles;\r\n\t\tfactory.addFiles = (fileList, event) => {\r\n\t\t\tfactory.fire('customFilesAdding', true);\r\n\t\t\tconst promises = [];\r\n\t\t\tFlow.each(fileList, (file) => {\r\n\t\t\t\tpromises.push(compressionPromise(file));\r\n\t\t\t})\r\n\t\t\t$q.all(promises).then((data) => {\r\n\t\t\t\tconsole.log('Готово!', data);\r\n\t\t\t\tfactoryOldAddFiles.call(factory, data);\r\n\t\t\t}).finally(() => {\r\n\t\t\t\tfactory.fire('customFilesAdding', false);\r\n\t\t\t});\r\n\t\t};\r\n\t\treturn factory;\r\n\t};\r\n\tflowFactoryProvider.on('customFilesAdding', (flag) => {\r\n\t\tif (flag && !document.body.classList.contains('loading')) {\r\n\t\t\tdocument.body.classList.add('loading');\r\n\t\t} else if (!flag && document.body.classList.contains('loading')) {\r\n\t\t\tdocument.body.classList.remove('loading');\r\n\t\t}\r\n\t})\r\n});\r\n\r\nangular.module('app.core').config(function($mdDateLocaleProvider) {\r\n\r\n $mdDateLocaleProvider.months = [\r\n 'Январь', 'Февраль', 'Март',\r\n 'Апрель', 'Май', 'Июнь',\r\n 'Июль', 'Август', 'Сентябрь',\r\n 'Октябрь', 'Ноябрь', 'Декабрь'\r\n ];\r\n\r\n $mdDateLocaleProvider.shortMonths = [\r\n 'Янв.', 'Фев.', 'Март',\r\n 'Апр.', 'Май', 'Июнь',\r\n 'Июль', 'Авг.', 'Сен.',\r\n 'Окт.', 'Нояб.', 'Дек.'\r\n ];\r\n $mdDateLocaleProvider.days = [\r\n \"Воскресенье\", \"Понедельник\", \"Вторник\", \"Среда\", \"Четверг\", \"Пятница\", \"Суббота\",\r\n ];\r\n $mdDateLocaleProvider.shortDays = [\r\n 'вс', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб',\r\n ];\r\n\t$mdDateLocaleProvider.firstDayOfWeek = 1;\r\n\r\n\t// Optional.\r\n // $mdDateLocaleProvider.dates = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31];\r\n\r\n $mdDateLocaleProvider.formatDate = function(date) {\r\n\t\tif(date != null) {\r\n\t\t\tlet dd = String(date.getDate());\r\n\t\t\tif(dd.length < 2) {\r\n\t\t\t\tdd = \"0\" + dd;\r\n\t\t\t}\r\n\t\t\tlet MM = String(date.getMonth() + 1);\r\n\t\t\tif(MM.length < 2) {\r\n\t\t\t\tMM = \"0\" + MM;\r\n\t\t\t}\r\n\t\t\tlet yyyy = date.getFullYear();\r\n\t\t\treturn `${dd}.${MM}.${yyyy}`;\r\n\t\t}\r\n\t\treturn '';\r\n\t};\r\n $mdDateLocaleProvider.parseDate = function(dateString) {\r\n\t\tlet dateArr = dateString.split('.');\r\n\t\treturn new Date(`${dateArr[2]}-${dateArr[1]}-${dateArr[0]}`);\r\n\t};\r\n});\r\n\r\n/* @ngInject */\r\nfunction config($mdThemingProvider, $locationProvider, $stateProvider, $urlRouterProvider) {\r\n\t$mdThemingProvider.theme('default')\r\n\t\t.primaryPalette('blue', {\r\n\t\t\t'default': '700',\r\n\t\t\t'hue-1': '100',\r\n\t\t\t'hue-2': '600',\r\n\t\t\t'hue-3': 'A100'\r\n\t\t})\r\n\t\t.accentPalette('blue-grey', {\r\n\t\t\t'default': '200'\r\n\t\t});\r\n\r\n\t$locationProvider.html5Mode(true);\r\n\r\n\t$urlRouterProvider.otherwise(\"/404\");\r\n}\r\n","import \"./app.modules.js\";\r\nimport \"./app.config.js\";\r\n\r\nimport \"./shared/module.js\";\r\nimport \"./404/module.js\";\r\nimport \"./auth/module.js\";\r\nimport \"./approve/module.js\";\r\nimport \"./site/module.js\";\r\nimport \"./v2/module.js\";\r\n","angular.module(\"app\", [\r\n\t\"app.templates\",\r\n\t\"app.core\",\r\n\t\"app.components\",\r\n\t\"app.routes\"\r\n]);\r\n\r\nangular.module(\"app.routes\", []);\r\n\r\nangular.module(\"app.core\", [\r\n\t\"app.shared\",\r\n\t\"ngMaterial\",\r\n\t\"ngCookies\",\r\n\t\"ngResource\",\r\n\t\"ngMessages\",\r\n\t\"ngSanitize\",\r\n\t\"ui.router\",\r\n\t\"flow\",\r\n\t\"ui.tinymce\",\r\n\t\"md.data.table\"\r\n]);\r\n\r\nangular.module(\"app.templates\", []);\r\n\r\nangular.module(\"app.components\", [\"404\", \"v2\", \"auth\", \"admin\"]);\r\n\r\nangular.module(\"404\", [\"app.core\", \"app.templates\"]);\r\nangular.module(\"v2\", [\"app.core\", \"app.templates\"]);\r\nangular.module(\"admin\", [\"app.core\", \"app.templates\"]);\r\nangular.module(\"auth\", [\"app.core\", \"app.templates\"]);\r\n","export class ApproveController {\r\n constructor($scope, $state, $stateParams, $rootScope, $cookies, $q,\r\n\t\tToastService, ApproveService) {\r\n \r\n\t\t$rootScope.title = \"Одобрение\";\r\n\t\t\r\n\t\tthis.state = $state;\r\n\t\tthis._$q = $q;\r\n\t\tthis._$cookies = $cookies;\r\n\t\tthis.ApproveService = ApproveService;\r\n\r\n\t\tthis.init($stateParams.ot_token);\r\n }\r\n\r\n\tinit(ot_token) {\r\n\t\tthis.ApproveService.query({ot_token: ot_token}).$promise\r\n\t\t\t.then((response) => this.checkResponse(response))\r\n\t\t\t.then((response) => this.saveToken(response))\r\n\t\t\t.then(() => this.state.go('site'))\r\n\t\t\t//.catch((response) => this.deleteToken(response))\r\n\t}\r\n\t\r\n\tcheckResponse(response) {\r\n\t\tif (response.data === false)\r\n\t\t\treturn this._$q.reject(response);\r\n\t\tvar data = {\r\n\t\t\tx_token: response.x_token,\r\n\t\t\texpires: response.expires\r\n\t\t}\r\n\t\treturn this._$q.resolve(data);\r\n\t}\r\n\t\r\n\tsaveToken(data) {\r\n\t\tlet cookieOptions = {\r\n\t\t\texpires: new Date(data.expires),\r\n\t\t};\r\n\t\tthis._$cookies.put('token', data.x_token, cookieOptions);\r\n\t\t\r\n\t\treturn this._$q.resolve(data);\r\n\t}\r\n\t\r\n\tdeleteToken(response) {\r\n\t\tthis._$cookies.remove('token');\r\n\t\treturn this._$q.reject(response);\r\n\t}\r\n\r\n\tgetToken() {\r\n\t\treturn this._$cookies.get('token');\r\n\t}\r\n}","export class ApproveService {\r\n constructor($resource, BackendUri) {\r\n return $resource(BackendUri + \"/approve\", {}, \r\n\t\t\t{'query': { method:'GET' }\r\n\t\t});\r\n }\r\n}","import './router.js';\r\nimport {ApproveController} from './approve.controller.js';\r\nimport {ApproveService} from './approve.service.js';\r\n\r\nangular.module(\"auth\")\r\n .controller('ApproveController', ApproveController)\r\n .service('ApproveService', ApproveService)","angular.module('app.routes').run(run);\r\n\r\n/* @ngInject */\r\nfunction run(stateAdapter, $templateCache) {\r\n stateAdapter.state('approve', {\r\n url: '/approve?ot_token',\r\n template: $templateCache.get('approve/approve.controller.html'),\r\n controller: 'ApproveController',\r\n })\r\n}","export function config($locationProvider, $httpProvider) {\r\n $httpProvider.interceptors.push('AuthInterceptor');\r\n}","export class AuthInterceptor {\r\n static getInstance($q, $cookies, $injector, $stateParams, RutokenService, ResourceSource, User, $rootScope) {\r\n AuthInterceptor.instance = new AuthInterceptor($q, $cookies, $injector, $stateParams, RutokenService, ResourceSource, User, $rootScope);\r\n return AuthInterceptor.instance;\r\n }\r\n \r\n constructor($q, $cookies, $injector, $stateParams, RutokenService, ResourceSource, User, $rootScope) {\r\n this.$q = $q;\r\n this.$cookies = $cookies;\r\n this.$injector = $injector;\r\n this.$stateParams = $stateParams;\r\n this.RutokenService = RutokenService;\r\n this.ResourceSource = ResourceSource;\r\n this.User = User;\r\n this.OGRN = null;\r\n $rootScope.$on('$stateChangeStart', (event, toState, toParams, fromState, fromParams) => {\r\n if(toParams.ogrn) {\r\n this.OGRN = toParams.ogrn;\r\n } else {\r\n this.OGRN = null;\r\n }\r\n })\r\n }\r\n \r\n responseError(response) {\r\n if(response.status === 401) {\r\n var stateService = AuthInterceptor.instance.$injector.get('$state');\r\n let resourceName = AuthInterceptor.instance.ResourceSource.hasHost(response.config.url);\r\n stateService.go('auth', { \"name\" : resourceName });\r\n return AuthInterceptor.instance.$q.reject(response);\r\n }\r\n else if ( response.status === 404) { //response.status === 403 ||\r\n var stateService = AuthInterceptor.instance.$injector.get('$state');\r\n stateService.go('404');\r\n return AuthInterceptor.instance.$q.reject(response);\r\n }\r\n else {\r\n return AuthInterceptor.instance.$q.reject(response);\r\n }\r\n }\r\n \r\n request(config) {\r\n let resourceName = AuthInterceptor.instance.ResourceSource.hasHost(config.url);\r\n\r\n if(resourceName != null) {\r\n config.withCredentials = true;\r\n config.headers = config.headers || {};\r\n\r\n if (AuthInterceptor.instance.OGRN != null) config.headers['X-OGRN'] = AuthInterceptor.instance.OGRN;\r\n\r\n var AccessKey = AuthInterceptor.instance.User.getAccessKey(resourceName);\r\n if(AccessKey == null) return config; // AccessKey отсутствует или не валиден\r\n config.headers['Authorization'] = `Bearer ${AccessKey}`;\r\n\r\n if(!AuthInterceptor.instance.ResourceSource.ShouldRequestBeSigned()) return config; // Запрос не должен быть запрощен\r\n\r\n // Подпись\r\n var deferred = AuthInterceptor.instance.$q.defer();\r\n AuthInterceptor.instance.RutokenService.init('TestKey')\r\n .then(() => {\r\n let requestId = AuthInterceptor.instance.RutokenService.genGUID();\r\n let signedAt = AuthInterceptor.instance.RutokenService.getSignedAt();\r\n let requestPayload = config.data ? JSON.stringify(config.data) : '';\r\n config.headers['X-RequestID'] = requestId;\r\n config.headers['X-SignedAt'] = signedAt;\r\n let stringToHash = requestId + \".\" + signedAt + \".\" + requestPayload;\r\n return AuthInterceptor.instance.RutokenService.genHash(stringToHash);\r\n })\r\n .then((hash) => {\r\n return AuthInterceptor.instance.RutokenService.Sign(hash);\r\n })\r\n .then((RutokenSignature) => {\r\n config.headers['X-RutokenSignature'] = RutokenSignature;\r\n deferred.resolve(config);\r\n })\r\n .catch((err) => {\r\n AuthInterceptor.instance.RutokenService.ErrorHandle(err);\r\n deferred.resolve(config);\r\n })\r\n return deferred.promise;\r\n }\r\n return config;\r\n }\r\n}\r\n\r\n","import './router.js';\r\nimport \"./auth.interceptor.js\";\r\nimport \"./success/module.js\";\r\nimport {config} from \"./auth.config.js\";\r\nimport {AuthInterceptor} from './auth.interceptor.js';\r\n\r\nangular.module(\"auth\")\r\n .factory('AuthInterceptor', AuthInterceptor.getInstance)\r\n .config(config)","angular.module('app.routes').run(run);\r\n\r\n/* @ngInject */\r\nfunction run(stateAdapter, $templateCache) {\r\n stateAdapter.state('auth', {\r\n url: '/auth?name',\r\n controllerProvider: function($stateParams, BackendUri, $state, Authentication, ResourceSource) {\r\n let resourceName = $stateParams.name || null;\r\n if(resourceName == null) {\r\n console.warn(\"Имя ресурса, для которого требуется авторизация, не определено!\");\r\n return;\r\n }\r\n let state = {\r\n name: $state.current.name,\r\n params: $state.params\r\n }\r\n let resource = ResourceSource.getResource(resourceName);\r\n Authentication.Start(resource, state)\r\n .catch((err) => {\r\n $state.go('404');\r\n });\r\n }\r\n })\r\n stateAdapter.state('logout', {\r\n url: '/logout',\r\n controllerProvider: function(AuthUri, User) {\r\n User.DeleteKeys('Backend');\r\n window.location.replace(AuthUri);\r\n }\r\n })\r\n}","import './router.js';\r\nimport {SuccessController} from './success.controller';\r\n\r\nangular.module('admin')\r\n .controller('SuccessController', SuccessController)","angular.module('app.routes').run(run);\r\n\r\n/* @ngInject */\r\nfunction run(stateAdapter, $templateCache) {\r\n stateAdapter.state('success', {\r\n url: '/auth/success?request-token',\r\n controller: 'SuccessController',\r\n })\r\n}","/// \r\n\r\nexport class SuccessController {\r\n constructor(\r\n\t\t$scope: ng.IScope,\r\n\t\tprivate $state: any,\r\n\t\tprivate $stateParams: any,\r\n\t\tprivate Authentication: any\r\n\t) {\r\n\t\tAuthentication.Continue($stateParams[\"request-token\"])\r\n\t\t\t.then((state) => {\r\n\t\t\t\ttry {\r\n\t\t\t\t\t$state.go(state.name, state.params);\r\n\t\t\t\t} catch(err) {\r\n\t\t\t\t\t$state.go(\"site\");\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.catch((err) => {\r\n\t\t\t\tconsole.warn(err);\r\n\t\t\t});\r\n\t}\r\n}","angular.module('app.core')\r\n .constant('BackendUri', \"https://lk.i-gkh.ru/api\")\r\n .constant('AuthUri', \"https://auth.abcreg.ru\")\r\n .constant('StorageUri', \"https://storage.i-gkh.ru\")\r\n .constant('WithConsole', process.env.WithConsole || true)","angular\r\n .module('app')\r\n .factory('requestedWithInterceptor', requestedWithInterceptor)\r\n .config(config);\r\n\r\n/* @ngInject */\r\nfunction requestedWithInterceptor() {\r\n return {\r\n // Add default XHR-header\r\n request: function (config) {\r\n config.headers = config.headers || {};\r\n config.headers['X-Requested-With'] = 'XMLHttpRequest';\r\n return config;\r\n },\r\n };\r\n}\r\n\r\n/* @ngInject */\r\nfunction config($locationProvider, $httpProvider) {\r\n $httpProvider.interceptors.push('requestedWithInterceptor');\r\n}","export class OnCheckIsFrame {\r\n protected scope: any;\r\n\r\n constructor(protected $window: any, protected $stateParams: any, $scope: any) {\r\n this.scope = $scope;\r\n this.countListSize($stateParams);\r\n $($window).bind(\"resize\", () => this.countListSize($stateParams, false));\r\n }\r\n\r\n protected countListSize($stateParams: any, isDigest: any = true): void {\r\n this.scope.isFrame = $stateParams.iframe === \"1\" || window.innerWidth < 1200;\r\n if (!isDigest) {\r\n this.scope.$digest();\r\n }\r\n }\r\n}","import { ToastService } from \"../services/toast.service\";\r\nimport { ChargesService } from \"../../site/detail/charges/charges.service\";\r\n\r\ndeclare var moment: any;\r\nmoment.locale(\"ru\");\r\n\r\nlet Instance: AccountAutocompleteDirective;\r\n\r\nexport interface IAccountAutocompleteScope extends ng.IScope {\r\n\tisNewAddress: boolean;\r\n\r\n\taccountNumber: any;\r\n\tonChange: any;\r\n\tselectedAccount: {\r\n ChargeRegistryEntryId?: any,\r\n ChargeRegistryId?: any,\r\n AccountNumber?: any,\r\n ChargeValue?: any,\r\n Address?: any,\r\n OGRN?: any,\r\n Month?: any,\r\n Year?: any,\r\n isNew?: any\r\n };\r\n}\r\n\r\nexport class AccountAutocompleteController {\r\n scope: IAccountAutocompleteScope;\r\n element: ng.IAugmentedJQuery;\r\n\tinput: any;\r\n\r\n link(scope: any, element: ng.IAugmentedJQuery, attr: ng.IAttributes): any {\r\n this.scope = scope;\r\n\t\tthis.element = element;\r\n\t\tthis.scope.isNewAddress = false;\r\n\t\tthis.scope.appeal = {\r\n\t\t\tAccountNumber: \"\",\r\n\t\t\tAddress: \"\"\r\n\t\t};\r\n\t\tInstance.$timeout(() => {\r\n\t\t\tthis.init();\r\n\t\t}, 250);\r\n\t}\r\n\r\n\tinit(): void {\r\n\t\tthis.scope.selectedItemChange = (val) => this.selectedItemChange(val);\r\n\t\tthis.scope.querySearch = (val) => this.querySearch(val);\r\n\t\tthis.scope.newAccountNumber = () => {\r\n\t\t\tthis.scope.isNewAddress = !this.scope.isNewAddress;\r\n\t\t};\r\n\r\n\t\tthis.scope.$watch(\"appeal\", (appeal) => {\r\n\t\t\tif (appeal) {\r\n\t\t\t\tthis.scope.onChange(this.scope.appeal);\r\n\t\t\t}\r\n\t\t}, true);\r\n\r\n\t\tif (this.scope.accountNumber) {\r\n\t\t\tthis.querySearch(this.scope.accountNumber || \"\")\r\n\t\t\t\t.then((acc) => {\r\n\t\t\t\t\tif (acc && acc.length === 1) {\r\n\t\t\t\t\t\tthis.scope.selectedAccount = acc[0];\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tif (this.scope.accountNumber && this.scope.address) {\r\n\t\t\t\t\t\t\tthis.scope.selectedAccount = {\r\n\t\t\t\t\t\t\t\tAccountNumber: this.scope.accountNumber || \" \",\r\n\t\t\t\t\t\t\t\tAddress: this.scope.address || \" \",\r\n\t\t\t\t\t\t\t\tChargeValue: null,\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tthis.scope.selectedAccount = null;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t} else {\r\n\t\t\tthis.scope.selectedAccount = null;\r\n\t\t}\r\n\t}\r\n\r\n\tselectedItemChange(item?: any): void {\r\n if (item !== void 0) {\r\n this.scope.appeal.AccountNumber = item.AccountNumber;\r\n\t\t\tthis.scope.appeal.Address = item.Address;\r\n } else {\r\n\t\t\tthis.scope.appeal.AccountNumber = \"\";\r\n this.scope.appeal.Address = \"\";\r\n\t\t}\r\n\t}\r\n\r\n\tquerySearch(term: string): ng.IPromise {\r\n return Instance.ChargesService.GetChargesList({\r\n limit: 10,\r\n offset: 0,\r\n term: term\r\n }).then(response => response.Data);\r\n }\r\n}\r\n\r\nexport class AccountAutocompleteDirective {\r\n static getInstance(\r\n\t\t$templateCache: ng.ITemplateCacheService, $stateParams: any, $q: ng.IQService, $timeout: ng.ITimeoutService,\r\n\t\t$mdUtil: any, $mdDateLocale: any, ToastService: ToastService, ChargesService: ChargesService\r\n\t): any {\r\n return (Instance = new AccountAutocompleteDirective(\r\n $templateCache, $stateParams, $q, $timeout, $mdUtil, $mdDateLocale, ToastService, ChargesService\r\n ));\r\n }\r\n\r\n public restrict: string = \"E\";\r\n public scope = {\r\n\t\taccountNumber: \"=?\",\r\n\t\taddress: \"=?\",\r\n\t\tcanCreateNewAddress: \"=?\",\r\n\t\thideValue: \"=?\",\r\n\t\tonChange: \"=?\"\r\n\t};\r\n public template: any;\r\n\r\n constructor(\r\n\t\tpublic $templateCache: ng.ITemplateCacheService, public $stateParams: any, public $q: ng.IQService,\r\n\t\tpublic $timeout: ng.ITimeoutService, public $mdUtil: any, public $mdDateLocale: ng.material.IDateLocaleProvider,\r\n\t\tpublic ToastService: ToastService, public ChargesService: ChargesService\r\n ) {\r\n this.template = $templateCache.get(\r\n \"shared/directives/account-autocomplete.directive.html\"\r\n );\r\n }\r\n\r\n link(scope: any, element: any, attr: any, controller: AccountAutocompleteController): any {\r\n controller.link(scope, element, attr);\r\n }\r\n\r\n controller(): any {\r\n return new AccountAutocompleteController();\r\n }\r\n}\r\n","export function customImg() {\r\n\treturn {\r\n\t\t'restrict': 'E',\r\n\t\t'link': function(scope, element, attrs) {\r\n\t\t\tattrs.$observe('source', function(source) {\r\n\r\n\t\t\t\tvar img = new Image();\r\n\r\n\t\t\t\timg.onload = function() {\r\n\t\t\t\t\telement.attr('src', source);\r\n\t\t\t\t}\r\n\r\n\t\t\t\timg.src = source;\r\n\t\t\t});\r\n\t\t},\r\n\t\t'scope': true,\r\n\t\ttemplate: '',\r\n\t\treplace: true, \r\n\t}\r\n}","import { ToastService } from \"../services/toast.service\";\r\n\r\ndeclare var moment: any;\r\nmoment.locale(\"ru\");\r\n\r\nlet Instance: DatepickerDayDirective;\r\n\r\nexport interface IDatepickerDayScope extends ng.IScope {\r\n\tdaterange: IRecordDatarage;\r\n\tisLoading: boolean;\r\n\tonChange: (daterange: IRecordDatarage) => any;\r\n}\r\n\r\nexport interface IRecordDatarage {\r\n\tcallDate: Date;\r\n\tcallTimeStart: number;\r\n\tcallTimeEnd: number;\r\n}\r\n\r\nexport class DatepickerDayController {\r\n scope: IDatepickerDayScope;\r\n element: ng.IAugmentedJQuery;\r\n\tinput: any;\r\n\r\n link(scope: any, element: ng.IAugmentedJQuery, attr: ng.IAttributes): any {\r\n this.scope = scope;\r\n this.element = element;\r\n\t\tthis.setCustomeDatepickerLocaleOptions();\r\n\t\tInstance.$timeout(() => {\r\n\t\t\tthis.init();\r\n\t\t}, 0);\r\n\t}\r\n\r\n\tinit(): void {\r\n\t\tthis.scope.$watch(\"daterange\", (daterange: IRecordDatarage) => {\r\n\t\t\tif(daterange === void 0 || daterange === null) { return; }\r\n\t\t\tif (daterange.callTimeStart < 0) {\r\n\t\t\t\tdaterange.callTimeStart = 23;\r\n\t\t\t} else if (daterange.callTimeStart > 23) {\r\n\t\t\t\tdaterange.callTimeStart = 0;\r\n\t\t\t} else if (daterange.callTimeEnd < 0) {\r\n\t\t\t\tdaterange.callTimeEnd = 23;\r\n\t\t\t} else if (daterange.callTimeEnd > 23) {\r\n\t\t\t\tdaterange.callTimeEnd = 0;\r\n\t\t\t} else {\r\n\t\t\t\tthis.scope.onChange(daterange);\r\n\t\t\t}\r\n\t\t}, true);\r\n\t}\r\n\r\n\r\n\tnumberToString(_number: any): any {\r\n\t\tconst number: number = angular.isString(_number) ? parseInt(_number, 10) : _number;\r\n\t\tconst result = number > 10 ? number.toFixed(0) : `0${number}`;\r\n\t\treturn result;\r\n\t}\r\n\r\n\tsetCustomeDatepickerLocaleOptions(): void {\r\n\t\tthis.scope.datepickerLocaleOptions = angular.copy(Instance.$mdDateLocale);\r\n this.scope.datepickerLocaleOptions.formatDate = (date) => {\r\n const m: any = moment(date);\r\n return m.isValid() ? m.format(\"MMMM YYYY\") : \"\";\r\n\t\t};\r\n\t\tthis.scope.datepickerLocaleOptions.parseDate = (dateString) => {\r\n\t\t\tconst correct: string = moment(dateString, \"MMMM YYYY\").format(\"MM-DD-YYYY\");\r\n\t\t\treturn new Date(correct);\r\n\t\t};\r\n\t\tthis.scope.datepickerLocaleOptions.isDateComplete = (dateString) => {\r\n\t\t\tconst m: any = moment(dateString, \"MMMM YYYY\");\r\n\t\t\treturn m.isValid();\r\n\t\t};\r\n\t}\r\n}\r\n\r\nexport class DatepickerDayDirective {\r\n static getInstance(\r\n\t\t$templateCache: ng.ITemplateCacheService, $stateParams: any, $q: ng.IQService, $timeout: ng.ITimeoutService,\r\n\t\t$mdUtil: any, $mdDateLocale: any, ToastService: ToastService,\r\n\t): any {\r\n return (Instance = new DatepickerDayDirective(\r\n $templateCache,\r\n\t\t\t$stateParams,\r\n $q,\r\n\t\t\t$timeout,\r\n\t\t\t$mdUtil,\r\n\t\t\t$mdDateLocale,\r\n\t\t\tToastService,\r\n ));\r\n }\r\n\r\n public restrict: string = \"E\";\r\n public scope = {\r\n\t\tdaterange: \"=?\",\r\n\t\tisLoading: \"=?\",\r\n\t\tonChange: \"=?\"\r\n\t};\r\n public template: any;\r\n\r\n constructor(\r\n\t\tpublic $templateCache: ng.ITemplateCacheService, public $stateParams: any, public $q: ng.IQService,\r\n\t\tpublic $timeout: ng.ITimeoutService, public $mdUtil: any, public $mdDateLocale: ng.material.IDateLocaleProvider,\r\n\t\tpublic ToastService: ToastService\r\n ) {\r\n this.template = $templateCache.get(\r\n \"shared/directives/datepicker-day.direcrive.html\"\r\n );\r\n }\r\n\r\n link(scope: any, element: any, attr: any, controller: DatepickerDayController): any {\r\n controller.link(scope, element, attr);\r\n }\r\n\r\n controller(): any {\r\n return new DatepickerDayController();\r\n }\r\n}\r\n","export function GkhTypedModelDirective() {\r\n return {\r\n require: ['ngModel','^gkhEditor',],\r\n link: function(scope, element, attrs, ctrls) {\r\n var ngModel = ctrls[0];\r\n var gkhEditor = ctrls[1];\r\n \r\n ngModel.$parsers[0] = function(value) {\r\n return gkhEditor.type.parser(value);\r\n }\r\n ngModel.$validators['check'] = function(value) {\r\n if (angular.isUndefined(value)) return false;\r\n return gkhEditor.type.check(value);\r\n }; \r\n ngModel.$formatters[0] = function(value) {\r\n return gkhEditor.type.formatter(value);\r\n };\r\n }\r\n };\r\n}","/// \r\n\r\nexport function newAppealEvent(): any {\r\n\treturn {\r\n\t\trestrict: \"E\",\r\n\t\tlink: (scope: any, element: ng.IAugmentedJQuery, attrs: ng.IAttributes) => {\r\n\t\t\telement.text(\"12312165\");\r\n\r\n\t\t\tlet setText: any = () => {\r\n\t\t\t\tif (scope.eventType && scope.event && scope.statuses) {\r\n\t\t\t\t\tlet text: string = scope.eventType.Name;\r\n\t\t\t\t\ttext = text.replace(\"{{ShortRepairRequestId}}\",\r\n\t\t\t\t\t`${scope.event.RepairRequest.ShortRepairRequestId}`\r\n\t\t\t\t\t);\r\n\t\t\t\t\ttext = text.replace(\"{{IdTo}}\", `${scope.statuses[scope.event.IdTo]}`);\r\n\t\t\t\t\ttext = text.replace(\"{{IdTo=IdFrom}}\", scope.event.IdTo !== scope.event.IdFrom ? \"изменён на\" : \"сохранён -\");\r\n\t\t\t\t\telement.html(text);\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\tscope.$watch(\"eventType\", (value) => {\r\n\t\t\t\tsetText();\r\n\t\t\t});\r\n\t\t\tscope.$watch(\"statuses\", (value) => {\r\n\t\t\t\tsetText();\r\n\t\t\t});\r\n\t\t\tscope.$watch(\"event\", (value) => {\r\n\t\t\t\tsetText();\r\n\t\t\t});\r\n\t\t},\r\n\t\tscope: {\r\n eventType: \"=?\",\r\n statuses: \"=?\",\r\n event: \"=?\",\r\n },\r\n\t\ttemplate: \"\",\r\n\t\treplace: true,\r\n\t};\r\n}","/// \r\n\r\nimport { IUserIdentity } from \"../services/user.service\";\r\n\r\nlet Instance: RequiredPermissionsDirective;\r\n\r\nexport class RequiredPermissionsController {\r\n link(scope: any, element: any, attr : ng.IAttributes): any {\r\n // tslint:disable-next-line:no-string-literal\r\n if (attr[\"requiredPermissions\"].length === 0) {\r\n return;\r\n }\r\n\r\n // tslint:disable-next-line:no-string-literal\r\n let permissions: any = attr[\"requiredPermissions\"].split(\"&\").map(i => i.trim());\r\n permissions.forEach(per => {\r\n if(!Instance.User.hasPermissions(per)) {\r\n element.hide();\r\n }\r\n });\r\n\r\n }\r\n}\r\nexport class RequiredPermissionsDirective {\r\n\tstatic getInstance(User: any): any {\r\n return Instance = new RequiredPermissionsDirective(User);\r\n\t}\r\n\r\n public restrict: string = \"A\";\r\n public scope = false;\r\n\r\n constructor(public User: any) { }\r\n\r\n\tlink(scope: any, element: any, attr: any, controller: RequiredPermissionsController): any {\r\n controller.link(scope, element, attr);\r\n\t}\r\n\r\n controller(): any {\r\n return new RequiredPermissionsController();\r\n }\r\n}\r\n","import 'authentication-npm-module';\r\n\r\nimport {ToastService} from './services/toast.service';\r\nimport {UserService} from './services/user.service';\r\nimport {LocalDatabaseService} from \"./services/localDatabase.service\";\r\nimport {FlowConfigurator} from \"./services/flowConfigurator.service\";\r\nimport {TimeoutListeners} from \"./services/TimeoutListener.service\";\r\nimport {ExcelExportService} from \"./services/excel-export.service\";\r\nimport {MissedRecordService} from \"./services/missed-record.service\";\r\n\r\nimport {customImg} from \"./directives/customImg.directive\";\r\nimport {newAppealEvent} from \"./directives/newAppealEvent.directive\";\r\nimport {GkhTypedModelDirective} from \"./directives/gkhTypedModel.directive\";\r\nimport {RequiredPermissionsDirective} from \"./directives/requiredPermissions.directive\";\r\nimport {DatepickerDayDirective} from \"./directives/datepicker-day.direcrive\";\r\nimport {AccountAutocompleteDirective} from \"./directives/account-autocomplete.directive\";\r\n\r\nimport \"./BackendUri.constant\";\r\nimport \"./HttpRequestedWith.interceptor\";\r\n\r\n\r\nangular.module('app.shared', [\"AuthenticationModule\"])\r\n .service('ToastService', ToastService)\r\n .service('UserService', UserService)\r\n .service('LocalDatabaseService', LocalDatabaseService)\r\n .service('FlowConfigurator', FlowConfigurator)\r\n .service('TimeoutListeners', TimeoutListeners)\r\n .service('ExcelExportService', ExcelExportService)\r\n .service('MissedRecordService', MissedRecordService)\r\n\r\n .directive('customImg', customImg)\r\n .directive('newAppealEvent', newAppealEvent)\r\n .directive('gkhTypedModel', GkhTypedModelDirective)\r\n .directive('requiredPermissions', RequiredPermissionsDirective.getInstance)\r\n .directive('datepickerDay', DatepickerDayDirective.getInstance)\r\n .directive('accountAutocomplete', AccountAutocompleteDirective.getInstance)\r\n","export class TimeoutListeners {\r\n\r\n private listeners: any;\r\n private forceRemoveList = {};\r\n\r\n constructor(private $timeout: ng.ITimeoutService) {\r\n this.listeners = {};\r\n }\r\n\r\n /**\r\n * Возвращает true если существует\r\n * @param name Имя для таймера\r\n */\r\n checkListener(name: string): boolean {\r\n return !!this.listeners[name];\r\n }\r\n\r\n addListener(name: string, listener: any, timeout: number): void {\r\n if (this.forceRemoveList[name]) { return; }\r\n this.removeListener(name);\r\n this.listeners[name] = this.$timeout(listener, timeout);\r\n }\r\n\r\n removeListener(name: string, force: boolean = false, forceTime: number = 200): void {\r\n if (this.checkListener(name)) {\r\n\t\t\tthis.$timeout.cancel(this.listeners[name]);\r\n\t\t\tthis.listeners[name] = null;\r\n }\r\n\r\n this.forceRemoveList[name] = force;\r\n if (force) {\r\n this.$timeout(() => {\r\n this.forceRemoveList[name] = !force;\r\n }, forceTime);\r\n }\r\n }\r\n}\r\n","/// \r\n\r\ndeclare var moment: any;\r\nmoment.locale(\"ru\");\r\n\r\nexport interface IExportProperties {\r\n name: string;\r\n title: string;\r\n width: number;\r\n widthInFile?: number;\r\n isVisible: boolean;\r\n type?: string;\r\n}\r\n\r\nexport class ExcelExportService {\r\n\r\n public export(items: any[], props: IExportProperties[], fileName: string = \"unname\"): void {\r\n const styleXLS: any = this.getCommoneStyleXLS();\r\n props.forEach(prop => {\r\n if( prop.isVisible ) {\r\n let column: any = {\r\n columnid: prop.name,\r\n title: prop.title,\r\n\t\t\t\t\twidth: prop.widthInFile,\r\n\t\t\t\t\tcell: {\r\n\t\t\t\t\t\tstyle: `\r\n\t\t\t\t\t\t\tmso-style-name: normal;\r\n\t\t\t\t\t\t\t${prop.type === \"general\" ? \"mso-number-format: general\" : \"\"};\r\n\t\t\t\t\t\t\ttext-align: left;\r\n\t\t\t\t\t\t\tvertical-align: top;\r\n\t\t\t\t\t\t\tfont-family: arial;\r\n\t\t\t\t\t\t\tfont-size: 7pt; color: black;\r\n\t\t\t\t\t\t\tborder: .5pt solid black;\r\n\t\t\t\t\t\t`\r\n\t\t\t\t\t}\r\n };\r\n styleXLS.columns.push(column);\r\n }\r\n });\r\n for(let row of items) {\r\n for(let prop of props) {\r\n row[prop.name] = row[prop.name] !== null ?\r\n (prop.type === \"date\" ? moment(row[prop.name]).format(\"DD.MM.YYYY\") : row[prop.name]):\r\n \"\";\r\n }\r\n }\r\n\t\tconst data = items.map(i => i ? i : \"\");\r\n alasql(\"SELECT * INTO XLS(\\\"\" + fileName + \".xls\\\",?) FROM ?\", [styleXLS, data]);\r\n }\r\n\r\n protected getCommoneStyleXLS(): any {\r\n return {\r\n sheetid: \"ЖКХ-Интеграция\",\r\n headers: true,\r\n column: {\r\n style: \"font-size: 8pt; border: .5pt solid black; padding: 8px; margin: 8px;\"\r\n },\r\n\t\t\tcolumns: [],\r\n\t\t\t// cell: {\r\n\t\t\t// \tstyle: (event) => {\r\n\t\t\t// \t\t// tslint:disable-next-line:max-line-length\r\n\t\t\t// \t\treturn \"mso-style-name:normal; mso-number-format:general; text-align: left;\" +\r\n\t\t\t// \t\t\"vertical-align: bottom; font-family:arial; font-size: 8pt; color:black;\" +\r\n\t\t\t// \t\t\"border: .5pt solid black\";\r\n\t\t\t// \t}\r\n\t\t\t// }\r\n };\r\n }\r\n}\r\n","import * as angular from 'angular';\r\n\r\nexport interface IFlowObject {\r\n\tflow?: IFlow;\r\n}\r\nexport interface IFlow {\r\n\tsupport: boolean;\r\n\tsupportDirectory: boolean;\r\n\topts: IFlowOptions;\r\n\tfiles: IFlowFile[];\r\n\r\n\tassignBrowse(domNodes: HTMLElement[], isDirectory: boolean, singleFile: boolean, attributes: Object): void;\r\n\tassignDrop(domNodes: HTMLElement[]): void;\r\n\tunAssignDrop(domNodes: HTMLElement[]): void;\r\n\ton(event: string, callback: Function): void;\r\n\toff(event?: string, callback?: Function): void;\r\n\tupload(): void;\r\n\tpause(): void;\r\n\tresume(): void;\r\n\tcancel(): void;\r\n\tprogress(): number;\r\n\tisUploading(): boolean;\r\n\taddFile(file: File, event?: any): void;\r\n\taddFiles(fileList: File[], event?: any): void;\r\n\tremoveFile(file: IFlowFile): void;\r\n\tgetFromUniqueIdentifier(uniqueIdentifier: string): IFlowFile;\r\n\tgetSize(): number;\r\n\tsizeUploaded(): number;\r\n\ttimeRemaining(): number;\r\n}\r\n\r\nexport interface IFlowOptions {\r\n\ttarget?: string;\r\n\tsingleFile?: boolean;\r\n\tchunkSize?: number;\r\n\tforceChunkSize?: boolean;\r\n\tsimultaneousUploads?: number;\r\n\tfileParameterName?: string;\r\n\tquery?: any;\r\n\theaders?: any;\r\n\twithCredentials?: boolean;\r\n\tmethod?: string;\r\n\ttestMethod?: string;\r\n\tuploadMethod?: string;\r\n\tallowDuplicateUploads?: boolean;\r\n\tprioritizeFirstAndLastChunk?: boolean;\r\n\ttestChunks?: boolean;\r\n\tpreprocess?: Function;\r\n\tinitFileFn?: Function;\r\n\tgenerateUniqueIdentifier?: Function;\r\n\tmaxChunkRetries?: number;\r\n\tchunkRetryInterval?: number;\r\n\tprogressCallbacksInterval?: number;\r\n\tspeedSmoothingFactor?: number;\r\n\tsuccessStatuses?: string[];\r\n\tpermanentErrors?: string[];\r\n}\r\n\r\nexport interface IFlowFile {\r\n\tflowObj: IFlow;\r\n\tfile: File;\r\n\tname: string;\r\n\trelativePath: string;\r\n\tsize: number;\r\n\tuniqueIdentifier: string;\r\n\taverageSpeed: number;\r\n\tcurrentSpeed: number;\r\n\tchunks: any[];\r\n\tpaused: boolean;\r\n\terror: boolean;\r\n\tx_isCompression: boolean;\r\n\r\n\tprogress(relative: boolean): number;\r\n\tpause(): void;\r\n\tresume(): void;\r\n\tcancel(): void;\r\n\tretry(): void;\r\n\tbootstrap(): void;\r\n\tisUploading(): boolean;\r\n\tisComplete(): boolean;\r\n\tsizeUploaded(): number;\r\n\ttimeRemaining(): number;\r\n\tgetExtension(): string;\r\n\tgetType(): string;\r\n}\r\n\r\n\r\nlet flowOptions = {\r\n\tchunkSize: 1024 * 512,\r\n\tforceChunkSize: true,\r\n}\r\n\r\ndeclare var imageCompression: any;\r\n\r\n\r\nexport class FlowConfigurator {\r\n\tconstructor(private BackendUri, private $cookies, private $stateParams, private ResourceSource, private User) {}\r\n\r\n\tgetConfig(target: string, options: IFlowOptions = {}) {\r\n\t\tlet resourceName = this.ResourceSource.hasHost(this.BackendUri + target);\r\n\t\toptions = angular.extend({}, flowOptions, options);\r\n\r\n\t\t// options.initFileFn = (data: IFlowFile) => {\r\n\t\t// \tif (['png', 'jpeg'].indexOf(data.getType()) && !data.x_isCompression) {\r\n\t\t// \t\ttry {\r\n\t\t// \t\t\tconst needUpload = data.flowObj.;\r\n\t\t// \t\t\tif (needUpload) { data.cancel(); }\r\n\t\t// \t\t\tconsole.log('needUpload: ', needUpload);\r\n\t\t// \t\t\tconst options = { maxSizeMB: 1, maxWidthOrHeight: 1920, useWebWorker: true };\r\n\t\t// \t\t\tconst imageFile = data.file;\r\n\t\t// \t\t\treturn imageCompression(imageFile, options).then((compressedFile: File) => {\r\n\t\t// \t\t\t\tdata.file = compressedFile;\r\n\t\t// \t\t\t\tdata.size = compressedFile.size;\r\n\t\t// \t\t\t\tdata.x_isCompression = true;\r\n\t\t// \t\t\t\tdata.bootstrap();\r\n\t\t// \t\t\t\tif (needUpload) { data.flowObj.upload(); }\r\n\t\t// \t\t\t\tconsole.log('isCompression');\r\n\t\t// \t\t\t})\r\n\t\t// \t\t} catch (error) {\r\n\t\t// \t\t\tconsole.warn(error)\r\n\t\t// \t\t}\r\n\t\t// \t}\r\n\t\t// }\r\n\r\n\t\toptions.generateUniqueIdentifier = () => this.guid();\r\n\r\n\r\n\t\tlet baseConfig: IFlowOptions = {\r\n\t\t\ttarget: this.BackendUri + target,\r\n\t\t\twithCredentials: true\r\n\t\t};\r\n\r\n\t\tbaseConfig.headers = { 'X-OGRN': this.$stateParams.ogrn };\r\n\t\tvar AccessKey = this.User.getAccessKey(resourceName);\r\n\t\tif(AccessKey != null) {\r\n\t\t\tbaseConfig.headers['Authorization'] = `Bearer ${AccessKey}`;\r\n\t\t}\r\n\r\n\t\treturn angular.extend({}, options, baseConfig);\r\n\t}\r\n\r\n\tprivate guid() {\r\n\t\tfunction s4() {\r\n\t\t return Math.floor((1 + Math.random()) * 0x10000)\r\n\t\t\t.toString(16)\r\n\t\t\t.substring(1);\r\n\t\t}\r\n\t\treturn s4() + s4() + '-' + s4() + '-' + s4() + '-' +\r\n\t\t s4() + '-' + s4() + s4() + s4();\r\n\t }\r\n}\r\n","/// \r\n\r\nexport class LocalDatabaseService {\r\n public _lastQuery: string;\r\n \r\n constructor(protected $q: ng.IQService) {\r\n }\r\n \r\n get lastQuery():string {\r\n return this._lastQuery\r\n }\r\n\r\n query(query: string, data = [], ignore: boolean = false) {\r\n if (!angular.isArray(data)) {\r\n data = [data];\r\n }\r\n return this._query(query, data, ignore);\r\n }\r\n\r\n delete(table: string, where: string = null, data = []) {\r\n \r\n if (!angular.isArray(data)) {\r\n data = [data];\r\n }\r\n let whereQuery;\r\n if(!where){\r\n whereQuery= '';\r\n } else{\r\n whereQuery= `WHERE ${where}`; \r\n }\r\n let query = `DELETE FROM [${table}] ${whereQuery}`;\r\n \r\n return this._query(query, data)\r\n }\r\n\r\n insert(table: string, data:any, ignore = false) {\r\n if (!angular.isArray(data))\r\n data = [data];\r\n let vals = Array(data.length).fill('?').join(',');\r\n let query = `INSERT INTO ${table} VALUES ${vals}`\r\n \r\n return this.$q((resolve, reject) => {\r\n this._query(query, data)\r\n .then(answer => resolve(answer) ) \r\n .catch(error => ignore ? resolve(error) : reject(error) )\r\n })\r\n }\r\n\r\n update(table: boolean, data: any[], where: boolean) {\r\n let whereQuery;\r\n if(!where){\r\n whereQuery= '';\r\n } else{\r\n whereQuery= `WHERE ${where}`; \r\n }\r\n let updateColumns = Object.getOwnPropertyNames(data).map((column) => column + \" = ?\").join(\", \");\r\n let values = [];\r\n Object.getOwnPropertyNames(data).forEach((column) => {\r\n values.push(data[column])\r\n })\r\n let query = `UPDATE [${table}] SET ${updateColumns} ${whereQuery}`;\r\n \r\n return this._query(query, values);\r\n }\r\n\r\n use(database: string, ignore = true) {\r\n return this._query(`CREATE localStorage DATABASE IF NOT EXISTS [${database}]`, [], ignore)\r\n .then(() => this._query(`ATTACH localStorage DATABASE [${database}] AS [${database}]`, [], ignore))\r\n .then(() => this._query(`USE [${database}]`, [], ignore))\r\n } \r\n\r\n commit() {\r\n return this._query('COMMIT');\r\n }\r\n\r\n createTable(table: string, definition:any = [], ignoreErrors = false) {\r\n definition = definition.length > 0 ? '(' + definition.join(', ') + ')' : '';\r\n let query = `CREATE TABLE IF NOT EXISTS [${table}] ${definition}`\r\n return this._query(query, [], ignoreErrors);\r\n }\r\n\r\n dropTable(table: string, data = [], ignoreErrors = false) {\r\n return this._query(`DROP TABLE [${table}]`, data, ignoreErrors);\r\n }\r\n\r\n _query(query: string, data = [], ignoreErrors = false): ng.IPromise {\r\n this._lastQuery = query;\r\n return this.$q((resolve, reject) => {\r\n try {\r\n let result = alasql(query, data);\r\n resolve(result);\r\n } catch (err) {\r\n ignoreErrors ? resolve() : reject(err);\r\n }\r\n })\r\n }\r\n}","/// \r\nimport { ToastService } from \"./toast.service\";\r\n\r\nexport interface IMissedRecord {\r\n RecordId: string;\r\n Nubmer: string;\r\n CallTime: string;\r\n CallTimeDate: Date;\r\n CallDuration: number;\r\n Line: string;\r\n Direction: string;\r\n AppealId?: string;\r\n Path: string;\r\n FileName: string;\r\n OGRN: string;\r\n Extension: string;\r\n IsProcessed: boolean;\r\n ProcessedIn?: string;\r\n ProcessedInDate?: Date;\r\n}\r\n\r\nexport class MissedRecordService {\r\n protected _list: IMissedRecord[];\r\n\tprotected listener: ng.IPromise;\r\n\tprotected isVisible: boolean;\r\n\r\n constructor(\r\n protected $rootScope: ng.IRootScopeService,\r\n protected $http: ng.IHttpService,\r\n protected $q: ng.IQService,\r\n protected $timeout: ng.ITimeoutService,\r\n protected ToastService: ToastService,\r\n protected BackendUri: string\r\n ) {\r\n\t\tthis.getList();\r\n\t\tthis.isVisible = true;\r\n\t\tdocument.addEventListener('visibilitychange', () => {\r\n\t\t\tif (document.visibilityState === 'visible') {\r\n\t\t\t\tthis.isVisible = true;\r\n\t\t\t} else {\r\n\t\t\t\tthis.isVisible = false;\r\n\t\t\t}\r\n\t\t})\r\n }\r\n\r\n public deleteRecord(recordId: string): any {\r\n return this.$http.patch(`${this.BackendUri}/appeal/record/missed/${recordId}`, {})\r\n .then(response => {\r\n const records: IMissedRecord[] = this._list.filter(rec => rec.RecordId === recordId);\r\n if (records && records.length === 1) {\r\n const index: number = this._list.indexOf(records[0]);\r\n this._list.splice(index, 1);\r\n }\r\n this.ToastService.show(\"Запись удалена из списка пропущенных\", this.ToastService.status.success);\r\n this.$rootScope.$emit(\"MissedRecordService:Update\", [], [], this._list.length);\r\n })\r\n .catch(response => this.ToastService.handle(response));\r\n }\r\n\r\n public getList(): ng.IPromise {\r\n if (!this._list) {\r\n return this.Get(false).then(() => {\r\n this.Listening();\r\n return this._list;\r\n }).catch(response => { return []; });\r\n } else {\r\n return this.$q.resolve(this._list);\r\n }\r\n }\r\n\tpublic getPageList(limit: number, page: number, orderBy = \"CallTimeDate\")\r\n\t: ng.IPromise<{count: number, page: number, data: IMissedRecord[]}> {\r\n return this.getList().then(list => {\r\n\t\t\tlet order = {\r\n\t\t\t\tisReversed: orderBy.length > 0 && orderBy[0] === \"-\" ? -1 : 1,\r\n\t\t\t\tprop: orderBy.length > 0 && orderBy[0] === \"-\" ? orderBy.substr(1, orderBy.length) : orderBy\r\n\t\t\t};\r\n\t\t\tlist.sort((a, b) => {\r\n\t\t\t\treturn a[order.prop] > b[order.prop] ? order.isReversed : a[order.prop] < b[order.prop] ? -order.isReversed : 0;\r\n\t\t\t});\r\n const pageCount: number = Math.ceil(list.length / limit);\r\n if (page < 1) { page = 1; }\r\n if (page > pageCount) { page = pageCount; }\r\n return {\r\n count: list.length,\r\n page: page,\r\n data: angular.copy(list.slice(limit * (page - 1), limit * page))\r\n };\r\n });\r\n }\r\n\r\n protected Listening(): void {\r\n if (this.listener) {\r\n this.$timeout.cancel(this.listener);\r\n }\r\n this.listener = this.$timeout(() => {\r\n\t\t\tif (this.isVisible) {\r\n\t\t\t\tthis.Get().finally(() => this.Listening());\r\n\t\t\t} else {\r\n\t\t\t\tthis.Listening();\r\n\t\t\t}\r\n }, this.isVisible ? 5000 : 1000);\r\n }\r\n\r\n protected Get(withCheck: boolean = true): ng.IPromise {\r\n return this.$http.get(`${this.BackendUri}/appeal/record/missed`)\r\n .then(({ data }) => {\r\n\t\t\t\tdata.forEach(item => {\r\n\t\t\t\t\titem.CallTimeDate = new Date(item.CallTime);\r\n\t\t\t\t});\r\n if (withCheck) {\r\n this._list = this.Merge(data);\r\n } else {\r\n this._list = data;\r\n }\r\n return this._list;\r\n });\r\n }\r\n\r\n protected Merge(list: IMissedRecord[]): IMissedRecord[] {\r\n let forDelete: IMissedRecord[] = this.DeleteItems(list);\r\n let newRecords: IMissedRecord[] = this.GetNew(list);\r\n if(newRecords.length > 0 || forDelete.length > 0) {\r\n this._list = this._list.concat(newRecords);\r\n this.$rootScope.$emit(\"MissedRecordService:Update\", newRecords, forDelete, this._list.length);\r\n this.ToastService.show(\"Списко пропущенных звонков обновлён\", this.ToastService.status.success);\r\n }\r\n return this._list;\r\n }\r\n\r\n protected DeleteItems(list: IMissedRecord[]): IMissedRecord[] {\r\n let forDelete: IMissedRecord[] = this._list.filter(_rec => !list.some(rec => rec.RecordId === _rec.RecordId));\r\n let returnData: IMissedRecord[] = angular.copy(forDelete);\r\n for (let record of forDelete) {\r\n const index: number = this._list.indexOf(record);\r\n this._list.splice(index, 1);\r\n }\r\n return returnData;\r\n }\r\n\r\n protected GetNew(list: IMissedRecord[]): IMissedRecord[] {\r\n return list.filter(_rec => !this._list.some(rec => rec.RecordId === _rec.RecordId));\r\n\t}\r\n\r\n\r\n}\r\n","/// \r\nexport class ToastService {\r\n status = {\r\n \"alert\": \"alert\",\r\n \"warning\": \"warning\",\r\n \"success\": \"success\",\r\n };\r\n\r\n constructor(protected $mdToast: any, protected WithConsole: any) {\r\n this.$mdToast = $mdToast;\r\n }\r\n\r\n show(content: string, status: string = \"alert\", noClose: boolean = false): ng.IPromise {\r\n let toast: any = this.$mdToast.simple()\r\n .content(content)\r\n .toastClass(\"md-toast--\" + status)\r\n .position(\"top right\");\r\n if(noClose) {\r\n toast.hideDelay(10000)\r\n .action(\"X\");\r\n } else {\r\n toast.hideDelay(3000);\r\n }\r\n return this.$mdToast.show(toast);\r\n }\r\n\r\n handle(error: any): void {\r\n if (this.WithConsole) {\r\n console.warn(error);\r\n }\r\n if (error && error.Message) {\r\n if (error.Message === \"type\") {\r\n this.show(\"Формат данных не поддерживается\", this.status.warning);\r\n } else {\r\n this.show(error.Message, this.status.warning);\r\n }\r\n } else {\r\n this.show(\"Ошибка\", this.status.warning);\r\n }\r\n }\r\n}\r\n","/// \r\n\r\nexport interface IUserIdentity {\r\n DisplayName: string;\r\n Role: string;\r\n Permissions: string[];\r\n Organizations?: IOrganization[];\r\n}\r\n\r\nexport interface IOrganization {\r\n OGRN: string;\r\n CompanyName: string;\r\n}\r\n\r\nexport class UserService {\r\n public display_name: string;\r\n public role: string;\r\n constructor(public $http: ng.IHttpService, public $state: any, public BackendUri: any) {\r\n }\r\n\r\n Init(): ng.IPromise {\r\n return this.$http.get(this.BackendUri + \"/user\")\r\n .then((response) => {\r\n this.display_name = response.data.display_name;\r\n this.role = response.data.role;\r\n });\r\n }\r\n\r\n Logout(): void {\r\n window.location.replace(this.BackendUri + \"/user/logout\");\r\n // return this.$http.get(this.BackendUri + '/user/logout').then(() => { this.$state.go('auth') });\r\n }\r\n}","import { ChargesService } from \"./charges.service\";\r\n\r\ndeclare var moment: any;\r\nmoment.locale(\"ru\");\r\n\r\nlet Instance: ChargesTableDirective;\r\n\r\nexport interface IChargesTableScope extends ng.IScope {\r\n query: any;\r\n count: number;\r\n data: any[];\r\n\r\n load(): void;\r\n label: any;\r\n menu: any;\r\n isStarted: boolean;\r\n}\r\n\r\nexport class ChargesTableController {\r\n scope: IChargesTableScope;\r\n element: ng.IAugmentedJQuery;\r\n input: any;\r\n\r\n link(scope: any, element: ng.IAugmentedJQuery, attr: ng.IAttributes): any {\r\n this.scope = scope;\r\n this.element = element;\r\n this.scope.isStarted = false;\r\n this.scope.AddressEditStateChange = (index) => this.AddressEditStateChange(index);\r\n this.scope.OnBlurAddressEdit = (index) => this.OnBlurAddressEdit(index);\r\n\r\n this.scope.months = [\r\n \"Январь\", \"Февраль\", \"Март\",\r\n \"Апрель\", \"Май\", \"Июнь\",\r\n \"Июль\", \"Август\", \"Сентябрь\",\r\n \"Октябрь\", \"Ноябрь\", \"Декабрь\"\r\n ];\r\n\r\n this.scope.query = {\r\n limit: 25,\r\n page: 1,\r\n offset: 0,\r\n term: \"\",\r\n };\r\n\r\n this.scope.onEnterLoad = (keyEvent, key) => {\r\n if (keyEvent.which === 13) {\r\n this.AddressEditStateChange(key);\r\n }\r\n\t\t};\r\n\r\n\t\tthis.scope.delete = () => {\r\n\t\t\tconst confirm = Instance.$mdDialog.confirm()\r\n .title(\"Очистить список ЛС\")\r\n .textContent(\"Вы точно хотите, чтобы реестр ЛС был полностью очищен?\")\r\n .ariaLabel(\"Подтверждение\")\r\n .ok(\"Да, очистить\")\r\n\t\t\t\t.cancel(\"Отмена\");\r\n\t\t\tInstance.$mdDialog.show(confirm)\r\n\t\t\t\t.then(() => {\r\n\t\t\t\t\tInstance.ChargesService.DeleteAccounts();\r\n\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\tInstance.$state.reload();\r\n\t\t\t\t\t}, 100);\r\n\t\t\t\t})\r\n\t\t\t\t.catch((err) => { });\r\n\t\t};\r\n\r\n this.scope.label = {\r\n of: \"из\",\r\n page: \"Страница\",\r\n rowsPerPage: \"Строк на странице\"\r\n };\r\n this.scope.menu = {\r\n hidden: false,\r\n hover: true,\r\n isOpen: false,\r\n selectedDirection: \"up\"\r\n };\r\n\r\n this.scope.openMenu = ($mdMenu, ev) => {\r\n $mdMenu.open(ev);\r\n };\r\n\r\n this.scope.load = () => this.load();\r\n this.scope.isStarted = true;\r\n this.load();\r\n\r\n Instance.$rootScope.$on(\"chargesData:Changed\", (event) => {\r\n this.load();\r\n });\r\n }\r\n\r\n AddressEditStateChange(_index: number): void {\r\n this.scope.data.forEach((val, index) => {\r\n if (index === _index) {\r\n if (val.address_edit) {\r\n Instance.ChargesService.UpdateChargeRegistryEntry(val.ChargeRegistryEntryId, {\r\n Address: val.Address\r\n }).finally(() => {\r\n val.address_edit = false;\r\n });\r\n } else {\r\n val.address_edit = true;\r\n }\r\n } else {\r\n if (val.address_edit) {\r\n Instance.ChargesService.UpdateChargeRegistryEntry(val.ChargeRegistryEntryId, {\r\n Address: val.Address\r\n }).finally(() => {\r\n val.address_edit = false;\r\n });\r\n }\r\n }\r\n });\r\n }\r\n OnBlurAddressEdit(_index: number): void {\r\n this.scope.data.forEach((val, index) => {\r\n if (index === _index) {\r\n val.address_load = true;\r\n Instance.ChargesService.UpdateChargeRegistryEntry(val.ChargeRegistryEntryId, {\r\n Address: val.Address\r\n }).finally(() => val.address_load = false);\r\n }\r\n });\r\n }\r\n\r\n load(): void {\r\n if (this.scope.isStarted) {\r\n this.scope.$parent.isLoading = true;\r\n const params: any = JSON.parse(JSON.stringify(this.scope.query));\r\n params.offset = (params.page - 1) * params.limit;\r\n this.scope.promise = Instance.ChargesService.GetChargesList(params)\r\n .then(data => {\r\n this.scope.count = data.Count;\r\n this.scope.data = data.Data.map(acc => {\r\n acc.address_edit = false;\r\n return acc;\r\n });\r\n })\r\n .catch(err => {\r\n console.warn(err);\r\n this.scope.count = 3;\r\n this.scope.data = [\r\n {\r\n AccountNumber: 1,\r\n Address: \"Тестовый Адрес\",\r\n ChargeValue: 1,\r\n Month: 5,\r\n Year: 1995,\r\n },\r\n {\r\n AccountNumber: 1,\r\n Address: \"Тестовый Адрес\",\r\n ChargeValue: 1,\r\n Month: 5,\r\n Year: 1995,\r\n },\r\n {\r\n AccountNumber: 1,\r\n Address: \"Тестовый Адрес\",\r\n ChargeValue: 1,\r\n Month: 5,\r\n Year: 1995,\r\n },\r\n ];\r\n })\r\n .finally(() => this.scope.$parent.isLoading = false);\r\n }\r\n }\r\n}\r\n\r\nexport class ChargesTableDirective {\r\n static getInstance($templateCache: ng.ITemplateCacheService, $state: any, $stateParams: any, $http: ng.IHttpService,\r\n BackendUri: string, $mdDialog: any, $location: any, $q: any, ChargesService: ChargesService, $timeout: any,\r\n $rootScope: any\r\n ): any {\r\n return (Instance = new ChargesTableDirective(\r\n\t\t\t$templateCache,\r\n\t\t\t$state,\r\n $stateParams,\r\n $http,\r\n BackendUri,\r\n $mdDialog,\r\n $location,\r\n $q,\r\n ChargesService,\r\n $timeout,\r\n $rootScope\r\n ));\r\n }\r\n\r\n public restrict: string = \"E\";\r\n public scope = {\r\n recipients: \"=?\",\r\n onChange: \"=?\",\r\n unchangeable: \"=?\"\r\n };\r\n public template: any;\r\n\r\n\tconstructor(public $templateCache: ng.ITemplateCacheService, public $state: any, public $stateParams: any,\r\n\t\tpublic $http: ng.IHttpService, public BackendUri: string, public $mdDialog: ng.material.IDialogService, public $location: any,\r\n\t\tpublic $q: ng.IQService, public ChargesService: ChargesService, public $timeout: ng.ITimeoutService,\r\n\t\tpublic $rootScope: ng.IRootScopeService\r\n ) {\r\n this.template = $templateCache.get(\r\n \"site/detail/charges/charges-table.directive.html\"\r\n );\r\n }\r\n\r\n link(scope: any, element: any, attr: any, controller: ChargesTableController): any {\r\n controller.link(scope, element, attr);\r\n }\r\n\r\n controller(): any {\r\n return new ChargesTableController();\r\n }\r\n}\r\n","/// \r\nimport { ToastService } from \"../../../shared/services/toast.service.js\";\r\nimport { IChargesAccount, ChargesService, IChargesServiceFileUploadResponse } from \"./charges.service.js\";\r\n\r\ndeclare var moment: any;\r\nmoment.locale(\"ru\");\r\n\r\nexport interface IChargesScope extends ng.IScope {\r\n any: any;\r\n accounts: IChargesAccount[];\r\n examples: any[];\r\n period: Date;\r\n isUploaded: boolean;\r\n isUploadedStatus: \"success\" | \"error\";\r\n\r\n datepickerLocaleOptions: ng.material.IDateLocaleProvider;\r\n openMenu($mdMenu: any, ev: any): any;\r\n\r\n showDialog(event: any): void;\r\n showExamples(event: any): void;\r\n addAccount(): void;\r\n removeAccount(index: number): void;\r\n loadAccounts(): void;\r\n}\r\n\r\nexport class ChargesController {\r\n\tscope: IChargesScope;\r\n\r\n constructor($scope: any, $stateParams: any, $mdDateLocale: ng.material.IDateLocaleProvider,\r\n private $mdDialog: ng.material.IDialogService, private $templateCache: any, private ToastService: ToastService,\r\n private ChargesService: ChargesService, private $timeout: ng.ITimeoutService\r\n ) {\r\n\t\tthis.scope = $scope;\r\n this.scope.OGRN = $stateParams.ogrn;\r\n this.scope.accounts = [];\r\n this.scope.examples = [];\r\n this.scope.isUploaded = false;\r\n this.scope.isLoading = true;\r\n this.scope.period = new Date();\r\n\r\n this.scope.showDialog = (event) => this.showDialog(event);\r\n this.scope.showExamples = (event) => this.showExamples(event);\r\n this.scope.addAccount = () => this.scope.accounts.push({number: \"\", value: 0});\r\n this.scope.removeAccount = (index) => this.scope.accounts.splice(index, 1);\r\n this.scope.loadAccounts = () => this.loadAccounts();\r\n this.scope.openMenu = ($mdMenu, ev) => $mdMenu.open(ev);\r\n\r\n this.scope.selectedItemChange = (val, account) => this.selectedItemChange(val, account);\r\n this.scope.newAccountNumber = (val, account) => this.newAccountNumber(val, account);\r\n this.scope.querySearch = (val) => this.querySearch(val);\r\n this.scope.refresh = () => this.refresh();\r\n\r\n\r\n this.setCustomeDatepickerLocaleOptions($mdDateLocale);\r\n\t}\r\n\r\n\tsetCustomeDatepickerLocaleOptions($mdDateLocale: ng.material.IDateLocaleProvider): void {\r\n\t\tthis.scope.datepickerLocaleOptions = angular.copy($mdDateLocale);\r\n this.scope.datepickerLocaleOptions.formatDate = (date) => {\r\n const m: any = moment(date);\r\n return m.isValid() ? m.format(\"MMMM YYYY\") : \"\";\r\n\t\t};\r\n\t\tthis.scope.datepickerLocaleOptions.parseDate = (dateString) => {\r\n\t\t\tconst correct = moment(dateString, \"MMMM YYYY\").format(\"MM-DD-YYYY\");\r\n\t\t\treturn new Date(correct);\r\n\t\t};\r\n\t\tthis.scope.datepickerLocaleOptions.isDateComplete = (dateString) => {\r\n\t\t\tconst m: any = moment(dateString, \"MMMM YYYY\");\r\n\t\t\treturn m.isValid();\r\n\t\t};\r\n\t}\r\n\r\n\trefresh(): void {\r\n\t\tthis.scope.uploadResponse = null;\r\n\t\tthis.scope.accounts = [];\r\n\t\tthis.scope.period = new Date();\r\n\t\tthis.scope.isUploaded = false;\r\n\t\tthis.scope.isUploadedStatus = \"success\";\r\n\t}\r\n\r\n selectedItemChange(item: any, account: any): void {\r\n if (item !== void 0) {\r\n account.number = item.AccountNumber;\r\n account.address = item.Address;\r\n } else {\r\n account.number = undefined;\r\n account.address = undefined;\r\n }\r\n }\r\n newAccountNumber(AccountNumber: string, account: any): void {\r\n account.number = AccountNumber;\r\n account.address = AccountNumber;\r\n account.obj = {\r\n \"ChargeRegistryEntryId\": null,\r\n \"ChargeRegistryId\": null,\r\n \"AccountNumber\": AccountNumber,\r\n \"ChargeValue\": null,\r\n \"Address\": AccountNumber,\r\n \"OGRN\": this.scope.OGRN,\r\n \"Month\": new Date().getMonth() + 1,\r\n \"Year\": new Date().getFullYear(),\r\n isNew: true\r\n };\r\n }\r\n querySearch(term: string): any {\r\n return this.ChargesService.GetChargesList({\r\n limit: 10,\r\n offset: 0,\r\n term: term\r\n }).then(response => response.Data);\r\n }\r\n\r\n loadAccounts(): void {\r\n let isError: boolean = false;\r\n this.scope.accounts.forEach(acc => {\r\n const count: number = this.scope.accounts.filter(_acc => _acc.number === acc.number).length;\r\n if (acc.number === \"\" || count > 1) {\r\n acc.isError = true;\r\n isError = true;\r\n } else {\r\n acc.isError = false;\r\n }\r\n });\r\n if (isError) {\r\n this.ToastService.show(\"Для одной из записе л/с не заполнен или дублируется\");\r\n } else {\r\n this.ChargesService.UploadAccounts(this.scope.period.getMonth() + 1, this.scope.period.getFullYear(), this.scope.accounts)\r\n .then(() => {\r\n this.scope.isUploaded = true;\r\n })\r\n .catch(err => {\r\n console.warn(err);\r\n if (err.Message) {\r\n this.ToastService.show(err.Message);\r\n } else {\r\n this.ToastService.show(\"Произошла ошибка\");\r\n }\r\n });\r\n }\r\n }\r\n\r\n showDialog($event: any): void {\r\n this.$mdDialog.show({\r\n controller: \"ChargesFromFileDialogController\",\r\n template: this.$templateCache.get(\r\n \"site/detail/charges/dialogs/chargesFromFile.dialog.html\"\r\n ),\r\n parent: angular.element(document.body),\r\n targetEvent: $event,\r\n clickOutsideToClose: true,\r\n fullscreen: true\r\n })\r\n .then(({flag, data}) => {\r\n\t\t\t\t\tconst r: IChargesServiceFileUploadResponse = data;\r\n\t\t\t\t\tthis.scope.uploadResponse = r;\r\n\t\t\t\t\tthis.scope.uploadResponse.list = [];\r\n\t\t\t\t\tif (r.LineToException && Object.keys(r.LineToException).length > 0) {\r\n\t\t\t\t\t\tconsole.warn(r.LineToException);\r\n\t\t\t\t\t\tthis.scope.uploadResponse.list = Object.keys(r.LineToException).map(str => str.split(\";\")[0]);\r\n\t\t\t\t\t\tthis.ToastService.show(\"Одна или несколько строк не соответствуют шаблону\", this.ToastService.status.alert);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.scope.isUploaded = true;\r\n\t\t\t\t\tthis.scope.isUploadedStatus = flag ? \"success\" : \"error\";\r\n\t\t\t\t});\r\n }\r\n\r\n showExamples($event: any): void {\r\n this.$mdDialog.show({\r\n controller: \"ChargesExamplesDialogController\",\r\n template: this.$templateCache.get(\r\n \"site/detail/charges/dialogs/chargesExamples.dialog.html\"\r\n ),\r\n parent: angular.element(document.body),\r\n targetEvent: $event,\r\n clickOutsideToClose: true,\r\n fullscreen: true\r\n });\r\n }\r\n}\r\n","/// \r\n\r\ndeclare var moment: any;\r\nmoment.locale(\"ru\");\r\n\r\n\r\nexport interface IChargesAccount {\r\n number: string;\r\n value: number;\r\n address?: string;\r\n isError?: boolean;\r\n}\r\n\r\nexport interface ITypeInfo {\r\n key: string;\r\n description: string;\r\n\tneedDate: boolean;\r\n\tindex: number;\r\n}\r\n\r\nexport interface IUpdateChargeRegistryEntryDTO {\r\n Address: string; // (string, optional)\r\n}\r\n\r\nexport const ChargesAccountTypeInfo: ITypeInfo[] = [\r\n\t{ description: \"Базовый Excel\", needDate: true, key: \"BasicXls\", index: 0 },\r\n\t{ description: \"Сбербанк\", needDate: true, key: \"Sberbank\", index: 1 }\r\n];\r\n\r\nexport interface IChargesServiceFileUploadResponse {\r\n\tSuccessedEntriesCount: number;\r\n\tFailedEntriesCount: number;\r\n\tLineToException: { [key: string]: IChargesServiceFileUploadResponseException };\r\n}\r\nexport interface IChargesServiceFileUploadResponseException {\r\n\tClassName: string;\r\n\tMessage: string;\r\n\tData: any;\r\n\tInnerException: any;\r\n\tHelpURL: string;\r\n\tStackTraceString: string;\r\n\tRemoteStackTraceString: string;\r\n\tRemoteStackIndex: number;\r\n\tExceptionMethod: string;\r\n\tHResult: number;\r\n\tSource: string;\r\n\tWatsonBuckets: any;\r\n}\r\n\r\nexport class ChargesService {\r\n constructor(\r\n private $http: ng.IHttpService,\r\n private $q: ng.IQService,\r\n private BackendUri: string,\r\n private $rootScope: ng.IRootScopeService\r\n ) {}\r\n\r\n\tUploadAccounts(Month: number, Year: number, Accounts: IChargesAccount[]): ng.IPromise {\r\n const Entries: any[] = Accounts.map(acc => {\r\n return {\r\n AccountNumber: acc.number,\r\n EntryValue: acc.value,\r\n Address: acc.address\r\n };\r\n });\r\n return this.$http.post(`${this.BackendUri}/registry/upload-registry-entries`, {Month, Year, Entries})\r\n .then(({data}) => {\r\n this.$rootScope.$emit(\"chargesData:Changed\");\r\n return data;\r\n });\r\n\t}\r\n\r\n\tDeleteAccounts() {\r\n return this.$http.delete(`${this.BackendUri}/registry`);\r\n }\r\n\r\n GetChargesList(_params: any): ng.IPromise {\r\n const params: any = angular.extend({}, {\r\n limit: 25,\r\n offset: 0\r\n }, angular.copy(_params));\r\n\r\n delete params.page;\r\n if (!params.term) {\r\n delete params.term;\r\n }\r\n // return this.$q.reject();\r\n\r\n return this.$http.get(`${this.BackendUri}/registry`, { params: params })\r\n .then(response => {\r\n return response.data as any;\r\n });\r\n }\r\n\r\n UpdateChargeRegistryEntry(entryId: number, dto: IUpdateChargeRegistryEntryDTO): ng.IPromise {\r\n return this.$http.patch(`${this.BackendUri}/registry/${entryId}`, dto);\r\n }\r\n}\r\n","/// \r\n\r\nimport { OnCheckIsFrame } from \"../../../../shared/abstract-classes/OnCheckIsFrame\";\r\n\r\nexport class ChargesExamplesDialogController extends OnCheckIsFrame {\r\n constructor($scope: any, $mdDialog: ng.material.IDialogService,\r\n $window: any, $stateParams: any\r\n ) {\r\n super($window, $stateParams, $scope);\r\n $scope.cancel = () => $mdDialog.cancel();\r\n }\r\n}","/// \r\n\r\nimport { ChargesAccountTypeInfo, ITypeInfo, IChargesServiceFileUploadResponse } from \"../charges.service\";\r\nimport { OnCheckIsFrame } from \"../../../../shared/abstract-classes/OnCheckIsFrame\";\r\n\r\ndeclare var moment: any;\r\nmoment.locale(\"ru\");\r\n\r\ninterface IDialogScope extends ng.IScope {\r\n uploader: any;\r\n period: Date;\r\n\r\n\tSelectedTypeInfo: ITypeInfo;\r\n\tSelectedTypeKey: string;\r\n\tChargesAccountTypeInfo: ITypeInfo[];\r\n\r\n cancel(): void;\r\n uploadSuccess(msg: any): void;\r\n uploadError(msg: any): void;\r\n upload(): void;\r\n getFlowConfig(target: any): void;\r\n}\r\n\r\nexport class ChargesFromFileDialogController extends OnCheckIsFrame {\r\n protected scope: IDialogScope;\r\n\r\n constructor($scope: any, $stateParams: any, $mdDialog: ng.material.IDialogService,\r\n $mdDateLocale: any, $window: any, FlowConfigurator: any, private ToastService: any,\r\n private $rootScope: ng.IRootScopeService\r\n ) {\r\n super($window, $stateParams, $scope);\r\n this.scope = $scope;\r\n this.scope.uploader = {};\r\n\t\tthis.scope.period = new Date();\r\n\r\n\t\tthis.scope.ChargesAccountTypeInfo = ChargesAccountTypeInfo;\r\n\t\tthis.scope.$watch(\"SelectedTypeKey\", (key) => {\r\n\t\t\tif (key !== void 0) {\r\n\t\t\t\tconst list: ITypeInfo[] = ChargesAccountTypeInfo.filter(i => i.key === key);\r\n\t\t\t\tthis.scope.SelectedTypeInfo = list.length > 0 ? list[0] : null;\r\n\t\t\t}\r\n\t\t\treturn;\r\n\t\t})\r\n this.scope.SelectedTypeKey = this.scope.ChargesAccountTypeInfo[0].key;\r\n\r\n this.countListSize($stateParams);\r\n $($window).bind(\"resize\", () => this.countListSize($stateParams, false));\r\n\r\n this.scope.cancel = () => $mdDialog.cancel();\r\n this.scope.getFlowConfig = (target) => FlowConfigurator.getConfig(target, {singleFile: true});\r\n this.scope.uploadSuccess = (msg) => {\r\n\t\t\tthis.scope.isLoading = false;\r\n\t\t\tlet data: IChargesServiceFileUploadResponse = {\r\n\t\t\t\tFailedEntriesCount: 0,\r\n\t\t\t\tSuccessedEntriesCount: 0,\r\n\t\t\t\tLineToException: {}\r\n\t\t\t};\r\n\t\t\ttry {\r\n\t\t\t\tdata = JSON.parse(msg);\r\n\t\t\t} catch (error) {\r\n\t\t\t\tconsole.warn(error);\r\n\t\t\t}\r\n this.$rootScope.$emit(\"chargesData:Changed\");\r\n $mdDialog.hide({ flag: true, data });\r\n };\r\n this.scope.uploadError = (msg) => {\r\n\t\t\tthis.scope.isLoading = false;\r\n const data: any = JSON.parse(msg);\r\n if (data.Message) {\r\n this.ToastService.show(data.Message);\r\n }\r\n $mdDialog.hide({ flag: false, data });\r\n };\r\n this.scope.upload = () => {\r\n\t\t\tthis.scope.isLoading = true;\r\n this.scope.uploader.flow.opts.query.format = this.scope.SelectedTypeInfo.key;\r\n if (this.scope.SelectedTypeInfo.needDate) {\r\n this.scope.uploader.flow.opts.query.month = this.scope.period.getMonth() + 1;\r\n this.scope.uploader.flow.opts.query.year = this.scope.period.getFullYear();\r\n } else {\r\n this.scope.uploader.flow.opts.query.month = 0;\r\n this.scope.uploader.flow.opts.query.year = 0;\r\n }\r\n this.scope.uploader.flow.upload();\r\n };\r\n\r\n this.setCustomeDatepickerLocaleOptions($mdDateLocale);\r\n\t}\r\n\r\n\tsetCustomeDatepickerLocaleOptions($mdDateLocale: ng.material.IDateLocaleProvider): void {\r\n\t\tthis.scope.datepickerLocaleOptions = angular.copy($mdDateLocale);\r\n this.scope.datepickerLocaleOptions.formatDate = (date) => {\r\n const m: any = moment(date);\r\n return m.isValid() ? m.format(\"MMMM YYYY\") : \"\";\r\n\t\t};\r\n\t\tthis.scope.datepickerLocaleOptions.parseDate = (dateString) => {\r\n\t\t\tconst correct = moment(dateString, \"MMMM YYYY\").format(\"MM-DD-YYYY\");\r\n\t\t\treturn new Date(correct);\r\n\t\t};\r\n\t\tthis.scope.datepickerLocaleOptions.isDateComplete = (dateString) => {\r\n\t\t\tconst m: any = moment(dateString, \"MMMM YYYY\");\r\n\t\t\treturn m.isValid();\r\n\t\t};\r\n\t}\r\n\r\n countListSize($stateParams: any, isDigest: any = true): void {\r\n this.scope.isFrame = $stateParams.iframe === \"1\" || window.innerWidth < 1200;\r\n if (!isDigest) {\r\n this.scope.$digest();\r\n }\r\n }\r\n\r\n}\r\n","import './router.js';\r\nimport { ChargesController } from './charges.controller';\r\nimport { ChargesService } from './charges.service';\r\nimport { ChargesTableDirective } from './charges-table.directive';\r\nimport { ChargesFromFileDialogController } from './dialogs/chargesFromFile.dialog';\r\nimport { ChargesExamplesDialogController } from './dialogs/chargesExamples.dialog';\r\n\r\n\r\nangular.module('admin')\r\n .controller('ChargesController', ChargesController)\r\n .controller('ChargesFromFileDialogController', ChargesFromFileDialogController)\r\n .controller('ChargesExamplesDialogController', ChargesExamplesDialogController)\r\n .service('ChargesService', ChargesService)\r\n .directive('chargesTable', ChargesTableDirective.getInstance)\r\n","angular.module('app.routes').run(run);\r\n/* @ngInject */\r\nfunction run(stateAdapter, $templateCache) {\r\n stateAdapter.state('sitedetail.charges', {\r\n url: \"/charges\",\r\n template: $templateCache.get('site/detail/charges/charges.controller.html'),\r\n controller: 'ChargesController',\r\n resolve : {}\r\n })\r\n}","/// \r\nimport { ToastService } from \"../../../shared/services/toast.service.js\";\r\nimport {\r\n\tCompanyInfoService,\r\n\tIHouseSyncTask,\r\n\tHouseSyncTaskStatusEnum\r\n} from \"./companyInfo.service\";\r\nimport { TimeoutListeners } from \"../../../shared/services/TimeoutListener.service.js\";\r\n\r\ndeclare var moment: any;\r\nmoment.locale(\"ru\");\r\n\r\nexport interface ICompanyInfoScope extends ng.IScope {\r\n\tOGRN: string;\r\n\r\n\tCompany: any;\r\n\tSite: any;\r\n\tLicenseHousesCount: number;\r\n\tHouseSyncTask: IHouseSyncTask;\r\n\r\n\tCheckStatusTimeout?: ng.IPromise;\r\n\r\n\tonSave(response: any): void;\r\n\tonError(error: any): void;\r\n\r\n\tUpdate(): void;\r\n\tCancel(): void;\r\n}\r\n\r\nexport class CompanyInfoController {\r\n\tscope: ICompanyInfoScope;\r\n\r\n\tconstructor(\r\n\t\tprivate ToastService: ToastService,\r\n\t\tprivate SiteService: any,\r\n\t\tprivate CompanyInfoService: CompanyInfoService,\r\n private BackendUri: string,\r\n private TimeoutListeners: TimeoutListeners,\r\n\t\t$scope: any,\r\n\t\t$state: any,\r\n\t\t$stateParams: any,\r\n\t\tprivate $q: ng.IQService,\r\n\t\tprivate $timeout: ng.ITimeoutService,\r\n private $http: ng.IHttpService,\r\n private $rootScope: any\r\n\t) {\r\n\t\tthis.scope = $scope;\r\n this.scope.OGRN = $stateParams.ogrn;\r\n this.scope.isLoading = true;\r\n\r\n\t\tthis.scope.onSave = response => {\r\n\t\t\tToastService.show(\"Сохранено\");\r\n\t\t\t$state.reload();\r\n\t\t};\r\n\r\n\t\tthis.scope.onError = error => {\r\n\t\t\tToastService.show(\"Произошла ошибка\");\r\n\t\t\tconsole.warn(error);\r\n\t\t};\r\n\r\n this.scope.Update = () => this.Update();\r\n this.scope.Cancel = () => this.Cancel();\r\n\r\n this.init();\r\n\r\n this.scope.$on(\"$destroy\", () => {\r\n this.TimeoutListeners.removeListener(\"CompanyInfoController:CheckStatusTimeout\", true, 100);\r\n });\r\n }\r\n\r\n init(): void {\r\n this.scope.isLoading = true;\r\n this.CompanyInfoService.GetCompanyInfo(this.scope.OGRN)\r\n .then(data => {\r\n this.scope.Company = data.Company;\r\n this.scope.Site = data.Site;\r\n this.scope.LicenseHousesCount = data.LicenseHousesCount;\r\n this.scope.HouseSyncTask = data.HouseSyncTask;\r\n this.setHouseSyncTask();\r\n })\r\n .catch(err => {\r\n this.ToastService.show(\"Ошибка получения данных организации\");\r\n console.warn(err);\r\n })\r\n .finally(() => this.scope.isLoading = false);\r\n }\r\n\r\n setHouseSyncTask(): void {\r\n const timerName: string = \"CompanyInfoController:CheckStatusTimeout\";\r\n if (this.scope.HouseSyncTask.TaskGuid !== void 0 && this.scope.HouseSyncTask.TaskGuid !== null) {\r\n this.CompanyInfoService.CheckStateOfLicense(this.scope.HouseSyncTask.TaskGuid)\r\n .then(data => {\r\n this.scope.HouseSyncTask.Status = data.Status;\r\n this.scope.HouseSyncTask.CreatedAt = data.CreatedAt;\r\n this.scope.HouseSyncTask.RelativeTime = moment(data.CreatedAt).fromNow();\r\n if (data.Status < 2) {\r\n this.TimeoutListeners.addListener(timerName, () => this.setHouseSyncTask(), 1000);\r\n } else if (this.TimeoutListeners.checkListener(timerName)) {\r\n\t\t\t\t\t\tthis.TimeoutListeners.removeListener(timerName);\r\n this.init();\r\n }\r\n })\r\n .catch(err => {\r\n this.ToastService.show(\"Ошибка получения статуса синхронизации\");\r\n this.scope.HouseSyncTask.RelativeTime = \"Нет данных\";\r\n console.warn(err);\r\n this.scope.HouseSyncTask.TaskGuid = null;\r\n });\r\n } else {\r\n this.scope.HouseSyncTask.RelativeTime = \"Нет данных\";\r\n // this.scope.HouseSyncTask.RelativeTime = moment(\"20180509\", \"YYYYMMDD\").fromNow();\r\n }\r\n }\r\n\r\n Update(): void {\r\n this.CompanyInfoService.UpdateLicense()\r\n .then(data => {\r\n this.scope.HouseSyncTask.TaskGuid = data.TaskGuid;\r\n this.scope.HouseSyncTask.Status = HouseSyncTaskStatusEnum.InQueue;\r\n this.init();\r\n })\r\n .catch(err => {\r\n this.ToastService.show(\"Ошибка создания задачи на синхронизации\");\r\n console.warn(err);\r\n });\r\n }\r\n\r\n Cancel(): void {\r\n this.CompanyInfoService.CancelUpdateLicenseTask(this.scope.HouseSyncTask.TaskGuid)\r\n .then(() => this.init())\r\n .catch(err => {\r\n this.ToastService.show(\"Ошибка отмены задачи на синхронизации\");\r\n console.warn(err);\r\n });\r\n }\r\n}\r\n","/// \r\n\r\ndeclare var moment: any;\r\nmoment.locale(\"ru\");\r\n\r\nexport interface ICompanyInfoRequest {\r\n Company: any;\r\n Site: any;\r\n LicenseHousesCount: number;\r\n HouseSyncTask: IHouseSyncTask;\r\n}\r\n\r\nexport interface IHouseSyncTask {\r\n TaskGuid: string;\r\n Status?: HouseSyncTaskStatusEnum;\r\n CreatedAt?: Date;\r\n RelativeTime?: string;\r\n}\r\n\r\nexport enum HouseSyncTaskStatusEnum {\r\n \"InQueue\", // 0 - в очереди\r\n \"InWork\", // 1 - собирает\r\n \"Success\", // 2 - успех\r\n \"Erorr\", // 3 - ошибка\r\n \"Canceled\" // 4 - отменен\r\n}\r\n\r\nexport interface ICheckStateOfLicenseRequest {\r\n Status?: HouseSyncTaskStatusEnum;\r\n CreatedAt?: Date;\r\n}\r\nexport interface ILicenseHousesSyncTaskRequest {\r\n TaskGuid: string;\r\n}\r\n\r\n\r\nexport class CompanyInfoService {\r\n constructor(public $http: ng.IHttpService, public $state: any, public BackendUri: string, private SiteService: any) { }\r\n\r\n GetCompanyInfo(OGRN: string): ng.IPromise {\r\n const request: ICompanyInfoRequest = {\r\n Company: null,\r\n Site: null,\r\n LicenseHousesCount: null,\r\n HouseSyncTask: {\r\n TaskGuid: null\r\n }\r\n };\r\n return this.$http.get(`${this.BackendUri}/v2/company-info`)\r\n .then(({data}) => {\r\n request.Company = data;\r\n request.Company.RegistrationDate = new Date(moment(request.Company.RegistrationDate).format());\r\n request.Company.OpenHours = request.Company.BasicOrganizationInfoHours\r\n .filter(x => x.Type === \"OrganizationOpeningHours\")\r\n .sort((a, b) => {\r\n return a.DayOfWeek > b.DayOfWeek ? 1 :\r\n a.DayOfWeek < b.DayOfWeek ? -1 : 0;\r\n });\r\n request.Company.CitizensReceptionHours = request.Company.BasicOrganizationInfoHours\r\n .filter(x => x.Type !== \"OrganizationOpeningHours\")\r\n .sort((a, b) => {\r\n return a.DayOfWeek > b.DayOfWeek ? 1 :\r\n a.DayOfWeek < b.DayOfWeek ? -1 : 0;\r\n });\r\n return this.SiteService.get({}).$promise;\r\n })\r\n .then((data) => {\r\n request.Site = {\r\n Ogrn: OGRN,\r\n Host: data.host,\r\n Directory: data.directory,\r\n Robots: data.robots,\r\n IsRedesign: data.is_redesign\r\n };\r\n request.LicenseHousesCount = data.license_houses_count;\r\n request.HouseSyncTask.TaskGuid = data.houses_update_task_guid;\r\n return request;\r\n });\r\n }\r\n\r\n CheckV2(): ng.IPromise {\r\n return this.$http.get(`${this.BackendUri}/v2/company-info`)\r\n .then(({data}) => {\r\n return true;\r\n })\r\n .catch((err) => {\r\n console.warn(err);\r\n return false;\r\n });\r\n }\r\n\r\n UpdateLicense(): ng.IPromise {\r\n return this.$http.post(`${this.BackendUri}/v2/license-houses/sync`, {})\r\n .then(res => {\r\n return res.data as ILicenseHousesSyncTaskRequest;\r\n });\r\n }\r\n\r\n CheckStateOfLicense(TaskGuid: string): ng.IPromise {\r\n return this.$http.get(`${this.BackendUri}/v2/license-houses/status/${TaskGuid}`)\r\n .then(res => {\r\n return res.data as ICheckStateOfLicenseRequest;\r\n });\r\n }\r\n\r\n CancelUpdateLicenseTask(TaskGuid: string): ng.IPromise {\r\n return this.$http.patch(`${this.BackendUri}/v2/license-houses/sync/${TaskGuid}/cancel`, {});\r\n }\r\n}\r\n","import './router.js';\r\nimport {CompanyInfoController} from './companyInfo.controller';\r\nimport { CompanyInfoService } from './companyInfo.service';\r\n\r\nangular.module('admin')\r\n .controller('CompanyInfoController', CompanyInfoController)\r\n .service('CompanyInfoService', CompanyInfoService)\r\n","angular.module('app.routes').run(run);\r\n/* @ngInject */\r\nfunction run(stateAdapter, $templateCache) {\r\n stateAdapter.state('sitedetail.companyInfo', {\r\n url: \"/companyInfo\",\r\n template: $templateCache.get('site/detail/companyInfo/companyInfo.controller.html'),\r\n controller: 'CompanyInfoController',\r\n resolve : {}\r\n })\r\n}","/// \r\nimport { ToastService } from \"../../shared/services/toast.service\";\r\nimport { CompanyInfoService } from \"./companyInfo/companyInfo.service\";\r\n\r\nexport class DetailController {\r\n scope;\r\n\r\n constructor(\r\n\t\t$scope: any, $rootScope: any, $mdSidenav: ng.material.ISidenavService, private $window: ng.IWindowService,\r\n\t\tprivate $state: any, private $stateParams: any, private $http: ng.IHttpService,\r\n private BackendUri: string, private CompanyInfoService: CompanyInfoService, private ToastService: ToastService,\r\n private SiteService: any, private User: any, private $mdDialog: ng.material.IDialogService, private $templateCache: any\r\n ) {\r\n\r\n this.scope = $scope;\r\n this.scope.isLoading = true;\r\n\t\tthis.scope.updates = [];\r\n\r\n this.scope.openMenu = ($mdMenu, ev) => {\r\n\t\t\t$mdMenu.open(ev);\r\n };\r\n this.scope.openImagePopup = (img, $event) => {\r\n\t\t\tthis.openImagePopup(img, $event);\r\n };\r\n\r\n this.scope.toggleLeftSidenav = () => {\r\n $mdSidenav(\"left\").toggle();\r\n };\r\n\r\n this.scope.save = (showToast = true) => {\r\n this.scope.siteDetails.$save()\r\n .then(() => {\r\n if (showToast) {\r\n this.ToastService.show(\"Сохранено\", this.ToastService.status.success);\r\n\t\t\t\t\t\t}\r\n this.scope.refresh();\r\n },\r\n (response) => {\r\n this.ToastService.show(response.data.Message);\r\n }\r\n );\r\n };\r\n\r\n this.scope.refresh = () => {\r\n this.scope.isLoading = true;\r\n SiteService.get({}, (data) => {\r\n this.scope.siteDetails = data;\r\n this.scope.siteDetails.timehash = new Date().getTime();\r\n this.scope.isLoading = false;\r\n });\r\n };\r\n\r\n this.scope.deleteMapReplace = () => {\r\n this.$http.delete(BackendUri + \"/theme/map_replace\")\r\n .then((answer) => {\r\n if (answer.data.Result !== \"0\") {\r\n this.scope.refresh();\r\n }\r\n })\r\n .catch(response => {\r\n\t\t\t\t\tthis.ToastService.show(response.data.Message);\r\n\t\t\t\t});\r\n };\r\n\r\n this.init()\r\n .then((siteDetails) => {\r\n this.scope.siteDetails = siteDetails;\r\n this.countListSize($stateParams);\r\n $($window).bind(\"resize\", () => this.countListSize($stateParams, false));\r\n this.scope.isV2 = false;\r\n this.scope.siteDetails.timehash = new Date().getTime();\r\n this.checkV2();\r\n\t\t\t\tthis.scope.isLoading = false;\r\n\t\t\t\tthis.getUpdates();\r\n });\r\n\t}\r\n\r\n\tgetUpdates(): void {\r\n\t\tthis.$http.get(\"/assets/updates_info.json\")\r\n\t\t\t.then((response) => {\r\n\t\t\t\tthis.scope.updates = response.data.updates;\r\n\t\t\t})\r\n\t\t\t.catch((err) => {\r\n console.warn(err);\r\n });\r\n\t}\r\n\r\n countListSize($stateParams: any, isDigest: boolean = true): void {\r\n this.scope.isFrame = $stateParams.iframe === \"1\" || window.innerWidth < 1200;\r\n if (!isDigest) {\r\n this.scope.$digest();\r\n }\r\n }\r\n\r\n init(): ng.IPromise {\r\n let user: any = this.User.getUserIdentity(\"Backend\");\r\n if(user == null) {\r\n this.User.DeleteKeys(\"Backend\");\r\n this.$state.go(\"auth\", { name : \"Backend\" });\r\n throw \"Не авторизован\";\r\n }\r\n return this.SiteService.get({}).$promise\r\n .then(res => {\r\n if(res.Result === \"0\") {\r\n this.ToastService.show(res.Description);\r\n this.$state.go(\"v2\", this.$state.params);\r\n throw res.Description;\r\n } else {\r\n if(\r\n\t\t\t\t\t\tres.is_blocked === true &&\r\n\t\t\t\t\t\tuser.Role !== \"admin\" &&\r\n\t\t\t\t\t\t!this.User.hasPermissions(\"dispatcher\") &&\r\n\t\t\t\t\t\t!this.User.hasPermissions(\"org-info\")\r\n\t\t\t\t\t) {\r\n \t\tthis.$state.go(\"siteblocked\");\r\n \tthrow \"Сайт заблокирован\";\r\n }\r\n this.scope.User = user;\r\n return res;\r\n }\r\n });\r\n }\r\n\r\n openImagePopup(imgSrc: any, $event: any): ng.IPromise {\r\n return this.$mdDialog.show({\r\n controller: \"ImgPopupDialogController\",\r\n template: this.$templateCache.get(\r\n \"site/detail/dialogs/img-popup.dialog.html\"\r\n ),\r\n parent: angular.element(document.body),\r\n targetEvent: $event,\r\n locals: { imgSrc },\r\n clickOutsideToClose: true,\r\n fullscreen: true\r\n });\r\n }\r\n\r\n checkV2(): ng.IPromise {\r\n return this.CompanyInfoService.CheckV2()\r\n .then((isV2) => {\r\n this.scope.isV2 = isV2;\r\n })\r\n .catch((err) => {\r\n console.warn(err);\r\n });\r\n }\r\n}\r\n","/// \r\n\r\nimport { OnCheckIsFrame } from \"../../../shared/abstract-classes/OnCheckIsFrame\";\r\n\r\nexport class ImgPopupDialogController extends OnCheckIsFrame {\r\n constructor($scope: any, $mdDialog: ng.material.IDialogService,\r\n $window: any, $stateParams: any, imgSrc: string\r\n ) {\r\n super($window, $stateParams, $scope);\r\n $scope.imgSrc = imgSrc;\r\n $scope.cancel = () => $mdDialog.cancel();\r\n }\r\n}","/// \r\nimport { ToastService } from \"../../../../shared/services/toast.service\";\r\n\r\ndeclare var moment: any;\r\nmoment.locale(\"ru\");\r\n\r\nexport interface IAppealScope extends ng.IScope {\r\n}\r\n\r\nexport class AppealController {\r\n\tscope: IAppealScope;\r\n\r\n constructor($scope: any, private $state: any, $stateParams: any, $mdDateLocale: ng.material.IDateLocaleProvider,\r\n private $location: any, private $http: ng.IHttpService, private $q: ng.IQService,\r\n private $mdDialog: ng.material.IDialogService, private $templateCache: any, private ToastService: ToastService\r\n ) {\r\n\t\tthis.scope = $scope;\r\n\t\tthis.scope.isLoading = true;\r\n this.scope.OGRN = $stateParams.ogrn;\r\n this.scope.type = $stateParams.type || null;\r\n }\r\n}\r\n","/// \r\nimport { ToastService } from \"../../../../shared/services/toast.service\";\r\nimport { AppealService } from \"./appeal.service.js\";\r\nimport { IAppeal, ICreateAppealDTO } from \"./appeal.model\";\r\nimport { IRepairRequestEventType } from \"../repair-request/repair-request.model\";\r\nimport { RepairRequestService } from \"../repair-request/repair-request.service\";\r\nimport { ChargesService } from \"../../charges/charges.service\";\r\n\r\ndeclare var moment: any;\r\nmoment.locale(\"ru\");\r\n\r\nexport interface IAppealDetailsScope extends ng.IScope {\r\n\tappeal: IAppeal;\r\n\tappealForEdit: ICreateAppealDTO;\r\n\r\n\teventTypes: IRepairRequestEventType[];\r\n\tcreateEventType: IRepairRequestEventType;\r\n\r\n\tisLoading: boolean;\r\n\tisEditing: boolean;\r\n}\r\n\r\nexport class AppealDetailsController {\r\n\tscope: IAppealDetailsScope;\r\n\r\n constructor($scope: any, private $state: any, $stateParams: any, $mdDateLocale: ng.material.IDateLocaleProvider,\r\n\t\tprivate $location: any, private AppealService: AppealService, private ToastService: ToastService, StorageUri,\r\n\t\tprivate $sce: ng.ISCEService, private RepairRequestService: RepairRequestService, private ChargesService: ChargesService,\r\n\t\tprivate $mdDialog: ng.material.IDialogService\r\n ) {\r\n\t\tthis.scope = $scope;\r\n\t\tthis.scope.isLoading = true;\r\n\t\tthis.scope.isEditing = false;\r\n this.scope.StorageUri = StorageUri;\r\n this.scope.OGRN = $stateParams.ogrn;\r\n this.scope.AppealID = $stateParams.id;\r\n this.scope.type = $stateParams.type || null;\r\n\r\n this.scope.uploadRecord = ($event: any, appeal: IAppeal) => {\r\n this.AppealService.showLinkAppealToRecord($event, appeal.AppealId, appeal.PhoneNumber)\r\n .finally(() => this.load());\r\n\t\t};\r\n\t\tthis.scope.addRepairRequest = ($event: any) => this.addRepairRequest($event);\r\n\t\tthis.scope.onAccountChange = (item: any) => this.onAccountChange(item);\r\n this.scope.saveAppealToogle = ($event: any) => {\r\n\t\t\tif (this.scope.isEditing) {\r\n\t\t\t\tthis.scope.isLoading = true;\r\n\r\n\t\t\t\tthis.scope.appealForEdit.Events = [];\r\n\t\t\t\tthis.scope.appealForEdit.RepairRequestList = [];\r\n\r\n\t\t\t\treturn this.AppealService.EditAppeal(this.scope.appeal.AppealId, this.scope.appealForEdit)\r\n\t\t\t\t\t.then(data => {\r\n\t\t\t\t\t\tthis.ToastService.show(`Обращение успешно создано`, this.ToastService.status.success);\r\n\t\t\t\t\t\tthis.$state.reload();\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.catch(err => {\r\n\t\t\t\t\t\tif (err) {\r\n\t\t\t\t\t\t\tif (err.status && err.status === 403) {\r\n\t\t\t\t\t\t\t\tthis.ToastService.show(\"Нет прав!\", this.ToastService.status.warning);\r\n\t\t\t\t\t\t\t} else if ((err.status && err.status !== 403) || (!err.RepairRequestId && (err.message || err.Message))) {\r\n\t\t\t\t\t\t\t\tthis.ToastService.handle(err);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.finally(() => {\r\n\t\t\t\t\t\tthis.scope.isLoading = false;\r\n\t\t\t\t\t\tthis.scope.isEditing = false;\r\n\t\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tthis.scope.isEditing = true;\r\n\t\t\t}\r\n\t\t};\r\n\t\tthis.scope.deleteAttach = ($event: any, appeal: IAppeal) => {\r\n\t\t\tconst confirm = this.$mdDialog.confirm()\r\n .title(\"Открепить аудиозапись\")\r\n .textContent(\"Вы точно хотите, открепить аудиозапись от обращения?\")\r\n .ariaLabel(\"Подтверждение\")\r\n .ok(\"Да, открепить\")\r\n\t\t\t\t.cancel(\"Отмена\");\r\n\t\t\tthis.$mdDialog.show(confirm)\r\n\t\t\t\t.then(() => {\r\n\t\t\t\t\tthis.AppealService.DeleteLinkAppealToRecord(appeal.AppealId);\r\n\t\t\t\t\tsetTimeout(() => { this.load(); }, 100);\r\n\t\t\t\t})\r\n\t\t\t\t.catch((err) => { });\r\n };\r\n\r\n this.load();\r\n }\r\n\r\n load() {\r\n this.AppealService.GetAppeal(this.scope.AppealID)\r\n .then(data => {\r\n\t\t\t\tif (data.Record) {\r\n\t\t\t\t\tdata.Record.PathUrl = this.$sce.trustAsResourceUrl(`${this.scope.StorageUri}${data.Record.Path}`);\r\n\t\t\t\t}\r\n\t\t\t\tthis.scope.appeal = data;\r\n\t\t\t\tthis.scope.accountNumber = data.AccountNumber || null;\r\n\t\t\t\tconst _data: IAppeal = angular.copy(data);\r\n\t\t\t\tthis.scope.appealForEdit = {\r\n\t\t\t\t\tAppealTypeId: _data.AppealTypeId || null,\r\n\t\t\t\t\tReason: _data.Reason || null,\r\n\t\t\t\t\tRecordId: _data.RecordId || null,\r\n\t\t\t\t\tAddress: _data.Address || null,\r\n\t\t\t\t\tPhoneNumber: _data.PhoneNumber || null,\r\n\t\t\t\t\tEmail: _data.Email || null,\r\n\t\t\t\t\tAccountNumber: _data.AccountNumber || null,\r\n\t\t\t\t\tCreatedAt: _data.CreatedAt || null,\r\n\r\n\t\t\t\t\tRepairRequestList: [],\r\n\t\t\t\t\tEvents: []\r\n\t\t\t\t};\r\n\t\t\t\treturn this.RepairRequestService.GetRepairRequestEventTypes();\r\n\t\t\t})\r\n\t\t\t.then(list => {\r\n this.scope.eventTypes = list;\r\n this.scope.createEventType = list.filter(i => i.IsCreateRepairRequest)[0];\r\n\t\t\t})\r\n .catch((err) => {\r\n this.ToastService.handle(err);\r\n })\r\n .finally(() => this.scope.isLoading = false);\r\n\t}\r\n\r\n\tonAccountChange(item?: any): void {\r\n\t\tthis.scope.appealForEdit.AccountNumber = item.AccountNumber;\r\n\t\tthis.scope.appealForEdit.Address = item.Address;\r\n\t}\r\n\r\n\taddRepairRequest($event: any): void {\r\n this.scope.isLoading = true;\r\n\t\tthis.RepairRequestService.CreateRepairRequest()\r\n .then((data) => {\r\n return this.RepairRequestService.showRepairRequest(\r\n $event,\r\n data.RepairRequestId,\r\n {\r\n isEdit: true,\r\n isCreate: true,\r\n address: this.scope.appealForEdit && this.scope.appealForEdit.Address ?\r\n this.scope.appealForEdit.Address : undefined\r\n }\r\n );\r\n })\r\n .then((data) => {\r\n data.StatusId = 1;\r\n this.scope.appealForEdit.Events.push({\r\n RepairRequest: data,\r\n\t\t\t\t\tCallbackType: this.scope.appeal && this.scope.appeal.PhoneNumber ?\r\n\t\t\t\t\t\t\t\t this.scope.appeal.PhoneNumber :\r\n\t\t\t\t\t\t\t\t this.scope.appeal && this.scope.appeal.Email ?\r\n\t\t\t\t\t\t\t\t this.scope.appeal.Email : \"\",\r\n RepairRequestEventType: this.scope.createEventType,\r\n\r\n RepairRequestId: data.RepairRequestId,\r\n RepairRequestEventTypeId: this.scope.createEventType.RepairRequestEventTypeId,\r\n Comment: null,\r\n IdFrom: 0,\r\n IdTo: 1\r\n\t\t\t\t});\r\n\t\t\t\treturn this.saveAppeal();\r\n })\r\n .catch(err => {\r\n\t\t\t\tif (err) {\r\n\t\t\t\t\tif (err.status && err.status === 403) {\r\n\t\t\t\t\t\tthis.ToastService.show(\"Нет прав!\", this.ToastService.status.warning);\r\n\t\t\t\t\t} else if ((err.status && err.status !== 403) || (!err.RepairRequestId && (err.message || err.Message))) {\r\n\t\t\t\t\t\tthis.ToastService.handle(err);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n })\r\n .finally(() => this.scope.isLoading = false);\r\n\t}\r\n\r\n\tsaveAppeal() {\r\n this.scope.appealForEdit.RepairRequestList = this.scope.appealForEdit.Events.map(ev => {\r\n return {\r\n RepairRequest: ev.RepairRequest,\r\n CallbackType: ev.CallbackType\r\n };\r\n });\r\n\r\n const newAppeal: ICreateAppealDTO = angular.copy(this.scope.appealForEdit);\r\n newAppeal.Events = newAppeal.Events.map(ev => {\r\n delete ev.RepairRequest;\r\n delete ev.CallbackType;\r\n return ev;\r\n });\r\n\r\n return this.AppealService.EditAppeal(this.scope.appeal.AppealId, newAppeal)\r\n .then(data => {\r\n this.ToastService.show(`Обращение успешно создано`, this.ToastService.status.success);\r\n this.$state.reload();\r\n })\r\n }\r\n}\r\n","/// \r\nimport {\r\n IAppeal,\r\n IAppealType,\r\n ICreateAppealDTO,\r\n ICreateEventDTO,\r\n IAppealListParameters,\r\n IAppealListDTO,\r\n IAddAppealTypeDTO,\r\n\tIUnattachedAppealsParameters,\r\n} from \"./appeal.model\";\r\nimport { IRecord } from \"../records/records.model\";\r\n\r\n\r\ndeclare var moment: any;\r\nmoment.locale(\"ru\");\r\n\r\nexport class AppealService {\r\n constructor(public $http: ng.IHttpService, public $state: any, public BackendUri: string,\r\n private $mdDialog: ng.material.IDialogService, private $templateCache: any\r\n\t) { }\r\n\r\n\tprotected handleAppeal(data: IAppeal): IAppeal {\r\n\t\tfor(let key of [\"AppealType\", \"Record\"]) {\r\n\t\t\tif (data[key]) {\r\n\t\t\t\tdata[ key + \"Id\" ] = data[key][key+\"Id\"];\r\n\t\t\t}\r\n\t\t}\r\n for(let dateKey of [\"CreatedAt\", \"LastUpdate\"]) {\r\n if (data[dateKey]) {\r\n data[dateKey] = new Date(data[dateKey]);\r\n }\r\n }\r\n return data;\r\n }\r\n\r\n /**\r\n * Получение списка заявок\r\n * @param _params параметры запроса\r\n */\r\n GetAppealsList(_params: IAppealListParameters): ng.IPromise {\r\n const params: IAppealListParameters = angular.extend({}, {\r\n limit: 25,\r\n offset: 0\r\n }, angular.copy(_params));\r\n delete params.page;\r\n\r\n if (params.term && params.term === \"\") { delete params.term; }\r\n if (params.typeIdList.length === 0) { delete params.typeIdList; }\r\n\r\n return this.$http.get(`${this.BackendUri}/appeal`, { params: params })\r\n .then(response => {\r\n\t\t\t\t\tconst data: IAppealListDTO = {\r\n\t\t\t\t\t\tCount: response.data.Count,\r\n\t\t\t\t\t\tData: response.data.Data.map(a => {\r\n\t\t\t\t\t\t\treturn this.handleAppeal(a);\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t};\r\n return data;\r\n });\r\n }\r\n /**\r\n * Создание нового обращения\r\n * @param data Модель обращения\r\n */\r\n CreateAppeal(data: ICreateAppealDTO): ng.IPromise<{AppealId: string}> {\r\n return this.$http.post(`${this.BackendUri}/appeal`, data)\r\n .then(response => {\r\n return response.data as {AppealId: string};\r\n });\r\n }\r\n /**\r\n * Создание нового обращения\r\n * @param data Модель обращения\r\n */\r\n EditAppeal(appealId: string, data: ICreateAppealDTO): ng.IPromise<{AppealId: string}> {\r\n return this.$http.put(`${this.BackendUri}/appeal/${appealId}`, data)\r\n .then(response => {\r\n return response.data as {AppealId: string};\r\n });\r\n }\r\n /**\r\n * Получение обращения\r\n * @param appealId ID Обращения\r\n */\r\n GetAppeal(appealId: string): ng.IPromise {\r\n return this.$http.get(`${this.BackendUri}/appeal/${appealId}`)\r\n .then(response => {\r\n return this.handleAppeal(response.data);\r\n });\r\n }\r\n\r\n /**\r\n * Получения списка типов обращений\r\n */\r\n GetAppealTypes(): ng.IPromise {\r\n return this.$http.get(`${this.BackendUri}/appeal/types`)\r\n .then(response => {\r\n return response.data as IAppealType[];\r\n });\r\n }\r\n /**\r\n * Добавление нового типа обращения\r\n * @param data Модель типа\r\n */\r\n AddAppealType(data: IAddAppealTypeDTO): ng.IPromise<{ AppealTypeId: string }> {\r\n return this.$http.post(`${this.BackendUri}/appeal/type`, data)\r\n .then(response => {\r\n return response.data as { AppealTypeId: string };\r\n });\r\n }\r\n\r\n /**\r\n * Получение списка записей, непривязанных к обращениям\r\n */\r\n GetAppealRecord(): ng.IPromise {\r\n return this.$http.get(`${this.BackendUri}/appeal/record`)\r\n .then(response => {\r\n return response.data as IRecord[];\r\n });\r\n }\r\n /**\r\n * Привязать запись разговора к обращению\r\n */\r\n AddLinkAppealToRecord(appealId: any, recordId: any): ng.IPromise {\r\n return this.$http.patch(`${this.BackendUri}/appeal/${appealId}/attach/${recordId}`, {});\r\n }\r\n /**\r\n * Отвязать запись от обращения\r\n */\r\n DeleteLinkAppealToRecord(appealId: any): ng.IPromise {\r\n return this.$http.delete(`${this.BackendUri}/appeal/${appealId}/attach`);\r\n\t}\r\n\r\n\tGetUnattachedAppeals(_params: IUnattachedAppealsParameters): ng.IPromise {\r\n\t\tconst params: IUnattachedAppealsParameters = angular.extend({}, {\r\n\t\t\tlimit: 25,\r\n\t\t\toffset: 0\r\n\t\t}, angular.copy(_params));\r\n\t\tdelete params.page;\r\n\r\n\t\treturn this.$http.get(`${this.BackendUri}/appeal/unattached`, { params: params })\r\n\t\t.then(response => {\r\n\t\t\tconst data: IAppealListDTO = {\r\n\t\t\t\tCount: response.data.Count,\r\n\t\t\t\tData: response.data.Data.map(a => {\r\n\t\t\t\t\treturn this.handleAppeal(a);\r\n\t\t\t\t})\r\n\t\t\t};\r\n\t\t\treturn data;\r\n\t\t});\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n /**\r\n * Открыть модальное окно для привязки обращения\r\n * @param $event Событие вызвавшее открытие окна\r\n * @param appealId ID Обращения\r\n * @param dialogParams Параметры открытия окна\r\n */\r\n showLinkAppealToRecord( $event: any, appealId: any, number: string = \"\"): ng.IPromise {\r\n return this.GetAppealRecord()\r\n .then(records => {\r\n return this.$mdDialog.show({\r\n controller: \"LinkAppealToRecordDialogController\",\r\n template: this.$templateCache.get(\r\n \"site/detail/dispatcher/appeal/dialogs/link-appeal-to-record.dialog.html\"\r\n ),\r\n parent: angular.element(document.body),\r\n targetEvent: $event,\r\n locals: { appealId, records, number },\r\n clickOutsideToClose: false,\r\n fullscreen: true\r\n });\r\n });\r\n }\r\n}\r\n","/// \r\nimport { FlowConfigurator } from \"../../../../../shared/services/flowConfigurator.service\";\r\nimport { AppealService } from \"./../appeal.service\";\r\nimport { OnCheckIsFrame } from \"../../../../../shared/abstract-classes/OnCheckIsFrame\";\r\nimport { ToastService } from \"../../../../../shared/services/toast.service\";\r\nimport { IRecord } from \"../../records/records.model\";\r\n\r\ndeclare var moment: any;\r\nmoment.locale(\"ru\");\r\n\r\ninterface IRepairRequestDialogScope extends ng.IScope {\r\n isEdit: boolean;\r\n\r\n cancel(): void;\r\n save(): void;\r\n\r\n\r\n uploader: any;\r\n uploadSuccess(msg: any): void;\r\n uploadError(msg: any): void;\r\n upload(callTime: Date, direction: string, number: string, SelectedRecord: any): void;\r\n getFlowConfig(): void;\r\n\r\n StorageUri: string;\r\n SelectedRecord: IRecord;\r\n}\r\n\r\nexport class LinkAppealToRecordDialogController extends OnCheckIsFrame {\r\n protected scope: IRepairRequestDialogScope;\r\n\r\n constructor($scope: any, private $mdDialog: ng.material.IDialogService,\r\n private ToastService: ToastService, private FlowConfigurator: FlowConfigurator,\r\n StorageUri: string, private appealId: any, private $mdDateLocale: ng.material.IDateLocaleProvider,\r\n private records: any, private number: any, private AppealService: AppealService,\r\n protected $window: any, protected $stateParams: any, protected $element: any\r\n ) {\r\n super($window, $stateParams, $scope);\r\n this.scope.SelectedRecord = null;\r\n this.scope.random = Math.random();\r\n this.scope.StorageUri = StorageUri;\r\n this.scope.records = records;\r\n this.scope.number = number;\r\n this.scope.callTime = new Date();\r\n this.scope.direction = \"IN\";\r\n this.scope.uploader = {};\r\n this.scope.datepickerLocaleOptions = angular.copy(this.$mdDateLocale);\r\n\r\n this.scope.clearSearchTerm = () => {\r\n $scope.searchTerm = \"\";\r\n };\r\n this.scope.cancel = () => {\r\n this.$mdDialog.cancel();\r\n };\r\n this.scope.save = () => {\r\n this.$mdDialog.hide();\r\n };\r\n\r\n $element.find(\"input\").on(\"keydown\", (ev) => {\r\n ev.stopPropagation();\r\n });\r\n\r\n this.init();\r\n }\r\n\r\n init(): void {\r\n this.initFlow();\r\n }\r\n\r\n protected initFlow(): void {\r\n this.scope.getFlowConfig = () =>\r\n this.FlowConfigurator.getConfig(`/appeal/${this.appealId}/record`, {singleFile: true});\r\n\r\n this.scope.uploadSuccess = (msg) => {\r\n let data: any = {};\r\n try {\r\n data = JSON.parse(msg);\r\n } catch (e) {\r\n console.warn(\"Ответ не получилось спарсить\", e);\r\n }\r\n\r\n this.ToastService.show(\"Файл успешно загружен\", this.ToastService.status.success);\r\n this.$mdDialog.hide();\r\n };\r\n\r\n this.scope.uploadError = (msg) => {\r\n let error: any = {};\r\n try {\r\n error = JSON.parse(msg);\r\n } catch (e) {\r\n console.warn(\"Ответ не получилось спарсить\", e);\r\n }\r\n this.ToastService.handle(error);\r\n };\r\n\r\n this.scope.upload = (callTime: Date, direction: string, number: string, SelectedRecord: any) => {\r\n if (SelectedRecord !== null) {\r\n this.AppealService.AddLinkAppealToRecord(this.appealId, SelectedRecord)\r\n .then(() => {\r\n this.ToastService.show(\"Файл успешно прикреплён\", this.ToastService.status.success);\r\n this.$mdDialog.hide();\r\n })\r\n .catch((error) => this.ToastService.handle(error));\r\n } else {\r\n if (callTime) {\r\n this.scope.uploader.flow.opts.query.callTime = callTime.toJSON();\r\n } else {\r\n this.ToastService.show(\"Выберите дату совершения звонка\");\r\n return;\r\n }\r\n if (direction) {\r\n this.scope.uploader.flow.opts.query.direction = direction;\r\n } else {\r\n this.ToastService.show(\"Выберите 'Тип звонка'\");\r\n return;\r\n }\r\n if (number && number !== \"\") {\r\n this.scope.uploader.flow.opts.query.number = number;\r\n } else {\r\n this.ToastService.show(\"Введите номер телефона\");\r\n return;\r\n }\r\n this.scope.uploader.flow.upload();\r\n }\r\n };\r\n\r\n this.scope.$watch(\"uploader.flow.files\", (files: any[]) => {\r\n if (files && files.length > 1) {\r\n this.scope.uploader.flow.files = files[files.length - 1];\r\n }\r\n });\r\n }\r\n}\r\n","/// \r\nimport { ExcelExportService, IExportProperties } from \"../../../../../shared/services/excel-export.service\";\r\nimport { AppealService } from \"./../appeal.service\";\r\n\r\nimport {\r\n IAppealListParameters,\r\n IAppeal,\r\n IAppealType\r\n} from \"../appeal.model\";\r\nimport { ToastService } from \"../../../../../shared/services/toast.service\";\r\n\r\ndeclare var moment: any;\r\nmoment.locale(\"ru\");\r\n\r\nlet Instance: AppealTableDirective;\r\n\r\nexport interface IAppealTableScope extends ng.IScope {\r\n query: IAppealListParameters;\r\n count: number;\r\n data: IAppeal[];\r\n\r\n label: any;\r\n menu: any;\r\n\r\n load(): void;\r\n\r\n isOpenSidenav: boolean;\r\n toggleSidenav(): void;\r\n\r\n appealTypes: IAppealType[];\r\n isStarted: boolean;\r\n\r\n exportExcel(): void;\r\n\r\n StorageUri: string;\r\n\r\n uploadRecord($event: any, appeal: IAppeal): void;\r\n}\r\n\r\nexport class AppealTableController {\r\n scope: IAppealTableScope;\r\n element: ng.IAugmentedJQuery;\r\n input: any;\r\n\r\n now: Date = new Date();\r\n lastYear: string = moment(this.now).subtract(12, \"month\").format(\"YYYY-MM-01T00:00:00.000Z\");\r\n lastMonth: string = moment(this.now).subtract(1, \"month\").format(\"YYYY-MM-01T00:00:00.000Z\");\r\n nextMonth: string = moment(this.now).add(1, \"month\").format(\"YYYY-MM-01T00:00:00.000Z\");\r\n\r\n link(scope: any, element: ng.IAugmentedJQuery, attr: ng.IAttributes): any {\r\n this.scope = scope;\r\n this.element = element;\r\n this.scope.isStarted = false;\r\n this.scope.StorageUri = Instance.StorageUri;\r\n this.scope.data = [];\r\n\r\n this.scope.setQuery = (type: string) => {\r\n this.scope.query = angular.copy(this[type]);\r\n this.load();\r\n };\r\n\r\n this.scope.isOpenSidenav = false;\r\n this.scope.toggleSidenav = () => this.scope.isOpenSidenav = !this.scope.isOpenSidenav;\r\n this.scope.replyAllFilters = () => {\r\n this.scope.query = JSON.parse(this.scope.filterHash);\r\n this.scope.daterange = {\r\n createdStart: new Date(moment(this.scope.query.createdStart).format(\"YYYY-MM-01\")),\r\n createdEnd: new Date(moment(this.scope.query.createdEnd).format(\"YYYY-MM-01\"))\r\n };\r\n };\r\n this.scope.$watch(\"isOpenSidenav\", (isOpen) => {\r\n if(isOpen === true) {\r\n this.scope.filterHash = JSON.stringify(this.scope.query);\r\n }\r\n if (isOpen === false && this.scope.filterHash !== JSON.stringify(this.scope.query)) {\r\n Instance.$timeout(() => this.load(), 850);\r\n }\r\n });\r\n\r\n this.scope.query = {\r\n limit: window.innerHeight > 925 ? 20 : 15,\r\n page: 1,\r\n offset: 0,\r\n orderBy: \"-CreatedAt\",\r\n term: \"\",\r\n typeIdList: [],\r\n createdStart: this.lastMonth,\r\n createdEnd: this.nextMonth\r\n };\r\n\r\n this.scope.daterange = {\r\n createdStart: new Date(moment(this.lastMonth).format(\"YYYY-MM-01\")),\r\n createdEnd: new Date(moment(this.nextMonth).format(\"YYYY-MM-01\"))\r\n };\r\n this.scope.$watch(\"daterange.createdEnd\", (createdEnd: any) => {\r\n if(createdEnd === void 0 || createdEnd === null) { return; }\r\n this.scope.query.createdEnd = moment(createdEnd).format(\"YYYY-MM-DDT23:59:59.999Z\");\r\n });\r\n this.scope.$watch(\"daterange.createdStart\", (createdStart: any) => {\r\n if(createdStart === void 0 || createdStart === null) { return; }\r\n this.scope.query.createdStart = moment(createdStart).format(\"YYYY-MM-DDT00:00:00.000Z\");\r\n });\r\n\r\n\r\n this.scope.onEnterLoad = (keyEvent) => {\r\n if (keyEvent.which === 13) {\r\n\t\t\t\tthis.scope.isOpenSidenav = false;\r\n this.load();\r\n }\r\n };\r\n\r\n this.scope.uploadRecord = ($event: any, appeal: IAppeal) => {\r\n Instance.AppealService.showLinkAppealToRecord($event, appeal.AppealId, appeal.PhoneNumber)\r\n .finally(() => this.load());\r\n };\r\n this.scope.deleteAttach = ($event: any, appeal: IAppeal) => {\r\n\t\t\tconst confirm = Instance.$mdDialog.confirm()\r\n .title(\"Открепить аудиозапись\")\r\n .textContent(\"Вы точно хотите, открепить аудиозапись от обращения?\")\r\n .ariaLabel(\"Подтверждение\")\r\n .ok(\"Да, открепить\")\r\n\t\t\t\t.cancel(\"Отмена\");\r\n\t\t\tInstance.$mdDialog.show(confirm)\r\n\t\t\t\t.then(() => {\r\n\t\t\t\t\tInstance.AppealService.DeleteLinkAppealToRecord(appeal.AppealId);\r\n\t\t\t\t\tsetTimeout(() => { this.load(); }, 100);\r\n\t\t\t\t})\r\n\t\t\t\t.catch((err) => { });\r\n };\r\n this.scope.toggle = (item, listName, param: string) => {\r\n let _item: any = this.scope.query[listName].find(p => p[param] === item[param]);\r\n if (_item) {\r\n let idx: any = this.scope.query[listName].indexOf(_item);\r\n this.scope.query[listName].splice(idx, 1);\r\n } else {\r\n this.scope.query[listName].push(angular.copy(item));\r\n }\r\n };\r\n this.scope.exists = (item, listName, param: string) => {\r\n return this.scope.query[listName].find(p => p[param] === item[param]) !== void 0;\r\n };\r\n this.scope.isIndeterminate = (list, selectesListName) => {\r\n return (this.scope.query[selectesListName].length !== 0 &&\r\n this.scope.query[selectesListName].length !== list.length);\r\n };\r\n this.scope.isChecked = (list, selectesListName) => {\r\n return this.scope.query[selectesListName].length === list.length;\r\n };\r\n this.scope.toggleAll = (list, selectesListName) => {\r\n if (this.scope.query[selectesListName].length === list.length) {\r\n this.scope.query[selectesListName] = [];\r\n } else if (this.scope.query[selectesListName].length === 0 || this.scope.query[selectesListName].length > 0) {\r\n this.scope.query[selectesListName] = angular.copy(list);\r\n }\r\n\t\t};\r\n\t\tthis.scope.trustUrl = (url) => Instance.$sce.trustAsUrl(url);\r\n\r\n\r\n this.scope.label = { of: \"из\", page: \"Страница\", rowsPerPage: \"Строк на странице\" };\r\n this.scope.menu = { hidden: false, hover: true, isOpen: false, selectedDirection: \"up\" };\r\n\r\n this.scope.openMenu = ($mdMenu, ev) => { $mdMenu.open(ev); };\r\n this.scope.load = () => this.load();\r\n this.scope.exportExcel = () => this.exportExcel();\r\n\r\n Instance.AppealService.GetAppealTypes()\r\n .then(appealTypes => {\r\n this.scope.appealTypes = appealTypes;\r\n if (Instance.$stateParams.filter) {\r\n this.scope.query = JSON.parse(Instance.$stateParams.filter);\r\n this.scope.daterange = {\r\n createdStart: new Date(moment(this.scope.query.createdStart).format(\"YYYY-MM-01\")),\r\n createdEnd: new Date(moment(this.scope.query.createdEnd).format(\"YYYY-MM-01\"))\r\n };\r\n }\r\n this.scope.isStarted = true;\r\n this.load();\r\n })\r\n .catch((e) => {\r\n Instance.ToastService.handle(e);\r\n });\r\n\r\n }\r\n\r\n load(): void {\r\n if (this.scope.isStarted) {\r\n this.scope.$parent.isLoading = true;\r\n const params: IAppealListParameters = JSON.parse(JSON.stringify(this.scope.query));\r\n params.offset = (params.page - 1) * params.limit;\r\n this.setLocation(params);\r\n params.typeIdList = params.typeIdList.map((s: any) => s.AppealTypeId);\r\n this.scope.promise = Instance.AppealService.GetAppealsList(params)\r\n .then(data => {\r\n this.scope.count = data.Count;\r\n this.scope.data = data.Data.map(appeal => {\r\n\t\t\t\t\t\t\t\t\t\t\tif (appeal.Record) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tappeal.Record.PathUrl = Instance.$sce.trustAsResourceUrl(`${Instance.StorageUri}${appeal.Record.Path}`);\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\treturn appeal;\r\n\t\t\t\t\t\t\t\t\t\t});\r\n })\r\n .finally(() => {\r\n\t\t\t\t\t\t\t\t\t\tInstance.$timeout(() => {\r\n\t\t\t\t\t\t\t\t\t\t\t$(\"audio\").on(\"play\", function() {\r\n\t\t\t\t\t\t\t\t\t\t\t\t$(\"audio\").not(this).each(function(index, audio: any) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\taudio.pause();\r\n\t\t\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t\t}, 0);\r\n\r\n\t\t\t\t\t\t\t\t\t\tthis.scope.$parent.isLoading = false;\r\n\t\t\t\t\t\t\t\t\t});\r\n }\r\n }\r\n\r\n getExportData( _data: any[], params: IAppealListParameters, tryCount: number = 0 ): ng.IPromise {\r\n return Instance.AppealService.GetAppealsList(params)\r\n .then(data => {\r\n _data = _data.concat(data.Data);\r\n this.scope.exportProgress = ((_data.length / data.Count) * 100).toFixed(2);\r\n if (data.Count === _data.length) {\r\n return _data;\r\n } else {\r\n params.offset = _data.length;\r\n if (tryCount > 10000) {\r\n return _data;\r\n }\r\n return this.getExportData(_data, params, tryCount++);\r\n }\r\n });\r\n }\r\n\r\n exportExcel(): void {\r\n this.scope.exportProgress = 0;\r\n this.scope.isExporting = true;\r\n const params: IAppealListParameters = JSON.parse(JSON.stringify(this.scope.query));\r\n params.offset = 0;\r\n params.typeIdList = params.typeIdList.map((s: any) => s.AppealTypeId);\r\n this.getExportData([], params)\r\n .then(list => {\r\n const props: IExportProperties[] = [\r\n { title: \"№ обращения\", name: \"AppealId\", width: 100, isVisible: true },\r\n { title: \"Тип Заявки\", name: \"AppealTypeName\", width: 175, isVisible: true },\r\n { title: \"Номер ЛС\", name: \"AccountNumber\", width: 175, isVisible: true },\r\n { title: \"Адрес\", name: \"Address\", width: 175, isVisible: true },\r\n { title: \"Почта\", name: \"Email\", width: 175, isVisible: true },\r\n { title: \"Номер телефона\", name: \"PhoneNumber\", width: 175, isVisible: true },\r\n { title: \"Причина обращения\", name: \"Reason\", width: 300, isVisible: true },\r\n { title: \"Дата обращения\", name: \"CreatedAt\", width: 300, isVisible: true },\r\n\r\n ];\r\n this.scope.exportProgress = 100;\r\n\r\n Instance.ExcelExportService.export(\r\n list.map(item => {\r\n return {\r\n AppealId: item.AppealId,\r\n AppealTypeName: item.AppealType.Name,\r\n AccountNumber: item.AccountNumber || \"-\",\r\n Address: item.Address || \"-\",\r\n Email: item.Email || \"-\",\r\n PhoneNumber: item.PhoneNumber || \"-\",\r\n Reason: item.Reason,\r\n CreatedAt: moment(item.CreatedAt).format(\"DD.MM.YYYY HH:mm\"),\r\n };\r\n }),\r\n props,\r\n `appeal-export-${moment().format(\"YYYYMMDDhhmmss\")}`\r\n );\r\n this.scope.isExporting = false;\r\n })\r\n .catch(() => {\r\n this.scope.isExporting = false;\r\n });\r\n }\r\n\r\n setLocation(params: IAppealListParameters): void {\r\n Instance.$location.search(\"filter\", JSON.stringify(params));\r\n\r\n this.scope.filterNumbers = 0;\r\n if (params.createdEnd && params.createdStart) {\r\n this.scope.filterNumbers++;\r\n }\r\n this.scope.filterNumbers += params.typeIdList.length;\r\n }\r\n\r\n}\r\n\r\nexport class AppealTableDirective {\r\n static getInstance($templateCache: ng.ITemplateCacheService, $stateParams: any, $http: ng.IHttpService,\r\n BackendUri: string, $mdDialog: any, $location: any, $q: any, AppealService: any, $timeout: any,\r\n ExcelExportService: ExcelExportService, ToastService: any, StorageUri: string, $sce: any\r\n ): any {\r\n return (Instance = new AppealTableDirective(\r\n $templateCache,\r\n $stateParams,\r\n $http,\r\n BackendUri,\r\n $mdDialog,\r\n $location,\r\n $q,\r\n AppealService,\r\n $timeout,\r\n ExcelExportService,\r\n ToastService,\r\n\t\t\tStorageUri,\r\n\t\t\t$sce\r\n ));\r\n }\r\n\r\n public restrict: string = \"E\";\r\n public scope = {\r\n isCallHandler: \"=?\"\r\n };\r\n public template: any;\r\n\r\n constructor(public $templateCache: ng.ITemplateCacheService, public $stateParams: any,\r\n public $http: ng.IHttpService, public BackendUri: string, public $mdDialog: any, public $location: any,\r\n public $q: ng.IQService, public AppealService: AppealService, public $timeout: ng.ITimeoutService,\r\n\t\tpublic ExcelExportService: ExcelExportService, public ToastService: ToastService, public StorageUri: string,\r\n\t\tpublic $sce: ng.ISCEService\r\n ) {\r\n this.template = $templateCache.get(\r\n \"site/detail/dispatcher/appeal/directives/appeal-table.directive.html\"\r\n );\r\n }\r\n\r\n link(scope: any, element: any, attr: any, controller: AppealTableController): any {\r\n controller.link(scope, element, attr);\r\n }\r\n\r\n controller(): any {\r\n return new AppealTableController();\r\n }\r\n}\r\n","/// \r\nimport { ToastService } from \"../../../../shared/services/toast.service\";\r\nimport { IExportProperties, ExcelExportService } from \"../../../../shared/services/excel-export.service\";\r\nimport { RepairRequestService } from \"../repair-request/repair-request.service\";\r\nimport { IRepairRequest} from \"../repair-request/repair-request.model\";\r\nimport { repairRequestLogbookType } from \"./report-propertes/repair-request-logbook\";\r\nimport { performersProps, performersType } from \"./report-propertes/performers\";\r\nimport {\r\n repairRequestType,\r\n repairRequestExpiredType,\r\n repairRequestNotExpiredType,\r\n repairRequestByAddress\r\n} from \"./report-propertes/repair-request\";\r\nimport { ChargesService } from \"../../charges/charges.service\";\r\n\r\ndeclare var moment: any;\r\nmoment.locale(\"ru\");\r\n\r\nexport interface IDispatcherReportScope extends ng.IScope {\r\n reportTypes: IReportTypes[];\r\n label: any;\r\n\r\n count: number;\r\n data: any[];\r\n query: IReportParameters;\r\n\r\n PerformersMapDefault: any;\r\n\r\n term: string;\r\n}\r\n\r\nexport interface IReportParameters {\r\n limit: number;\r\n page: number;\r\n from: string;\r\n to: string;\r\n type: IReportTypes;\r\n}\r\nexport interface IReportTypes {\r\n id: string;\r\n display: string;\r\n props: IExportProperties[];\r\n filter: any;\r\n strict?: boolean;\r\n}\r\n\r\nexport class DispatcherReportController {\r\n scope: IDispatcherReportScope;\r\n now: Date = new Date();\r\n lastYear: string = moment(this.now).subtract(12, \"month\").format(\"YYYY-MM-01T00:00:00.000Z\");\r\n lastMonth: string = moment(this.now).subtract(1, \"month\").format(\"YYYY-MM-01T00:00:00.000Z\");\r\n nextMonth: string = moment(this.now).add(1, \"month\").format(\"YYYY-MM-01T00:00:00.000Z\");\r\n\r\n constructor($scope: any, private $state: any, $stateParams: any, $mdDateLocale: ng.material.IDateLocaleProvider,\r\n private $templateCache: any, private ToastService: ToastService, private $http: ng.IHttpService, private BackendUri: string,\r\n private ExcelExportService: ExcelExportService, private RepairRequestService: RepairRequestService,\r\n private ChargesService: ChargesService\r\n ) {\r\n\t\tthis.scope = $scope;\r\n\t\tthis.scope.isLoading = true;\r\n this.scope.OGRN = $stateParams.ogrn;\r\n this.scope.type = $stateParams.type || null;\r\n this.scope.term = \"\";\r\n\r\n this.scope.query = {\r\n limit: 15,\r\n page: 1,\r\n from: this.lastYear,\r\n to: this.nextMonth,\r\n type: null\r\n };\r\n\r\n this.scope.daterange = {\r\n from: new Date(moment(this.lastMonth).format(\"YYYY-MM-01\")),\r\n to: new Date(moment(this.nextMonth).format(\"YYYY-MM-01\"))\r\n };\r\n\r\n\r\n this.scope.label = {\r\n of: \"из\",\r\n page: \"Страница\",\r\n rowsPerPage: \"Строк на странице\"\r\n };\r\n\r\n this.scope.reportTypes = [\r\n repairRequestLogbookType,\r\n performersType,\r\n repairRequestType,\r\n repairRequestExpiredType,\r\n repairRequestNotExpiredType,\r\n repairRequestByAddress\r\n ];\r\n\r\n\r\n this.scope.load = () => this.load();\r\n this.scope.selectedItemChange = (val) => this.selectedItemChange(val);\r\n this.scope.querySearch = (val) => this.querySearch(val);\r\n this.scope.exportExcel = () => this.exportExcel();\r\n this.RepairRequestService.GetRepairRequestStatuses()\r\n .then(statuses => {\r\n this.scope.PerformersMapDefault = {};\r\n let props: IExportProperties[] = angular.copy(performersProps);\r\n for (let status of statuses) {\r\n if (status.StatusId !== 0) {\r\n props.push({\r\n name: status.StatusId.toString(),\r\n title: status.Name,\r\n width: 150,\r\n widthInFile: 80,\r\n isVisible: true,\r\n type: \"string\"\r\n });\r\n this.scope.PerformersMapDefault[status.StatusId.toString()] = 0;\r\n }\r\n }\r\n props = props.concat(props.splice(2, 2));\r\n this.scope.reportTypes.forEach(type => {\r\n if (type.id === \"repairRequestPerformer\") {\r\n type.props = props;\r\n }\r\n });\r\n this.scope.repairRequestStatuses = statuses;\r\n this.onChange();\r\n this.scope.isLoading = false;\r\n });\r\n }\r\n\r\n onChange(): void {\r\n this.scope.$watch(\"query.type\", (from: any) => {\r\n if(from === void 0 || from === null) { return; }\r\n this.scope.data = [];\r\n this.scope.count = 0;\r\n this.load();\r\n });\r\n this.scope.$watch(\"daterange.from\", (from: any) => {\r\n if(from === void 0 || from === null) { return; }\r\n this.scope.query.from = moment(from).format(\"YYYY-MM-DDT00:00:00.000Z\");\r\n this.load();\r\n });\r\n this.scope.$watch(\"daterange.to\", (to: any) => {\r\n if(to === void 0 || to === null) { return; }\r\n this.scope.query.to = moment(to).format(\"YYYY-MM-DDT23:59:59.999Z\");\r\n this.load();\r\n });\r\n }\r\n\r\n selectedItemChange(item: any): void {\r\n if (item !== void 0) {\r\n this.scope.term = item.Address;\r\n } else {\r\n this.scope.term = \"\";\r\n }\r\n this.load();\r\n }\r\n\r\n querySearch(term: string): any {\r\n return this.ChargesService.GetChargesList({\r\n limit: 10,\r\n offset: 0,\r\n term: term\r\n }).then(response => response.Data);\r\n }\r\n\r\n exportExcel(): void {\r\n const name: string = this.scope.query.type.display;\r\n const props: IExportProperties[] = this.scope.query.type.props;\r\n const params: any = $.extend({}, this.scope.query.type.filter, {\r\n limit: this.scope.query.limit,\r\n page: 1,\r\n from: this.scope.query.from,\r\n to: this.scope.query.to,\r\n });\r\n if (this.scope.query.type.strict) {\r\n params.term = this.scope.term;\r\n params.strict = true;\r\n\t\t}\r\n\r\n this.scope.exportProgress = 0;\r\n this.scope.isExporting = true;\r\n\r\n this.getData([], params, this.scope.query.type.id, true)\r\n .then(list => {\r\n this.scope.exportProgress = 100;\r\n this.ExcelExportService.export( list, props, name );\r\n })\r\n .catch((error) => this.ToastService.handle(error))\r\n .finally(() => {\r\n this.scope.isExporting = false;\r\n });\r\n }\r\n\r\n load(): void {\r\n if (this.scope.query.type === null) { return; }\r\n this.scope.isLoading = true;\r\n\r\n const params: any = $.extend({}, this.scope.query.type.filter, {\r\n limit: this.scope.query.limit,\r\n page: 1,\r\n from: this.scope.query.from,\r\n to: this.scope.query.to\r\n });\r\n if (this.scope.query.type.strict) {\r\n params.term = this.scope.term;\r\n params.strict = true;\r\n }\r\n\r\n this.scope.promise = this.getData([], params, this.scope.query.type.id)\r\n .then((data) => this.scope.data = data)\r\n .catch((err) => this.ToastService.handle(err))\r\n .finally(() => this.scope.isLoading = false);\r\n }\r\n\r\n getData( _data: any[], params: any, typeID: string, isExport: boolean = false): ng.IPromise {\r\n try {\r\n switch (typeID) {\r\n case \"repairRequest\": return this.getRepairRequest(_data, params, isExport);\r\n case \"repairRequestLogbook\": return this.getRepairRequestLogbook(_data, params, isExport);\r\n case \"repairRequestPerformer\": {\r\n\t\t\t\t\tconst res = this.getRepairRequestPerformers(_data, params, isExport);\r\n\t\t\t\t\treturn res;\r\n\t\t\t\t}\r\n }\r\n } catch (err) {\r\n throw err;\r\n }\r\n }\r\n\r\n getRepairRequest(_data: any[], params: any, isExport: boolean, tryCount: number = 0): ng.IPromise {\r\n return this.RepairRequestService.GetRepairRequestList(params)\r\n .then(data => {\r\n _data = _data.concat(this.setDeadLineDate(data.Data));\r\n this.scope.exportProgress = ((_data.length / data.Count) * 100).toFixed(2);\r\n if (!isExport || data.Count === _data.length) {\r\n this.scope.count = data.Count;\r\n _data = this.mapRepairRequest(_data);\r\n return _data;\r\n } else {\r\n params.offset = _data.length;\r\n if (tryCount > 10000) {\r\n return _data;\r\n }\r\n return this.getRepairRequest(_data, params, isExport, tryCount++);\r\n }\r\n });\r\n }\r\n getRepairRequestPerformers(_data: any[], params: any, isExport: boolean, tryCount: number = 0): ng.IPromise {\r\n return this.RepairRequestService.GetRepairRequestList(params)\r\n .then(data => {\r\n _data = _data.concat(this.setDeadLineDate(data.Data));\r\n this.scope.exportProgress = ((_data.length / data.Count) * 100).toFixed(2);\r\n if (!isExport || data.Count === _data.length) {\r\n this.scope.count = data.Count;\r\n _data = this.mapRepairRequestPerformers(_data);\r\n return _data;\r\n } else {\r\n params.offset = _data.length;\r\n if (tryCount > 10000) {\r\n return _data;\r\n }\r\n return this.getRepairRequestPerformers(_data, params, isExport, tryCount++);\r\n }\r\n });\r\n }\r\n\r\n protected setDeadLineDate(data: IRepairRequest[]): IRepairRequest[] {\r\n return data.map(x => {\r\n if (x.StatusId === 4 || x.StatusId === 5) {\r\n x.RepairRequestDeadLine = {\r\n date: null,\r\n text: x.StatusId === 4 ? \"Задача закрыта\" : \"Задача отклонена\",\r\n isExpired: false\r\n };\r\n return x;\r\n }\r\n if (x.RepairRequestType) {\r\n if (x.StartedAt) {\r\n const StartedAt: Date = moment(new Date(x.StartedAt)).add(x.RepairRequestType.DeadLine, \"minutes\");\r\n x.RepairRequestDeadLine = {\r\n date: StartedAt,\r\n text: moment(StartedAt).fromNow(),\r\n isExpired: new Date() > StartedAt\r\n };\r\n } else {\r\n x.RepairRequestDeadLine = {\r\n date: new Date(),\r\n text: \"Задача еще не в работе\",\r\n isExpired: false\r\n };\r\n }\r\n } else {\r\n x.RepairRequestDeadLine = {\r\n date: null,\r\n text: \"Нет информации\",\r\n isExpired: false\r\n };\r\n }\r\n return x;\r\n });\r\n }\r\n\r\n protected mapRepairRequest(_data: any[]): any {\r\n return _data.map(item => {\r\n const AppealsList: string = item.Appeals.map(a => {\r\n let info: string[] = [];\r\n if (a.Address) {\r\n info.push(`Адрес: ${a.Address}`);\r\n }\r\n if (a.PhoneNumber) {\r\n info.push(`Номер телефона: ${a.PhoneNumber}`);\r\n }\r\n if (a.Email) {\r\n info.push(`Почта: ${a.Email}`);\r\n }\r\n return `Причина: ${a.Reason}, ${info.join(`\r\n `)}`;\r\n }).join(\"; \");\r\n\r\n return {\r\n ShortRepairRequestId: item.ShortRepairRequestId,\r\n StatusName: item.Status.Name,\r\n CreatedAt: moment(item.CreatedAt).format(\"DD.MM.YYYY\"),\r\n RepairRequestTypeName: item.RepairRequestType ? item.RepairRequestType.Name : \"-\",\r\n RepairRequestDeadLineText: item.RepairRequestDeadLine.text,\r\n Person: item.Performer ? item.Performer.Name : \"-\",\r\n Address: item.Address || \"Адрес не указан\",\r\n Title: item.Title || \"Заголовок отсутствует\",\r\n Description: item.Description || \"Описание отсутствует\",\r\n OGRN: item.OGRN,\r\n AppealsList: AppealsList\r\n };\r\n });\r\n }\r\n\r\n protected mapRepairRequestPerformers(_data: any[]): any {\r\n let tmp: any = _data.filter((rep: IRepairRequest) => rep.Performer)\r\n .map((rep: IRepairRequest) => {\r\n return {\r\n Id: rep.Performer.PerformerId,\r\n Name: rep.Performer.Name,\r\n IsExpired: rep.RepairRequestDeadLine.isExpired,\r\n StatusId: rep.StatusId\r\n };\r\n })\r\n .filter(item => item.StatusId !== 0)\r\n .reduce((prev, cur) => {\r\n let tmp: any = {};\r\n if (!prev[cur.Id]) {\r\n tmp = {\r\n Name: cur.Name,\r\n CountTotal: 1,\r\n CountExpired: cur.StatusId === 4 ? cur.IsExpired ? 1 : 0 : 0,\r\n CountSuccess: cur.StatusId === 4 ? cur.IsExpired ? 0 : 1 : 0,\r\n };\r\n prev[cur.Id] = $.extend({}, this.scope.PerformersMapDefault, tmp);\r\n } else {\r\n tmp = {\r\n Name: cur.Name,\r\n CountTotal: prev[cur.Id].CountTotal + 1,\r\n CountExpired: prev[cur.Id].CountExpired + (cur.StatusId === 4 ? cur.IsExpired ? 1 : 0 : 0),\r\n CountSuccess: prev[cur.Id].CountSuccess + (cur.StatusId === 4 ? cur.IsExpired ? 0 : 1 : 0),\r\n };\r\n prev[cur.Id] = $.extend({}, prev[cur.Id], tmp);\r\n }\r\n prev[cur.Id][cur.StatusId]++;\r\n return prev;\r\n }, {});\r\n\r\n return Object.keys(tmp).map(key => tmp[key]);\r\n }\r\n\r\n getRepairRequestLogbook(_data: any[], params: any, isExport: boolean): ng.IPromise {\r\n return this.$http.get(`${this.BackendUri}/dispatcher/report/journal`, {\r\n params: {\r\n From: params.from,\r\n To: params.to,\r\n IsDone: false\r\n }\r\n }).then((response) => {\r\n if (isExport) {\r\n return response.data;\r\n } else {\r\n this.scope.count = response.data.length;\r\n return response.data.slice(\r\n params.limit * (params.page - 1),\r\n params.limit * params.page,\r\n );\r\n }\r\n });\r\n }\r\n}\r\n","import { IExportProperties } from \"../../../../../shared/services/excel-export.service\";\r\nimport { RepairRequestExpiredState } from \"../../repair-request/repair-request.model\";\r\nimport { IReportTypes } from \"../dispatcher-report.controller\";\r\n\r\nexport const performersProps: IExportProperties[] = [\r\n { title: \"Исполнитель\", name: \"Name\", \t\t\twidth: 250, \twidthInFile: 260, isVisible: true, type: \"string\"},\r\n { title: \"Количество всего\", name: \"CountTotal\", \twidth: 150, \twidthInFile: 80, isVisible: true, type: \"string\"},\r\n { title: \"Закрыто (просрочено)\", name: \"CountExpired\", \twidth: 200, \twidthInFile: 80, isVisible: true, type: \"string\"},\r\n { title: \"Закрыто (сдано вовремя)\", name: \"CountSuccess\", \twidth: 200, \twidthInFile: 80, isVisible: true, type: \"string\"},\r\n];\r\n\r\nexport const performersType: IReportTypes = {\r\n id: \"repairRequestPerformer\",\r\n display: \"Статистика по работникам\",\r\n props: performersProps,\r\n filter: {\r\n orderBy: \"-CreatedAt\",\r\n term: \"\",\r\n typeIdList: [],\r\n statusList: [],\r\n expired: RepairRequestExpiredState.all\r\n }\r\n};\r\n","import { IExportProperties } from \"../../../../../shared/services/excel-export.service\";\r\nimport { IReportTypes } from \"../dispatcher-report.controller\";\r\n\r\nexport const repairRequestLogbookProps: IExportProperties[] = [\r\n { title: \"Дата\", name: \"Date\", \t width: 75, widthInFile: 70, isVisible: true, type: \"date\"},\r\n { title: \"Адрес\", name: \"Address\", \t width: 100, widthInFile: 180, isVisible: true, type: \"general\"},\r\n { title: \"Неисправность или повреждение\", name: \"Title\", \t width: 200, widthInFile: 180, isVisible: true, type: \"general\"},\r\n { title: \"Дата исполнения\", name: \"FinishedAt\", \t width: 100, widthInFile: 70, isVisible: true, type: \"date\"},\r\n { title: \"Сотрудник\", \t\t\tname: \"PerformerName\", \t width: 100, widthInFile: 100, isVisible: false, type: \"string\"},\r\n { title: \"Расписка работавшего\", name: \"PerformerSignature\", width: 100, widthInFile: 100, isVisible: true, type: \"string\"}\r\n];\r\n\r\nexport const repairRequestLogbookType: IReportTypes = {\r\n id: \"repairRequestLogbook\",\r\n display: \"Журнал учёта заявок населения\",\r\n props: repairRequestLogbookProps,\r\n filter: {}\r\n};\r\n","import { IExportProperties } from \"../../../../../shared/services/excel-export.service\";\r\nimport { RepairRequestExpiredState } from \"../../repair-request/repair-request.model\";\r\nimport { IReportTypes } from \"../dispatcher-report.controller\";\r\n\r\nexport const repairRequestProps: IExportProperties[] = [\r\n { title: \"№ Заявки\", name: \"ShortRepairRequestId\", width: 100, widthInFile: 40, isVisible: true, type: \"string\" },\r\n { title: \"Статус\", name: \"StatusName\", width: 160, widthInFile: 65, isVisible: true, type: \"string\" },\r\n { title: \"Дата создания\", name: \"CreatedAt\", width: 160, widthInFile: 65, isVisible: true, type: \"string\" },\r\n { title: \"Тип\", name: \"RepairRequestTypeName\", width: 200, widthInFile: 70, isVisible: true, type: \"string\" },\r\n { title: \"Регламентный срок\", name: \"RepairRequestDeadLineText\", width: 175, widthInFile: 80, isVisible: true, type: \"string\" },\r\n { title: \"Исполнитель\", name: \"Person\", width: 145, widthInFile: 70, isVisible: true, type: \"string\" },\r\n { title: \"Адрес\", name: \"Address\", width: 300, widthInFile: 70, isVisible: true, type: \"string\" },\r\n { title: \"Заголовок\", name: \"Title\", width: 300, widthInFile: 100, isVisible: true, type: \"general\" },\r\n { title: \"Описание\", name: \"Description\", width: 300, widthInFile: 120, isVisible: true, type: \"general\" },\r\n { title: \"ОГРН\", name: \"OGRN\", width: 160, widthInFile: 100, isVisible: true, type: \"string\" },\r\n { title: \"Заявители\", name: \"AppealsList\", width: 500, widthInFile: 120, isVisible: true, type: \"general\" },\r\n];\r\n\r\nexport const repairRequestType: IReportTypes = {\r\n id: \"repairRequest\",\r\n display: \"Список всех заявок\",\r\n props: repairRequestProps,\r\n filter: {\r\n orderBy: \"-CreatedAt\",\r\n term: \"\",\r\n typeIdList: [],\r\n statusList: [],\r\n expired: RepairRequestExpiredState.all\r\n }\r\n};\r\nexport const repairRequestExpiredType: IReportTypes = {\r\n id: \"repairRequest\",\r\n display: \"Список просроченных заявок\",\r\n props: repairRequestProps,\r\n filter: {\r\n orderBy: \"-CreatedAt\",\r\n term: \"\",\r\n typeIdList: [],\r\n statusList: [],\r\n expired: RepairRequestExpiredState.isExpired\r\n }\r\n};\r\nexport const repairRequestNotExpiredType: IReportTypes = {\r\n id: \"repairRequest\",\r\n display: \"Список непросроченных заявок\",\r\n props: repairRequestProps,\r\n filter: {\r\n orderBy: \"-CreatedAt\",\r\n term: \"\",\r\n typeIdList: [],\r\n statusList: [],\r\n expired: RepairRequestExpiredState.notExpired\r\n }\r\n};\r\nexport const repairRequestByAddress: IReportTypes = {\r\n id: \"repairRequest\",\r\n display: \"Список заявок по адресу\",\r\n props: repairRequestProps,\r\n filter: {\r\n orderBy: \"-CreatedAt\",\r\n term: \"\",\r\n typeIdList: [],\r\n statusList: [],\r\n expired: RepairRequestExpiredState.notExpired\r\n },\r\n strict: true\r\n};\r\n","/// \r\nimport { ToastService } from \"../../../shared/services/toast.service\";\r\n\r\ndeclare var moment: any;\r\nmoment.locale(\"ru\");\r\n\r\nexport interface IDispatcherScope extends ng.IScope {\r\n\r\n}\r\n\r\nexport class DispatcherController {\r\n\tscope: IDispatcherScope;\r\n\r\n constructor($scope: any, $stateParams: any, $mdDateLocale: ng.material.IDateLocaleProvider,\r\n private $mdDialog: ng.material.IDialogService, private $templateCache: any, private ToastService: ToastService\r\n ) {\r\n\t\tthis.scope = $scope;\r\n this.scope.OGRN = $stateParams.ogrn;\r\n }\r\n}\r\n","/// \r\n\r\nimport { MissedRecordService, IMissedRecord } from \"../../../../shared/services/missed-record.service\";\r\nimport { ToastService } from \"../../../../shared/services/toast.service\";\r\n\r\ndeclare var moment: any;\r\nmoment.locale(\"ru\");\r\n\r\nexport interface IMissedRecordScope extends ng.IScope {\r\n query: IQueryMissedRecord;\r\n promise: any;\r\n label: any;\r\n load: any;\r\n\r\n allData: IMissedRecord[];\r\n data: IMissedRecord[];\r\n count: number;\r\n}\r\n\r\nexport interface IQueryMissedRecord {\r\n limit: number;\r\n\tpage: number;\r\n\torderBy?: string;\r\n}\r\n\r\nexport class MissedRecordController {\r\n\tscope: IMissedRecordScope;\r\n\r\n constructor($scope: any, private $rootScope: ng.IRootScopeService, private $state: any, $stateParams: any,\r\n\t\tprivate MissedRecordService: MissedRecordService, private ToastService: ToastService, StorageUri: string,\r\n\t\tpublic $timeout: ng.ITimeoutService\r\n ) {\r\n\t\tthis.scope = $scope;\r\n this.scope.OGRN = $stateParams.ogrn;\r\n this.scope.StorageUri = StorageUri;\r\n this.scope.rnd = Math.random();\r\n this.scope.isLoading = true;\r\n\r\n this.scope.query = {\r\n limit: 10,\r\n\t\t\tpage: 1,\r\n\t\t\torderBy: \"CallTimeDate\"\r\n };\r\n\r\n this.scope.label = {\r\n of: \"из\",\r\n page: \"Страница\",\r\n rowsPerPage: \"Строк на странице\"\r\n };\r\n\r\n this.scope.load = () => this.load();\r\n this.scope.delete = (performer) => this.Delete(performer);\r\n this.init();\r\n }\r\n\r\n init(): any {\r\n this.scope.isLoading = true;\r\n this.scope.promise =\r\n this.load().then(data => {\r\n this.$rootScope.$on(\"MissedRecordService:Update\", (\r\n $event: any,\r\n newRecords: IMissedRecord[],\r\n forDelete: IMissedRecord[],\r\n count: number\r\n ) => {\r\n this.load();\r\n });\r\n })\r\n .catch(err => this.ToastService.handle(err))\r\n .finally(() => this.scope.isLoading = false);\r\n }\r\n\r\n load(): ng.IPromise {\r\n return this.MissedRecordService.getPageList(this.scope.query.limit, this.scope.query.page, this.scope.query.orderBy)\r\n .then(({ data, count, page }) => {\r\n this.scope.query.page = page;\r\n this.scope.data = data;\r\n this.scope.count = count;\r\n return data;\r\n\t\t\t})\r\n\t\t\t.finally(() => {\r\n\t\t\t\tthis.$timeout(() => {\r\n\t\t\t\t\t$(\"audio\").on(\"play\", function() {\r\n\t\t\t\t\t\t$(\"audio\").not(this).each(function(index, audio: any) {\r\n\t\t\t\t\t\t\taudio.pause();\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t});\r\n\t\t\t\t}, 0);\r\n\t\t\t\tthis.scope.isLoading = false;\r\n\t\t\t});\r\n }\r\n\r\n Delete(record: IMissedRecord): any {\r\n if (this.scope.isLoading) { return; }\r\n this.scope.isLoading = true;\r\n this.MissedRecordService.deleteRecord(record.RecordId)\r\n .then(() => {\r\n this.load();\r\n })\r\n .finally(() => this.scope.isLoading = false);\r\n }\r\n}\r\n","import './router.js';\r\nimport { DispatcherController } from './dispatcher.controller';\r\nimport { RepairRequestController } from './repair-request/repair-request.controller';\r\nimport { NewAppealController } from './new-appeal/new-appeal.controller';\r\nimport { AppealController } from './appeal/appeal.controller';\r\nimport { AppealDetailsController } from './appeal/appeal.details.controller';\r\nimport { PerformersController } from './performers/performers.controller';\r\nimport { RepairRequestTypesController } from './repiar-request-types/repiar-request-types.controller';\r\nimport { DispatcherReportController } from './dispatcher-report/dispatcher-report.controller';\r\nimport { MissedRecordController } from './missed-record/missed-record.controller';\r\nimport { RecordsController } from './records/records.controller';\r\n\r\nimport { RepairRequestDialogController } from './repair-request/dialogs/rapair-request.dialog'\r\nimport { PrintDialogController } from './repair-request/dialogs/print.dialog';\r\nimport { RepairRequestStatusDialogController } from './repair-request/dialogs/rapair-request-status.dialog'\r\nimport { LinkAppealToRecordDialogController } from './appeal/dialogs/link-appeal-to-record.dialog';\r\n\r\nimport { RepairRequestService } from './repair-request/repair-request.service';\r\nimport { AppealService } from './appeal/appeal.service';\r\nimport { RecordsService } from './records/records.service';\r\n\r\nimport { RepairRequestTableDirective } from './repair-request/directives/repair-request-table.directive';\r\nimport { RepairRequestListDirective } from './repair-request/directives/repair-request-list.directive';\r\nimport { AppealTableDirective } from './appeal/directives/appeal-table.directive';\r\nimport { RecordsTableDirective } from './records/directives/records-table.directive';\r\n\r\nimport { RecordsBottomSheetController } from './records/bottom-sheet/records.bottom-sheet';\r\n\r\nangular.module('admin')\r\n .controller('DispatcherController', DispatcherController)\r\n .controller('RepairRequestController', RepairRequestController)\r\n .controller('NewAppealController', NewAppealController)\r\n .controller('AppealController', AppealController)\r\n .controller('AppealDetailsController', AppealDetailsController)\r\n .controller('PerformersController', PerformersController)\r\n .controller('RepairRequestTypesController', RepairRequestTypesController)\r\n .controller('DispatcherReportController', DispatcherReportController)\r\n .controller('MissedRecordController', MissedRecordController)\r\n .controller('RecordsController', RecordsController)\r\n\r\n .controller('RepairRequestDialogController', RepairRequestDialogController)\r\n .controller('PrintDialogController', PrintDialogController)\r\n .controller('RepairRequestStatusDialogController', RepairRequestStatusDialogController)\r\n .controller('LinkAppealToRecordDialogController', LinkAppealToRecordDialogController)\r\n\r\n .service('RepairRequestService', RepairRequestService)\r\n .service('AppealService', AppealService)\r\n .service('RecordsService', RecordsService)\r\n\r\n .directive('repairRequestTable', RepairRequestTableDirective.getInstance)\r\n .directive('repairRequestList', RepairRequestListDirective.getInstance)\r\n .directive('appealTable', AppealTableDirective.getInstance)\r\n\t.directive('recordsTable', RecordsTableDirective.getInstance)\r\n\r\n .controller('RecordsBottomSheetController', RecordsBottomSheetController)\r\n","/// \r\nimport { IAppeal, ICreateAppealDTO, ICreateEventDTO } from \"../appeal/appeal.model\";\r\nimport {\r\n IRepairRequest,\r\n IRepairRequestEventType,\r\n RepairRequestExpiredState,\r\n IRepairRequestStatus\r\n} from \"../repair-request/repair-request.model\";\r\nimport { IChargesAccount } from \"./../../charges/charges.service\";\r\n\r\nimport { ChargesService } from \"../../charges/charges.service\";\r\nimport { ToastService } from \"../../../../shared/services/toast.service\";\r\nimport { RepairRequestService } from \"./../repair-request/repair-request.service\";\r\nimport { AppealService } from \"../appeal/appeal.service\";\r\n\r\ndeclare var moment: any;\r\nmoment.locale(\"ru\");\r\n\r\nexport interface INewAppealScope extends ng.IScope {\r\n OGRN: string;\r\n type: string;\r\n\r\n selectedAccount: {\r\n ChargeRegistryEntryId?: any,\r\n ChargeRegistryId?: any,\r\n AccountNumber?: any,\r\n ChargeValue?: any,\r\n Address?: any,\r\n OGRN?: any,\r\n Month?: any,\r\n Year?: any,\r\n isNew?: any\r\n };\r\n appeal: ICreateAppealDTO;\r\n\r\n eventTypeDesc: { [key: number]: string };\r\n statuses: { [key: number]: string };\r\n\r\n isLoading: boolean;\r\n\r\n changeTypeOfAppeal(type: string): void;\r\n addRepairRequest($event: any): void;\r\n cancelEvent(index: number): void;\r\n saveAppeal(): void;\r\n\r\n repairRequestLists: any;\r\n\r\n newAccountNumber(): void;\r\n isNewAddress: boolean;\r\n}\r\n\r\nexport class NewAppealController {\r\n scope: INewAppealScope;\r\n\r\n now: Date = new Date();\r\n lastYear: string = moment(this.now).subtract(12, \"month\").format(\"YYYY-MM-01T00:00:00.000Z\");\r\n lastMonth: string = moment(this.now).subtract(1, \"month\").format(\"YYYY-MM-01T00:00:00.000Z\");\r\n nextMonth: string = moment(this.now).add(1, \"month\").format(\"YYYY-MM-01T00:00:00.000Z\");\r\n\r\n constructor($scope: any, private $state: any, $stateParams: any, $mdDateLocale: ng.material.IDateLocaleProvider,\r\n private $location: ng.ILocationService, private ToastService: ToastService, private $q: ng.IQService, $window: ng.IWindowService,\r\n private ChargesService: ChargesService, private RepairRequestService: RepairRequestService, private AppealService: AppealService\r\n ) {\r\n\t\tthis.scope = $scope;\r\n this.scope.isLoading = true;\r\n this.scope.isNewAddress = false;\r\n\r\n this.scope.OGRN = $stateParams.ogrn;\r\n this.scope.type = $stateParams.type || \"phone\";\r\n\r\n this.scope.repairRequestLists = {\r\n last: {\r\n headerTitle: \"Последние заявки\",\r\n visible: true,\r\n query: {\r\n limit: 12,\r\n page: 1,\r\n offset: 0,\r\n orderBy: \"-LastUpdate\",\r\n term: \"\",\r\n typeIdList: [],\r\n statusList: [\"1\", \"2\", \"3\", \"4\", \"5\"],\r\n createdStart: this.lastYear,\r\n createdEnd: this.nextMonth,\r\n expired: RepairRequestExpiredState.all,\r\n strict: true\r\n }\r\n },\r\n forAddress: {\r\n headerTitle: \"Заявки по адресу / ЛС\",\r\n visible: false,\r\n query: {\r\n limit: 6,\r\n page: 1,\r\n offset: 0,\r\n orderBy: \"-LastUpdate\",\r\n term: \"\",\r\n typeIdList: [],\r\n statusList: [\"1\", \"2\", \"3\", \"4\", \"5\"],\r\n createdStart: this.lastYear,\r\n createdEnd: this.nextMonth,\r\n expired: RepairRequestExpiredState.all,\r\n strict: true\r\n }\r\n }\r\n };\r\n this.countListSize();\r\n\r\n this.scope.appeal = {\r\n AccountNumber: \"\",\r\n Address: \"\",\r\n Events: [],\r\n PhoneNumber: null,\r\n Email: null,\r\n AppealTypeId: \"5cfeaa40-d1f6-11e8-880a-00259009ea5e\"\r\n };\r\n this.scope.appealJSON = JSON.stringify(this.scope.appeal);\r\n this.scope.changeTypeOfAppeal = (type) => {\r\n this.scope.type = type;\r\n this.$location.search(\"type\", type);\r\n };\r\n\r\n this.scope.onAccountChange = (val) => this.onAccountChange(val);\r\n this.scope.addRepairRequest = ($event) => this.addRepairRequest($event);\r\n this.scope.cancelEvent = (index) => this.cancelEvent(index);\r\n this.scope.saveAppeal = () => this.saveAppeal();\r\n\r\n this.scope.$watch(\"source\", (source: string) => {\r\n if (source) {\r\n switch (this.scope.type) {\r\n case \"phone\": {\r\n this.scope.appeal.PhoneNumber = source;\r\n break;\r\n }\r\n case \"mail\": {\r\n this.scope.appeal.Email = source;\r\n break;\r\n }\r\n default: {\r\n this.scope.type = \"other\";\r\n }\r\n }\r\n }\r\n });\r\n\r\n this.scope.$on(\"LK:RepairRequestEvent:Add\", (\r\n $event: any,\r\n repairRequest: IRepairRequest,\r\n eventType: IRepairRequestEventType,\r\n options?: { activeState: IRepairRequestStatus, comment: string }\r\n ) => {\r\n let IdFrom: any = repairRequest.Status.StatusId;\r\n let IdTo: any = angular.copy(IdFrom);\r\n let comment: any = null;\r\n\r\n if (options && options.activeState) {\r\n repairRequest.StatusId = IdTo = options.activeState.StatusId;\r\n }\r\n if (options && options.comment) {\r\n comment = options.comment;\r\n }\r\n\r\n this.scope.appeal.Events.push({\r\n\r\n RepairRequest: repairRequest,\r\n CallbackType: eventType.IsNeedCallbackType ? this.scope.source : null,\r\n RepairRequestEventType: eventType,\r\n\r\n RepairRequestId: repairRequest.RepairRequestId,\r\n RepairRequestEventTypeId: eventType.RepairRequestEventTypeId,\r\n Comment: comment,\r\n IdFrom: IdFrom,\r\n IdTo: IdTo\r\n\r\n });\r\n });\r\n\r\n $($window).bind(\"resize\", () => this.countListSize(false));\r\n\r\n $scope.$on(\"$stateChangeStart\", ( event, next, current ) => {\r\n if (next.controller !== \"NewAppealController\" && this.scope.appealJSON !== JSON.stringify(this.scope.appeal)) {\r\n var answer: any = confirm(\"Вы хотите покинуть страницу без сохранения. Вы уверены?\");\r\n if (!answer) {\r\n event.preventDefault();\r\n }\r\n }\r\n });\r\n\r\n this.scope.eventTypeDesc = {};\r\n this.scope.statuses = {};\r\n this.RepairRequestService.GetRepairRequestEventTypes()\r\n .then(types => {\r\n this.scope.eventTypeDesc = types.reduce((prev: { [key: number]: string }, val) => {\r\n prev[val.RepairRequestEventTypeId] = val.Name;\r\n return prev;\r\n }, {});\r\n return this.AppealService.GetAppealTypes();\r\n })\r\n .then(appealTypes => {\r\n this.scope.appealTypes = appealTypes;\r\n this.scope.appeal.AppealTypeId = appealTypes[0].AppealTypeId;\r\n return this.RepairRequestService.GetRepairRequestStatuses();\r\n })\r\n .then(statuses => {\r\n this.scope.statuses = statuses.reduce((prev: { [key: number]: string }, val) => {\r\n prev[val.StatusId] = val.Name;\r\n return prev;\r\n }, {});\r\n })\r\n .finally(() => this.scope.isLoading = false);\r\n }\r\n\r\n countListSize(isDigest: boolean = true): void {\r\n let repairRequestListHeight: number = $(\"#repair-request-list\").innerHeight();\r\n let limit: number = Math.floor((repairRequestListHeight - 82) / (68));\r\n if (this.scope.repairRequestLists.forAddress.visible) {\r\n if (limit <= 8) {\r\n this.scope.repairRequestLists.last.query.limit = 4;\r\n this.scope.repairRequestLists.forAddress.query.limit = 4;\r\n } else {\r\n this.scope.repairRequestLists.last.query.limit = limit - 4;\r\n this.scope.repairRequestLists.forAddress.query.limit = 4;\r\n }\r\n } else {\r\n this.scope.repairRequestLists.last.query.limit = limit;\r\n }\r\n\r\n this.scope.repairRequestLists.last.query = angular.copy(\r\n this.scope.repairRequestLists.last.query\r\n );\r\n this.scope.repairRequestLists.forAddress.query = angular.copy(\r\n this.scope.repairRequestLists.forAddress.query\r\n );\r\n if (!isDigest) {\r\n this.scope.$digest();\r\n }\r\n }\r\n\r\n onAccountChange(item: any): void {\r\n if (item.AccountNumber !== \"\") {\r\n this.scope.appeal.AccountNumber = item.AccountNumber;\r\n this.scope.appeal.Address = item.Address;\r\n\r\n this.scope.repairRequestLists.forAddress.visible = true;\r\n this.scope.repairRequestLists.forAddress.query.term = item.Address;\r\n this.countListSize();\r\n } else {\r\n this.scope.appeal.AccountNumber = \"\";\r\n this.scope.appeal.Address = \"\";\r\n\r\n this.scope.repairRequestLists.forAddress.visible = false;\r\n this.countListSize();\r\n }\r\n }\r\n\r\n addRepairRequest($event: any): void {\r\n this.scope.isLoading = true;\r\n let createEventTypes: IRepairRequestEventType;\r\n this.RepairRequestService.GetRepairRequestEventTypes()\r\n .then(list => {\r\n createEventTypes = list.filter(i => i.IsCreateRepairRequest)[0];\r\n return this.RepairRequestService.CreateRepairRequest();\r\n })\r\n .then((data) => {\r\n return this.RepairRequestService.showRepairRequest(\r\n $event,\r\n data.RepairRequestId,\r\n {\r\n isEdit: true,\r\n isCreate: true,\r\n address: this.scope.appeal && this.scope.appeal.Address ?\r\n this.scope.appeal.Address :\r\n undefined\r\n }\r\n );\r\n })\r\n .then((data) => {\r\n data.StatusId = 1;\r\n this.scope.appeal.Events.push({\r\n RepairRequest: data,\r\n CallbackType: this.scope.source || \"\",\r\n RepairRequestEventType: createEventTypes,\r\n\r\n RepairRequestId: data.RepairRequestId,\r\n RepairRequestEventTypeId: createEventTypes.RepairRequestEventTypeId,\r\n Comment: null,\r\n IdFrom: 0,\r\n IdTo: 1\r\n });\r\n })\r\n .catch(err => {\r\n\t\t\t\tif (err) {\r\n\t\t\t\t\tif (err.status && err.status === 403) {\r\n\t\t\t\t\t\tthis.ToastService.show(\"Нет прав!\", this.ToastService.status.warning);\r\n\t\t\t\t\t} else if ((err.status && err.status !== 403) || (!err.RepairRequestId && (err.message || err.Message))) {\r\n\t\t\t\t\t\tthis.ToastService.handle(err);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n })\r\n .finally(() => this.scope.isLoading = false);\r\n }\r\n\r\n cancelEvent(index: number): void {\r\n this.scope.appeal.Events.splice(index, 1);\r\n }\r\n\r\n saveAppeal(): void {\r\n if (!this.checkCallbackType()) {\r\n this.ToastService.show(\"Введите способ обратной связи\", this.ToastService.status.alert);\r\n return;\r\n }\r\n this.scope.appeal.RepairRequestList = this.scope.appeal.Events.map(ev => {\r\n return {\r\n RepairRequest: ev.RepairRequest,\r\n CallbackType: ev.CallbackType\r\n };\r\n });\r\n\r\n const newAppeal: ICreateAppealDTO = angular.copy(this.scope.appeal);\r\n newAppeal.Events = newAppeal.Events.map(ev => {\r\n delete ev.RepairRequest;\r\n delete ev.CallbackType;\r\n return ev;\r\n });\r\n\r\n this.AppealService.CreateAppeal(newAppeal)\r\n .then(data => {\r\n this.ToastService.show(`Обращение успешно создано`, this.ToastService.status.success);\r\n this.$state.reload();\r\n })\r\n .catch(error => {\r\n this.ToastService.handle(error);\r\n });\r\n }\r\n\r\n checkCallbackType(): boolean {\r\n for(let event of this.scope.appeal.Events) {\r\n if (\r\n event.RepairRequestEventType && event.RepairRequestEventType.IsNeedCallbackType &&\r\n ( !event.CallbackType || event.CallbackType === \"\" )\r\n ) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n}\r\n","/// \r\nimport { ToastService } from \"../../../../shared/services/toast.service\";\r\nimport { RepairRequestService } from \"../repair-request/repair-request.service\";\r\nimport { IRepairRequestPerformer } from \"../repair-request/repair-request.model\";\r\n\r\ndeclare var moment: any;\r\nmoment.locale(\"ru\");\r\n\r\nexport interface IPerformersScope extends ng.IScope {\r\n query: IQueryPerformers;\r\n promise: any;\r\n\tlabel: any;\r\n\tautoLimit: boolean;\r\n\r\n load: any;\r\n onEnterLoad: any;\r\n\r\n allData: IRepairRequestPerformer[];\r\n data: IRepairRequestPerformer[];\r\n count: number;\r\n\r\n newName: string;\r\n PerformerIdForUpdate: string;\r\n PerformerNameForUpdate: string;\r\n}\r\n\r\nexport interface IQueryPerformers {\r\n limit: number;\r\n page: number;\r\n}\r\n\r\nexport class PerformersController {\r\n\tscope: IPerformersScope;\r\n\r\n\tconstructor($scope: any, $stateParams: any, private RepairRequestService: RepairRequestService,\r\n\t\tprivate $timeout: ng.ITimeoutService, private $window: ng.IWindowService,\r\n\t\tprivate $mdDialog: ng.material.IDialogService, private ToastService: ToastService,\r\n\t\tprivate $q: ng.IQService\r\n ) {\r\n\t\tthis.scope = $scope;\r\n this.scope.OGRN = $stateParams.ogrn;\r\n this.scope.rnd = Math.random();\r\n\t\tthis.scope.isLoading = true;\r\n\t\tthis.scope.autoLimit = true;\r\n this.scope.PerformerIdForUpdate = null;\r\n this.scope.PerformerNameForUpdate = null;\r\n\r\n this.scope.query = {\r\n limit: 10,\r\n page: 1,\r\n };\r\n\r\n this.scope.label = {\r\n of: \"из\",\r\n page: \"Страница\",\r\n rowsPerPage: \"Строк на странице\"\r\n };\r\n\r\n this.scope.load = () => this.load();\r\n this.scope.delete = (performer: IRepairRequestPerformer) => {\r\n\t\t\tconst confirm: ng.material.IConfirmDialog = this.$mdDialog.confirm()\r\n\t\t\t\t.title(\"Удаление\").ariaLabel(\"Удаление\")\r\n\t\t\t\t.textContent(\"Вы точно хотите удалить исполнителя?\")\r\n\t\t\t\t.ok(\"Да, удалить\").cancel(\"Отмена\");\r\n\t\t\tthis.checkUpdating(performer)\r\n\t\t\t\t.then(() => this.$mdDialog.show(confirm))\r\n\t\t\t\t.then(() => this.Delete(performer));\r\n\t\t};\r\n\t\tthis.scope.update = (performer: IRepairRequestPerformer) => {\r\n\t\t\tif (this.scope.PerformerIdForUpdate === null) {\r\n\t\t\t\tthis.scope.PerformerIdForUpdate = performer.PerformerId;\r\n\t\t\t\tthis.scope.PerformerNameForUpdate = performer.Name;\r\n\t\t\t\tthis.scope.rnd = Math.random();\r\n\t\t\t\tconst input = $(`#input--${performer.PerformerId}`);\r\n\t\t\t\tthis.$timeout(() => { input.focus(); }, 0);\r\n\t\t\t} else {\r\n\t\t\t\treturn this.checkUpdating(performer, true);\r\n\t\t\t}\r\n\t\t}\r\n this.scope.create = (name) => { this.checkUpdating().then(() => { this.Create(name); }); };\r\n this.scope.onEnterLoad = (keyEvent, data, isEdit = false) => {\r\n if (keyEvent.which === 13) {\r\n\t\t\t\tif (isEdit) {\r\n\t\t\t\t\tthis.scope.update(data);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.Create(data);\r\n\t\t\t\t}\r\n }\r\n };\r\n\r\n\t\t$(this.$window).bind(\"resize\", () => this.checkSizeWindows());\r\n\t\tthis.checkSizeWindows();\r\n\t\tthis.init();\r\n\r\n\t\tthis.scope.hasAutoLimit = () => {\r\n\t\t\treturn this.scope.autoLimit;\r\n\t\t};\r\n this.scope.toggleAutoLimit = () => {\r\n\t\t\tthis.scope.autoLimit = !this.scope.autoLimit;\r\n\t\t\tif (!this.scope.autoLimit) { this.scope.query.limit = 10; }\r\n\t\t\tthis.load();\r\n\t\t\tconsole.log(\"toggleAutoLimit\", this.scope.autoLimit);\r\n\t\t};\r\n\t}\r\n\r\n\tcheckUpdating(performer?: IRepairRequestPerformer, isUpdate: boolean = false): ng.IPromise {\r\n\t\tif (this.scope.PerformerIdForUpdate === null) {\r\n\t\t\treturn this.$q.resolve();\r\n\t\t}\r\n\r\n\t\tif (performer && this.scope.PerformerIdForUpdate === performer.PerformerId) {\r\n\t\t\treturn isUpdate ? this.Update(performer) : this.$q.resolve();\r\n\t\t}\r\n\r\n\t\tconst _performer = this.scope.data.filter((p) => p.PerformerId === this.scope.PerformerIdForUpdate)[0];\r\n\t\tconst confirm: ng.material.IConfirmDialog = this.$mdDialog.confirm()\r\n\t\t\t.title(\"Не сохранённые изменения\").ariaLabel(\"Не сохранённые изменения\")\r\n\t\t\t.textContent(`Сохранить изменение данных об исполнителе?`)\r\n\t\t\t.ok(\"Да, сохранить\").cancel(\"Отмена\");\r\n\t\treturn this.$mdDialog.show(confirm)\r\n\t\t\t.then(() => {\r\n\t\t\t\treturn this.Update(_performer, isUpdate ? performer.PerformerId : null);\r\n\t\t\t})\r\n\t\t\t.catch(() => {\r\n\t\t\t\t_performer.Name = this.scope.PerformerNameForUpdate;\r\n\t\t\t\tif (isUpdate) {\r\n\t\t\t\t\tthis.scope.PerformerIdForUpdate = performer.PerformerId;\r\n\t\t\t\t\tthis.scope.PerformerNameForUpdate = performer.Name;\r\n\t\t\t\t\tconst input = $(`#input--${performer.PerformerId}`);\r\n\t\t\t\t\tthis.$timeout(() => { input.focus(); }, 0);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.scope.PerformerIdForUpdate = null;\r\n\t\t\t\t}\r\n\t\t\t\treturn;\r\n\t\t\t});\r\n\t}\r\n\r\n init(): any {\r\n\t\tthis.scope.isLoading = true;\r\n this.scope.promise =\r\n this.RepairRequestService.GetRepairRequestPerformerList()\r\n .then(data => {\r\n this.scope.newName = \"\";\r\n this.scope.count = data.length;\r\n this.scope.allData = data;\r\n this.scope.data = this.scope.allData.slice(\r\n this.scope.query.limit * (this.scope.query.page - 1),\r\n this.scope.query.limit * this.scope.query.page,\r\n );\r\n })\r\n .catch(err => {\r\n this.ToastService.handle(err);\r\n })\r\n .finally(() => this.scope.isLoading = false);\r\n }\r\n\r\n load(): void {\r\n\t\tthis.checkSizeWindows().then(() => {\r\n\t\t\tif (!this.scope.allData) { return; }\r\n\t\t\tthis.checkUpdating();\r\n\t\t\tthis.scope.data = this.scope.allData.slice(\r\n\t\t\t\tthis.scope.query.limit * (this.scope.query.page - 1),\r\n\t\t\t\tthis.scope.query.limit * this.scope.query.page,\r\n\t\t\t);\r\n\t\t});\r\n\t}\r\n\r\n\tcheckSizeWindows(): ng.IPromise {\r\n\t\tconst limitSelect = $('md-table-pagination .limit-select').first();\r\n\t\tif (this.scope.autoLimit) {\r\n\t\t\tlimitSelect.hide();\r\n\t\t\treturn this.$timeout(() => {\r\n\t\t\t\tconst h1: number = $(\"md-table-container\").innerHeight();\r\n\t\t\t\tconst h2: number = $(\"md-table-container thead\").innerHeight();\r\n\t\t\t\tconst h3: number = $(\"md-table-container .repair-request-types-add\").innerHeight();\r\n\t\t\t\tlet countElement: number = Math.floor((h1 - (h2 + h3)) / 54); // подсчёт количества элементов\r\n\t\t\t\tthis.scope.query.limit = countElement;\r\n\t\t\t\treturn;\r\n\t\t\t}, 100);\r\n\t\t}\r\n\t\tlimitSelect.show();\r\n\t\t// tslint:disable-next-line: no-empty\r\n\t\treturn this.$timeout(() => {}, 0);\r\n\t}\r\n\r\n Delete(performer: IRepairRequestPerformer): any {\r\n\t\tif (this.scope.isLoading) { return; }\r\n\t\tthis.scope.isLoading = true;\r\n this.RepairRequestService.DeleteRepairRequestPerformer(performer.PerformerId)\r\n .then(() => {\r\n this.ToastService.show(\"Удален успешно\", this.ToastService.status.success);\r\n this.init();\r\n })\r\n .catch((err) => {\r\n this.ToastService.handle(err);\r\n })\r\n .finally(() => this.scope.isLoading = false);\r\n }\r\n\r\n Create(Name: string): any {\r\n if (this.scope.isLoading || Name === \"\") { return; }\r\n this.scope.isLoading = true;\r\n this.RepairRequestService.CreateRepairRequestPerformer(Name)\r\n .then((data) => {\r\n this.ToastService.show(\"Добавлен успешно\", this.ToastService.status.success);\r\n this.init();\r\n })\r\n .catch((err) => {\r\n this.ToastService.handle(err);\r\n })\r\n .finally(() => this.scope.isLoading = false);\r\n\t}\r\n\r\n Update(performer: IRepairRequestPerformer, idForUpdate: string = null): ng.IPromise {\r\n if (this.scope.isLoading || performer.Name === \"\") { return; }\r\n this.scope.isLoading = true;\r\n return this.RepairRequestService.UpdateRepairRequestPerformer(performer)\r\n .then(() => {\r\n\t\t\t\tthis.ToastService.show(\"Изменён успешно\", this.ToastService.status.success);\r\n\t\t\t\tthis.scope.PerformerIdForUpdate = idForUpdate;\r\n\t\t\t\tif (idForUpdate) {\r\n\t\t\t\t\tconst input = $(`#input--${idForUpdate}`);\r\n\t\t\t\t\tthis.$timeout(() => { input.focus(); }, 0);\r\n\t\t\t\t}\r\n\t\t\t})\r\n .catch((err) => { this.ToastService.handle(err); })\r\n .finally(() => this.scope.isLoading = false);\r\n }\r\n\r\n}\r\n","/// \r\nimport { ToastService } from \"./../../../../../shared/services/toast.service\";\r\nimport { OnCheckIsFrame } from \"../../../../../shared/abstract-classes/OnCheckIsFrame\";\r\nimport { RepairRequestService } from \"../../repair-request/repair-request.service\";\r\nimport { IRepairRequestEventType, IRepairRequestStatus } from \"../../repair-request/repair-request.model\";\r\nimport { IRecord, RecordDirectionDisplay } from \"./../records.model\";\r\nimport { ICreateAppealDTO, IUnattachedAppealsParameters, IAppealType } from \"../../appeal/appeal.model\";\r\nimport { AppealService } from \"../../appeal/appeal.service\";\r\nimport { IRecordDatarage } from \"../../../../../shared/directives/datepicker-day.direcrive\";\r\n\r\ndeclare var moment: any;\r\nmoment.locale(\"ru\");\r\n\r\nexport interface IRecordsBottomSheetScope extends ng.IScope {\r\n query: IUnattachedAppealsParameters;\r\n count: number;\r\n\tdata: IRecord[];\r\n\r\n\trecord: IRecord;\r\n\tstatuses: IRepairRequestStatus;\r\n\tRecordDirectionDisplay: {[key: string]: string};\r\n\r\n\teventTypes: IRepairRequestEventType[];\r\n\tcreateEventType: IRepairRequestEventType;\r\n\r\n\tappeal: ICreateAppealDTO;\r\n\tappealTypes: IAppealType[];\r\n\r\n\tcloseWindow: () => void;\r\n\taddRepairRequest: ($event: any) => void;\r\n\tsave: () => void;\r\n\tonAccountChange: (item?: any) => void;\r\n\tcancelEvent: (index: number) => void;\r\n\r\n\tisEditing: boolean;\r\n\tisLoading: boolean;\r\n}\r\n\r\nexport class RecordsBottomSheetController extends OnCheckIsFrame {\r\n scope: IRecordsBottomSheetScope;\r\n\r\n constructor(\r\n\t\t$scope: any, $stateParams: any, private $mdBottomSheet: ng.material.IBottomSheetService,\r\n\t\tprivate ToastService: ToastService, private $mdUtil: ng.material.IUtilService, $window: any,\r\n\t\trecord: IRecord, private RepairRequestService: RepairRequestService, private AppealService: AppealService\r\n\t) {\r\n\t\tsuper($window, $stateParams, $scope);\r\n\t\tthis.scope = $scope;\r\n\t\tthis.scope.record = record;\r\n\t\tthis.scope.statuses = null;\r\n\t\tthis.scope.isEditing = false;\r\n\t\tthis.scope.isLoading = true;\r\n\t\tthis.scope.isFilterShown = false;\r\n\t\tthis.scope.RecordDirectionDisplay = angular.copy(RecordDirectionDisplay);\r\n\r\n\t\tthis.scope.closeWindow = () => this.closeWindow();\r\n\t\tthis.scope.addRepairRequest = ($event) => this.addRepairRequest($event);\r\n\t\tthis.scope.save = () => this.save();\r\n\t\tthis.scope.onAccountChange = (item) => this.onAccountChange(item);\r\n\t\tthis.scope.onFilterAccountChange = (item) => this.onFilterAccountChange(item);\r\n\t\tthis.scope.cancelEvent = (index: number) => {\r\n\t\t\tthis.scope.appeal.Events.splice(index, 1);\r\n\t\t};\r\n\r\n\t\tthis.scope.addNewAppeal = () => {\r\n\t\t\tthis.scope.isEditing = true;\r\n\t\t\tthis.scope.appeal = {\r\n\t\t\t\tAppealTypeId: this.scope.appealTypes[0].AppealTypeId,\r\n\t\t\t\tReason: null,\r\n\t\t\t\tRecordId: null,\r\n\t\t\t\tAddress: null,\r\n\t\t\t\tPhoneNumber: null,\r\n\t\t\t\tEmail: null,\r\n\t\t\t\tAccountNumber: null,\r\n\t\t\t\tRepairRequestList: [],\r\n\t\t\t\tEvents: []\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tthis.scope.setAppeal = (appeal) => {\r\n\t\t\tthis.scope.isEditing = false;\r\n\t\t\tthis.scope.appeal = {\r\n\t\t\t\tAppealId: appeal.AppealId,\r\n\t\t\t\tAppealTypeId: appeal.AppealTypeId,\r\n\t\t\t\tReason: appeal.Reason,\r\n\t\t\t\tRecordId: appeal.RecordId,\r\n\t\t\t\tAddress: appeal.Address,\r\n\t\t\t\tPhoneNumber: appeal.PhoneNumber,\r\n\t\t\t\tEmail: appeal.Email,\r\n\t\t\t\tAccountNumber: appeal.AccountNumber,\r\n\t\t\t\tRepairRequestList: [],\r\n\t\t\t\tEvents: []\r\n\t\t\t};\r\n\t\t};\r\n\r\n\t\tthis.scope.query = {\r\n\t\t\tlimit: 5,\r\n\t\t\toffset: 0,\r\n\t\t\tpage: 1,\r\n\t\t\taccountNumber: null,\r\n\t\t\tshortAppealId: null,\r\n\t\t\tcreatedStart: moment(this.scope.record.CallTime).format(\"YYYY-MM-DDT00:00:00.000Z\"),\r\n\t\t\tcreatedEnd: moment(this.scope.record.CallTime).format(\"YYYY-MM-DDT23:59:59.999Z\"),\r\n\t\t\torderBy: \"-CreatedAt\"\r\n\t\t};\r\n\t\tthis.scope.daterange = {\r\n\t\t\tcallDate: this.scope.record.CallTime,\r\n\t\t\tcallTimeStart: 0,\r\n\t\t\tcallTimeEnd: 23\r\n\t\t};\r\n\t\tthis.scope.load = this.$mdUtil.debounce(() => {\r\n\t\t\tthis.load();\r\n\t\t}, 250);\r\n\t\tthis.scope.setDatarege = this.$mdUtil.debounce((datarege: IRecordDatarage) => {\r\n\t\t\tthis.scope.query.createdStart = moment(datarege.callDate)\r\n\t\t\t\t.format(`YYYY-MM-DDT${this.numberToString(datarege.callTimeStart)}:00:00.000Z`);\r\n\t\t\tthis.scope.query.createdEnd = moment(datarege.callDate)\r\n\t\t\t\t.add(datarege.callTimeStart > datarege.callTimeEnd ? 1 : 0, \"day\")\r\n\t\t\t\t.format(`YYYY-MM-DDT${this.numberToString(datarege.callTimeEnd)}:59:59.999Z`);\r\n\t\t\tthis.scope.load();\r\n\t\t}, 250);\r\n\t\tthis.scope.toogleShowFilter = () => {\r\n\t\t\tthis.scope.isFilterShown = !this.scope.isFilterShown;\r\n\t\t};\r\n\t\tthis.scope.$watch(\"query.shortAppealId\", (shortAppealId) => {\r\n\t\t\tif (shortAppealId) {\r\n\t\t\t\tthis.scope.load();\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\tthis.init();\r\n\t}\r\n\r\n\tnumberToString(_number: any): any {\r\n\t\tconst number: number = angular.isString(_number) ? parseInt(_number, 10) : _number;\r\n\t\tconst result = number > 10 ? number.toFixed(0) : `0${number}`;\r\n\t\treturn result;\r\n\t}\r\n\r\n\tinit(): void {\r\n\t\tthis.RepairRequestService.GetRepairRequestEventTypes()\r\n\t\t\t.then(list => {\r\n\t\t\t\tthis.scope.eventTypes = list;\r\n\t\t\t\tthis.scope.createEventType = list.filter(i => i.IsCreateRepairRequest)[0];\r\n\t\t\t\treturn this.RepairRequestService.GetRepairRequestStatuses();\r\n\t\t\t})\r\n\t\t\t.then(statuses => {\r\n\t\t\t\tthis.scope.statuses = statuses.reduce((prev: { [key: number]: string }, val) => {\r\n\t\t\t\t\tprev[val.StatusId] = val.Name;\r\n\t\t\t\t\treturn prev;\r\n\t\t\t\t}, {});\r\n\t\t\t\treturn this.AppealService.GetAppealTypes();\r\n\t\t\t})\r\n\t\t\t.then(appealTypes => {\r\n\t\t\t\tthis.scope.appealTypes = appealTypes;\r\n\t\t\t\tthis.load();\r\n\t\t\t})\r\n\t\t\t.catch(err => {\r\n\t\t\t\tconsole.warn(err);\r\n\t\t\t})\r\n\t\t\t.finally(() => {\r\n\t\t\t\tthis.scope.isLoading = false;\r\n\t\t\t});\r\n\t}\r\n\r\n\tload() {\r\n\t\tthis.scope.isLoading = true;\r\n\t\treturn this.AppealService.GetUnattachedAppeals(this.scope.query)\r\n\t\t\t.then(data => {\r\n\t\t\t\tthis.scope.count = data.Count;\r\n\t\t\t\tthis.scope.data = data.Data;\r\n\t\t\t})\r\n\t\t\t.catch(error => {\r\n\t\t\t\tthis.ToastService.handle(error);\r\n\t\t\t})\r\n\t\t\t.finally(() => this.scope.isLoading = false);\r\n\t}\r\n\r\n\tcheckCallbackType(): boolean {\r\n for(let event of this.scope.appeal.Events) {\r\n if (\r\n event.RepairRequestEventType && event.RepairRequestEventType.IsNeedCallbackType &&\r\n ( !event.CallbackType || event.CallbackType === \"\" )\r\n ) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n\t}\r\n\r\n\tcheckFields(): boolean {\r\n\t\tif (\r\n\t\t\tthis.scope.appeal.Reason === null ||\r\n\t\t\tthis.scope.appeal.Address === null ||\r\n\t\t\t(this.scope.appeal.PhoneNumber === null && this.scope.appeal.Email === null) ||\r\n\t\t\tthis.scope.appeal.AccountNumber === null\r\n\t\t) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\treturn true;\r\n\t}\r\n\r\n\tsave(): void {\r\n\t\tthis.scope.isLoading = true;\r\n\t\tif (this.scope.isEditing) {\r\n\t\t\tif (!this.checkCallbackType()) {\r\n\t\t\t\tthis.ToastService.show(\"Введите способ обратной связи\", this.ToastService.status.alert);\r\n\t\t\t\tthis.scope.isLoading = false;\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif (!this.checkFields()) {\r\n\t\t\t\tthis.ToastService.show(\"Проверьте обязательные поля\", this.ToastService.status.alert);\r\n\t\t\t\tthis.scope.isLoading = false;\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tthis.scope.appeal.RepairRequestList = this.scope.appeal.Events.map(ev => {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tRepairRequest: ev.RepairRequest,\r\n\t\t\t\t\tCallbackType: ev.CallbackType\r\n\t\t\t\t};\r\n\t\t\t});\r\n\t\t\tconst newAppeal: ICreateAppealDTO = angular.copy(this.scope.appeal);\r\n\t\t\tnewAppeal.Events = newAppeal.Events.map(ev => {\r\n\t\t\t\tdelete ev.RepairRequest;\r\n\t\t\t\tdelete ev.CallbackType;\r\n\t\t\t\treturn ev;\r\n\t\t\t});\r\n\t\t\tthis.AppealService.CreateAppeal(newAppeal)\r\n\t\t\t\t.then(data => {\r\n\t\t\t\t\tthis.ToastService.show(`Обращение успешно создано`, this.ToastService.status.success);\r\n\t\t\t\t\treturn this.AppealService.AddLinkAppealToRecord(data.AppealId, this.scope.record.RecordId);\r\n\t\t\t\t})\r\n\t\t\t\t.then(data => {\r\n\t\t\t\t\tthis.ToastService.show(`Запись успешно привязана к обращению`, this.ToastService.status.success);\r\n\t\t\t\t\tthis.$mdBottomSheet.hide();\r\n\t\t\t\t})\r\n\t\t\t\t.catch(error => {\r\n\t\t\t\t\tthis.ToastService.handle(error);\r\n\t\t\t\t})\r\n\t\t\t\t.finally(() => this.scope.isLoading = false);\r\n\t\t} else {\r\n\t\t\tthis.AppealService.AddLinkAppealToRecord(this.scope.appeal.AppealId, this.scope.record.RecordId)\r\n\t\t\t\t.then(data => {\r\n\t\t\t\t\tthis.ToastService.show(`Запись успешно привязана к обращению`, this.ToastService.status.success);\r\n\t\t\t\t\tthis.$mdBottomSheet.hide();\r\n\t\t\t\t})\r\n\t\t\t\t.catch(error => {\r\n\t\t\t\t\tthis.ToastService.handle(error);\r\n\t\t\t\t})\r\n\t\t\t\t.finally(() => this.scope.isLoading = false);\r\n\t\t}\r\n\t}\r\n\r\n\taddRepairRequest($event: any): void {\r\n this.scope.isLoading = true;\r\n\t\tthis.RepairRequestService.CreateRepairRequest()\r\n .then((data) => {\r\n return this.RepairRequestService.showRepairRequest(\r\n $event,\r\n data.RepairRequestId,\r\n {\r\n isEdit: true,\r\n isCreate: true,\r\n address: this.scope.appeal && this.scope.appeal.Address ?\r\n this.scope.appeal.Address :\r\n undefined\r\n }\r\n );\r\n })\r\n .then((data) => {\r\n data.StatusId = 1;\r\n this.scope.appeal.Events.push({\r\n RepairRequest: data,\r\n\t\t\t\t\tCallbackType: this.scope.appeal && !!this.scope.appeal.PhoneNumber ? this.scope.appeal.PhoneNumber\r\n\t\t\t\t\t\t\t\t: this.scope.appeal && !!this.scope.appeal.Email ? this.scope.appeal.Email : \"\",\r\n RepairRequestEventType: this.scope.createEventType,\r\n\r\n RepairRequestId: data.RepairRequestId,\r\n RepairRequestEventTypeId: this.scope.createEventType.RepairRequestEventTypeId,\r\n Comment: null,\r\n IdFrom: 0,\r\n IdTo: 1\r\n });\r\n })\r\n .catch(err => {\r\n\t\t\t\tif (err) {\r\n\t\t\t\t\tif (err.status && err.status === 403) {\r\n\t\t\t\t\t\tthis.ToastService.show(\"Нет прав!\", this.ToastService.status.warning);\r\n\t\t\t\t\t} else if ((err.status && err.status !== 403) || (!err.RepairRequestId && (err.message || err.Message))) {\r\n\t\t\t\t\t\tthis.ToastService.handle(err);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n })\r\n .finally(() => this.scope.isLoading = false);\r\n\t}\r\n\r\n\tonAccountChange(item?: any): void {\r\n\t\tthis.scope.appeal.AccountNumber = item.AccountNumber;\r\n\t\tthis.scope.appeal.Address = item.Address;\r\n\t}\r\n\r\n\tonFilterAccountChange(item?: any): void {\r\n\t\tthis.scope.query.accountNumber = item.AccountNumber;\r\n\t\tthis.scope.load();\r\n\t}\r\n\r\n closeWindow(): void {\r\n this.$mdBottomSheet.hide();\r\n }\r\n}\r\n","import { ToastService } from \"../../../../../shared/services/toast.service\";\r\nimport { IRecordsParameters, IRecord, RecordDirectionDisplay } from \"../records.model\";\r\nimport { RecordsService } from \"../records.service\";\r\nimport { IRecordDatarage } from \"../../../../../shared/directives/datepicker-day.direcrive\";\r\nimport { AppealService } from \"../../appeal/appeal.service\";\r\nimport { IAppeal } from \"../../appeal/appeal.model\";\r\n\r\ndeclare var moment: any;\r\nmoment.locale(\"ru\");\r\n\r\nlet Instance: RecordsTableDirective;\r\n\r\nexport interface IRecordsTableScope extends ng.IScope {\r\n query: IRecordsParameters;\r\n count: number;\r\n data: IRecord[];\r\n\tpromise: ng.IPromise;\r\n\r\n\tlabel: any;\r\n\tlimitOptions: number[];\r\n\tdaterange: IRecordDatarage;\r\n\tload(): void;\r\n\r\n\tisFrame: boolean;\r\n\tisRepairRequestVisible: boolean;\r\n\tRecordDirectionDisplay: any;\r\n}\r\n\r\nexport class RecordsTableController {\r\n scope: IRecordsTableScope;\r\n element: ng.IAugmentedJQuery;\r\n\tinput: any;\r\n\r\n\tprotected defaulQuery: IRecordsParameters = {\r\n\t\tpage: 1,\r\n\t\tlimit: window.innerHeight > 925 ? 20 : 15,\r\n\t\toffset: 0,\r\n\t\ttypes: [ \"mobile\", \"IN\", \"OUT\" ],\r\n\t\tfindAttached: false,\r\n\t\tcreatedStart: moment(new Date()).format(\"YYYY-MM-DDT00:00:00.000Z\"),\r\n\t\tcreatedEnd: moment(new Date()).format(\"YYYY-MM-DDT23:59:59.999Z\"),\r\n\t\torderBy: \"-CallTime\"\r\n\t};\r\n\r\n link(scope: any, element: ng.IAugmentedJQuery, attr: ng.IAttributes): any {\r\n this.scope = scope;\r\n this.element = element;\r\n this.scope.isStarted = false;\r\n this.scope.isRepairRequestVisible = false;\r\n\t\tthis.scope.data = [];\r\n\t\tthis.scope.RecordDirectionDisplay = angular.copy(RecordDirectionDisplay);\r\n\r\n\t\tthis.scope.limitOptions = [15, 20, 50, 100, 250, 500];\r\n\t\tthis.scope.label = {\r\n of: \"из\",\r\n page: \"Страница\",\r\n rowsPerPage: \"Строк на странице\"\r\n\t\t};\r\n\t\tthis.scope.load = Instance.$mdUtil.debounce(() => {\r\n\t\t\tthis.load();\r\n\t\t}, 250);\r\n\t\tthis.scope.setDatarege = Instance.$mdUtil.debounce((datarege: IRecordDatarage) => {\r\n\t\t\tthis.scope.query.createdStart = moment(datarege.callDate)\r\n\t\t\t\t.format(`YYYY-MM-DDT${this.numberToString(datarege.callTimeStart)}:00:00.000Z`);\r\n\t\t\tthis.scope.query.createdEnd = moment(datarege.callDate)\r\n\t\t\t\t.add(datarege.callTimeStart > datarege.callTimeEnd ? 1 : 0, \"day\")\r\n\t\t\t\t.format(`YYYY-MM-DDT${this.numberToString(datarege.callTimeEnd)}:59:59.999Z`);\r\n\t\t\tthis.scope.load();\r\n\t\t}, 250);\r\n\r\n\r\n\t\tthis.scope.onDirectionChanged = () => this._onDirectionChanged();\r\n\t\tthis.scope.openBottomSheet = (record) => this.openBottomSheet(record);\r\n\t\tthis.scope.getSelectedText = (items: string[]) => {\r\n if (angular.isUndefined(items)) {\r\n return \"\";\r\n\t\t\t} else if (\r\n\t\t\t\tangular.isDefined(this.scope.RecordDirectionDisplay) &&\r\n\t\t\t\tObject.keys(this.scope.RecordDirectionDisplay).length === items.length\r\n\t\t\t) {\r\n return \"Все типы\";\r\n } else if ( items.length === 1) {\r\n return items.length + \" тип\";\r\n } else if ( items.length === 0) {\r\n return \"Типы не выбраны!\";\r\n } else {\r\n return items.length + \" типа\";\r\n }\r\n\t\t};\r\n\t\tthis.scope.deleteAttach = ($event: any, appeal: IAppeal) => {\r\n\t\t\tconst confirm = Instance.$mdDialog.confirm()\r\n .title(\"Открепить аудиозапись\")\r\n .textContent(\"Вы точно хотите, открепить аудиозапись от обращения?\")\r\n .ariaLabel(\"Подтверждение\")\r\n .ok(\"Да, открепить\")\r\n\t\t\t\t.cancel(\"Отмена\");\r\n\t\t\tInstance.$mdDialog.show(confirm)\r\n\t\t\t\t.then(() => {\r\n\t\t\t\t\tInstance.AppealService.DeleteLinkAppealToRecord(appeal.AppealId);\r\n\t\t\t\t\tInstance.$timeout(() => { this.load(); }, 250);\r\n\t\t\t\t})\r\n\t\t\t\t.catch((err) => { });\r\n };\r\n\r\n\t\tInstance.$timeout(() => {\r\n\t\t\tif (Instance.$stateParams.filter) {\r\n\t\t\t\tthis.init();\r\n\t\t\t} else {\r\n\t\t\t\tthis.setLocation(this.defaulQuery);\r\n\t\t\t\tInstance.$timeout(() => {\r\n\t\t\t\t\tthis.init();\r\n\t\t\t\t}, 0);\r\n\t\t\t}\r\n\t\t}, 0);\r\n\t}\r\n\r\n\tinit(): void {\r\n\t\tthis.scope.query = angular.extend({}, this.defaulQuery, angular.copy(JSON.parse(Instance.$stateParams.filter)));\r\n\r\n\t\tthis.scope.RecordDirectionList = this.scope.query.types;\r\n\t\tthis.scope.daterange = {\r\n\t\t\tcallDate: new Date(this.scope.query.createdStart),\r\n\t\t\tcallTimeStart: new Date(this.scope.query.createdStart).getHours(),\r\n\t\t\tcallTimeEnd: new Date(this.scope.query.createdEnd).getHours()\r\n\t\t};\r\n\r\n\t\t$(Instance.$window).bind(\"resize\", () => this.checkSizeWindows());\r\n\t\tthis.checkSizeWindows();\r\n\t\tthis.load();\r\n\t}\r\n\r\n load(): void {\r\n\t\tthis.scope.$parent.isLoading = true;\r\n\t\tthis.checkSizeWindows()\r\n\t\t\t.then(() => {\r\n\t\t\t\tconst params: IRecordsParameters = JSON.parse(JSON.stringify(this.scope.query));\r\n\t\t\t\tparams.offset = (params.page - 1) * params.limit;\r\n\t\t\t\tthis.setLocation(params);\r\n\t\t\t\tthis.scope.promise = Instance.RecordsService.GetRecords(params);\r\n\t\t\t\treturn this.scope.promise;\r\n\t\t\t})\r\n\t\t\t.then(data => {\r\n\t\t\t\tthis.scope.count = data.Count;\r\n\t\t\t\tthis.scope.data = data.Data;\r\n\t\t\t})\r\n\t\t\t.finally(() => {\r\n\t\t\t\tInstance.$timeout(() => {\r\n\t\t\t\t\t$(\"audio\").on(\"play\", function() {\r\n\t\t\t\t\t\t$(\"audio\").not(this).each(function(index, audio: any) {\r\n\t\t\t\t\t\t\taudio.pause();\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t});\r\n\t\t\t\t}, 0);\r\n\r\n\t\t\t\tthis.scope.$parent.isLoading = false;\r\n\t\t\t});\r\n\t}\r\n\r\n\t_onDirectionChanged(): void {\r\n\t\tlet values: string[] = [];\r\n if(angular.isDefined(this.scope.RecordDirectionList)) {\r\n\t\t\tvalues = this.scope.RecordDirectionList;\r\n\t\t}\r\n\t\tthis.scope.query.types = values;\r\n\t\tthis.setLocation(this.scope.query);\r\n\t\tInstance.$timeout(() => {\r\n\t\t\tthis.init();\r\n\t\t}, 0);\r\n }\r\n\r\n\tsetLocation(params: IRecordsParameters): void {\r\n\t\tInstance.$location.search(\"filter\", JSON.stringify(params));\r\n\t}\r\n\r\n\tnumberToString(_number: any): any {\r\n\t\tconst number: number = angular.isString(_number) ? parseInt(_number, 10) : _number;\r\n\t\tconst result = number > 10 ? number.toFixed(0) : `0${number}`;\r\n\t\treturn result;\r\n\t}\r\n\r\n\tcheckSizeWindows(): ng.IPromise {\r\n\t\treturn Instance.$timeout(() => {\r\n\t\t\tconst h1: number = $(\"md-table-container\").innerHeight();\r\n\t\t\tconst h2: number = $(\"md-table-container thead\").innerHeight();\r\n\t\t\tlet countElement: number = Math.floor((h1 - h2)/45); // подсчёт количества элементов\r\n\t\t\tthis.scope.limitOptions = [countElement];\r\n\t\t\tthis.scope.query.limit = countElement;\r\n\t\t\treturn;\r\n\t\t}, 100);\r\n\t}\r\n\r\n\topenBottomSheet(record: IRecord): ng.IPromise {\r\n\t\t$(\"audio\").each(function(index, audio: any) {\r\n\t\t\taudio.pause();\r\n\t\t});\r\n\t\treturn Instance.$mdBottomSheet\r\n\t\t.show({\r\n\t\t\ttemplate: Instance.$templateCache.get(\r\n\t\t\t\t\"site/detail/dispatcher/records/bottom-sheet/records.bottom-sheet.html\"\r\n\t\t\t),\r\n\t\t\tcontroller: \"RecordsBottomSheetController\",\r\n\t\t\tclickOutsideToClose: true,\r\n\t\t\tescapeToClose: false,\r\n\t\t\tlocals: {\r\n\t\t\t\trecord\r\n\t\t\t}\r\n\t\t})\r\n\t\t.then(() => {\r\n\t\t\tthis.scope.load();\r\n\t\t})\r\n\t\t.catch((err) => {\r\n\t\t\tconsole.warn(err);\r\n\t\t});\r\n\t}\r\n}\r\n\r\nexport class RecordsTableDirective {\r\n static getInstance(\r\n\t\t$templateCache: ng.ITemplateCacheService, $stateParams: any, $window: ng.IWindowService,\r\n $q: ng.IQService, $mdBottomSheet: ng.material.IBottomSheetService, $location: any, $timeout: ng.ITimeoutService,\r\n\t\tBackendUri: string, ToastService: ToastService, RecordsService: RecordsService, $mdUtil: any, $mdDateLocale: any,\r\n\t\t$mdDialog: ng.material.IDialogService, AppealService: AppealService\r\n\t): any {\r\n return (Instance = new RecordsTableDirective(\r\n $templateCache,\r\n\t\t\t$stateParams,\r\n\t\t\t$window,\r\n $q,\r\n $mdBottomSheet,\r\n $location,\r\n\t\t\t$timeout,\r\n\t\t\t$mdUtil,\r\n\t\t\t$mdDateLocale,\r\n\t\t\t$mdDialog,\r\n BackendUri,\r\n\t\t\tToastService,\r\n\t\t\tRecordsService,\r\n\t\t\tAppealService\r\n ));\r\n }\r\n\r\n public restrict: string = \"E\";\r\n public scope = {\r\n\t\tisFrame: \"=?\"\r\n\t};\r\n public template: any;\r\n\r\n constructor(\r\n\t\tpublic $templateCache: ng.ITemplateCacheService, public $stateParams: any, public $window: ng.IWindowService,\r\n\t\tpublic $q: ng.IQService, public $mdBottomSheet: ng.material.IBottomSheetService, public $location: any,\r\n\t\tpublic $timeout: ng.ITimeoutService, public $mdUtil: any, public $mdDateLocale: any,\r\n\t\tpublic $mdDialog: ng.material.IDialogService,\r\n\t\tpublic BackendUri: string, public ToastService: ToastService, public RecordsService: RecordsService,\r\n\t\tpublic AppealService: AppealService\r\n ) {\r\n this.template = $templateCache.get(\r\n \"site/detail/dispatcher/records/directives/records-table.directive.html\"\r\n );\r\n }\r\n\r\n link(scope: any, element: any, attr: any, controller: RecordsTableController): any {\r\n controller.link(scope, element, attr);\r\n }\r\n\r\n controller(): any {\r\n return new RecordsTableController();\r\n }\r\n}\r\n","/// \r\n\r\nimport { OnCheckIsFrame } from \"../../../../shared/abstract-classes/OnCheckIsFrame\";\r\n\r\ndeclare var moment: any;\r\nmoment.locale(\"ru\");\r\n\r\nexport interface IRecordsScope extends ng.IScope {\r\n\tisLoading: boolean;\r\n\tOGRN: string;\r\n}\r\n\r\nexport class RecordsController extends OnCheckIsFrame {\r\n\tscope: IRecordsScope;\r\n\r\n constructor($scope: any, $stateParams: any, $window: ng.IWindowService) {\r\n\t\tsuper($window, $stateParams, $scope);\r\n this.scope = $scope;\r\n this.scope.isLoading = true;\r\n this.scope.OGRN = $stateParams.ogrn;\r\n }\r\n}\r\n","import { IRepairRequest } from \"./../repair-request/repair-request.model\";\r\nimport { IAppeal } from \"./../appeal/appeal.model\";\r\n\r\nexport interface IRecordsParameters {\r\n limit: number;\r\n offset?: number;\r\n\ttypes?: string[]; // mobile IN OUT ANS NA\r\n\tfindAttached?: boolean;\r\n createdStart?: any;\r\n createdEnd?: any;\r\n\torderBy?: string;\r\n\r\n\tpage?: number;\r\n}\r\n\r\nexport interface IRecordsResponse {\r\n Count: number;\r\n Data: IRecord[];\r\n}\r\n\r\nexport interface IRecord {\r\n RecordId?: string; // (string, optional),\r\n Nubmer?: string; // (string, optional),\r\n CallTime?: any; // dateTime (string, optional),\r\n CallDuration?: number; // (integer, optional),\r\n Line?: string; // (string, optional),\r\n Direction?: string; // (string, optional),\r\n\tPath?: string; // (string, optional),\r\n FileName?: string; // (string, optional),\r\n\r\n\tPathUrl?: string; // custome\r\n\r\n OGRN?: string; // (string, optional),\r\n\tExtension?: string; // (string, optional)\r\n\tIsProcessed?: boolean;\r\n\tProcessedIn?: any; // dateTime;\r\n\r\n AppealId?: string; // (string, optional),\r\n\tAppeal?: IAppeal;\r\n\tRepairRequestId?: string;\r\n\tRepairRequest?: IRepairRequest;\r\n}\r\n\r\n\r\nexport enum RecordDirectionENUM {\r\n\tmobile = \"mobile\",\r\n\tin = \"IN\",\r\n\tout = \"OUT\",\r\n\t// answer = \"ANS\",\r\n\t// na = \"NA\",\r\n}\r\n\r\nexport const RecordDirectionDisplay: {[key: string]: string} = {};\r\nRecordDirectionDisplay[RecordDirectionENUM.mobile] = \"Мобильное устройство\";\r\nRecordDirectionDisplay[RecordDirectionENUM.in] = \"Входящий\";\r\nRecordDirectionDisplay[RecordDirectionENUM.out] = \"Исходящий\";\r\n// RecordDirectionDisplay[RecordDirectionENUM.answer] = \"Автоответчик\";\r\n// RecordDirectionDisplay[RecordDirectionENUM.na] = \"Неопределено\";\r\n","import { IRecord } from './records.model';\r\n/// \r\n\r\nimport { IRecordsParameters, IRecordsResponse } from \"./records.model\";\r\n\r\ndeclare var moment: any;\r\nmoment.locale(\"ru\");\r\n\r\nexport class RecordsService {\r\n\tisTest: boolean = false;\r\n\r\n constructor(\r\n\t\tprotected $q: ng.IQService,\r\n\t\tprotected $http: ng.IHttpService,\r\n\t\tprotected $sce: ng.ISCEService,\r\n\t\tprotected $mdDialog: ng.material.IDialogService,\r\n\t\tprotected $state: any,\r\n\t\tprotected $templateCache: any,\r\n\t\tprotected BackendUri: string,\r\n\t\tprotected StorageUri: string,\r\n\t) {}\r\n\r\n\tprotected handleRecord(record: IRecord) {\r\n\t\tfor(let key of [\"Appeal\"]) {\r\n if (record[key]) {\r\n record[ key + \"Id\" ] = record[key][key+\"Id\"];\r\n }\r\n\t\t}\r\n\t\tfor(let dateKey of [\"CallTime\", \"ProcessedIn\"]) {\r\n if (record[dateKey]) {\r\n record[dateKey] = new Date(record[dateKey]);\r\n }\r\n\t\t}\r\n\t\trecord.PathUrl = this.$sce.trustAsResourceUrl( `${this.StorageUri}${record.Path}` );\r\n\t\treturn record;\r\n\t}\r\n\r\n\tGetRecords(_params: IRecordsParameters): ng.IPromise {\r\n\t\ttry {\r\n\t\t\tconst params: IRecordsParameters = angular.extend({}, {\r\n limit: 25,\r\n\t\t\t\toffset: 0,\r\n\t\t\t\ttypes: []\r\n }, angular.copy(_params));\r\n\t\t\tdelete params.page;\r\n\r\n\t\t\treturn this.getIRecordsResponse(params)\r\n .then(response => {\r\n let result: IRecordsResponse = angular.copy(response.data);\r\n result.Data = result.Data.map(record => this.handleRecord(record));\r\n return result;\r\n });\r\n\t\t} catch (err) {\r\n\t\t\treturn this.$q.reject(err);\r\n\t\t}\r\n\t}\r\n\r\n\tprotected getIRecordsResponse(params: IRecordsParameters): ng.IPromise {\r\n\t\tif (this.isTest) {\r\n\t\t\tconst data: IRecordsResponse = {\r\n\t\t\t\tCount: 1,\r\n\t\t\t\tData: [\r\n\t\t\t\t{\r\n\t\t\t\tRecordId: \"0\", Nubmer: \"+79999990000\", CallTime: \"2019-04-04T10:59:46+03:00\", Direction: \"IN\", Extension: \"mp3\", CallDuration: 10,\r\n\t\t\t\tLine: \"LN1\", Path: \"/dispatcher/records/23/1234567890123/20181218170906_000010_LN1_IN_11.mp3\", ProcessedIn: \"0001-01-01T00:00:00+03:00\",\r\n\t\t\t\tFileName: \"20181218170906_000010_LN1_IN_11.mp3\", OGRN: \"1234567890123\", IsProcessed: false, AppealId: null, RepairRequestId: null\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\tRecordId: \"0\", Nubmer: \"+79999990000\", CallTime: \"2019-04-04T10:59:46+03:00\", Direction: \"IN\", Extension: \"mp3\", CallDuration: 10,\r\n\t\t\t\tLine: \"LN1\", Path: \"/dispatcher/records/23/1234567890123/20181218170906_000010_LN1_IN_11.mp3\", ProcessedIn: \"0001-01-01T00:00:00+03:00\",\r\n\t\t\t\tFileName: \"20181218170906_000010_LN1_IN_11.mp3\", OGRN: \"1234567890123\", IsProcessed: false, AppealId: null, RepairRequestId: null\r\n\t\t\t\t},\r\n\t\t\t]\r\n\t\t\t};\r\n\t\t\tdata.Count = data.Data.length;\r\n\t\t\tdata.Data = data.Data.slice(params.offset, params.offset + params.limit);\r\n\t\t\treturn this.$q.resolve({data});\r\n\t\t} else {\r\n\t\t\treturn this.$http.get(`${this.BackendUri}/appeal/record/find`, { params: params });\r\n\t\t}\r\n\t}\r\n}\r\n","/// \r\n\r\nimport { IRepairRequest } from \"../repair-request.model\";\r\n\r\ndeclare var moment: any;\r\nmoment.locale(\"ru\");\r\n\r\ninterface IPrintDialogScope extends ng.IScope {\r\n repairRequest: IPrintRepairRequest;\r\n cancel(): void;\r\n}\r\n\r\ninterface IPrintRepairRequest extends IRepairRequest {\r\n\t_dispatcher?: string;\r\n\t_convenientTime?: string;\r\n\t_symptoms?: string;\r\n\t_jobText?: string;\r\n\t_title?: string;\r\n}\r\n\r\nexport class PrintDialogController {\r\n\tprotected scope: IPrintDialogScope;\r\n private PaymentDocumentResponse: any[];\r\n\r\n constructor(public $scope, $mdDialog, repairRequest: IRepairRequest) {\r\n\t\tthis.scope = $scope;\r\n\t\tthis.scope.isPrinting = true;\r\n\r\n\t\tthis.scope.repairRequest = angular.copy(repairRequest);\r\n\t\tthis.scope.repairRequest._dispatcher = \"Диспетчер\";\r\n\t\tthis.scope.repairRequest._convenientTime = \"\";\r\n\t\tthis.scope.repairRequest._symptoms = \"\";\r\n\t\tthis.scope.repairRequest._jobText = \"\";\r\n\t\tlet CreatedAt = moment(this.scope.repairRequest.CreatedAt).format('DD.MM.YYYY');\r\n\t\tthis.scope.repairRequest._title = `НАРЯД-ЗАКАЗ №${this.scope.repairRequest.ShortRepairRequestId} от ${CreatedAt}`;\r\n\r\n this.scope.repairRequest.Attachments.forEach(file => {\r\n if (file && file.Extension && file.Extension[0] === \".\") {\r\n file.Extension = file.Extension.substr(1, file.Extension.length);\r\n }\r\n\t\t});\r\n\r\n $scope.print = () => {\r\n\t\t\tthis.scope.isPrinting = false;\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\twindow.print();\r\n\t\t\t\tthis.scope.isPrinting = true;\r\n\t\t\t}, 0);\r\n\t\t}\r\n $scope.cancel = () => {\r\n $mdDialog.cancel();\r\n };\r\n }\r\n}\r\n","/// \r\nimport { IRepairRequestStatus } from \"./../repair-request.model\";\r\nimport { RepairRequestService } from \"./../repair-request.service\";\r\nimport { OnCheckIsFrame } from \"../../../../../shared/abstract-classes/OnCheckIsFrame\";\r\n\r\ndeclare var moment: any;\r\nmoment.locale(\"ru\");\r\n\r\ninterface IRepairRequestStatusDialogScope extends ng.IScope {\r\n status: IRepairRequestStatus;\r\n\r\n activeState: IRepairRequestStatus;\r\n transitions: IRepairRequestStatus[];\r\n comment: string;\r\n}\r\n\r\nexport class RepairRequestStatusDialogController extends OnCheckIsFrame {\r\n protected scope: IRepairRequestStatusDialogScope;\r\n\r\n constructor(\r\n $scope: any,\r\n protected $stateParams: any,\r\n protected $window: any,\r\n private $mdDialog: ng.material.IDialogService,\r\n private ToastService: any,\r\n private RepairRequestService: RepairRequestService,\r\n\r\n private currentStatus: any,\r\n private transitions: any,\r\n private ActiveStatus: any,\r\n ) {\r\n super($window, $stateParams, $scope);\r\n this.scope = $scope;\r\n\t\tthis.scope.status = currentStatus;\r\n\r\n this.scope.activeState = ActiveStatus;\r\n this.scope.recall = transitions.filter(_status => _status.StatusId === currentStatus.StatusId)[0];\r\n this.scope.transitions = transitions.filter(_status => _status.StatusId !== currentStatus.StatusId);\r\n this.scope.comment = \"\";\r\n\r\n $scope.cancel = () => this.cancel();\r\n $scope.setState = (status: IRepairRequestStatus) => this.setState(status);\r\n $scope.apply = () => this.apply();\r\n $scope.save = () => this.save();\r\n }\r\n\r\n setState(status: IRepairRequestStatus): void {\r\n this.scope.activeState = status;\r\n }\r\n\r\n save(): void {\r\n if (this.scope.activeState === void 0) {\r\n this.ToastService.show(\"Выберите состояние, в которое надо перейти\");\r\n return;\r\n }\r\n this.apply();\r\n }\r\n\r\n cancel(): void {\r\n this.$mdDialog.cancel();\r\n }\r\n\r\n apply(): void {\r\n if (this.scope.activeState === void 0) {\r\n this.ToastService.show(\"Выберите состояние, в которое надо перейти\");\r\n return;\r\n }\r\n let result: any = {\r\n activeState: this.scope.activeState,\r\n comment: this.scope.comment,\r\n };\r\n this.$mdDialog.hide(result);\r\n }\r\n}\r\n","/// \r\nimport {\r\n IRepairRequest,\r\n IRepairRequestType,\r\n IRepairRequestStatus,\r\n IRepairRequestEventType,\r\n IRepairRequestPerformer\r\n} from \"./../repair-request.model\";\r\nimport { RepairRequestService, IShowRepairRequestParams } from \"./../repair-request.service\";\r\nimport { FlowConfigurator } from \"../../../../../shared/services/flowConfigurator.service\";\r\nimport { OnCheckIsFrame } from \"../../../../../shared/abstract-classes/OnCheckIsFrame\";\r\nimport { ToastService } from \"../../../../../shared/services/toast.service\";\r\n\r\ndeclare var moment: any;\r\nmoment.locale(\"ru\");\r\n\r\ninterface IRepairRequestDialogScope extends ng.IScope {\r\n repairRequest: IRepairRequest;\r\n isEdit: boolean;\r\n isCreate: boolean;\r\n\r\n types: IRepairRequestType[];\r\n typesList: IRepairRequestType[];\r\n statuses: IRepairRequestStatus[];\r\n eventTypes: IRepairRequestEventType[];\r\n PerformerList: IRepairRequestPerformer[];\r\n\r\n RepairRequestTypeChanged(): void;\r\n cancel(): void;\r\n save(): void;\r\n\r\n\r\n uploader: any;\r\n uploadSuccess(msg: any): void;\r\n uploadError(msg: any): void;\r\n upload(newFileDescription: string): void;\r\n getFlowConfig(target: any): void;\r\n\r\n StorageUri: string;\r\n}\r\n\r\nexport class RepairRequestDialogController extends OnCheckIsFrame {\r\n protected scope: IRepairRequestDialogScope;\r\n\r\n constructor($scope: any, private $mdDialog: ng.material.IDialogService, private ToastService: ToastService,\r\n private FlowConfigurator: FlowConfigurator, private RepairRequestService: RepairRequestService,\r\n repairRequest: IRepairRequest, dialogParams: IShowRepairRequestParams, StorageUri: string,\r\n protected $stateParams: any, protected $window: any, protected $mdMenu: any, private $timeout: ng.ITimeoutService\r\n ) {\r\n super($window, $stateParams, $scope);\r\n this.scope = $scope;\r\n this.scope.StorageUri = StorageUri;\r\n this.scope.uploader = {};\r\n this.scope.repairRequest = angular.copy(repairRequest);\r\n this.scope.isEdit = angular.copy(dialogParams.isEdit);\r\n this.scope.isCreate = angular.copy(dialogParams.isCreate) || false;\r\n\r\n if (dialogParams.address) {\r\n this.scope.repairRequest.Address = angular.copy(dialogParams.address);\r\n }\r\n this.scope.repairRequest.Attachments.forEach(file => {\r\n if (file && file.Extension && file.Extension[0] === \".\") {\r\n file.Extension = file.Extension.substr(1, file.Extension.length);\r\n }\r\n });\r\n\r\n this.scope.cancel = () => {\r\n this.$mdDialog.cancel(repairRequest);\r\n };\r\n this.scope.save = () => {\r\n if (this.scope.repairRequest.Title) {\r\n this.$mdDialog.hide(this.scope.repairRequest);\r\n } else {\r\n this.ToastService.show(\"Введите заголовок заявления\", this.ToastService.status.alert);\r\n }\r\n\t\t};\r\n\r\n\t\tthis.scope.$watch(\"repairRequest\", (repairRequest) => {\r\n\t\t\tif (repairRequest) { this.genViberShareLink(); }\r\n\t\t}, true);\r\n\r\n\t\tthis.scope.openMenu = ($mdMenu, ev) => {\r\n\t\t\t$mdMenu.open(ev);\r\n\t\t\tthis.genViberShareLink();\r\n\t\t};\r\n\r\n\t\tthis.scope.RepairRequestTypeChanged = () => {\r\n\t\t\tthis.$timeout(() => {\r\n\t\t\t\tconst type = this.scope.typesList.filter(t => t.RepairRequestTypeId === this.scope.repairRequest.RepairRequestTypeId)[0];\r\n\t\t\t\tif (!this.scope.repairRequest.Description && type && type.Description) {\r\n\t\t\t\t\tthis.scope.repairRequest.Description = type.Description;\r\n\t\t\t\t}\r\n\t\t\t}, 100);\r\n\t\t};\r\n\t\tthis.scope.printDialog = ($event) => {\r\n this.printDialog($event);\r\n\t\t};\r\n\r\n this.init();\r\n }\r\n\r\n init(): void {\r\n this.initFlow();\r\n this.setDeadLineDate(this.scope.repairRequest);\r\n this.RepairRequestService.GetRepairRequestTypes()\r\n .then(types => {\r\n this.scope.types = this.toDictionary(types, \"RepairRequestTypeId\");\r\n this.scope.typesList = types;\r\n return this.RepairRequestService.GetRepairRequestStatuses();\r\n })\r\n .then(statuses => {\r\n this.scope.statuses = this.toDictionary(statuses, \"StatusId\");\r\n return this.RepairRequestService.GetRepairRequestEventTypes();\r\n })\r\n .then(eventTypes => {\r\n this.scope.eventTypes = this.toDictionary(eventTypes, \"RepairRequestEventTypeId\");\r\n return this.RepairRequestService.GetRepairRequestPerformerList();\r\n })\r\n .then(list => {\r\n\t\t\t\tthis.scope.PerformerList = list;\r\n })\r\n\t\t\t.catch(err => {\r\n\t\t\t\tthis.ToastService.handle(err);\r\n\t\t\t});\r\n\t}\r\n\r\n\tprintDialog($event: any): void {\r\n\t\tthis.scope.$parent.isLoading = true;\r\n\t\tlet editEventTypes: IRepairRequestEventType;\r\n this.scope.$parent.isLoading = true;\r\n this.RepairRequestService.GetRepairRequestEventTypes()\r\n .then(list => {\r\n editEventTypes = list.filter(i => i.IsEditRepairRequestInfo)[0];\r\n if (this.scope.repairRequest && editEventTypes) {\r\n return this.RepairRequestService.EditRepairRequest(this.scope.repairRequest, editEventTypes);\r\n } else {\r\n\t\t\t\t\tthrow new Error(\"Непредвиденная ошибка\");\r\n\t\t\t\t}\r\n })\r\n .then(() => {\r\n\t\t\t\treturn this.RepairRequestService.printRepairRequest($event, this.scope.repairRequest.RepairRequestId);\r\n })\r\n .finally(() => this.scope.$parent.isLoading = false);\r\n }\r\n\r\n protected toDictionary(data: any[], key: string): any {\r\n return data.reduce((prev: { [key: number]: string }, val) => {\r\n prev[val[key]] = val.Name;\r\n return prev;\r\n }, {});\r\n\t}\r\n\r\n\tprotected genViberShareLink() {\r\n\t\tconst viber_share: string = \"viber_share\";\r\n\t\tconst whatsapp_share: string = \"whatsapp_share\";\r\n\t\tconst whatsapp_phone: string = null; // \"79164085387\";\r\n\t\tconst mail_share: string = \"mail_share\";\r\n\t\tconst mail_address: string = null; // \"mzharkov95@gmail.com\";\r\n\r\n\t\tlet text: string = `Заявления №${this.scope.repairRequest.ShortRepairRequestId}\r\nЗаголовок: ${this.scope.repairRequest.Title}\r\nОписание: ${this.scope.repairRequest.Description}\r\nАдрес: ${this.scope.repairRequest.Address}`;\r\n\t\ttext += this.scope.repairRequest.Appeals.reduce((prev, appeal) => {\r\n\t\t\treturn prev + `\r\n---\r\nОбращение: ${appeal.ShortAppealId}\r\nТелефон: ${appeal.PhoneNumber ? appeal.PhoneNumber : 'Не указан'}\r\nEmail: ${appeal.Email ? appeal.Email : 'Не указан'}`;\r\n\t\t},'');\r\n\t\tdocument.getElementById(viber_share)\r\n\t\t\t.setAttribute(\"href\", \"viber://forward?text=\" + encodeURIComponent(text));\r\n\t\tdocument.getElementById(whatsapp_share)\r\n\t\t\t.setAttribute(\"href\", \"https://web.whatsapp.com/send?text=\" +\r\n\t\t\tencodeURIComponent(text) +\r\n\t\t\t( whatsapp_phone ? `&phone=+${whatsapp_phone}` : \"\" ));\r\n\t\tdocument.getElementById(whatsapp_share)\r\n\t\t\t.setAttribute(\"target\", \"_blank\");\r\n\t\tdocument.getElementById(mail_share)\r\n\t\t\t.setAttribute(\"href\", \"mailto:\" +\r\n\t\t\t( mail_address ? mail_address : \"\" )\r\n\t\t\t+ \"?subject=Новое заявление в диспетчерской&body=\" +\r\n\t\t\tencodeURIComponent(text));\r\n\t\tdocument.getElementById(mail_share)\r\n\t\t\t.setAttribute(\"target\", \"_blank\");\r\n\t}\r\n\r\n protected setDeadLineDate(x: IRepairRequest): IRepairRequest {\r\n x.RepairRequestEvents = x.RepairRequestEvents.map(ev => {\r\n ev.RepairRequest = { ShortRepairRequestId: x.ShortRepairRequestId };\r\n return ev;\r\n });\r\n\r\n\t\tthis.scope.$watch(\"repairRequest.RepairRequestTypeId\", (RepairRequestTypeId) => {\r\n\t\t\tif (RepairRequestTypeId) {\r\n\t\t\t\tconst RepairRequestType: IRepairRequestType = this.scope.typesList\r\n\t\t\t\t\t\t\t\t.filter(type => type.RepairRequestTypeId === RepairRequestTypeId)[0];\r\n\r\n\t\t\t\tif (x.StatusId === 4 || x.StatusId === 5) {\r\n\t\t\t\t\tx.RepairRequestDeadLine = {\r\n\t\t\t\t\t\tdate: null,\r\n\t\t\t\t\t\ttext: x.StatusId === 4 ? \"Задача закрыта\" : \"Задача отклонена\",\r\n\t\t\t\t\t\tisExpired: false\r\n\t\t\t\t\t};\r\n\t\t\t\t\treturn x;\r\n\t\t\t\t}\r\n\t\t\t\tif (RepairRequestType) {\r\n\t\t\t\t\tif (x.StartedAt) {\r\n\t\t\t\t\t\tconst StartedAt: Date = moment(new Date(x.StartedAt)).add(RepairRequestType.DeadLine, \"minutes\");\r\n\t\t\t\t\t\tx.RepairRequestDeadLine = {\r\n\t\t\t\t\t\t\tdate: StartedAt,\r\n\t\t\t\t\t\t\ttext: moment(StartedAt).fromNow(),\r\n\t\t\t\t\t\t\tisExpired: new Date() > StartedAt\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tconst StartedAt: Date = moment(new Date()).add(RepairRequestType.DeadLine, \"minutes\");\r\n\t\t\t\t\t\tx.RepairRequestDeadLine = {\r\n\t\t\t\t\t\t\tdate: StartedAt,\r\n\t\t\t\t\t\t\ttext: moment(StartedAt).fromNow(),\r\n\t\t\t\t\t\t\tisExpired: new Date() > StartedAt\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tx.RepairRequestDeadLine = {\r\n\t\t\t\t\t\tdate: null,\r\n\t\t\t\t\t\ttext: \"Нет информации\",\r\n\t\t\t\t\t\tisExpired: false\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n return x;\r\n }\r\n\r\n protected initFlow(): void {\r\n this.scope.getFlowConfig = (target) =>\r\n this.FlowConfigurator.getConfig(`/repair-request/${this.scope.repairRequest.RepairRequestId}/attachment`, {singleFile: true});\r\n this.scope.uploadSuccess = (msg) => {\r\n let data: any = {};\r\n try {\r\n data = JSON.parse(msg);\r\n if (data && data.Extension && data.Extension[0] === \".\") {\r\n data.Extension = data.Extension.substr(1, data.Extension.length);\r\n }\r\n this.scope.repairRequest.Attachments.push(data);\r\n } catch (e) {\r\n console.warn(\"Ответ не получилось спарсить\", e);\r\n }\r\n this.ToastService.show(\"Файл успешно загружен\", this.ToastService.status.success);\r\n this.scope.uploader.flow.files = [];\r\n this.scope.uploader.flow.opts = this.FlowConfigurator.getConfig(\r\n `/repair-request/${this.scope.repairRequest.RepairRequestId}/attachment`,\r\n this.scope.uploader.flow.opts);\r\n };\r\n this.scope.uploadError = (msg) => {\r\n let error: any = {};\r\n try {\r\n error = JSON.parse(msg);\r\n } catch (e) {\r\n console.warn(\"Ответ не получилось спарсить\", e);\r\n }\r\n this.ToastService.handle(error)\r\n };\r\n this.scope.upload = (newFileDescription: string) => {\r\n this.scope.uploader.flow.opts.query.description = newFileDescription || \"\";\r\n this.scope.uploader.flow.upload();\r\n };\r\n this.scope.downloadFile = (file, $event) => {\r\n if ($event.target.tagName === \"DIV\" || $event.target.tagName === \"IMG\") {\r\n $(`#${file.AttachmentId}`)[0].click();\r\n }\r\n };\r\n this.scope.getSize = (size: number) => {\r\n const minSize: number = 750;\r\n if (size < minSize) {\r\n return `${size.toFixed(2)} Б`;\r\n } else if (size < minSize * 1024) {\r\n return `${(size/(1024)).toFixed(2)} КБ`;\r\n } else if (size < minSize * 1024 * 1024) {\r\n return `${(size/(1024*1024)).toFixed(2)} МБ`;\r\n }\r\n };\r\n this.scope.$watch(\"uploader.flow.files\", (files: any[]) => {\r\n if (files && files.length > 1) {\r\n this.scope.uploader.flow.files = files[files.length - 1];\r\n }\r\n });\r\n }\r\n\r\n}\r\n","import { ToastService } from \"./../../../../../shared/services/toast.service\";\r\nimport * as RepairRequestModel from \"../repair-request.model\";\r\nimport { RepairRequestService } from \"../repair-request.service\";\r\nimport { ExcelExportService, IExportProperties } from \"../../../../../shared/services/excel-export.service\";\r\n\r\ndeclare var moment: any;\r\nmoment.locale(\"ru\");\r\n\r\nlet Instance: RepairRequestListDirective;\r\n\r\nexport interface IRepairRequestListScope extends ng.IScope {\r\n headerTitle: string;\r\n\r\n query: RepairRequestModel.IRepairRequestParameters;\r\n count: number;\r\n data: RepairRequestModel.IRepairRequest[];\r\n\r\n repairRequestTypes: RepairRequestModel.IRepairRequestType[];\r\n repairRequestStatuses: RepairRequestModel.IRepairRequestStatus[];\r\n eventTypes: RepairRequestModel.IRepairRequestEventType[];\r\n isStarted: boolean;\r\n\r\n load(): void;\r\n\r\n\r\n exportExcel(): void;\r\n openDialog($event: any, RepairRequestId: number): void;\r\n addEvent(\r\n $event: any,\r\n repairRequest: RepairRequestModel.IRepairRequest,\r\n eventType: RepairRequestModel.IRepairRequestEventType\r\n ): void;\r\n}\r\n\r\nexport class RepairRequestListController {\r\n scope: IRepairRequestListScope;\r\n element: ng.IAugmentedJQuery;\r\n input: any;\r\n\r\n now: Date = new Date();\r\n lastYear: string = moment(this.now).subtract(12, \"month\").format(\"YYYY-MM-01T00:00:00.000Z\");\r\n lastMonth: string = moment(this.now).subtract(1, \"month\").format(\"YYYY-MM-01T00:00:00.000Z\");\r\n nextMonth: string = moment(this.now).add(1, \"month\").format(\"YYYY-MM-01T00:00:00.000Z\");\r\n\r\n link(scope: any, element: ng.IAugmentedJQuery, attr: ng.IAttributes): any {\r\n this.scope = scope;\r\n this.element = element;\r\n this.scope.isStarted = false;\r\n this.scope.data = [];\r\n\r\n this.scope.addEvent = ($event, repairRequest, eventType) => this.addEvent($event, repairRequest, eventType);\r\n this.scope.showRepairRequest = ($event: any, RepairRequestId: number) => this.showRepairRequest($event, RepairRequestId);\r\n this.scope.load = () => this.load();\r\n\r\n this.scope.prevPage = () => {\r\n this.scope.query.offset -= this.scope.query.limit;\r\n this.load();\r\n };\r\n this.scope.nextPage = () => {\r\n this.scope.query.offset += this.scope.query.limit;\r\n this.load();\r\n };\r\n\r\n this.scope.openMenu = ($mdMenu, ev) => {\r\n $mdMenu.open(ev);\r\n };\r\n this.scope.$watch(\"query\", (query) => {\r\n if (query) {\r\n this.load();\r\n }\r\n }, true);\r\n\r\n Instance.RepairRequestService.GetRepairRequestStatuses()\r\n .then(statuses => {\r\n this.scope.repairRequestStatuses = statuses;\r\n return Instance.RepairRequestService.GetRepairRequestEventTypes();\r\n })\r\n .then(eventTypes => {\r\n this.scope.eventTypes = eventTypes;\r\n return Instance.RepairRequestService.GetRepairRequestTypes();\r\n })\r\n .then(types => {\r\n this.scope.repairRequestTypes = types;\r\n this.scope.isStarted = true;\r\n\r\n this.load();\r\n })\r\n .catch((e) => {\r\n Instance.ToastService.handle(e);\r\n });\r\n\r\n }\r\n\r\n load(): void {\r\n if (this.scope.isExists ) {\r\n if (this.scope.list) {\r\n this.scope.count = this.scope.list.length;\r\n this.scope.data = this.scope.list;\r\n this.scope.query = {\r\n limit: this.scope.list.length,\r\n page: 1,\r\n };\r\n } else {\r\n // this.scope.$watch(\"list\", (list) => {\r\n // this.load();\r\n // })\r\n }\r\n } else {\r\n if (this.scope.isStarted) {\r\n const params: RepairRequestModel.IRepairRequestParameters = JSON.parse(JSON.stringify(this.scope.query));\r\n this.scope.promise = Instance.RepairRequestService.GetRepairRequestList(params)\r\n .then(data => {\r\n this.scope.count = data.Count;\r\n this.scope.data = data.Data;\r\n });\r\n }\r\n }\r\n }\r\n\r\n showRepairRequest($event: any, RepairRequestId: number): void {\r\n this.scope.isLoading = true;\r\n Instance.RepairRequestService.showRepairRequest($event, RepairRequestId)\r\n .catch(err => {\r\n if (err && !err.RepairRequestId && (err.message || err.Message)) {\r\n\t\t\t\t\tInstance.ToastService.handle(err);\r\n\t\t\t\t}\r\n })\r\n .finally(() => this.scope.isLoading = false);\r\n }\r\n\r\n addEvent($event: any, repairRequest: RepairRequestModel.IRepairRequest, eventType: RepairRequestModel.IRepairRequestEventType): void {\r\n if (eventType.IsChangeStatus) {\r\n this.scope.isLoading = true;\r\n Instance.RepairRequestService.showRepairRequestStatus($event, repairRequest.Status.StatusId)\r\n .then((response) => {\r\n this.scope.$emit(\"LK:RepairRequestEvent:Add\", repairRequest, eventType, response);\r\n })\r\n .catch((err) => {\r\n if (err) {\r\n console.warn(err);\r\n if (angular.isString(err)) {\r\n Instance.ToastService.show(err, Instance.ToastService.status.warning);\r\n } else {\r\n Instance.ToastService.handle(err);\r\n }\r\n }\r\n })\r\n .finally(() => this.scope.isLoading = false);\r\n } else if (eventType.IsEditRepairRequestInfo) {\r\n this.scope.isLoading = true;\r\n Instance.RepairRequestService.showRepairRequest($event, repairRequest.RepairRequestId, { isEdit: true })\r\n .then(repairRequest => {\r\n this.scope.$emit(\"LK:RepairRequestEvent:Add\", repairRequest, eventType);\r\n })\r\n .catch(err => {\r\n if (err && !err.RepairRequestId && (err.message || err.Message)) {\r\n\t\t\t\t\t\tInstance.ToastService.handle(err);\r\n\t\t\t\t\t}\r\n })\r\n .finally(() => this.scope.isLoading = false);\r\n } else {\r\n this.scope.$emit(\"LK:RepairRequestEvent:Add\", repairRequest, eventType);\r\n }\r\n }\r\n}\r\n\r\nexport class RepairRequestListDirective {\r\n static getInstance($templateCache: ng.ITemplateCacheService, $stateParams: any, $http: ng.IHttpService,\r\n BackendUri: string, $mdDialog: any, $location: any, $q: any, RepairRequestService: any, $timeout: any,\r\n ExcelExportService: ExcelExportService, ToastService: ToastService\r\n ): any {\r\n return (Instance = new RepairRequestListDirective(\r\n $templateCache,\r\n $stateParams,\r\n $http,\r\n BackendUri,\r\n $mdDialog,\r\n $location,\r\n $q,\r\n RepairRequestService,\r\n $timeout,\r\n ExcelExportService,\r\n ToastService\r\n ));\r\n }\r\n\r\n public restrict: string = \"E\";\r\n public scope = {\r\n headerTitle: \"=?\",\r\n query: \"=?\",\r\n minimal: \"=?\",\r\n list: \"=?\",\r\n isExists: \"=?\"\r\n };\r\n public template: any;\r\n\r\n constructor(public $templateCache: ng.ITemplateCacheService, public $stateParams: any,\r\n public $http: ng.IHttpService, public BackendUri: string, public $mdDialog: any, public $location: any,\r\n public $q: ng.IQService, public RepairRequestService: RepairRequestService,\r\n public $timeout: ng.ITimeoutService, public ExcelExportService: ExcelExportService, public ToastService: ToastService\r\n ) {\r\n this.template = $templateCache.get(\r\n \"site/detail/dispatcher/repair-request/directives/repair-request-list.directive.html\"\r\n );\r\n }\r\n\r\n link(scope: any, element: any, attr: any, controller: RepairRequestListController): any {\r\n controller.link(scope, element, attr);\r\n }\r\n\r\n controller(): any {\r\n return new RepairRequestListController();\r\n }\r\n}\r\n","import { IRepairRequest } from './../repair-request.model';\r\nimport * as RepairRequestModel from \"../repair-request.model\";\r\nimport { RepairRequestService } from \"../repair-request.service\";\r\nimport { ExcelExportService, IExportProperties } from \"../../../../../shared/services/excel-export.service\";\r\nimport { ToastService } from \"../../../../../shared/services/toast.service\";\r\n\r\ndeclare var moment: any;\r\nmoment.locale(\"ru\");\r\n\r\nlet Instance: RepairRequestTableDirective;\r\n\r\nexport interface IRepairRequestTableScope extends ng.IScope {\r\n query: RepairRequestModel.IRepairRequestParameters;\r\n count: number;\r\n data: RepairRequestModel.IRepairRequest[];\r\n\r\n repairRequestTypes: RepairRequestModel.IRepairRequestType[];\r\n repairRequestStatuses: RepairRequestModel.IRepairRequestStatus[];\r\n repairRequestPerformerList: RepairRequestModel.IRepairRequestPerformer[];\r\n\r\n label: any;\r\n menu: any;\r\n\r\n load(): void;\r\n\r\n isOpenSidenav: boolean;\r\n toggleSidenav(): void;\r\n\r\n isStarted: boolean;\r\n\r\n exportExcel(): void;\r\n openDialog($event: any, RepairRequestId: number): void;\r\n AddEvent(\r\n $event: any,\r\n repairRequest: RepairRequestModel.IRepairRequest,\r\n eventType: RepairRequestModel.IRepairRequestEventType\r\n ): void;\r\n\r\n eventTypes: RepairRequestModel.IRepairRequestEventType[];\r\n}\r\n\r\nexport class RepairRequestTableController {\r\n scope: IRepairRequestTableScope;\r\n element: ng.IAugmentedJQuery;\r\n input: any;\r\n\r\n now: Date = new Date();\r\n lastYear: string = moment(this.now).subtract(12, \"month\").format(\"YYYY-MM-01T00:00:00.000Z\");\r\n lastMonth: string = moment(this.now).subtract(1, \"month\").format(\"YYYY-MM-01T00:00:00.000Z\");\r\n nextMonth: string = moment(this.now).add(1, \"month\").format(\"YYYY-MM-01T00:00:00.000Z\");\r\n\r\n readonly q_basic = {\r\n limit: window.innerHeight > 925 ? 20 : 15,\r\n page: 1,\r\n offset: 0,\r\n orderBy: \"-CreatedAt\",\r\n term: \"\",\r\n typeIdList: [],\r\n statusList: [],\r\n performerIdList: [],\r\n createdStart: this.lastMonth,\r\n createdEnd: this.nextMonth,\r\n expired: RepairRequestModel.RepairRequestExpiredState.all\r\n };\r\n readonly q_expired = {\r\n limit: window.innerHeight > 925 ? 20 : 15,\r\n page: 1,\r\n offset: 0,\r\n orderBy: \"-CreatedAt\",\r\n term: \"\",\r\n typeIdList: [],\r\n statusList: [],\r\n performerIdList: [],\r\n createdStart: this.lastYear,\r\n createdEnd: this.nextMonth,\r\n expired: RepairRequestModel.RepairRequestExpiredState.isExpired\r\n };\r\n readonly q_in_work = {\r\n limit: window.innerHeight > 925 ? 20 : 15,\r\n page: 1,\r\n offset: 0,\r\n orderBy: \"-CreatedAt\",\r\n term: \"\",\r\n typeIdList: [],\r\n statusList: [{StatusId: \"2\"}],\r\n performerIdList: [],\r\n createdStart: this.lastYear,\r\n createdEnd: this.nextMonth,\r\n expired: RepairRequestModel.RepairRequestExpiredState.all\r\n };\r\n\r\n link(scope: any, element: ng.IAugmentedJQuery, attr: ng.IAttributes): any {\r\n this.scope = scope;\r\n this.element = element;\r\n this.scope.isStarted = false;\r\n this.scope.data = [];\r\n\r\n this.scope.setQuery = (type: string) => {\r\n this.scope.query = angular.copy(this[type]);\r\n this.load();\r\n };\r\n\r\n this.scope.isOpenSidenav = false;\r\n this.scope.toggleSidenav = () => this.scope.isOpenSidenav = !this.scope.isOpenSidenav;\r\n this.scope.replyAllFilters = () => {\r\n this.scope.query = JSON.parse(this.scope.filterHash);\r\n this.scope.daterange = {\r\n createdStart: new Date(moment(this.scope.query.createdStart).format(\"YYYY-MM-01\")),\r\n createdEnd: new Date(moment(this.scope.query.createdEnd).format(\"YYYY-MM-01\"))\r\n };\r\n };\r\n this.scope.$watch(\"isOpenSidenav\", (isOpen) => {\r\n if(isOpen === true) {\r\n this.scope.filterHash = JSON.stringify(this.scope.query);\r\n }\r\n if (isOpen === false && this.scope.filterHash !== JSON.stringify(this.scope.query)) {\r\n Instance.$timeout(() => this.load(), 850);\r\n }\r\n });\r\n\r\n this.scope.query = {\r\n limit: window.innerHeight > 925 ? 20 : 15,\r\n page: 1,\r\n offset: 0,\r\n orderBy: \"-CreatedAt\",\r\n term: \"\",\r\n typeIdList: [],\r\n statusList: [],\r\n performerIdList: [],\r\n createdStart: this.lastMonth,\r\n createdEnd: this.nextMonth,\r\n expired: RepairRequestModel.RepairRequestExpiredState.all\r\n };\r\n this.scope.daterange = {\r\n createdStart: new Date(moment(this.lastMonth).format(\"YYYY-MM-01\")),\r\n createdEnd: new Date(moment(this.nextMonth).format(\"YYYY-MM-01\"))\r\n };\r\n this.scope.$watch(\"daterange.createdEnd\", (createdEnd: any) => {\r\n if(createdEnd === void 0 || createdEnd === null) { return; }\r\n this.scope.query.createdEnd = moment(createdEnd).format(\"YYYY-MM-DDT23:59:59.999Z\");\r\n });\r\n this.scope.$watch(\"daterange.createdStart\", (createdStart: any) => {\r\n if(createdStart === void 0 || createdStart === null) { return; }\r\n this.scope.query.createdStart = moment(createdStart).format(\"YYYY-MM-DDT00:00:00.000Z\");\r\n });\r\n this.scope.onEnterLoad = (keyEvent) => {\r\n if (keyEvent.which === 13) {\r\n\t\t\t\tthis.scope.isOpenSidenav = false;\r\n this.load();\r\n }\r\n };\r\n\r\n this.scope.toggle = (item, listName, param: string) => {\r\n if (!this.scope.query[listName]) {\r\n this.scope.query[listName] = [];\r\n }\r\n let _item: any = this.scope.query[listName].find(p => p[param] === item[param]);\r\n if (_item) {\r\n let idx: any = this.scope.query[listName].indexOf(_item);\r\n this.scope.query[listName].splice(idx, 1);\r\n } else {\r\n this.scope.query[listName].push(angular.copy(item));\r\n }\r\n };\r\n this.scope.exists = (item, listName, param: string) => {\r\n if (!this.scope.query[listName]) {\r\n this.scope.query[listName] = [];\r\n }\r\n return this.scope.query[listName].find(p => p[param] === item[param]) !== void 0;\r\n };\r\n\r\n this.scope.isIndeterminate = (list, selectesListName) => {\r\n return (this.scope.query[selectesListName] && this.scope.query[selectesListName].length !== 0 &&\r\n this.scope.query[selectesListName].length !== list.length);\r\n };\r\n this.scope.isChecked = (list, selectesListName) => {\r\n return this.scope.query[selectesListName] && this.scope.query[selectesListName].length === list.length;\r\n };\r\n this.scope.toggleAll = (list, selectesListName) => {\r\n if (this.scope.query[selectesListName].length === list.length) {\r\n this.scope.query[selectesListName] = [];\r\n } else if (this.scope.query[selectesListName].length === 0 || this.scope.query[selectesListName].length > 0) {\r\n this.scope.query[selectesListName] = angular.copy(list);\r\n }\r\n };\r\n this.scope.changeStatus = ($event, repairRequest) =>\r\n this.changeStatus($event, repairRequest);\r\n this.scope.AddEvent = ( $event, repairRequest, eventType ) =>\r\n this.addEvent($event, repairRequest, eventType);\r\n this.scope.openDialog = ($event, RepairRequestId, isEdit = false) =>\r\n this.openDialog($event,RepairRequestId,isEdit);\r\n this.scope.printDialog = ($event, RepairRequestId) =>\r\n\t\t\tthis.printDialog($event,RepairRequestId);\r\n\r\n\r\n this.scope.label = {\r\n of: \"из\",\r\n page: \"Страница\",\r\n rowsPerPage: \"Строк на странице\"\r\n };\r\n this.scope.menu = {\r\n hidden: false,\r\n hover: true,\r\n isOpen: false,\r\n selectedDirection: \"up\"\r\n };\r\n\r\n this.scope.openMenu = ($mdMenu, ev, repairRequest) => {\r\n\t\t\tif (repairRequest) {\r\n\t\t\t\tthis.genViberShareLink(repairRequest);\r\n\t\t\t}\r\n $mdMenu.open(ev);\r\n };\r\n\r\n this.scope.load = () => this.load();\r\n this.scope.exportExcel = () => this.exportExcel();\r\n\r\n Instance.RepairRequestService.GetRepairRequestPerformerList()\r\n .then((performers) => {\r\n this.scope.repairRequestPerformerList = performers;\r\n return Instance.RepairRequestService.GetRepairRequestStatuses();\r\n })\r\n .then(statuses => {\r\n this.scope.repairRequestStatuses = statuses;\r\n return Instance.RepairRequestService.GetRepairRequestEventTypes();\r\n })\r\n .then(eventTypes => {\r\n this.scope.eventTypes = eventTypes;\r\n return Instance.RepairRequestService.GetRepairRequestTypes();\r\n })\r\n .then(types => {\r\n this.scope.repairRequestTypes = types;\r\n if (Instance.$stateParams.filter) {\r\n this.scope.query = JSON.parse(Instance.$stateParams.filter);\r\n this.scope.daterange = {\r\n createdStart: new Date(moment(this.scope.query.createdStart).format(\"YYYY-MM-01\")),\r\n createdEnd: new Date(moment(this.scope.query.createdEnd).format(\"YYYY-MM-01\"))\r\n };\r\n }\r\n this.scope.isStarted = true;\r\n this.load();\r\n })\r\n .catch((e) => Instance.ToastService.handle(e));\r\n\r\n }\r\n\r\n load(): void {\r\n if (this.scope.isStarted) {\r\n this.scope.$parent.isLoading = true;\r\n const params: RepairRequestModel.IRepairRequestParameters = JSON.parse(JSON.stringify(this.scope.query));\r\n params.offset = (params.page - 1) * params.limit;\r\n this.setLocation(params);\r\n params.statusList = params.statusList.filter((s: any) => s.StatusId).map((s: any) => s.StatusId);\r\n params.typeIdList = params.typeIdList.map((s: any) => s.RepairRequestTypeId);\r\n params.performerIdList = params.performerIdList.map((s: any) => s.PerformerId);\r\n this.scope.promise = Instance.RepairRequestService.GetRepairRequestList(params)\r\n .then(data => {\r\n this.scope.count = data.Count;\r\n this.scope.data = this.setDeadLineDate(data.Data);\r\n })\r\n .finally(() => this.scope.$parent.isLoading = false);\r\n }\r\n\t}\r\n\r\n\tprotected genViberShareLink(repairRequest: IRepairRequest) {\r\n\t\tconst viber_share: string = \"viber_share-\" + repairRequest.ShortRepairRequestId;\r\n\t\tconst whatsapp_share: string = \"whatsapp_share-\" + repairRequest.ShortRepairRequestId;\r\n\t\tconst whatsapp_phone: string = null; // \"79164085387\";\r\n\t\tconst mail_share: string = \"mail_share-\" + repairRequest.ShortRepairRequestId;\r\n\t\tconst mail_address: string = null; // \"mzharkov95@gmail.com\";\r\n\r\n\t\tlet text: string = `Заявления №${repairRequest.ShortRepairRequestId}\r\nЗаголовок: ${repairRequest.Title}\r\nОписание: ${repairRequest.Description}\r\nАдрес: ${repairRequest.Address}`;\r\n\t\ttext += repairRequest.Appeals.reduce((prev, appeal) => {\r\n\t\t\treturn prev + `\r\n---\r\nОбращение: ${appeal.ShortAppealId}\r\nТелефон: ${appeal.PhoneNumber ? appeal.PhoneNumber : 'Не указан'}\r\nEmail: ${appeal.Email ? appeal.Email : 'Не указан'}`;\r\n\t\t},'');\r\n\t\tdocument.getElementById(viber_share)\r\n\t\t\t.setAttribute(\"href\", \"viber://forward?text=\" + encodeURIComponent(text));\r\n\t\tdocument.getElementById(whatsapp_share)\r\n\t\t\t.setAttribute(\"href\", \"https://web.whatsapp.com/send?text=\" +\r\n\t\t\tencodeURIComponent(text) +\r\n\t\t\t( whatsapp_phone ? `&phone=+${whatsapp_phone}` : \"\" ));\r\n\t\tdocument.getElementById(whatsapp_share)\r\n\t\t\t.setAttribute(\"target\", \"_blank\");\r\n\t\tdocument.getElementById(mail_share)\r\n\t\t\t.setAttribute(\"href\", \"mailto:\" +\r\n\t\t\t( mail_address ? mail_address : \"\" )\r\n\t\t\t+ \"?subject=Новое заявление в диспетчерской&body=\" +\r\n\t\t\tencodeURIComponent(text));\r\n\t\tdocument.getElementById(mail_share)\r\n\t\t\t.setAttribute(\"target\", \"_blank\");\r\n\t}\r\n\r\n getExportData(\r\n _data: any[],\r\n params: RepairRequestModel.IRepairRequestParameters,\r\n tryCount: number = 0\r\n ): ng.IPromise {\r\n return Instance.RepairRequestService.GetRepairRequestList(params)\r\n .then(data => {\r\n _data = _data.concat(this.setDeadLineDate(data.Data));\r\n this.scope.exportProgress = ((_data.length / data.Count) * 100).toFixed(2);\r\n if (data.Count === _data.length) {\r\n return _data;\r\n } else {\r\n params.offset = _data.length;\r\n if (tryCount > 10000) {\r\n return _data;\r\n }\r\n return this.getExportData(_data, params, tryCount++);\r\n }\r\n });\r\n }\r\n\r\n changeStatus($event: any, repairRequest: RepairRequestModel.IRepairRequest): void {\r\n this.scope.$parent.isLoading = true;\r\n Instance.RepairRequestService.showRepairRequestStatus($event, repairRequest.Status.StatusId)\r\n .then((response) => {\r\n let ChangeStatusEventType: RepairRequestModel.IRepairRequestEventType = this.scope.eventTypes.filter(ev => {\r\n return ev.IsChangeStatus;\r\n })[0];\r\n if (ChangeStatusEventType) {\r\n let IdFrom: any = repairRequest.Status.StatusId;\r\n let IdTo: any = angular.copy(IdFrom);\r\n let comment: any = null;\r\n\r\n if (response && response.activeState) {\r\n repairRequest.StatusId = IdTo = response.activeState.StatusId;\r\n }\r\n if (response && response.comment) {\r\n comment = response.comment;\r\n }\r\n\r\n let ChangeStatusEvent: RepairRequestModel.IRepairRequestEvent = {\r\n RepairRequestId: repairRequest.RepairRequestId,\r\n RepairRequestEventTypeId: ChangeStatusEventType.RepairRequestEventTypeId,\r\n RepairRequestEventType: ChangeStatusEventType,\r\n Comment: comment,\r\n IdFrom: IdFrom,\r\n IdTo: IdTo\r\n };\r\n return Instance.RepairRequestService.EditRepairRequest(repairRequest, ChangeStatusEvent);\r\n } else {\r\n throw \"Данный вид события не найден по пробуйте позже\";\r\n }\r\n })\r\n .then(() => {\r\n Instance.ToastService.show(\"Статус изменён\", Instance.ToastService.status.success);\r\n this.load();\r\n })\r\n .catch(err => {\r\n if (err) {\r\n console.warn(err);\r\n if (angular.isString(err)) {\r\n Instance.ToastService.show(err, Instance.ToastService.status.warning);\r\n } else {\r\n Instance.ToastService.handle(err);\r\n }\r\n }\r\n })\r\n .finally(() => this.scope.$parent.isLoading = false);\r\n }\r\n\r\n addEvent($event: any, repairRequest: RepairRequestModel.IRepairRequest, eventType: RepairRequestModel.IRepairRequestEventType): void {\r\n if (eventType.IsChangeStatus) {\r\n this.scope.$parent.isLoading = true;\r\n Instance.RepairRequestService.showRepairRequestStatus($event, repairRequest.Status.StatusId)\r\n .then((response) => {\r\n this.scope.$emit(\"LK:RepairRequestEvent:Add\", repairRequest, eventType, response);\r\n })\r\n .catch((err) => {\r\n if (err) {\r\n console.warn(err);\r\n if (angular.isString(err)) {\r\n Instance.ToastService.show(err, Instance.ToastService.status.warning);\r\n } else {\r\n Instance.ToastService.handle(err);\r\n }\r\n }\r\n })\r\n .finally(() => this.scope.$parent.isLoading = false);\r\n } else {\r\n this.scope.$emit(\"LK:RepairRequestEvent:Add\", repairRequest, eventType);\r\n }\r\n }\r\n\r\n openDialog($event: any, RepairRequestId: number, isEdit: boolean = false): void {\r\n let editEventTypes: RepairRequestModel.IRepairRequestEventType;\r\n this.scope.$parent.isLoading = true;\r\n Instance.RepairRequestService.GetRepairRequestEventTypes()\r\n .then(list => {\r\n let options: any = { isEdit: false };\r\n editEventTypes = list.filter(i => i.IsEditRepairRequestInfo)[0];\r\n if ( editEventTypes ) {\r\n options.isEdit = true;\r\n }\r\n return Instance.RepairRequestService.showRepairRequest($event, RepairRequestId, options);\r\n })\r\n .then(data => {\r\n if (data && editEventTypes) {\r\n return Instance.RepairRequestService.EditRepairRequest(data, editEventTypes);\r\n }\r\n })\r\n .then(() => {\r\n\t\t\t\tthis.load();\r\n })\r\n .catch(err => {\r\n\r\n if (err && !err.RepairRequestId && (err.message || err.Message)) {\r\n Instance.ToastService.handle(err);\r\n }\r\n })\r\n .finally(() => this.scope.$parent.isLoading = false);\r\n\t}\r\n\r\n printDialog($event: any, RepairRequestId: number): void {\r\n this.scope.$parent.isLoading = true;\r\n\t\tInstance.RepairRequestService.printRepairRequest($event, RepairRequestId)\r\n .finally(() => this.scope.$parent.isLoading = false);\r\n }\r\n\r\n exportExcel(): void {\r\n this.scope.exportProgress = 0;\r\n this.scope.isExporting = true;\r\n const params: RepairRequestModel.IRepairRequestParameters = JSON.parse(JSON.stringify(this.scope.query));\r\n params.offset = 0;\r\n params.statusList = params.statusList.filter((s: any) => s.StatusId).map((s: any) => s.StatusId);\r\n params.typeIdList = params.typeIdList.map((s: any) => s.RepairRequestTypeId);\r\n params.performerIdList = params.performerIdList.map((s: any) => s.PerformerId);\r\n this.getExportData([], params)\r\n .then(list => {\r\n const props: IExportProperties[] = [\r\n { title: \"№ Заявки\", name: \"ShortRepairRequestId\", width: 100, isVisible: true },\r\n { title: \"Статус\", name: \"StatusName\", width: 175, isVisible: true },\r\n { title: \"Дата создания\", name: \"CreatedAt\", width: 175, isVisible: true },\r\n { title: \"Тип\", name: \"RepairRequestTypeName\", width: 175, isVisible: true },\r\n { title: \"Регламентный срок\", name: \"RepairRequestDeadLineText\", width: 175, isVisible: true },\r\n { title: \"Исполнитель\", name: \"Person\", width: 175, isVisible: true },\r\n { title: \"Адрес\", name: \"Address\", width: 300, isVisible: true },\r\n { title: \"Заголовок\", name: \"Title\", width: 300, isVisible: true },\r\n\r\n { title: \"Описание\", name: \"Description\", width: 300, isVisible: true },\r\n { title: \"ОГРН\", name: \"OGRN\", width: 300, isVisible: true },\r\n { title: \"Заявители\", name: \"AppealsList\", width: 1000, isVisible: true },\r\n ];\r\n this.scope.exportProgress = 100;\r\n\r\n Instance.ExcelExportService.export(\r\n list.map(item => {\r\n const AppealsList: string = item.Appeals.map(a => {\r\n let info: string[] = [];\r\n if (a.Address) {\r\n info.push(`Адрес: ${a.Address}`);\r\n }\r\n if (a.PhoneNumber) {\r\n info.push(`Номер телефона: ${a.PhoneNumber}`);\r\n }\r\n if (a.Email) {\r\n info.push(`Почта: ${a.Email}`);\r\n }\r\n return `Причина: ${a.Reason}, ${info.join(\", \")}`;\r\n }).join(\"; \");\r\n\r\n return {\r\n ShortRepairRequestId: item.ShortRepairRequestId,\r\n StatusName: item.Status.Name,\r\n CreatedAt: moment(item.CreatedAt).format(\"DD.MM.YYYY\"),\r\n RepairRequestTypeName: item.RepairRequestType ? item.RepairRequestType.Name : \"-\",\r\n RepairRequestDeadLineText: item.RepairRequestDeadLine.text,\r\n Person: item.Performer ? item.Performer.Name : \"-\",\r\n Address: item.Address || \"Адрес не указан\",\r\n Title: item.Title || \"Заголовок отсутствует\",\r\n Description: item.Description || \"Описание отсутствует\",\r\n OGRN: item.OGRN,\r\n AppealsList: AppealsList\r\n };\r\n }),\r\n props,\r\n `LS-${Instance.$stateParams.ogrn}-${moment().format(\"YYYY-MM-DD-hhmmss\")}`\r\n );\r\n this.scope.isExporting = false;\r\n })\r\n .catch(() => {\r\n this.scope.isExporting = false;\r\n });\r\n }\r\n\r\n setDeadLineDate(data: RepairRequestModel.IRepairRequest[]): RepairRequestModel.IRepairRequest[] {\r\n return data.map(x => {\r\n if (x.StatusId === 4 || x.StatusId === 5) {\r\n x.RepairRequestDeadLine = {\r\n date: null,\r\n text: x.StatusId === 4 ? \"Задача закрыта\" : \"Задача отклонена\",\r\n isExpired: false\r\n };\r\n return x;\r\n }\r\n if (x.RepairRequestType) {\r\n if (x.StartedAt) {\r\n const StartedAt: Date = moment(new Date(x.StartedAt)).add(x.RepairRequestType.DeadLine, \"minutes\");\r\n x.RepairRequestDeadLine = {\r\n date: StartedAt,\r\n text: moment(StartedAt).fromNow(),\r\n isExpired: new Date() > StartedAt\r\n };\r\n } else {\r\n x.RepairRequestDeadLine = {\r\n date: new Date(),\r\n text: \"Задача еще не в работе\",\r\n isExpired: false\r\n };\r\n }\r\n } else {\r\n x.RepairRequestDeadLine = {\r\n date: null,\r\n text: \"Нет информации\",\r\n isExpired: false\r\n };\r\n }\r\n return x;\r\n });\r\n }\r\n\r\n setLocation(params: RepairRequestModel.IRepairRequestParameters): void {\r\n Instance.$location.search(\"filter\", JSON.stringify(params));\r\n\r\n this.scope.filterNumbers = 0;\r\n if (params.createdEnd && params.createdStart) {\r\n this.scope.filterNumbers++;\r\n }\r\n this.scope.filterNumbers += params.typeIdList.length;\r\n this.scope.filterNumbers += params.statusList.length;\r\n this.scope.filterNumbers += params.performerIdList.length;\r\n this.scope.filterNumbers += params.expired === \"0\" ? 0 : 1;\r\n }\r\n\r\n}\r\n\r\nexport class RepairRequestTableDirective {\r\n static getInstance($templateCache: ng.ITemplateCacheService, $stateParams: any, $http: ng.IHttpService,\r\n BackendUri: string, $mdDialog: any, $location: any, $q: any, RepairRequestService: any, $timeout: any,\r\n ExcelExportService: ExcelExportService, ToastService: any\r\n ): any {\r\n return (Instance = new RepairRequestTableDirective(\r\n $templateCache,\r\n $stateParams,\r\n $http,\r\n BackendUri,\r\n $mdDialog,\r\n $location,\r\n $q,\r\n RepairRequestService,\r\n $timeout,\r\n ExcelExportService,\r\n ToastService\r\n ));\r\n }\r\n\r\n public restrict: string = \"E\";\r\n public scope = {\r\n isCallHandler: \"=?\"\r\n };\r\n public template: any;\r\n\r\n constructor(public $templateCache: ng.ITemplateCacheService, public $stateParams: any,\r\n public $http: ng.IHttpService, public BackendUri: string, public $mdDialog: any, public $location: any,\r\n public $q: ng.IQService, public RepairRequestService: RepairRequestService,\r\n public $timeout: ng.ITimeoutService, public ExcelExportService: ExcelExportService, public ToastService: ToastService\r\n ) {\r\n this.template = $templateCache.get(\r\n \"site/detail/dispatcher/repair-request/directives/repair-request-table.directive.html\"\r\n );\r\n }\r\n\r\n link(scope: any, element: any, attr: any, controller: RepairRequestTableController): any {\r\n controller.link(scope, element, attr);\r\n }\r\n\r\n controller(): any {\r\n return new RepairRequestTableController();\r\n }\r\n}\r\n","/// \r\nimport { ToastService } from \"../../../../shared/services/toast.service\";\r\n\r\ndeclare var moment: any;\r\nmoment.locale(\"ru\");\r\n\r\nexport interface IRepairRequestScope extends ng.IScope {\r\n query: IQueryRepairRequest;\r\n}\r\n\r\nexport interface IQueryRepairRequest {\r\n order: string;\r\n limit: number;\r\n page: number;\r\n filter: any;\r\n}\r\n\r\nexport class RepairRequestController {\r\n\tscope: IRepairRequestScope;\r\n\r\n constructor($scope: any, private $state: any, $stateParams: any, $mdDateLocale: ng.material.IDateLocaleProvider,\r\n private $location: any, private $http: ng.IHttpService, private $q: ng.IQService,\r\n private $mdDialog: ng.material.IDialogService, private $templateCache: any, private ToastService: ToastService\r\n ) {\r\n this.scope = $scope;\r\n this.scope.isLoading = true;\r\n this.scope.OGRN = $stateParams.ogrn;\r\n }\r\n}\r\n","import { IAppeal } from \"../appeal/appeal.model\";\r\n\r\n// технические интерфейсы\r\nexport interface IRepairRequestParameters {\r\n limit: number;\r\n offset?: number;\r\n term?: string;\r\n typeIdList?: string[];\r\n createdStart?: string;\r\n createdEnd?: string;\r\n statusList?: string[];\r\n performerIdList?: string[];\r\n orderBy?: string;\r\n expired?: RepairRequestExpiredState;\r\n\r\n page?: number;\r\n}\r\nexport enum RepairRequestExpiredState {\r\n all = \"0\",\r\n isExpired = \"1\",\r\n notExpired = \"2\"\r\n}\r\nexport interface IRepairRequestDeadLine {\r\n text: string;\r\n date: Date;\r\n isExpired: boolean;\r\n}\r\n\r\n\r\n// модели возвращаемых данных\r\nexport interface IRepairRequestResponse {\r\n Count: number;\r\n Data: IRepairRequest[];\r\n}\r\nexport interface ICreateRepaitRequestResultDTO {\r\n RepairRequestId: number; // (integer, optional),\r\n ShortRepairRequestId: string; // (string, optional)\r\n}\r\nexport interface IRepairRequest {\r\n RepairRequestId?: number; // (integer, optional),\r\n ShortRepairRequestId?: string; // (string, optional),\r\n Title?: string; // (string, optional),\r\n Description?: string; // (string, optional),\r\n OGRN?: string; // (string, optional),\r\n Address?: string; // (string, optional),\r\n IsNeedHelp?: boolean; // (boolean, optional),\r\n RepairRequestTypeId?: string;\r\n RepairRequestType?: IRepairRequestType; // (NestedRepairRequestType, optional),\r\n StatusId?: number;\r\n Status?: IRepairRequestStatus; // (NestedStatus, optional),\r\n Appeals?: IAppeal[]; // (Array[NestedAppeal], optional)\r\n\r\n StartedAt?: any;\r\n LastUpdate?: any; // (string, optional),\r\n CreatedAt?: any; // (string, optional),\r\n\r\n Attachments?: IRepairRequestAttachment[]; // (Array[NestedAttachment], optional),\r\n Notifications?: IRepairRequestNotification[]; // (Array[NestedNotification], optional),\r\n RepairRequestEvents?: IRepairRequestEvent[]; // (Array[NestedRepairRequestEvent], optional)\r\n IsHidden?: boolean; // (boolean, optional),\r\n\r\n RepairRequestDeadLine?: IRepairRequestDeadLine;\r\n\r\n\r\n Performer?: IRepairRequestPerformer;\r\n PerformerId?: any; // (string, optional),\r\n}\r\n\r\nexport interface IRepairRequestType {\r\n RepairRequestTypeId?: string; // (string, optional),\r\n Name?: string; // (string, optional),\r\n Description?: string; // (string, optional),\r\n DeadLine?: number; // (integer, optional)\r\n IsFree?: boolean; // (integer, optional)\r\n}\r\nexport interface IRepairRequestStatus {\r\n StatusId?: number; // (integer, optional),\r\n Name?: string; // (string, optional)\r\n To?: IRepairRequestStatus[];\r\n}\r\nexport interface IRepairRequestAttachment {\r\n AttachmentId?: string; // (string, optional),\r\n CreatedAt?: string; // (string, optional),\r\n RepairRequestId?: number; // (integer, optional),\r\n Description?: string; // (string, optional),\r\n Link?: string; // (string, optional)\r\n Extension?: string; // (string, optional)\r\n}\r\nexport interface IRepairRequestNotification {\r\n NotificationId?: string; // (string, optional),\r\n RepairRequestId?: number; // (integer, optional),\r\n Performer?: string; // (string, optional),\r\n Reason?: string; // (string, optional),\r\n Date?: string; // (string, optional)\r\n}\r\nexport interface IRepairRequestEvent {\r\n RepairRequestEventId?: string; // (string, optional),\r\n RepairRequestId?: number; // (integer, optional),\r\n Comment?: string; // (string, optional),\r\n\r\n RepairRequestEventTypeId?: number;\r\n RepairRequestEventType?: IRepairRequestEventType;\r\n\r\n IdFrom?: number;\r\n From?: IRepairRequestStatus; // (NestedStatus, optional),\r\n IdTo?: number;\r\n To?: IRepairRequestStatus; // (NestedStatus, optional)\r\n\r\n AppealId?: string;\r\n Appeal?: IAppeal; // (NestedAppeal, optional),\r\n CreatedAt?: any;\r\n\r\n RepairRequest?: IRepairRequest;\r\n}\r\nexport interface IRepairRequestEventType {\r\n RepairRequestEventTypeId: number;\r\n Name: string;\r\n IsCreateRepairRequest: boolean;\r\n IsChangeStatus: boolean;\r\n IsNeedCallbackType: boolean;\r\n IsEditRepairRequestInfo: boolean;\r\n Description: string;\r\n}\r\nexport interface IRepairRequestPerformer {\r\n PerformerId?: string; // (string, optional),\r\n Name?: string; // (string, optional),\r\n OGRN?: string; // (string, optional)\r\n\r\n isEdit?: boolean;\r\n}\r\n","/// \r\nimport * as RepairRequestModel from \"./repair-request.model\";\r\nimport { PrintDialogController } from \"./dialogs/print.dialog\";\r\nimport { IRepairRequestPerformer } from \"./repair-request.model\";\r\n\r\n\r\ndeclare var moment: any;\r\nmoment.locale(\"ru\");\r\n\r\nexport class RepairRequestService {\r\n protected RepairRequestTypes: RepairRequestModel.IRepairRequestType[];\r\n protected RepairRequestTypesSyncDate: Date;\r\n protected EventTypes: RepairRequestModel.IRepairRequestEventType[];\r\n protected Statuses: RepairRequestModel.IRepairRequestStatus[];\r\n\r\n\r\n constructor(protected $http: ng.IHttpService, protected $state: any, protected BackendUri: string,\r\n protected $mdDialog: ng.material.IDialogService, protected $templateCache: any, protected $q: ng.IQService\r\n ) { }\r\n\r\n protected handleRepairRequest(repairRequest: RepairRequestModel.IRepairRequest): RepairRequestModel.IRepairRequest {\r\n for(let key of [\"RepairRequestType\", \"Performer\", \"Status\"]) {\r\n if (repairRequest[key]) {\r\n repairRequest[ key + \"Id\" ] = repairRequest[key][key+\"Id\"];\r\n }\r\n }\r\n for(let dateKey of [\"StartedAt\", \"LastUpdate\", \"CreatedAt\"]) {\r\n if (repairRequest[dateKey]) {\r\n repairRequest[dateKey] = new Date(repairRequest[dateKey]);\r\n }\r\n }\r\n if (repairRequest.RepairRequestEvents) {\r\n repairRequest.RepairRequestEvents.forEach(ev => {\r\n ev.CreatedAt = new Date(ev.CreatedAt);\r\n if (ev.RepairRequestEventType) {\r\n ev.RepairRequestEventTypeId = ev.RepairRequestEventType.RepairRequestEventTypeId;\r\n }\r\n if (ev.From) {\r\n ev.IdFrom = ev.From.StatusId;\r\n }\r\n if (ev.To) {\r\n ev.IdTo = ev.To.StatusId;\r\n }\r\n });\r\n }\r\n return repairRequest;\r\n }\r\n\r\n /**\r\n * Получение списка заявок\r\n * @param _params параметры запроса\r\n */\r\n GetRepairRequestList(_params: RepairRequestModel.IRepairRequestParameters): ng.IPromise {\r\n try {\r\n const params: RepairRequestModel.IRepairRequestParameters = angular.extend({}, {\r\n limit: 25,\r\n offset: 0\r\n }, angular.copy(_params));\r\n delete params.page;\r\n\r\n if (params.term && params.term === \"\") { delete params.term; }\r\n if (params.typeIdList.length === 0) { delete params.typeIdList; }\r\n if (params.statusList.length === 0) { delete params.statusList; }\r\n\r\n return this.$http.get(`${this.BackendUri}/repair-request`, { params: params })\r\n .then(response => {\r\n let result: RepairRequestModel.IRepairRequestResponse = response.data as any;\r\n result.Data = result.Data.map(repairRequest => this.handleRepairRequest(repairRequest));\r\n return result;\r\n });\r\n } catch (err) {\r\n throw err;\r\n }\r\n\r\n\r\n }\r\n\r\n GetRepairRequest(requestId: number): ng.IPromise {\r\n return this.$http.get(`${this.BackendUri}/repair-request/${requestId}`)\r\n .then(response => {\r\n const repairRequest: RepairRequestModel.IRepairRequest = response.data;\r\n return this.handleRepairRequest(repairRequest);\r\n });\r\n }\r\n\r\n /**\r\n * Создание заявки\r\n */\r\n CreateRepairRequest(): ng.IPromise {\r\n return this.$http.post(`${this.BackendUri}/repair-request`, { })\r\n .then(response => {\r\n const dto: RepairRequestModel.ICreateRepaitRequestResultDTO = response.data as any;\r\n const data: RepairRequestModel.IRepairRequest = {\r\n RepairRequestId: dto.RepairRequestId,\r\n ShortRepairRequestId: dto.ShortRepairRequestId,\r\n CreatedAt: \"\",\r\n Title: \"\",\r\n Description: \"\",\r\n OGRN: \"\",\r\n Address: \"\",\r\n LastUpdate: \"\",\r\n IsNeedHelp: false,\r\n RepairRequestTypeId: \"\",\r\n StatusId: 0,\r\n StartedAt: \"\",\r\n };\r\n return data;\r\n });\r\n }\r\n\r\n /**\r\n * Редактирование заявки\r\n */\r\n EditRepairRequest(\r\n data: RepairRequestModel.IRepairRequest,\r\n event: RepairRequestModel.IRepairRequestEvent\r\n ): ng.IPromise {\r\n return this.$http.patch(`${this.BackendUri}/repair-request/${data.RepairRequestId}`, {\r\n RepairRequest: data, RepairRequestEvent: event\r\n }).then(response => {\r\n const repairRequest: RepairRequestModel.IRepairRequest = response.data;\r\n return this.handleRepairRequest(repairRequest);\r\n });\r\n }\r\n\r\n\r\n /**\r\n * Открыть модальное окно\r\n * @param $event Событие вызвавшее открытие окна\r\n * @param RepairRequestId ID Заявки\r\n * @param dialogParams Параметры открытия окна\r\n */\r\n showRepairRequest(\r\n $event: any, RepairRequestId: number, dialogParams: IShowRepairRequestParams = { isEdit: false }\r\n ): ng.IPromise {\r\n return this.GetRepairRequest(RepairRequestId)\r\n .then(repairRequest => {\r\n return this.$mdDialog.show({\r\n controller: \"RepairRequestDialogController\",\r\n template: this.$templateCache.get(\r\n \"site/detail/dispatcher/repair-request/dialogs/rapair-request.dialog.html\"\r\n ),\r\n parent: angular.element(document.body),\r\n targetEvent: $event,\r\n locals: {\r\n repairRequest,\r\n dialogParams\r\n },\r\n clickOutsideToClose: false,\r\n fullscreen: true\r\n });\r\n });\r\n }\r\n /**\r\n * Открыть модальное окно\r\n * @param $event Событие вызвавшее открытие окна\r\n * @param RepairRequestId ID Заявки\r\n * @param dialogParams Параметры открытия окна\r\n */\r\n printRepairRequest( $event: any, RepairRequestId: number ): ng.IPromise {\r\n return this.GetRepairRequest(RepairRequestId)\r\n .then(repairRequest => {\r\n\t\t\t\tif (!repairRequest.RepairRequestType) {\r\n\t\t\t\t\trepairRequest.RepairRequestType = {\r\n\t\t\t\t\t\tRepairRequestTypeId: null,\r\n\t\t\t\t\t\tName: \"\",\r\n\t\t\t\t\t\tDeadLine: 0,\r\n\t\t\t\t\t\tIsFree: true\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\t\t\t\tif (!repairRequest.Performer) {\r\n\t\t\t\t\trepairRequest.Performer = {\r\n\t\t\t\t\t\tName: \"\",\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\t\t\t\treturn this.$mdDialog.show({\r\n\t\t\t\t\tcontroller: \"PrintDialogController\",\r\n\t\t\t\t\ttemplate: this.$templateCache.get(\r\n \"site/detail/dispatcher/repair-request/dialogs/print.dialog.html\"\r\n ),\r\n\t\t\t\t\tparent: angular.element(document.body),\r\n\t\t\t\t\ttargetEvent: $event,\r\n\t\t\t\t\tlocals: { repairRequest },\r\n\t\t\t\t\thasBackdrop: false,\r\n\t\t\t\t\tclickOutsideToClose: false,\r\n\t\t\t\t\tescapeToClose: false,\r\n\t\t\t\t\tfullscreen: true,\r\n\r\n\t\t\t\t\tonShowing: (scope, element) => {\r\n\t\t\t\t\t\tangular.element(\"html\").addClass(\"print-form-is-open\");\r\n\t\t\t\t\t},\r\n\t\t\t\t\tonRemoving: (scope, element) => {\r\n\t\t\t\t\t\tangular.element(\"html\").removeClass(\"print-form-is-open\");\r\n\t\t\t\t\t},\r\n\t\t\t\t});\r\n\t\t\t})\r\n }\r\n /**\r\n * Открыть модальное окно на смену статуса\r\n * @param $event Событие вызвавшее открытие окна\r\n * @param RepairRequestId ID Заявки\r\n * @param dialogParams Параметры открытия окна\r\n */\r\n showRepairRequestStatus(\r\n $event: any, StatusId: any, defaultActiveStatusId?: any\r\n ): ng.IPromise<{activeState: RepairRequestModel.IRepairRequestStatus, comment: string}> {\r\n return this.GetRepairRequestStatuses()\r\n .then(statuses => {\r\n\t\t\t\tlet currentStatus:RepairRequestModel.IRepairRequestStatus = statuses.filter(s => s.StatusId === StatusId)[0];\r\n\t\t\t\tlet transitions: RepairRequestModel.IRepairRequestStatus[] = currentStatus.To;\r\n\r\n\t\t\t\tlet defaultActiveStatus: any = transitions[0];\r\n\t\t\t\tconst tmpDefault: any = { 1: 2, 2: 3, 3: 4, 5: 2 };\r\n\t\t\t\tdefaultActiveStatusId = defaultActiveStatusId ? defaultActiveStatusId : tmpDefault[StatusId];\r\n\t\t\t\tif (transitions.length > 1 && defaultActiveStatusId) {\r\n\t\t\t\t\tconst tmp: any = transitions.filter(t => t.StatusId === defaultActiveStatusId)[0];\r\n\t\t\t\t\tif (tmp) {\r\n\t\t\t\t\t\tdefaultActiveStatus = tmp;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n let ActiveStatus: RepairRequestModel.IRepairRequestStatus = defaultActiveStatus;\r\n\r\n if (transitions.length <= 0) {\r\n throw \"Данный статус является конечным. Для него не предусмотрены переходы\";\r\n }\r\n\r\n return this.$mdDialog.show({\r\n controller: \"RepairRequestStatusDialogController\",\r\n template: this.$templateCache.get(\r\n \"site/detail/dispatcher/repair-request/dialogs/rapair-request-status.dialog.html\"\r\n ),\r\n parent: angular.element(document.body),\r\n targetEvent: $event,\r\n locals: {\r\n currentStatus,\r\n transitions,\r\n ActiveStatus\r\n },\r\n clickOutsideToClose: false,\r\n fullscreen: true\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * Получение списка типов событий\r\n */\r\n GetRepairRequestEventTypes(): ng.IPromise {\r\n if (this.EventTypes) {\r\n return this.$q.resolve(this.EventTypes);\r\n }\r\n return this.$http.get(`${this.BackendUri}/repair-request/event-types`)\r\n .then(({ data }) => {\r\n this.EventTypes = data as RepairRequestModel.IRepairRequestEventType[];\r\n return this.EventTypes;\r\n });\r\n }\r\n\r\n /**\r\n * Получение списка типов заявок\r\n */\r\n GetRepairRequestTypes(): ng.IPromise {\r\n // tslint:disable-next-line:max-line-length\r\n if (this.RepairRequestTypes && this.RepairRequestTypesSyncDate && this.RepairRequestTypesSyncDate.getTime() + 1000 * 60 * 25 > new Date().getTime()) {\r\n return this.$q.resolve(this.RepairRequestTypes);\r\n }\r\n return this.$http.get(`${this.BackendUri}/repair-request/types`)\r\n .then(({ data }) => {\r\n\t\t\t\t\tthis.RepairRequestTypes = data.map((type) => {\r\n\t\t\t\t\t\t// tslint:disable-next-line:no-string-literal\r\n\t\t\t\t\t\ttype.DeadLine = type[\"Deadline\"];\r\n\t\t\t\t\t\treturn type;\r\n\t\t\t\t\t});\r\n this.RepairRequestTypesSyncDate = new Date();\r\n return this.RepairRequestTypes;\r\n });\r\n }\r\n /**\r\n * Получение списка типов заявок\r\n */\r\n CreateRepairRequestTypes(dto: RepairRequestModel.IRepairRequestType): ng.IPromise {\r\n return this.$http.post(`${this.BackendUri}/repair-request/type`, dto)\r\n .then(() => this.$http.get(`${this.BackendUri}/repair-request/types`))\r\n .then(({ data }) => { this.RepairRequestTypes = data; });\r\n }\r\n /**\r\n * Получение списка типов заявок\r\n */\r\n UpdateRepairRequestTypes(id: string, dto: RepairRequestModel.IRepairRequestType): ng.IPromise {\r\n return this.$http.patch(`${this.BackendUri}/repair-request/type/${id}`, dto)\r\n .then(() => this.$http.get(`${this.BackendUri}/repair-request/types`))\r\n .then(({ data }) => { this.RepairRequestTypes = data; });\r\n }\r\n /**\r\n * Получение списка типов заявок\r\n */\r\n DeleteRepairRequestTypes(id: string): ng.IPromise {\r\n return this.$http.delete(`${this.BackendUri}/repair-request/type/${id}`)\r\n .then(() => this.$http.get(`${this.BackendUri}/repair-request/types`))\r\n .then(({ data }) => {\r\n this.RepairRequestTypes = data as RepairRequestModel.IRepairRequestType[];\r\n });\r\n }\r\n\r\n /**\r\n * Получение списка статусов заявок\r\n */\r\n GetRepairRequestStatuses(): ng.IPromise {\r\n if (this.Statuses) {\r\n return this.$q.resolve(this.Statuses);\r\n }\r\n return this.$http.get(`${this.BackendUri}/repair-request/statuses`)\r\n .then(({ data }) => {\r\n this.Statuses = data as RepairRequestModel.IRepairRequestStatus[];\r\n return this.Statuses;\r\n });\r\n }\r\n\r\n\r\n // performer block\r\n\r\n /**\r\n * Получение списка исполнителей\r\n */\r\n GetRepairRequestPerformerList(): ng.IPromise {\r\n return this.$http.get(`${this.BackendUri}/performer`)\r\n .then(({ data }) => {\r\n return data as RepairRequestModel.IRepairRequestPerformer[];\r\n });\r\n }\r\n /**\r\n * Создать исполнителей\r\n */\r\n CreateRepairRequestPerformer(Name: string): ng.IPromise<{PerformerId: string}> {\r\n return this.$http.post(`${this.BackendUri}/performer`, { Name })\r\n .then(({ data }) => {\r\n return data as any;\r\n });\r\n }\r\n /**\r\n * Изменить исполнителей\r\n */\r\n UpdateRepairRequestPerformer({ PerformerId, Name }: IRepairRequestPerformer): ng.IPromise<{PerformerId: string}> {\r\n return this.$http.patch(`${this.BackendUri}/performer`, { PerformerId, Name })\r\n .then(({ data }) => {\r\n return data as any;\r\n });\r\n }\r\n\r\n /**\r\n * Получение списка исполнителей\r\n */\r\n DeleteRepairRequestPerformer(performerId: string): ng.IPromise {\r\n return this.$http.delete(`${this.BackendUri}/performer/${performerId}`)\r\n .then(({ data }) => { return; });\r\n }\r\n}\r\n\r\nexport interface IShowRepairRequestParams {\r\n isEdit?: boolean;\r\n address?: string;\r\n isCreate?: boolean;\r\n}\r\n","/// \r\nimport { ToastService } from \"../../../../shared/services/toast.service\";\r\nimport { RepairRequestService } from \"../repair-request/repair-request.service\";\r\nimport { IRepairRequestType } from \"../repair-request/repair-request.model\";\r\n\r\ndeclare var moment: any;\r\nmoment.locale(\"ru\");\r\n\r\nexport interface IRepairRequestTypesScope extends ng.IScope {\r\n query: IQueryRepairRequestTypes;\r\n promise: any;\r\n\tlabel: any;\r\n\tautoLimit: boolean;\r\n\r\n load: any;\r\n onEnterLoad: any;\r\n\r\n allData: IRepairRequestType[];\r\n data: IRepairRequestType[];\r\n count: number;\r\n\r\n\tnewName: string;\r\n\r\n\tbottomForm: IBottomForm;\r\n\tisLoading: boolean;\r\n\tisAdding: boolean;\r\n}\r\n\r\nexport interface IQueryRepairRequestTypes {\r\n limit: number;\r\n page: number;\r\n}\r\n\r\nexport interface IBottomForm {\r\n\tid?: string;\r\n\ttype: ICreationTypeDTO;\r\n\tupdateText: string;\r\n\tsaveText: string;\r\n\tisShow: boolean;\r\n}\r\n\r\nexport interface ICreationTypeDTO {\r\n\tName: string;\r\n\tDescription: string;\r\n\tDeadLine: number;\r\n\tIsFree: boolean;\r\n}\r\n\r\nexport class RepairRequestTypesController {\r\n\tscope: IRepairRequestTypesScope;\r\n\r\n constructor($scope: any, $stateParams: any, private RepairRequestService: RepairRequestService,\r\n\t\tprivate ToastService: ToastService, private $timeout: ng.ITimeoutService,\r\n\t\tpublic $window: ng.IWindowService\r\n ) {\r\n\t\tthis.scope = $scope;\r\n this.scope.OGRN = $stateParams.ogrn;\r\n this.scope.rnd = Math.random();\r\n this.scope.isLoading = true;\r\n this.scope.autoLimit = true;\r\n this.scope.isAdding = false;\r\n this.scope.bottomForm = {\r\n\t\t\ttype: { Name: \"\", Description: \"\", DeadLine: 1, IsFree: false },\r\n\t\t\tsaveText: \"Добавить услугу\",\r\n\t\t\tupdateText: \"Сохранить изменения\",\r\n\t\t\tisShow: false\r\n\t\t};\r\n\r\n this.scope.query = {\r\n limit: 10,\r\n page: 1,\r\n };\r\n\r\n this.scope.label = {\r\n of: \"из\",\r\n page: \"Страница\",\r\n rowsPerPage: \"Строк на странице\"\r\n\t\t};\r\n\r\n\t\t$(this.$window).bind(\"resize\", () => this.checkSizeWindows());\r\n\t\tthis.checkSizeWindows();\r\n\r\n this.scope.load = () => this.load();\r\n this.scope.delete = (type) => this.Delete(type);\r\n this.scope.deadlineFormat = (time) => this.DeadlineFormat(time);\r\n\t\tthis.scope.select = (type: IRepairRequestType) => {\r\n\t\t\tthis.scope.bottomForm.id = type.RepairRequestTypeId;\r\n\t\t\tthis.scope.bottomForm.type.Name = type.Name;\r\n\t\t\tthis.scope.bottomForm.type.Description = type.Description;\r\n\t\t\tthis.scope.bottomForm.type.DeadLine = type.DeadLine;\r\n\t\t\tthis.scope.bottomForm.type.IsFree = !type.IsFree;\r\n\t\t\tthis.scope.bottomForm.isShow = true;\r\n\t\t\tthis.checkSizeWindows();\r\n\t\t};\r\n\t\tthis.scope.unselect = () => {\r\n\t\t\tthis.scope.bottomForm.id = null;\r\n\t\t\tthis.scope.bottomForm.type = { Name: \"\", Description: \"\", DeadLine: 1, IsFree: false };\r\n\t\t\tthis.scope.bottomForm.isShow = false;\r\n\t\t\tthis.checkSizeWindows();\r\n\t\t};\r\n\t\tthis.scope.create = (dto) => { this.Create(dto); };\r\n\t\tthis.scope.update = (id, dto) => { this.Update(id, dto); };\r\n\t\tthis.scope.save = () => {\r\n\t\t\tif (this.scope.bottomForm.id) {\r\n\t\t\t\tthis.scope.update(this.scope.bottomForm.id, this.scope.bottomForm.type);\r\n\t\t\t}\r\n\t\t\tthis.scope.create(this.scope.bottomForm.type);\r\n\t\t};\r\n this.scope.toogleAdding = () => this.scope.isAdding = !this.scope.isAdding;\r\n this.scope.toogleForm = () => {\r\n\t\t\tthis.scope.bottomForm.isShow = !this.scope.bottomForm.isShow;\r\n\t\t\tthis.checkSizeWindows();\r\n\t\t};\r\n this.scope.hasAutoLimit = () => {\r\n\t\t\treturn this.scope.autoLimit;\r\n\t\t};\r\n this.scope.toggleAutoLimit = () => {\r\n\t\t\tthis.scope.autoLimit = !this.scope.autoLimit;\r\n\t\t\tif (!this.scope.autoLimit) { this.scope.query.limit = 10; }\r\n\t\t\tthis.load();\r\n\t\t\tconsole.log(\"toggleAutoLimit\", this.scope.autoLimit);\r\n\t\t};\r\n\r\n this.init();\r\n }\r\n\r\n init(): any {\r\n this.scope.isLoading = true;\r\n this.scope.promise =\r\n this.RepairRequestService.GetRepairRequestTypes()\r\n .then(data => {\r\n\r\n this.scope.count = data.length;\r\n this.scope.allData = data;\r\n this.scope.data = this.scope.allData.slice(\r\n this.scope.query.limit * (this.scope.query.page - 1),\r\n this.scope.query.limit * this.scope.query.page,\r\n );\r\n })\r\n .catch(err => this.ToastService.handle(err))\r\n .finally(() => this.scope.isLoading = false);\r\n }\r\n\r\n load(): void {\r\n\t\tthis.checkSizeWindows().then(() => {\r\n\t\t\tif (!this.scope.allData) { return; }\r\n\t\t\tthis.scope.data = this.scope.allData.slice(\r\n\t\t\t\tthis.scope.query.limit * (this.scope.query.page - 1),\r\n\t\t\t\tthis.scope.query.limit * this.scope.query.page,\r\n\t\t\t);\r\n\t\t});\r\n\t}\r\n\r\n\tcheckSizeWindows(): ng.IPromise {\r\n\t\tconst limitSelect = $('md-table-pagination .limit-select').first();\r\n\t\tif (this.scope.autoLimit) {\r\n\t\t\tlimitSelect.hide();\r\n\t\t\treturn this.$timeout(() => {\r\n\t\t\t\tconst h1: number = $(\"md-table-container\").innerHeight();\r\n\t\t\t\tconst h2: number = $(\"md-table-container thead\").innerHeight();\r\n\t\t\t\tconst h3: number = $(\"md-table-container .repair-request-types-add\").innerHeight();\r\n\t\t\t\tlet countElement: number = Math.floor((h1 - (h2 + h3)) / 80); // подсчёт количества элементов\r\n\t\t\t\tthis.scope.query.limit = countElement;\r\n\t\t\t\treturn;\r\n\t\t\t}, 100);\r\n\t\t}\r\n\t\tlimitSelect.show();\r\n\t\t// tslint:disable-next-line: no-empty\r\n\t\treturn this.$timeout(() => {}, 0);\r\n\t}\r\n\r\n Delete(type: IRepairRequestType): any {\r\n if (this.scope.isLoading) { return; }\r\n this.scope.isLoading = true;\r\n this.RepairRequestService.DeleteRepairRequestTypes(type.RepairRequestTypeId)\r\n .then(() => {\r\n this.ToastService.show(\"Удален успешно\", this.ToastService.status.success);\r\n\t\t\t\tthis.init();\r\n\t\t\t\tthis.scope.unselect();\r\n })\r\n .catch((err) => {\r\n this.ToastService.handle(err);\r\n })\r\n .finally(() => this.scope.isLoading = false);\r\n }\r\n\r\n Create(dto: ICreationTypeDTO): any {\r\n if (this.scope.isLoading || dto.Name === \"\") { return; }\r\n\t\tthis.scope.isLoading = true;\r\n\t\tdto.IsFree = !dto.IsFree;\r\n\t\tthis.RepairRequestService.CreateRepairRequestTypes(dto)\r\n\t\t\t.then(() => {\r\n\t\t\t\tthis.ToastService.show(\"Успешно добавлена\", this.ToastService.status.success);\r\n\t\t\t\tthis.init();\r\n\t\t\t\tthis.scope.unselect();\r\n\t\t\t})\r\n\t\t\t.catch((err) => { this.ToastService.handle(err); })\r\n\t\t\t.finally(() => this.scope.isLoading = false);\r\n\t}\r\n Update(id: string, dto: ICreationTypeDTO): any {\r\n\t\tif (this.scope.isLoading || dto.Name === \"\") { return; }\r\n\t\tthis.scope.isLoading = true;\r\n\t\tdto.IsFree = !dto.IsFree;\r\n\t\tthis.RepairRequestService.UpdateRepairRequestTypes(id, dto)\r\n\t\t\t.then(() => {\r\n\t\t\t\tthis.ToastService.show(\"Успешно сохранено\", this.ToastService.status.success);\r\n\t\t\t\tthis.init();\r\n\t\t\t\tthis.scope.unselect();\r\n\t\t\t})\r\n\t\t\t.catch((err) => { this.ToastService.handle(err); })\r\n\t\t\t.finally(() => this.scope.isLoading = false);\r\n\t}\r\n\r\n\tDeadlineFormat(time: number): string {\r\n\t\tlet d_time: number,\r\n\t\t\th_time: number,\r\n\t\t\tm_time: number;\r\n\t\tif (time < 60) {\r\n\t\t\tm_time = time;\r\n\t\t} else if(time < 60 * 24) {\r\n\t\t\th_time = Math.floor(time / 60);\r\n\t\t\tm_time = time % 60;\r\n\t\t} else {\r\n\t\t\td_time = Math.floor(time / (60 * 24));\r\n\t\t\th_time = Math.floor((time % (60 * 24)) / 60);\r\n\t\t\tm_time = (time % (60 * 24)) % 60;\r\n\t\t}\r\n\t\tconst d = d_time > 0 ? `${d_time} д.` : \"\";\r\n\t\tconst h = h_time > 0 ? `${h_time} ч.` : \"\";\r\n\t\tconst m = m_time > 0 ? `${m_time} мин.` : \"\";\r\n\t\treturn `${d} ${h} ${m}`;\r\n\t}\r\n\r\n}\r\n","angular.module('app.routes').run(run);\r\n/* @ngInject */\r\nfunction run(stateAdapter, $templateCache) {\r\n stateAdapter.state('sitedetail.repair-request', {\r\n url: \"/repair-request?filter\",\r\n template: $templateCache.get('site/detail/dispatcher/repair-request/repair-request.controller.html'),\r\n controller: 'RepairRequestController',\r\n resolve : {\r\n userData: (User, $state) => {\r\n let user = User.getUserIdentity('Backend');\r\n if(!User.hasPermissions('dispatcher')) {\r\n $state.go('sitedetail');\r\n throw \"Нет доступа\";\r\n }\r\n return user;\r\n }\r\n },\r\n reloadOnSearch: false\r\n })\r\n stateAdapter.state('sitedetail.new-appeal', {\r\n url: \"/new-appeal?type&filter\",\r\n template: $templateCache.get('site/detail/dispatcher/new-appeal/new-appeal.controller.html'),\r\n controller: 'NewAppealController',\r\n resolve : {\r\n userData: (User, $state, $stateParams) => {\r\n let user = User.getUserIdentity('Backend');\r\n if(!User.hasPermissions('dispatcher')) {\r\n $state.go('sitedetail', { ogrn : $stateParams.ogrn });\r\n throw \"Нет доступа\";\r\n }\r\n return user;\r\n }\r\n },\r\n reloadOnSearch: false\r\n })\r\n stateAdapter.state('sitedetail.appeal', {\r\n url: \"/appeal?type\",\r\n template: $templateCache.get('site/detail/dispatcher/appeal/appeal.controller.html'),\r\n controller: 'AppealController',\r\n resolve : {\r\n userData: (User, $state) => {\r\n let user = User.getUserIdentity('Backend');\r\n if(!User.hasPermissions('dispatcher')) {\r\n $state.go('sitedetail');\r\n throw \"Нет доступа\";\r\n }\r\n return user;\r\n }\r\n },\r\n reloadOnSearch: false\r\n })\r\n stateAdapter.state('sitedetail.appeal-detail', {\r\n url: \"/appeal/{id}\",\r\n template: $templateCache.get('site/detail/dispatcher/appeal/appeal.details.controller.html'),\r\n controller: 'AppealDetailsController',\r\n resolve : {\r\n userData: (User, $state) => {\r\n let user = User.getUserIdentity('Backend');\r\n if(!User.hasPermissions('dispatcher')) {\r\n $state.go('sitedetail');\r\n throw \"Нет доступа\";\r\n }\r\n return user;\r\n }\r\n },\r\n reloadOnSearch: false\r\n })\r\n stateAdapter.state('sitedetail.performers', {\r\n url: \"/performers?type\",\r\n template: $templateCache.get('site/detail/dispatcher/performers/performers.controller.html'),\r\n controller: 'PerformersController',\r\n resolve : {\r\n userData: (User, $state) => {\r\n let user = User.getUserIdentity('Backend');\r\n if(!User.hasPermissions('dispatcher')) {\r\n $state.go('sitedetail');\r\n throw \"Нет доступа\";\r\n }\r\n return user;\r\n }\r\n },\r\n reloadOnSearch: false\r\n })\r\n stateAdapter.state('sitedetail.repair-request-types', {\r\n url: \"/repair-request-types\",\r\n template: $templateCache.get('site/detail/dispatcher/repiar-request-types/repiar-request-types.controller.html'),\r\n controller: 'RepairRequestTypesController',\r\n resolve : {\r\n userData: (User, $state) => {\r\n let user = User.getUserIdentity('Backend');\r\n if(!User.hasPermissions('dispatcher')) {\r\n $state.go('sitedetail');\r\n throw \"Нет доступа\";\r\n }\r\n return user;\r\n }\r\n },\r\n reloadOnSearch: false\r\n })\r\n stateAdapter.state('sitedetail.dispatcher-report', {\r\n url: \"/dispatcher-report?type\",\r\n template: $templateCache.get('site/detail/dispatcher/dispatcher-report/dispatcher-report.controller.html'),\r\n controller: 'DispatcherReportController',\r\n resolve : {\r\n userData: (User, $state) => {\r\n let user = User.getUserIdentity('Backend');\r\n if(!User.hasPermissions('dispatcher')) {\r\n $state.go('sitedetail');\r\n throw \"Нет доступа\";\r\n }\r\n return user;\r\n }\r\n },\r\n reloadOnSearch: false\r\n })\r\n stateAdapter.state('sitedetail.missed-record', {\r\n url: \"/missed-record\",\r\n template: $templateCache.get('site/detail/dispatcher/missed-record/missed-record.controller.html'),\r\n controller: 'MissedRecordController',\r\n resolve : {\r\n userData: (User, $state) => {\r\n let user = User.getUserIdentity('Backend');\r\n if(!User.hasPermissions('dispatcher')) {\r\n $state.go('sitedetail');\r\n throw \"Нет доступа\";\r\n }\r\n return user;\r\n }\r\n },\r\n reloadOnSearch: false\r\n\t})\r\n\r\n stateAdapter.state('sitedetail.records', {\r\n url: \"/records?filter\",\r\n template: $templateCache.get('site/detail/dispatcher/records/records.controller.html'),\r\n controller: 'RecordsController',\r\n resolve : {\r\n userData: (User, $state) => {\r\n let user = User.getUserIdentity('Backend');\r\n if(!User.hasPermissions('dispatcher')) {\r\n $state.go('sitedetail');\r\n throw \"Нет доступа\";\r\n }\r\n return user;\r\n }\r\n },\r\n reloadOnSearch: false\r\n\t})\r\n}\r\n","/// \r\nimport { ToastService } from \"../../../shared/services/toast.service\";\r\nimport { FlowConfigurator, IFlowObject } from \"../../../shared/services/flowConfigurator.service\";\r\nimport { IDistrict, DistrictsService } from \"./district.service\";\r\nimport { IHouse, HousesService } from '../houses/houses.service';\r\n\r\ndeclare var moment: any;\r\nmoment.locale(\"ru\");\r\n\r\nexport interface IDistrictScope extends ng.IScope {\r\n districts: IDistrict[];\r\n\tCurrentDistrict: IDistrict;\r\n\r\n\tisLoading: boolean;\r\n\tisUploading: boolean;\r\n\ttimehash: number;\r\n\tuploader_image: IFlowObject;\r\n\r\n\taddDistrict: () => void;\r\n\tselectDistrict: (district: IDistrict) => void;\r\n\tuploadPicture: () => void;\r\n\tdeletePicture: (district: IDistrict) => void;\r\n\terrorUpload: () => void;\r\n\tisEditing: () => boolean;\r\n\r\n\thouses: IHouse[];\r\n\tselectedHouse: IHouse;\r\n}\r\n\r\n\r\nexport class DistrictController {\r\n\tscope: IDistrictScope;\r\n\r\n constructor($scope: any, $stateParams: any, private DistrictsService: DistrictsService, private ToastService: ToastService,\r\n private FlowConfigurator: FlowConfigurator, private $timeout: ng.ITimeoutService, StorageUri: string, private HousesService: HousesService\r\n ) {\r\n\t\tthis.scope = $scope;\r\n this.scope.OGRN = $stateParams.ogrn;\r\n this.scope.StorageUri = StorageUri;\r\n this.scope.CurrentDistrict = null;\r\n this.scope.isLoading = false;\r\n this.scope.isUploading = false;\r\n this.scope.uploader_image = {};\r\n\t\tthis.scope.getFlowConfig = (target) => this.FlowConfigurator.getConfig(target);\r\n\r\n\t\tthis.scope.selectDistrict = (district) => this.selectDistrict(district);\r\n\t\tthis.scope.addDistrict = () => this.selectDistrict({ DistrictName: \"\", PicturePath: null, Houses: [] });\r\n\t\tthis.scope.deleteDistrict = () => this.deleteDistrict();\r\n\t\tthis.scope.saveDistrict = () => this.isEditing ? this.updateDistrict() : this.createDistrict();\r\n\r\n\t\tthis.scope.isEditing = () => this.isEditing;\r\n\t\tthis.scope.querySearch = (val) => this.querySearch(val);\r\n\t\tthis.scope.attachHouse = () => this.attachHouse();\r\n\t\tthis.scope.unattachHouse = (house) => this.unattachHouse(house);\r\n\r\n this.scope.uploadPicture = () => this.uploadPicture();\r\n\t\tthis.scope.deletePicture = (district) => this.deletePicture(district);\r\n\t\tthis.scope.errorUpload = () => this.errorUpload();\r\n\r\n\t\tthis.scope.refresh = () => this.refresh();\r\n\r\n\t\tthis.scope.isUploading = true;\r\n\t\tthis.scope.isLoading = true;\r\n\t\tthis.refresh().finally(() => {\r\n\t\t\tthis.scope.uploader_image.flow.files = [];\r\n\t\t\tthis.scope.isUploading = false;\r\n\t\t\tthis.scope.isLoading = false;\r\n\t\t});\r\n\t}\r\n\r\n\tget isEditing(): boolean {\r\n\t\treturn this.scope.CurrentDistrict && !!this.scope.CurrentDistrict.DistrictId;\r\n\t}\r\n\r\n\tprotected refreshCheckDistrict(): void {\r\n\t\tif (this.scope.CurrentDistrict != null) {\r\n\t\t\tconst district: IDistrict[] = this.scope.districts.filter(r => r.DistrictId === this.scope.CurrentDistrict.DistrictId);\r\n\t\t\tif (district.length > 0) {\r\n\t\t\t\tthis.scope.selectDistrict(district[0]);\r\n\t\t\t} else {\r\n\t\t\t\tthis.scope.selectDistrict(null)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\trefresh() {\r\n\t\treturn this.getDistrict()\r\n\t\t\t.then(() => this.getHouses())\r\n\t\t\t.then(() => this.refreshCheckDistrict())\r\n\t}\r\n\r\n\tquerySearch(term: string): IHouse[] {\r\n\t\tconst terms: string[] = term.split(\" \");\r\n\t\tconst list = this.scope.houses.filter(house => !house.DistrictId || house.DistrictId !== this.scope.CurrentDistrict.DistrictId);\r\n\t\treturn list.filter(house => terms.every(t => house.FormalAddress.toLowerCase().indexOf(t.toLowerCase()) > -1));\r\n }\r\n\r\n getDistrict(): ng.IPromise {\r\n\t\treturn this.DistrictsService.get()\r\n\t\t\t.then((districts) => {\r\n\t\t\t\tthis.scope.timehash = new Date().getTime();\r\n\t\t\t\treturn this.scope.districts = districts;\r\n\t\t\t})\r\n\t}\r\n\r\n\tgetHouses(): ng.IPromise {\r\n\t\treturn this.HousesService.get()\r\n\t\t\t.then(houses => {\r\n\t\t\t\tthis.scope.houses = houses;\r\n\t\t\t});\r\n\t}\r\n\r\n\tcreateDistrict() {\r\n\t\tthis.scope.isLoading = true;\r\n\t\tthis.scope.isUploading = true;\r\n\t\tthis.DistrictsService.create(this.scope.CurrentDistrict)\r\n\t\t\t.then((district) => {\r\n\t\t\t\tthis.selectDistrict(district);\r\n\t\t\t\treturn this.scope.refresh();\r\n\t\t\t})\r\n\t\t\t.finally(() => {\r\n\t\t\t\tthis.scope.isLoading = false;\r\n\t\t\t\tthis.scope.isUploading = false;\r\n\t\t\t});\r\n\t}\r\n\r\n\tupdateDistrict() {\r\n\t\tthis.scope.isLoading = true;\r\n\t\tthis.scope.isUploading = true;\r\n\t\tthis.DistrictsService.update(this.scope.CurrentDistrict)\r\n\t\t\t.then(() => this.scope.refresh())\r\n\t\t\t.finally(() => {\r\n\t\t\t\tthis.scope.isLoading = false;\r\n\t\t\t\tthis.scope.isUploading = false;\r\n\t\t\t});\r\n\t}\r\n\r\n\tdeleteDistrict() {\r\n\t\tthis.scope.isLoading = true;\r\n\t\tthis.scope.isUploading = true;\r\n\t\tthis.DistrictsService.delete(this.scope.CurrentDistrict)\r\n\t\t\t.then(() => {\r\n\t\t\t\tthis.scope.CurrentDistrict = null;\r\n\t\t\t\tthis.scope.refresh()\r\n\t\t\t})\r\n\t\t\t.finally(() => {\r\n\t\t\t\tthis.scope.isLoading = false;\r\n\t\t\t\tthis.scope.isUploading = false;\r\n\t\t\t});\r\n\t}\r\n\r\n\tselectDistrict(district: IDistrict): void {\r\n\t\tthis.scope.isUploading = true;\r\n\t\tthis.scope.CurrentDistrict = null;\r\n\t\tthis.scope.selectedHouse = null;\r\n\t\tthis.$timeout(() => {\r\n\t\t\tthis.scope.CurrentDistrict = JSON.parse(JSON.stringify(district));\r\n\t\t\tthis.scope.isUploading = false;\r\n\t\t}, 50);\r\n }\r\n\r\n\tattachHouse() {\r\n\t\tthis.scope.isLoading = true;\r\n\t\tthis.scope.isUploading = true;\r\n\t\tthis.DistrictsService.attachHouse(this.scope.CurrentDistrict, this.scope.selectedHouse)\r\n\t\t\t.then(() => {\r\n\t\t\t\tthis.scope.selectedHouse = null;\r\n\t\t\t\treturn this.scope.refresh();\r\n\t\t\t})\r\n\t\t\t.then(() => this.getDistrict())\r\n\t\t\t.finally(() => {\r\n\t\t\t\tthis.scope.isLoading = false;\r\n\t\t\t\tthis.scope.isUploading = false;\r\n\t\t\t});\r\n\t}\r\n\r\n\tunattachHouse(house: IHouse) {\r\n\t\tthis.scope.isLoading = true;\r\n\t\tthis.scope.isUploading = true;\r\n\t\tthis.DistrictsService.unattachHouse(this.scope.CurrentDistrict, house)\r\n\t\t\t.then(() => {\r\n\t\t\t\tthis.scope.selectedHouse = null;\r\n\t\t\t\treturn this.scope.refresh();\r\n\t\t\t})\r\n\t\t\t.then(() => this.getDistrict())\r\n\t\t\t.finally(() => {\r\n\t\t\t\tthis.scope.isLoading = false;\r\n\t\t\t\tthis.scope.isUploading = false;\r\n\t\t\t});\r\n\t}\r\n\r\n\tuploadPicture(): void {\r\n\t\tthis.scope.isUploading = true;\r\n\t\ttry {\r\n\t\t\tthis.scope.uploader_image.flow.opts.query.districtId = this.scope.CurrentDistrict.DistrictId;\r\n\t\t\tthis.scope.uploader_image.flow.upload();\r\n\t\t} catch {\r\n\t\t\tthis.scope.isUploading = false;\r\n\t\t}\r\n\t}\r\n\r\n deletePicture(district: IDistrict): void {\r\n\t\tthis.scope.isUploading = false;\r\n\t\tthis.scope.isLoading = true;\r\n\t\tthis.DistrictsService.deletePicture(district.DistrictId)\r\n\t\t\t.then(() => this.scope.refresh())\r\n\t\t\t.finally(() => {\r\n\t\t\t\tthis.scope.isLoading = false;\r\n\t\t\t\tthis.scope.isUploading = false;\r\n\t\t\t});\r\n\t}\r\n\r\n\terrorUpload(): void {\r\n\t\tthis.scope.isUploading = false;\r\n\t\tthis.ToastService.show(\"Произошла ошибка\", this.ToastService.status.warning);\r\n\t}\r\n\r\n}\r\n","/// \r\nimport { IHouse } from '../houses/houses.service';\r\n\r\ndeclare var moment: any;\r\nmoment.locale(\"ru\");\r\n\r\nexport interface IDistrict {\r\n\tDistrictId?: string;\r\n\tDistrictName: string;\r\n\tPicturePath: string;\r\n\tHouses: IHouse[];\r\n}\r\n\r\nexport class DistrictsService {\r\n\tisTest: boolean = false;\r\n\ttestData: IDistrict[] = JSON.parse('[{\"DistrictId\":\"1\",\"DistrictName\":\"Тестовый район\",\"PicturePath\":null,\"Houses\":[]},{\"DistrictId\":\"2\",\"DistrictName\":\"Большая волга\",\"PicturePath\":null,\"Houses\":[]},{\"DistrictId\":\"3\",\"DistrictName\":\"Черная речка\",\"PicturePath\":null,\"Houses\":[]},{\"DistrictId\":\"4\",\"DistrictName\":\"Тридцатка\",\"PicturePath\":null,\"Houses\":[]}]');\r\n\r\n constructor(\r\n\t\tprotected $q: ng.IQService,\r\n\t\tprotected $http: ng.IHttpService,\r\n\t\tprotected BackendUri: string,\r\n\t\tprotected StorageUri: string,\r\n\t) {}\r\n\r\n\tget(): ng.IPromise {\r\n\t\tif (!this.isTest) {\r\n\t\t\treturn this.$http.get(`${this.BackendUri}/ogranization/district`)\r\n\t\t\t\t.then(response => {\r\n\t\t\t\t\treturn response.data as IDistrict[];\r\n\t\t\t\t});\r\n\t\t} else {\r\n\t\t\treturn this.$q.resolve(this.testData);\r\n\t\t}\r\n\t}\r\n\r\n\tcreate(district: IDistrict): ng.IPromise {\r\n\t\tif (!this.isTest) {\r\n\t\t\treturn this.$http.post(`${this.BackendUri}/ogranization/district`, district)\r\n\t\t\t\t.then(({data}) => data);\r\n\t\t} else {\r\n\t\t\tconst data: IDistrict = { DistrictId: `${this.testData[this.testData.length - 1].DistrictId + 1}`, ...district };\r\n\t\t\tthis.testData.push(data);\r\n\t\t\treturn this.$q.resolve(data);\r\n\t\t}\r\n\t}\r\n\r\n\tupdate(district: IDistrict): ng.IPromise {\r\n\t\tif (!this.isTest) {\r\n\t\t\treturn this.$http.patch(`${this.BackendUri}/ogranization/district/${district.DistrictId}`, district)\r\n\t\t\t\t.then(({data}) => data);\r\n\t\t} else {\r\n\t\t\tlet index = this.testData.findIndex(r => r.DistrictId == district.DistrictId)\r\n\t\t\tif (index > -1) {\r\n\t\t\t\tthis.testData[index] = district;\r\n\t\t\t\treturn this.$q.resolve(district);\r\n\t\t\t} else {\r\n\t\t\t\treturn this.$q.reject();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tdelete(district: IDistrict): ng.IPromise {\r\n\t\tif (!this.isTest) {\r\n\t\t\treturn this.$http.delete(`${this.BackendUri}/ogranization/district/${district.DistrictId}`)\r\n\t\t\t\t\t\t.then(({data}) => data);\r\n\t\t} else {\r\n\t\t\tconst index = this.testData.findIndex(r => r.DistrictId == district.DistrictId);\r\n\t\t\tif (index > -1) {\r\n\t\t\t\tthis.testData.splice(index, 1);\r\n\t\t\t\treturn this.$q.resolve();\r\n\t\t\t} else {\r\n\t\t\t\treturn this.$q.reject();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tattachHouse(district: IDistrict, house: IHouse): ng.IPromise {\r\n\t\tif (!this.isTest) {\r\n\t\t\treturn this.$http.post(`${this.BackendUri}/ogranization/district/${district.DistrictId}/houses`, house)\r\n\t\t\t\t\t\t.then(({data}) => data);\r\n\t\t} else {\r\n\t\t\tconst _district = this.testData.find(r => r.DistrictId == district.DistrictId);\r\n\t\t\tif (_district) {\r\n\t\t\t\t_district.Houses.push(house);\r\n\t\t\t\treturn this.$q.resolve(house);\r\n\t\t\t} else {\r\n\t\t\t\treturn this.$q.reject();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tunattachHouse(district: IDistrict, house: IHouse): ng.IPromise {\r\n\t\tif (!this.isTest) {\r\n\t\t\tconst data = {\r\n\t\t\t\tHouseUniqueNumber: house.HouseUniqueNumber,\r\n\t\t\t\tHouseId: house.HouseId\r\n\t\t\t};\r\n\t\t\treturn this.$http.delete(`${this.BackendUri}/ogranization/district/${district.DistrictId}/houses`, {\r\n\t\t\t\theaders: { 'Content-Type': 'application/json' }, data,\r\n\t\t\t}).then(({data}) => data);\r\n\t\t} else {\r\n\t\t\tconst _district: IDistrict = this.testData.find(r => r.DistrictId == district.DistrictId)\r\n\t\t\tif (!_district) { return this.$q.reject(); }\r\n\t\t\tconst index = _district.Houses.findIndex(h => h.HouseUniqueNumber === house.HouseUniqueNumber);\r\n\t\t\tif (index > -1) {\r\n\t\t\t\tdistrict.Houses.splice(index, 1);\r\n\t\t\t\treturn this.$q.resolve();\r\n\t\t\t} else {\r\n\t\t\t\treturn this.$q.reject();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tdeletePicture(DistrictId: string): ng.IPromise {\r\n\t\treturn this.$http.delete(`${this.BackendUri}/ogranization/district/image?districtId=${DistrictId}`).then(({data}) => data);\r\n\t}\r\n\r\n}\r\n","import './router.js';\r\nimport { DistrictController } from './district.controller';\r\nimport { DistrictsService } from './district.service';\r\n\r\nangular.module('admin')\r\n\t.controller('DistrictController', DistrictController)\r\n\t.service('DistrictsService', DistrictsService);\r\n","angular.module('app.routes').run(run);\r\n/* @ngInject */\r\nfunction run(stateAdapter, $templateCache) {\r\n stateAdapter.state('sitedetail.district', {\r\n url: \"/district?filter\",\r\n template: $templateCache.get('site/detail/district/district.controller.html'),\r\n controller: 'DistrictController',\r\n resolve : {\r\n userData: (User) => {\r\n let user = User.getUserIdentity('Backend');\r\n return user;\r\n }\r\n },\r\n reloadOnSearch: false\r\n\t})\r\n}\r\n","/// \r\nimport { IEmailTemplate, EmailsService } from \"./../emails.service\";\r\n\r\nexport interface IRecipientFromEmailControllerScope extends ng.IScope {\r\n\tselectedEmail: IEmailTemplate;\r\n\tisLoading: boolean;\r\n\tisSelected: boolean;\r\n\r\n\tselectEmail(email: IEmailTemplate): void;\r\n}\r\n\r\nexport class RecipientFromEmailDialogController {\r\n private scope: IRecipientFromEmailControllerScope;\r\n\r\n constructor($scope: any, $stateParams: any, $mdDialog: ng.material.IDialogService, $window: any, private EmailsService: EmailsService) {\r\n this.scope = $scope;\r\n this.scope.isLoading = true;\r\n this.scope.isSelected = false;\r\n this.scope.selectedEmail = null;\r\n\r\n this.countListSize($stateParams);\r\n $($window).bind(\"resize\", () => this.countListSize($stateParams, false));\r\n\r\n this.scope.selectEmail = (email) => {\r\n this.scope.isSelected = false;\r\n this.scope.selectedEmail = email;\r\n this.EmailsService.GetRecipient(email.EmailTemplateID)\r\n .then((recipients) => {\r\n this.scope.selectedEmail.Addresses = recipients;\r\n this.scope.isSelected = true;\r\n });\r\n };\r\n\r\n this.scope.cancel = () => $mdDialog.cancel();\r\n this.scope.answer = () => $mdDialog.hide(this.scope.selectedEmail.Addresses);\r\n\r\n this.init();\r\n }\r\n\r\n init(): void {\r\n this.EmailsService.GetEmailTemplateList()\r\n .then(data => {\r\n this.scope.emails = data;\r\n this.scope.isLoading = false;\r\n })\r\n .catch(err => {\r\n console.warn(err);\r\n this.scope.isLoading = false;\r\n });\r\n }\r\n\r\n countListSize($stateParams: any, isDigest: any = true): void {\r\n this.scope.isFrame = $stateParams.iframe === \"1\" || window.innerWidth < 1200;\r\n if (!isDigest) {\r\n this.scope.$digest();\r\n }\r\n }\r\n}","/// \r\nlet Instance: CircleChartDirective;\r\n\r\nexport interface IDatasetItem {\r\n\tvalue: number;\r\n\tcolor: string;\r\n\tdescription: string;\r\n}\r\n\r\nexport interface ICircleChartScope extends ng.IScope {\r\n\tdataset: IDatasetItem[];\r\n\tmaxValue: number;\r\n\r\n\tisSuccess: boolean;\r\n\tisError: boolean;\r\n}\r\n\r\nexport class CircleChartController {\r\n\tscope: ICircleChartScope;\r\n\telement: ng.IAugmentedJQuery;\r\n\r\n\tlink(scope: any, element: ng.IAugmentedJQuery, attr: ng.IAttributes): void {\r\n\t\tthis.scope = scope;\r\n\t\tthis.element = element;\r\n\t\tthis.scope.maxValue = 25;\r\n\r\n\t\tthis.scope.$watch(\"dataset\", (dataset: IDatasetItem[]) => {\r\n\t\t\tif (dataset === void 0 || dataset === null) { return; }\r\n\t\t\tconst success: IDatasetItem[] = dataset.filter(item => item.description === \"success\");\r\n\r\n\t\t\tthis.element.empty();\r\n\t\t\tconst sector: number = dataset.reduce((prev: number, curr: IDatasetItem) => {\r\n\t\t\t\treturn this.addPart(curr, prev);\r\n\t\t\t}, 0);\r\n\r\n\t\t\tif (this.scope.isSuccess) {\r\n\t\t\t\tthis.element.addClass(\"with-icon success\")\r\n\t\t\t\t\t.append(`done_all`);\r\n\t\t\t} else if (this.scope.isError) {\r\n\t\t\t\tthis.element.addClass(\"with-icon error\")\r\n\t\t\t\t\t.append(`block`);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\taddPart(data: IDatasetItem, angle: number): any {\r\n\t\tif (isNaN(data.value) || data.value === 0) {\r\n\t\t\tdata.value = 0;\r\n\t\t\treturn this.addSector(data, angle, false);\r\n\t\t}\r\n\r\n\t\tif (data.value <= this.scope.maxValue) {\r\n\t\t\treturn this.addSector(data, angle, false);\r\n\t\t}\r\n\r\n\t\treturn this.addPart(\r\n\t\t\t{\r\n\t\t\t\tdescription: data.description,\r\n\t\t\t\tvalue: data.value - this.scope.maxValue,\r\n\t\t\t\tcolor: data.color\r\n\t\t\t},\r\n\t\t\tthis.addSector(\r\n\t\t\t\t{\r\n\t\t\t\t\tvalue: this.scope.maxValue,\r\n\t\t\t\t\tcolor: data.color\r\n\t\t\t\t},\r\n\t\t\t\tangle,\r\n\t\t\t\ttrue\r\n\t\t\t)\r\n\t\t);\r\n\t}\r\n\r\n\taddSector(data: any, startAngle: any, collapse: any): any {\r\n\t\tlet sectorDeg: number = 3.6 * data.value;\r\n\t\tlet skewDeg: number = 90 + sectorDeg;\r\n\t\tlet rotateDeg: number = startAngle;\r\n\t\tif (collapse) {\r\n\t\t\tskewDeg++;\r\n\t\t}\r\n\r\n\t\tlet sector: JQuery = $(\"
\", {\r\n\t\t\tclass: \"sector\"\r\n\t\t}).css({\r\n\t\t\tbackground: data.color,\r\n\t\t\ttransform:\r\n\t\t\t\t\"rotate(\" + rotateDeg + \"deg) skewY(\" + skewDeg + \"deg)\"\r\n\t\t});\r\n\t\tthis.element.append(sector);\r\n\r\n\t\treturn startAngle + sectorDeg;\r\n\t}\r\n}\r\n\r\nexport class CircleChartDirective {\r\n\tstatic getInstance($templateCache: ng.ITemplateCacheService) {\r\n\t\treturn (Instance = new CircleChartDirective($templateCache));\r\n\t}\r\n\r\n\tpublic restrict: string = \"E\";\r\n\tpublic scope = {\r\n\t\tdataset: \"=\",\r\n\t\tisSuccess: \"=?\",\r\n\t\tisError: \"=?\"\r\n\t};\r\n\tpublic template: any;\r\n\r\n\tconstructor($templateCache: ng.ITemplateCacheService) {\r\n\t\tthis.template = $templateCache.get(\r\n\t\t\t\"v2/directives/circleChart.directive.html\"\r\n\t\t);\r\n\t}\r\n\r\n\tlink(scope, element, attr, controller: CircleChartController) {\r\n\t\tcontroller.link(scope, element, attr);\r\n\t}\r\n\r\n\tcontroller() {\r\n\t\treturn new CircleChartController();\r\n\t}\r\n}\r\n","import { EmailsService, IEmailTemplate } from \"../emails.service\";\r\n\r\nlet Instance: EmailRecipientDirective;\r\n\r\nexport interface IEmailRecipientScope extends ng.IScope {\r\n recipients: string[];\r\n unchangeable: boolean;\r\n\r\n newRecipientsFormText: string;\r\n emails: IEmailTemplate[];\r\n directiveState: DirectiveStateEnum;\r\n\r\n reader: FileReader;\r\n\r\n setDirectiveState(state: number): void;\r\n addRecipientsFromText(text: string): void;\r\n addRecipientsFromEmail(email: IEmailTemplate): void;\r\n deleteRecipient(index: number): void;\r\n attachFile(): void;\r\n onChange(recipients: string[]): void;\r\n\r\n clearRecipients(): void;\r\n}\r\n\r\nexport enum DirectiveStateEnum {\r\n \"list\",\r\n \"addFromText\",\r\n \"addFromEmail\"\r\n}\r\n\r\nexport class EmailRecipientController {\r\n scope: IEmailRecipientScope;\r\n element: ng.IAugmentedJQuery;\r\n input: any;\r\n\r\n link(scope: any, element: ng.IAugmentedJQuery, attr: ng.IAttributes): any {\r\n this.scope = scope;\r\n this.element = element;\r\n this.input = $(element[0].querySelector(\"#fileInput\"));\r\n this.scope.directiveState = DirectiveStateEnum.list;\r\n this.scope.emailsExist = false;\r\n\r\n Instance.EmailsService.GetEmailTemplateList()\r\n .then(data => {\r\n this.scope.emailsExist = data.length > 0;\r\n });\r\n\r\n this.scope.addRecipientsFromEmail = (email) => {\r\n if (this.scope.unchangeable) { return; }\r\n this.addRecipientsFromEmail(email);\r\n };\r\n this.scope.setDirectiveState = (state) => {\r\n if (this.scope.unchangeable) { return; }\r\n this.setDirectiveState(state);\r\n };\r\n this.scope.addRecipientsFromText = (text) => {\r\n if (this.scope.unchangeable || text === void 0 || text.length === 0) { return; }\r\n return this.addRecipientsFromText(text);\r\n };\r\n this.scope.deleteRecipient = (index) => {\r\n if (this.scope.unchangeable) { return; }\r\n this.deleteRecipient(index);\r\n };\r\n this.scope.attachFile = () => {\r\n this.input.click();\r\n };\r\n\r\n this.scope.clearRecipients = () => {\r\n this.scope.recipients = [];\r\n this.scope.onChange(this.scope.recipients);\r\n };\r\n\r\n this.scope.reader = new FileReader();\r\n this.scope.reader.onload = (event) => {\r\n var contents: any = event.target.result;\r\n try {\r\n this.addRecipientsFromText(contents, /\\r\\n/);\r\n this.scope.$apply();\r\n } catch (err) {\r\n console.warn(err);\r\n }\r\n };\r\n this.input.on(\"change\", (e) => {\r\n var files: any[] = e.target.files;\r\n if (files.length > 0) {\r\n this.scope.reader.readAsText(files[0]);\r\n }\r\n this.input.val(\"\");\r\n });\r\n }\r\n\r\n setDirectiveState(state: number): void {\r\n this.scope.directiveState = this.scope.directiveState !== state ? state : DirectiveStateEnum.list;\r\n if (state === DirectiveStateEnum.addFromEmail) {\r\n this.scope.emails = [];\r\n Instance.EmailsService.GetEmailTemplateList()\r\n .then(data => {\r\n this.scope.emails = data;\r\n });\r\n }\r\n }\r\n\r\n addRecipientsFromText(text: string, seporator: RegExp = /\\n/): string[] {\r\n const emailValid: RegExp = /^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$/;\r\n try {\r\n let splitedText: string[] = [];\r\n text.split(seporator).forEach(chank => {\r\n splitedText = splitedText.concat(chank.split(\",\"));\r\n });\r\n let uniqueEmails: string[] = splitedText.reduce((prev: string[], currentEmail: string) => {\r\n return prev.some(email => email === currentEmail.trim()) ? prev : prev.concat([currentEmail.trim()]);\r\n }, []);\r\n const emails: string[] = uniqueEmails.filter(email => {\r\n return emailValid.test(email) && this.scope.recipients.indexOf(email) === -1;\r\n });\r\n this.scope.recipients = this.scope.recipients.concat(emails);\r\n this.scope.onChange(this.scope.recipients);\r\n this.scope.directiveState = DirectiveStateEnum.list;\r\n this.scope.newRecipientsFormText = \"\";\r\n return emails;\r\n } catch (err) {\r\n console.warn(err);\r\n }\r\n }\r\n\r\n addRecipientsFromEmail($event: any): void {\r\n try {\r\n Instance.$mdDialog\r\n .show({\r\n controller: \"RecipientFromEmailDialogController\",\r\n template: Instance.$templateCache.get(\r\n \"site/detail/emails/dialogs/recipientFromEmail.dialog.html\"\r\n ),\r\n parent: angular.element(document.body),\r\n targetEvent: $event,\r\n clickOutsideToClose: true,\r\n fullscreen: true\r\n })\r\n .then((addresses) => {\r\n const recipients: string[] = addresses.filter(email => {\r\n return this.scope.recipients.indexOf(email) === -1;\r\n });\r\n this.scope.recipients = this.scope.recipients.concat(recipients);\r\n this.scope.onChange(this.scope.recipients);\r\n this.scope.directiveState = DirectiveStateEnum.list;\r\n this.scope.newRecipientsFormText = \"\";\r\n })\r\n .catch(err => {\r\n if (err !== void 0) {\r\n console.warn(err);\r\n }\r\n });\r\n } catch (err) {\r\n console.warn(err);\r\n }\r\n }\r\n\r\n deleteRecipient(index: number): void {\r\n this.scope.recipients.splice(index, 1);\r\n this.scope.onChange(this.scope.recipients);\r\n }\r\n}\r\n\r\nexport class EmailRecipientDirective {\r\n static getInstance($templateCache: ng.ITemplateCacheService, $stateParams: any, $http: ng.IHttpService,\r\n EmailsService: EmailsService, BackendUri: string, $mdDialog: any\r\n ): any {\r\n return (Instance = new EmailRecipientDirective(\r\n $templateCache,\r\n $stateParams,\r\n $http,\r\n EmailsService,\r\n BackendUri,\r\n $mdDialog\r\n ));\r\n }\r\n\r\n public restrict: string = \"E\";\r\n public scope = {\r\n recipients: \"=?\",\r\n onChange: \"=?\",\r\n unchangeable: \"=?\"\r\n };\r\n public template: any;\r\n\r\n constructor(public $templateCache: ng.ITemplateCacheService, public $stateParams: any, public $http: ng.IHttpService,\r\n public EmailsService: EmailsService, public BackendUri: string, public $mdDialog: any\r\n ) {\r\n this.template = $templateCache.get(\r\n \"site/detail/emails/directives/emailRecipient.directive.html\"\r\n );\r\n }\r\n\r\n link(scope: any, element: any, attr: any, controller: EmailRecipientController): any {\r\n controller.link(scope, element, attr);\r\n }\r\n\r\n controller(): any {\r\n return new EmailRecipientController();\r\n }\r\n}\r\n","/// \r\nimport { IEmailTemplate, IAttachmentDTO } from \"./../emails.service\";\r\nimport { CompanyInfoService } from \"../../companyInfo/companyInfo.service\";\r\nimport { FlowConfigurator, IFlowObject } from \"../../../../shared/services/flowConfigurator.service\";\r\n\r\nlet Instance: EmailTemplateDirective;\r\ndeclare var tinymce: any;\r\n\r\nexport interface IImgInfo {\r\n\tblobUri: string;\r\n\tbase64: string;\r\n\tfile: File;\r\n}\r\n\r\nexport interface IEmailTemplateScope extends ng.IScope {\r\n\ttemplate: IEmailTemplate;\r\n\tOGRN: string;\r\n\tonChange(recipients: string[]): void;\r\n\r\n\tSave(template: IEmailTemplate): void;\r\n\tonSave(template: IEmailTemplate): any;\r\n\tisSaving: boolean;\r\n\tReader: FileReader;\r\n\r\n\tattachFile(): any;\r\n\r\n\tuploader: IFlowObject;\r\n\timgs: IImgInfo[];\r\n\tgetFlowConfig(target: any): any;\r\n\tuploadSuccess(file: any, msg: any): void;\r\n uploadError(msg: any): void;\r\n}\r\n\r\nexport class EmailTemplateController {\r\n\tscope: IEmailTemplateScope;\r\n\tinput: any;\r\n\r\n\tlink(scope: any, element: ng.IAugmentedJQuery, attr: ng.IAttributes): void {\r\n\t\tthis.scope = scope;\r\n\t\tthis.scope.OGRN = Instance.$stateParams.ogrn;\r\n\t\tthis.scope.isSaving = false;\r\n\r\n\t\tthis.scope.$on(\"$stateChangeStart\", (event: any, toState, toParams, fromState, fromParams) => {\r\n\t\t\tif (this.scope.isSaving === true && fromState.url.indexOf(\"/emails\") === 0) {\r\n\t\t\t\tvar flag: boolean = confirm(\"Вы точно хотите покинуть страницу?\");\r\n\t\t\t\tif (!flag) {\r\n\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.input = $(element[0].querySelector(\"#attachmentInput\"));\r\n\t\tthis.input.on(\"change\", (e) => {\r\n\t\t\tvar files: FileList = e.target.files;\r\n\r\n if (files.length > 0) {\r\n\t\t\t\tfor (let i: number = 0; i < files.length; i++) {\r\n\t\t\t\t\tconst file: File = files[i];\r\n\t\t\t\t\tvar reader: any = new FileReader();\r\n\t\t\t\t\treader.onload = (event) => {\r\n\t\t\t\t\t\tconst newData: IAttachmentDTO = {\r\n\t\t\t\t\t\t\tBase64: event.target.result.split(\",\")[1],\r\n\t\t\t\t\t\t\tFileName: file.name,\r\n\t\t\t\t\t\t\tSize: file.size\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t\tif (this.scope.template.Attachments === void 0 || this.scope.template.Attachments === null) {\r\n\t\t\t\t\t\t\tthis.scope.template.Attachments = [];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tthis.scope.template.Attachments.push(newData);\r\n\t\t\t\t\t};\r\n\t\t\t\t\treader.readAsDataURL(file);\r\n\t\t\t\t}\r\n\r\n }\r\n this.input.val(\"\");\r\n });\r\n\t\tthis.scope.attachFile = () => {\r\n this.input.click();\r\n\t\t};\r\n\t\tthis.scope.deleleteAttachment = (index) => {\r\n\t\t\tif (this.scope.template.Attachments === void 0 ||\r\n\t\t\t\tthis.scope.template.Attachments === null ||\r\n\t\t\t\tthis.scope.template.Attachments.length === 0\r\n\t\t\t) return;\r\n\t\t\tthis.scope.template.Attachments.splice(index, 1);\r\n\t\t};\r\n\t\tthis.scope.usingSize = () => {\r\n\t\t\tif (this.scope.template.Attachments === void 0 || this.scope.template.Attachments === null) {\r\n\t\t\t\treturn 0;\r\n\t\t\t} else {\r\n\t\t\t\treturn this.scope.template.Attachments.reduce((prev, cur) => {\r\n\t\t\t\t\treturn cur.Size ? (prev + ( cur.Size / (1024*1024))) : prev;\r\n\t\t\t\t}, 0).toFixed(2);\r\n\t\t\t}\r\n\t\t};\r\n\t\tthis.scope.getExt = (fileName: string) => {\r\n\t\t\treturn /([^\\\\]*)(\\.)(\\w+)$/.exec(fileName)[3];\r\n\t\t};\r\n\t\tthis.scope.getName = (fileName: string) => {\r\n\t\t\treturn /([^\\\\]*)(\\.)(\\w+)$/.exec(fileName)[1];\r\n\t\t};\r\n\r\n\t\tthis.scope.onChange = (recipients: string[]) => {\r\n\t\t\tthis.scope.template.Addresses = recipients;\r\n\t\t};\r\n\r\n\r\n\t\tthis.scope.uploader = { flow: null };\r\n\t\tthis.scope.imgs = [];\r\n\t\tthis.scope.getFlowConfig = (target) => Instance.FlowConfigurator.getConfig(target);\r\n\t\tthis.scope.Save = (template) => {\r\n\t\t\tif (this.scope.imgs.length > 0) {\r\n\t\t\t\tconst fileList: File[] = this.scope.imgs.filter(fileInfo => {\r\n\t\t\t\t\treturn template.Content.indexOf(fileInfo.base64) > -1;\r\n\t\t\t\t}).map(fileInfo => fileInfo.file);\r\n\t\t\t\tInstance.$timeout( () => {\r\n\t\t\t\t\tthis.scope.uploader.flow.addFiles(fileList);\r\n\t\t\t\t\tthis.scope.uploader.flow.upload();\r\n\t\t\t\t}, 0);\r\n\t\t\t} else {\r\n\t\t\t\tthis.scope.onSave(template);\r\n\t\t\t}\r\n\t\t};\r\n\t\tthis.scope.uploadSuccess = (file: File, msg) => {\r\n\t\t\tconst data: any = JSON.parse(msg);\r\n\t\t\tthis.scope.imgs.forEach(fileInfo => {\r\n\t\t\t\tif (fileInfo.file.name === file.name && this.scope.template.Content.indexOf(fileInfo.base64) > -1) {\r\n\t\t\t\t\tthis.scope.template.Content = this.scope.template.Content.replace(fileInfo.base64, `${Instance.StorageUri}${data.path}`);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t};\r\n\t\tthis.scope.uploadComplete = () => {\r\n\t\t\tInstance.$timeout(() => {\r\n\t\t\t\tthis.scope.onSave(this.scope.template);\r\n\t\t\t}, 250);\r\n\t\t};\r\n\t\tthis.scope.uploadError = (msg) => {\r\n\t\t\ttry {\r\n\t\t\t\tconst data: any = JSON.parse(msg);\r\n\t\t\t\tif (data.Message) {\r\n\t\t\t\t\tconsole.warn(data.Message);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconsole.warn(\"Ошибка\");\r\n\t\t\t\t}\r\n\t\t\t} catch {\r\n\t\t\t\tconsole.warn(\"Ошибка\");\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tthis.scope.$watch(\"template\", (template: IEmailTemplate) => {\r\n\t\t\tif (template === void 0 || template === null) { return; }\r\n\r\n\t\t\tthis.scope.tinymceOptions = undefined;\r\n\t\t\tInstance.$timeout(() => {\r\n\t\t\t\tthis.scope.tinymceOptions = {\r\n\t\t\t\t\treadonly: template.EmailTemplateID === null ? 0 : 1,\r\n\t\t\t\t\theight: 400,\r\n\t\t\t\t\timage_title: false,\r\n\t\t\t\t\tautomatic_uploads: true,\r\n\t\t\t\t\tfile_picker_types: \"image\",\r\n\t\t\t\t\tfile_picker_callback: (cb, value, meta) => {\r\n\t\t\t\t\t\tvar input: HTMLInputElement = document.createElement(\"input\");\r\n\t\t\t\t\t\tif (input !== void 0 && input !== null ) {\r\n\t\t\t\t\t\t\tinput.setAttribute(\"type\", \"file\");\r\n\t\t\t\t\t\t\tinput.setAttribute(\"accept\", \"image/*\");\r\n\t\t\t\t\t\t\tinput.onchange = () => {\r\n\t\t\t\t\t\t\t\tvar file: any = input.files[0];\r\n\t\t\t\t\t\t\t\tvar reader: any = new FileReader();\r\n\t\t\t\t\t\t\t\treader.onload = (event) => {\r\n\t\t\t\t\t\t\t\t\tvar id: any = \"blobid\" + (new Date()).getTime();\r\n\t\t\t\t\t\t\t\t\tvar blobCache: any = tinymce.activeEditor.editorUpload.blobCache;\r\n\t\t\t\t\t\t\t\t\tvar base64: any = reader.result.split(\",\")[1];\r\n\t\t\t\t\t\t\t\t\tvar blobInfo: any = blobCache.create(id, file, base64);\r\n\t\t\t\t\t\t\t\t\tblobCache.add(blobInfo);\r\n\t\t\t\t\t\t\t\t\tthis.scope.imgs.push({\r\n\t\t\t\t\t\t\t\t\t\tblobUri: blobInfo.blobUri(),\r\n\t\t\t\t\t\t\t\t\t\tbase64: reader.result,\r\n\t\t\t\t\t\t\t\t\t\tfile: file\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\tcb(blobInfo.blobUri(), { title: file.name });\r\n\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\treader.readAsDataURL(file);\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\tinput.click();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t}, 100);\r\n\t\t});\r\n\t}\r\n}\r\n\r\nexport class EmailTemplateDirective {\r\n\tstatic getInstance(\r\n\t\t$templateCache: ng.ITemplateCacheService,\r\n\t\t$mdDialog: ng.material.IDialogService,\r\n\t\t$timeout: ng.ITimeoutService,\r\n\t\t$stateParams: any,\r\n\t\tCompanyInfoService: CompanyInfoService,\r\n\t\tFlowConfigurator: FlowConfigurator,\r\n\t\tStorageUri: string\r\n\t): any {\r\n\t\treturn (Instance = new EmailTemplateDirective(\r\n\t\t\t$templateCache,\r\n\t\t\t$mdDialog,\r\n\t\t\t$timeout,\r\n\t\t\t$stateParams,\r\n\t\t\tCompanyInfoService,\r\n\t\t\tFlowConfigurator,\r\n\t\t\tStorageUri\r\n\t\t));\r\n\t}\r\n\r\n\tpublic restrict: string = \"E\";\r\n\tpublic scope = {\r\n\t\ttemplate: \"=\",\r\n\t\tonSave: \"=\"\r\n\t};\r\n\tpublic template: any;\r\n\r\n\tconstructor(\r\n\t\tpublic $templateCache: ng.ITemplateCacheService,\r\n\t\tpublic $mdDialog: any,\r\n\t\tpublic $timeout: ng.ITimeoutService,\r\n\t\tpublic $stateParams: any,\r\n\t\tpublic CompanyInfoService: CompanyInfoService,\r\n\t\tpublic FlowConfigurator: FlowConfigurator,\r\n\t\tpublic StorageUri: string\r\n\t) {\r\n\t\tthis.template = $templateCache.get(\r\n\t\t\t\"site/detail/emails/directives/emailTemplate.directive.html\"\r\n\t\t);\r\n\t}\r\n\r\n\tlink(scope: any, element: any, attr: any, controller: EmailTemplateController): any {\r\n\t\tcontroller.link(scope, element, attr);\r\n\t}\r\n\r\n\tcontroller(): any {\r\n\t\treturn new EmailTemplateController();\r\n\t}\r\n}\r\n","/// \r\nimport { ToastService } from \"../../../shared/services/toast.service.js\";\r\nimport { EmailsService, IEmailTemplate, IFilterForGetEmailTemplateList } from \"./emails.service.js\";\r\nimport { CompanyInfoService, ICompanyInfoRequest } from \"../companyInfo/companyInfo.service\";\r\nimport { EmailTemplateCanceledEnumStatus } from \"./emails.service\";\r\n\r\nexport interface IEmailsControllerScope extends ng.IScope {\r\n\tOGRN: string;\r\n\tCompanyInfo: ICompanyInfoRequest;\r\n\tEmailTemplateList: IEmailTemplate[];\r\n\tCurrentEmail: IEmailTemplate;\r\n\tNewEmailTemplate: IEmailTemplate;\r\n\r\n\tisLoading: boolean;\r\n\tisLoadingCurrentEmail: boolean;\r\n\tisAdding: boolean;\r\n\r\n\tselectEmail(EmailTemplateID: number): void;\r\n\taddNewEmail(): void;\r\n\tsaveEmail(email: IEmailTemplate): void;\r\n\treload(): void;\r\n\r\n\tcopyEmail(email: IEmailTemplate): void;\r\n\tstopEmail(email: IEmailTemplate): void;\r\n\r\n\tisFilterShown: boolean;\r\n\tfilter: IFilterForGetEmailTemplateList;\r\n\ttoogleShowFilter(): void;\r\n\tsearch(): void;\r\n\r\n\tcheckEmailsForUpdateTimeout: any;\r\n}\r\n\r\nexport class EmailsController {\r\n\tscope: IEmailsControllerScope;\r\n\r\n\tconstructor(\r\n\t\tprivate ToastService: ToastService,\r\n\t\tprivate SiteService: any,\r\n\t\tprivate EmailsService: EmailsService,\r\n\t\tprivate CompanyInfoService: CompanyInfoService,\r\n\t\t$scope: any,\r\n\t\tprivate $state: any,\r\n\t\tprivate $stateParams: any,\r\n\t\tprivate $q: ng.IQService,\r\n\t\tprivate $timeout: ng.ITimeoutService,\r\n\t\tprivate $http: ng.IHttpService,\r\n\t\tprivate $location: ng.ILocationService,\r\n\t\tprivate $mdDialog: ng.material.IDialogService,\r\n\t\tprivate $templateCache: any\r\n\t) {\r\n\t\tthis.scope = $scope;\r\n\t\tthis.scope.OGRN = $stateParams.ogrn;\r\n\t\tthis.scope.isLoading = true;\r\n\t\tthis.scope.isLoadingCurrentEmail = false;\r\n\t\tthis.scope.isAdding = false;\r\n\t\tthis.scope.EmailTemplateList = [];\r\n\r\n\t\tthis.scope.selectEmail = EmailTemplateID =>\r\n\t\t\tthis.selectEmail(EmailTemplateID);\r\n\t\tthis.scope.addNewEmail = () => {\r\n\t\t\tthis.scope.isAdding = true;\r\n\t\t\tthis.$location.search(\"id\", null);\r\n\t\t\tthis.scope.CurrentEmail = this.scope.NewEmailTemplate;\r\n\t\t};\r\n\t\tthis.scope.openMenu = ($mdMenu, ev) => {\r\n\t\t\t$mdMenu.open(ev);\r\n\t\t};\r\n\r\n\t\tthis.scope.reload = () => this.init();\r\n\t\tthis.scope.saveEmail = email => {\r\n\t\t\tthis.EmailsService.AddEmailTemplate({\r\n\t\t\t\tTitle: email.Title,\r\n\t\t\t\tContent: email.Content,\r\n\t\t\t\tAddresses: email.Addresses || [],\r\n\t\t\t\tAttachments: email.Attachments || []\r\n\t\t\t})\r\n\t\t\t\t.then(() => {\r\n\t\t\t\t\tthis.$state.reload();\r\n\t\t\t\t})\r\n\t\t\t\t.catch(err => {\r\n\t\t\t\t\tthis.handleError(err, \"Ошибка добавления письма\");\r\n\t\t\t\t});\r\n\t\t};\r\n\r\n\t\tthis.scope.copyEmail = (email: IEmailTemplate) => {\r\n\t\t\tthis.$location.search(\"id\", null);\r\n\t\t\tconst newEmail: IEmailTemplate = angular.copy(email);\r\n\t\t\tnewEmail.EmailTemplateID = null;\r\n\t\t\tnewEmail.Addresses = email.Addresses;\r\n\t\t\tthis.EmailsService.GetRecipient(email.EmailTemplateID)\r\n\t\t\t\t.then(addresses => {\r\n\t\t\t\t\tnewEmail.Addresses = addresses;\r\n\t\t\t\t\tthis.scope.CurrentEmail = newEmail;\r\n\t\t\t\t})\r\n\t\t\t\t.catch(() => {\r\n\t\t\t\t\tthis.scope.CurrentEmail = newEmail;\r\n\t\t\t\t});\r\n\t\t};\r\n\r\n\t\tthis.scope.stopEmail = (email: IEmailTemplate) => {\r\n\t\t\tthis.EmailsService.StopSendingEmail(email.EmailTemplateID);\r\n\t\t};\r\n\t\tthis.scope.toogleShowFilter = () => {\r\n\t\t\tthis.scope.isFilterShown = !this.scope.isFilterShown;\r\n\t\t};\r\n\t\tthis.scope.search = () => {\r\n\t\t\tthis.init(this.scope.filter);\r\n\t\t};\r\n\r\n\t\tthis.scope.NewEmailTemplate = {\r\n\t\t\tEmailTemplateID: null,\r\n\t\t\tTitle: \"Новая рассылка\",\r\n\t\t\tAddresses: [],\r\n\t\t\tAttachments: [],\r\n\t\t\tContent:\r\n\t\t\t\t`\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t

\r\n\t\t\t\t\t\t\t\t\t

\r\n\t\t\t\t\t\t\t\t\t

Уважаемые жильцы!

\r\n\t\t\t\t\t\t\t\t\t

\r\n\t\t\t\t\t\t\t\t\t\tПовседневная практика показывает, что высокотехнологичная концепция общественного уклада выявляет срочную потребность позиций,\r\n\t\t\t\t\t\t\t\t\t\tзанимаемых участниками в отношении поставленных задач. Есть над чем задуматься: активно развивающиеся страны третьего мира,\r\n\t\t\t\t\t\t\t\t\t\tпревозмогая сложившуюся непростую экономическую ситуацию, представлены в исключительно положительном свете.\r\n\t\t\t\t\t\t\t\t\t\tИмеется спорная точка зрения, гласящая примерно следующее: тщательные исследования конкурентов, превозмогая\r\n\t\t\t\t\t\t\t\t\t\tсложившуюся непростую экономическую ситуацию, указаны как претенденты на роль ключевых факторов!\r\n\t\t\t\t\t\t\t\t\t

\r\n\r\n\t\t\t`\r\n\t\t};\r\n\t\tthis.CompanyInfoService.GetCompanyInfo(this.scope.OGRN)\r\n\t\t\t.then((data) => {\r\n\t\t\t\tthis.scope.CompanyInfo = data;\r\n\t\t\t\tvar label: string = `\t\t

-----------------------------

\r\n\t\t\t\t\t\t\t\t\t\t

С уважением,
\r\n\t\t\t\t\t\t\t\t\t\t${this.scope.CompanyInfo.Company.FullName}
\r\n\t\t\t\t\t\t\t\t\t\t${this.scope.CompanyInfo.Company.Phone}
\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t${this.scope.CompanyInfo.Company.Email}\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t${this.scope.CompanyInfo.Company.Url}\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t

\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
`;\r\n\t\t\t\tthis.scope.NewEmailTemplate.Content += label;\r\n\t\t\t\tthis.init();\r\n\t\t\t})\r\n\t\t\t.catch(() => {\r\n\t\t\t\tthis.GetCompanyInfoCatch();\r\n\t\t\t});\r\n\t}\r\n\r\n\tGetCompanyInfoCatch(): any {\r\n\t\treturn this.SiteService.get({}).$promise\r\n\t\t\t.then(siteDetails => {\r\n\t\t\t\tvar label: string = ` \t

-----------------------------

\r\n\t\t\t\t\t\t\t\t\t\t

\r\n\t\t\t\t\t\t\t\t\t\t\tС уважением,
\r\n\t\t\t\t\t\t\t\t\t\t\t${siteDetails.companyNameFull}
\r\n\t\t\t\t\t\t\t\t\t\t\t${siteDetails.host} \r\n\t\t\t\t\t\t\t\t\t\t

\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t`;\r\n\t\t\t\tthis.scope.NewEmailTemplate.Content += label;\r\n\t\t\t\tthis.init();\r\n\t\t\t});\r\n\t}\r\n\r\n\tinit(filter?: IFilterForGetEmailTemplateList): void {\r\n\t\tthis.EmailsService.GetEmailTemplateList(filter)\r\n\t\t\t.then(data => {\r\n\t\t\t\tthis.scope.EmailTemplateList = data;\r\n\t\t\t\tthis.scope.EmailTemplateList.forEach(email => this.getDeliveryStatus(email));\r\n\t\t\t\tthis.scope.isLoading = false;\r\n\t\t\t\tif (this.$stateParams.id !== void 0) {\r\n\t\t\t\t\tthis.selectEmail(parseInt(this.$stateParams.id, 10), false);\r\n\t\t\t\t}\r\n\t\t\t\tthis.checkEmailsForUpdate();\r\n\t\t\t})\r\n\t\t\t.catch(err => {\r\n\t\t\t\tthis.scope.isLoading = false;\r\n\t\t\t\tthis.handleError(err, \"Ошибка получения списка писем\");\r\n\t\t\t});\r\n\t}\r\n\r\n\tselectEmail(EmailTemplateID: number, tryCheckId: boolean = true): void {\r\n\t\tif (\r\n\t\t\tparseInt(this.$stateParams.id, 10) === EmailTemplateID &&\r\n\t\t\ttryCheckId\r\n\t\t) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.scope.isLoadingCurrentEmail = true;\r\n\t\tthis.$location.search(\"id\", EmailTemplateID);\r\n\r\n\t\tthis.EmailsService.GetEmailTemplateDetailInfo(EmailTemplateID)\r\n\t\t\t.then(email => {\r\n\t\t\t\tthis.scope.CurrentEmail = email;\r\n\t\t\t\treturn this.EmailsService.GetRecipient(EmailTemplateID);\r\n\t\t\t})\r\n\t\t\t.then(recipients => {\r\n\t\t\t\tthis.scope.CurrentEmail.Addresses = recipients;\r\n\t\t\t\tthis.scope.isLoadingCurrentEmail = false;\r\n\t\t\t})\r\n\t\t\t.catch(err => {\r\n\t\t\t\tthis.scope.isLoadingCurrentEmail = false;\r\n\t\t\t\tthis.handleError(err, \"Ошибка получения детальной информации по шаблону\");\r\n\t\t\t});\r\n\t}\r\n\r\n\tgetDeliveryStatus(email: IEmailTemplate): void {\r\n\t\temail.deliveryStatus = [\r\n\t\t\t{\r\n\t\t\t\tdescription: \"success\",\r\n\t\t\t\tvalue:\r\n\t\t\t\t\temail.OK + email.Error + email.Wait !== 0\r\n\t\t\t\t\t\t? email.OK *\r\n\t\t\t\t\t\t100 /\r\n\t\t\t\t\t\t(email.OK + email.Error + email.Wait)\r\n\t\t\t\t\t\t: 0,\r\n\t\t\t\tcolor: \"#aed581\" // success\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tdescription: \"error\",\r\n\t\t\t\tvalue:\r\n\t\t\t\t\temail.OK + email.Error + email.Wait !== 0\r\n\t\t\t\t\t\t? email.Error *\r\n\t\t\t\t\t\t100 /\r\n\t\t\t\t\t\t(email.OK + email.Error + email.Wait)\r\n\t\t\t\t\t\t: 0,\r\n\t\t\t\tcolor: \"#e57373\" // error\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tdescription: \"in-queue\",\r\n\t\t\t\tvalue:\r\n\t\t\t\t\temail.OK + email.Error + email.Wait !== 0\r\n\t\t\t\t\t\t? email.Wait *\r\n\t\t\t\t\t\t100 /\r\n\t\t\t\t\t\t(email.OK + email.Error + email.Wait)\r\n\t\t\t\t\t\t: 0,\r\n\t\t\t\tcolor: \"#b0bec5\" // in-queue\r\n\t\t\t}\r\n\t\t];\r\n\t\temail.isCanceled = email.Canceled === EmailTemplateCanceledEnumStatus.canceled\r\n\t\t\t|| email.OK + email.Wait === 0;\r\n\t\temail.isSuccess = email.deliveryStatus[0].value === 100;\r\n\t}\r\n\r\n\thandleError(request: any, defaultMessage: string): void {\r\n\t\tconst error: any = request.data;\r\n\t\tif (error.Message) {\r\n\t\t\tlet msg: string = error.Message;\r\n\t\t\tif (error.ModelState) {\r\n\t\t\t\tlet keys: string[] = Object.keys(error.ModelState);\r\n\t\t\t\tif (keys.length > 0) {\r\n\t\t\t\t\tmsg = `${msg} (${error.ModelState[keys[0]][0]})`;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.ToastService.show(msg);\r\n\t\t} else {\r\n\t\t\tthis.ToastService.show(defaultMessage);\r\n\t\t}\r\n\t}\r\n\r\n\tcheckEmailsForUpdate(): void {\r\n\t\tconst emailsToUpdate: IEmailTemplate[] = this.scope.EmailTemplateList.filter(email => email.Wait > 0 && !email.isCanceled);\r\n\t\tif (emailsToUpdate.length > 0) {\r\n\t\t\tthis.updateInfo(emailsToUpdate)\r\n\t\t\t\t.then(() => {\r\n\t\t\t\t\tthis.scope.checkEmailsForUpdateTimeout = this.$timeout(() => {\r\n\t\t\t\t\t\tthis.checkEmailsForUpdate();\r\n\t\t\t\t\t}, 1500);\r\n\t\t\t\t});\r\n\t\t} else {\r\n\t\t\tthis.scope.checkEmailsForUpdateTimeout = this.$timeout(() => {\r\n\t\t\t\tthis.checkEmailsForUpdate();\r\n\t\t\t}, 5000);\r\n\t\t}\r\n\t}\r\n\r\n\tupdateInfo(emailsToUpdate: IEmailTemplate[]): ng.IPromise {\r\n\t\tif (emailsToUpdate.length === 0) { return; }\r\n\t\treturn this.EmailsService.GetEmailTemplateDetailInfo(emailsToUpdate[0].EmailTemplateID)\r\n\t\t\t.then((result) => {\r\n\t\t\t\tconst index: number = this.scope.EmailTemplateList.indexOf(emailsToUpdate[0]);\r\n\t\t\t\tif (index !== -1) {\r\n\t\t\t\t\tthis.scope.EmailTemplateList[index].OK = result.OK;\r\n\t\t\t\t\tthis.scope.EmailTemplateList[index].Error = result.Error;\r\n\t\t\t\t\tthis.scope.EmailTemplateList[index].Wait = result.Wait;\r\n\t\t\t\t\tthis.getDeliveryStatus(this.scope.EmailTemplateList[index]);\r\n\t\t\t\t}\r\n\t\t\t\temailsToUpdate.splice(0, 1);\r\n\t\t\t\treturn this.updateInfo(emailsToUpdate);\r\n\t\t\t});\r\n\t}\r\n}\r\n","/// \r\n\r\nimport { IDatasetItem } from \"./directives/circleChart.directive\";\r\n\r\ndeclare var moment: any;\r\nmoment.locale(\"ru\");\r\n\r\nexport interface IEmailTemplate {\r\n\tEmailTemplateID?: number;\r\n\tTitle: string;\r\n\tContent: string;\r\n\tCreatedAt?: string;\r\n\tAttachments?: IAttachmentDTO[];\r\n\r\n\tOK?: number;\r\n\tError?: number;\r\n\tWait?: number;\r\n\tCanceled?: number;\r\n\r\n\tdeliveryStatus?: IDatasetItem[];\r\n\tAddresses?: string[];\r\n\tisSuccess?: boolean;\r\n\tisCanceled?: boolean;\r\n}\r\n\r\nexport interface IAttachmentDTO {\r\n\tFileName: string;\r\n\tBase64: string;\r\n\tSize?: number;\r\n}\r\n\r\nexport enum EmailTemplateCanceledEnumStatus {\r\n\t\"active\",\r\n\t\"canceled\"\r\n}\r\n\r\nexport interface IDeliveryStatus {\r\n\tvalue: number;\r\n\tcolor: string;\r\n}\r\n\r\nexport interface ICreateTemplateDTO {\r\n\tTitle: string;\r\n\tContent: string;\r\n\tAddresses: string[];\r\n\tAttachments?: IAttachmentDTO[];\r\n}\r\n\r\nexport interface IFilterForGetEmailTemplateList {\r\n\tEmailTitle?: string;\r\n\tStartDate?: Date;\r\n\tEndDate?: Date;\r\n}\r\n\r\nexport class EmailsService {\r\n\tprivate isTest = false;\r\n\r\n\tconstructor(\r\n\t\tprivate $http: ng.IHttpService,\r\n\t\tprivate $state: any,\r\n\t\tprivate BackendUri: string,\r\n\t\tprivate $q: ng.IQService\r\n\t) {}\r\n\r\n\tGetEmailTemplateList(filter?: IFilterForGetEmailTemplateList): ng.IPromise {\r\n\t\tif (this.isTest) {\r\n\t\t\tconst testArray: IEmailTemplate[] = [];\r\n\t\t\tfor (let i: number = 0; i < 20; i++) {\r\n\t\t\t\tconst success: number = Math.round(1000 * Math.random());\r\n\t\t\t\tconst error: number = Math.round(1000 * Math.random());\r\n\t\t\t\tconst inQueue: number = Math.round(1000 * Math.random());\r\n\t\t\t\ttestArray.push({\r\n\t\t\t\t\tEmailTemplateID: i,\r\n\t\t\t\t\tTitle: `Huge Fuckin Title of this small template / Number ${i}`,\r\n\t\t\t\t\tContent: \"lorem text\",\r\n\t\t\t\t\tOK: success,\r\n\t\t\t\t\tError: error,\r\n\t\t\t\t\tWait: inQueue,\r\n\t\t\t\t\tCreatedAt: new Date().toJSON()\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\treturn this.$q.resolve(testArray);\r\n\t\t}\r\n\r\n\t\t// let getParams: string = filter === void 0 ? \"\" :\r\n\t\t// \tObject.keys(filter).reduce((prev, curr) => {\r\n\t\t// \t\tif (filter[curr] === null || filter[curr] === void 0) { return prev; }\r\n\t\t// \t\tconst value: any = curr === \"emailTitle\" ?\r\n\t\t// \t\t\tfilter[curr] : this.formatDate(filter[curr] as Date);\r\n\t\t// \t\treturn prev === \"\" ? `?${curr}=${value}` : `${prev}&${curr}=${value}`;\r\n\t\t// \t}, \"\");\r\n\r\n\t\treturn this.$http\r\n\t\t\t.get(`${this.BackendUri}/email/templates/stat`, { params: filter })\r\n\t\t\t.then(res => {\r\n\t\t\t\treturn res.data as IEmailTemplate[];\r\n\t\t\t});\r\n\t}\r\n\r\n\tformatDate(value: Date): string {\r\n\t\treturn moment(`${value.getDate()}.${value.getMonth()}.${value.getFullYear()}`, \"D.M.YYYY\", true).format();\r\n\t}\r\n\r\n\t/**\r\n\t * Метод добавления шаблона письма для рассылки\r\n\t * @param data Шаблон письма для создания\r\n\t * @returns EmailTemplateID - Идентификатор созданого шаблона\r\n\t */\r\n\tAddEmailTemplate(data: ICreateTemplateDTO): ng.IPromise {\r\n\t\treturn this.$http\r\n\t\t\t.post(`${this.BackendUri}/email/templates`, data)\r\n\t\t\t.then(res => {\r\n\t\t\t\treturn res.data as number;\r\n\t\t\t});\r\n\t}\r\n\r\n\tGetEmailTemplateDetailInfo(\r\n\t\tEmailTemplateID: number\r\n\t): ng.IPromise {\r\n\t\tif (this.isTest) {\r\n\t\t\tconst success: number = Math.round(1000 * Math.random());\r\n\t\t\tconst error: number = Math.round(1000 * Math.random());\r\n\t\t\tconst inQueue: number = Math.round(1000 * Math.random());\r\n\t\t\tlet test:IEmailTemplate = {\r\n\t\t\t\tEmailTemplateID: EmailTemplateID,\r\n\t\t\t\tTitle: `Huge Fuckin Title of this small template / Number ${EmailTemplateID}`,\r\n\t\t\t\tContent: \"lorem text\",\r\n\t\t\t\tOK: success,\r\n\t\t\t\tError: error,\r\n\t\t\t\tWait: inQueue\r\n\t\t\t};\r\n\t\t\treturn this.$q.resolve(test);\r\n\t\t}\r\n\r\n\t\treturn this.$http\r\n\t\t\t.get(`${this.BackendUri}/email/templates/${EmailTemplateID}/stat`)\r\n\t\t\t.then(res => {\r\n\t\t\t\treturn res.data as IEmailTemplate;\r\n\t\t\t});\r\n\t}\r\n\r\n\tGetRecipient(EmailTemplateID: number): ng.IPromise {\r\n\t\tif (this.isTest) {\r\n\t\t\treturn this.$q.resolve([\"test@test.test\", \"321@123.ru\"]);\r\n\t\t}\r\n\t\treturn this.$http\r\n\t\t\t.get(\r\n\t\t\t\t`${\r\n\t\t\t\t\tthis.BackendUri\r\n\t\t\t\t}/email/templates/${EmailTemplateID}/addresses`\r\n\t\t\t)\r\n\t\t\t.then(res => {\r\n\t\t\t\treturn res.data as string[];\r\n\t\t\t});\r\n\t}\r\n\r\n\tStopSendingEmail(EmailTemplateID: number): ng.IPromise {\r\n\t\treturn this.$http\r\n\t\t\t.post(`${this.BackendUri}/email/templates/${EmailTemplateID}/stop`, {})\r\n\t\t\t.then(res => {\r\n\t\t\t\treturn;\r\n\t\t\t});\r\n\t}\r\n}\r\n","import \"./router.js\";\r\nimport { EmailsController } from \"./emails.controller\";\r\nimport { EmailsService } from \"./emails.service\";\r\nimport { EmailTemplateDirective } from \"./directives/emailTemplate.directive\";\r\nimport { CircleChartDirective } from \"./directives/circleChart.directive\";\r\nimport { EmailRecipientDirective } from \"./directives/emailRecipient.directive\";\r\n\r\nimport { RecipientFromEmailDialogController } from \"./dialogs/recipientFromEmail.dialog\";\r\n\r\nangular\r\n\t.module(\"admin\")\r\n\t.value(\"uiTinymceConfig\", {\r\n\t\tlanguage: \"ru\",\r\n\t\tlanguage_url: \"./assets/ru.js\",\r\n\t\tplugins: \"link image lists code fullscreen\",\r\n\t\ttoolbar:\r\n\t\t\t\"undo redo styleselect bold italic | alignleft aligncenter alignright bullist numlist outdent indent | image code fullscreen\",\r\n\t\t// statusbar: false,\r\n\t\theight: 450,\r\n\t\tmenubar: false\r\n\t})\r\n\t.controller(\"EmailsController\", EmailsController)\r\n\t.controller(\"RecipientFromEmailDialogController\", RecipientFromEmailDialogController)\r\n\t.directive(\"emailTemplate\", EmailTemplateDirective.getInstance)\r\n\t.directive(\"circleChart\", CircleChartDirective.getInstance)\r\n\t.service(\"EmailsService\", EmailsService)\r\n\t.directive(\"emailRecipient\", EmailRecipientDirective.getInstance);\r\n","angular.module('app.routes').run(run);\r\n/* @ngInject */\r\nfunction run(stateAdapter, $templateCache) {\r\n stateAdapter.state('sitedetail.emails', {\r\n url: \"/emails?id\",\r\n template: $templateCache.get('site/detail/emails/emails.controller.html'),\r\n controller: 'EmailsController',\r\n resolve : {},\r\n reloadOnSearch: false\r\n })\r\n}","/// \r\n\r\nlet Instance: GisAttachmentDirective;\r\nexport var AttachmentNames: {[key: number]: string} = {};\r\n\r\nexport interface IgisAttachment {\r\n gis_attachment_id: string; \r\n created: string;\r\n filename: string;\r\n size: number;\r\n mimetype: string;\r\n}\r\nexport interface IgisAttachmentScope extends ng.IScope {\r\n attachment: IgisAttachment;\r\n download: any;\r\n inProgress: boolean;\r\n}\r\n\r\nexport class gisAttachmentController {\r\n scope: IgisAttachmentScope;\r\n element: ng.IAugmentedJQuery;\r\n \r\n link(scope, element: ng.IAugmentedJQuery, attr: ng.IAttributes) {\r\n this.scope = scope;\r\n this.element = element;\r\n this.render()\r\n }\r\n \r\n render() {\r\n let size = Math.round(this.scope.attachment.size / 1024);\r\n this.element\r\n .find('a')\r\n .attr('data-attachment-id', this.scope.attachment.gis_attachment_id)\r\n .on('click.attachment', (ev) => this.download(ev))\r\n .find('.gis__attachment-filename')\r\n .html(`${size} Кб${this.scope.attachment.filename}`)\r\n }\r\n \r\n download(ev) {\r\n ev.preventDefault();\r\n if (this.scope.inProgress) return;\r\n \r\n this.scope.inProgress = true;\r\n this.element.addClass('gis-attachment--loading');\r\n \r\n Instance.$http.get(`${Instance.BackendUri}/gis/file/${this.scope.attachment.gis_attachment_id}`, {\r\n responseType: 'arraybuffer',\r\n }).then(response => {\r\n var fName = this.scope.attachment.filename;\r\n var file = new Blob([response.data], {type: this.scope.attachment.mimetype});\r\n var fileURL = window.URL.createObjectURL(file);\r\n \r\n this.element\r\n .removeClass('gis-attachment--loading')\r\n .find('a')\r\n .attr('href', fileURL)\r\n .prop('download', fName)\r\n .off('click.attachment')\r\n .get(0).click();\r\n })\r\n }\r\n}\r\n\r\nexport class GisAttachmentDirective {\r\n\tstatic getInstance($templateCache: ng.ITemplateCacheService, BackendUri, $http) {\r\n return Instance = new GisAttachmentDirective($templateCache, BackendUri, $http);\r\n\t}\r\n \r\n public restrict: string = 'E';\r\n public scope = {\r\n 'attachment': '=',\r\n }\r\n \r\n public template: any;\r\n \r\n constructor($templateCache: ng.ITemplateCacheService, public BackendUri, public $http) {\r\n\t\tthis.template = $templateCache.get('site/detail/gis/directives/gisAttachment.directive.html');\r\n $('body').on('click', '[data-attachment-link]', function(ev){\r\n ev.preventDefault();\r\n let id = $(this).data('attachment-link');\r\n $(`[data-attachment-id=\"${id}\"]`).get(0).click();\r\n });\r\n\t}\r\n\r\n\tlink (scope, element, attr, controller: gisAttachmentController) {\r\n controller.link(scope, element, attr);\r\n\t}\r\n \r\n controller() {\r\n return new gisAttachmentController();\r\n }\r\n}","/// \r\n\r\nexport class GisController {\r\n OGRN: string;\r\n tasks: any[];\r\n scope: any;\r\n\r\n constructor(public TasksBackendService, public FilesBackendService, public $scope, public $timeout, $stateParams, FlowConfigurator) {\r\n this.OGRN = $stateParams.ogrn;\r\n this.load();\r\n this.scope = $scope;\r\n this.scope.taskGroups = {};\r\n this.scope.activate = () => this.activate();\r\n this.scope.requestCheckAccess = () => this.requestCheckAccess();\r\n this.scope.AddTask = (TaskTypeId) => this.AddTask(TaskTypeId);\r\n this.scope.getFlowConfig = (target) => {\r\n var s = FlowConfigurator.getConfig(target);\r\n s['target'] += '?taskType=Import.Account.Excel';\r\n return s;\r\n }\r\n\r\n this.scope.reload = () => {\r\n this.$timeout(() => {\r\n this.scope.taskGroups = {};\r\n this.load();\r\n }, 1000);\r\n }\r\n }\r\n\r\n public load() {\r\n this.TasksBackendService.resource.query({}, tasks => {\r\n this.tasks = tasks;\r\n this.checkAccess(this.tasks);\r\n\r\n this.tasks.forEach(t => {\r\n if (!this.scope.taskGroups[t.TaskTypeId]) {\r\n this.scope.taskGroups[t.TaskTypeId] = [];\r\n }\r\n if(t.FileExportId != null){\r\n this.FilesBackendService.resource.query({fileId: t.FileExportId, size: \"size\"}, Files =>{\r\n Files.forEach(file =>{\r\n t[\"attachment\"] = {\r\n \"gis_attachment_id\": t.FileExportId,\r\n \"created\": t.Created,\r\n \"filename\": t.Name + \" XLSX\",\r\n \"size\": file[\"FileSize\"],\r\n\r\n // application/vnd.openxmlformats-officedocument.spreadsheetml.sheet -- xslx\r\n // application/vnd.ms-excel -- xls\r\n \"mimetype\": \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\"\r\n }\r\n this.scope.taskGroups[t.TaskTypeId].push(t);\r\n })\r\n })\r\n }\r\n else{\r\n t[\"attachment\"] = {\r\n \"gis_attachment_id\": t.FileExportId,\r\n \"created\": t.Created,\r\n \"filename\": \"t.FileExportId == null WTF!?\",\r\n \"size\": 0,\r\n\r\n // application/vnd.openxmlformats-officedocument.spreadsheetml.sheet -- xslx\r\n // application/vnd.ms-excel -- xls\r\n \"mimetype\": \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\"\r\n }\r\n this.scope.taskGroups[t.TaskTypeId].push(t);\r\n }\r\n })\r\n })\r\n\r\n }\r\n\r\n public checkAccess(tasks: any[]) {\r\n this.scope.hasAccess = false;\r\n tasks.forEach(t => {\r\n if (t.StatusId == 2 && t.TaskTypeId == 'Permission.CheckAccess') {\r\n this.scope.hasAccess = true;\r\n }\r\n })\r\n this.$timeout(() => angular.element(document).find(\".gkh-table--loading\").removeClass(\"gkh-table--loading\"), 1000);\r\n }\r\n\r\n public activate() {\r\n if (this.scope.is_activating) return;\r\n this.scope.is_activating = true;\r\n\r\n this.TasksBackendService.resource.save({add: \"add\"}, {\r\n TaskTypeId: 'Permission.Activate'\r\n }, () => this.scope.is_activating = false, () => this.scope.is_activating = false)\r\n }\r\n\r\n\r\n public requestCheckAccess() {\r\n if (this.scope.is_checkAccessRequested || this.scope.hasAccess) return;\r\n this.scope.is_checkAccessRequested = true;\r\n\r\n this.TasksBackendService.resource.save({add: \"add\"}, {\r\n TaskTypeId: 'Permission.CheckAccess'\r\n }, () => this.scope.is_checkAccessRequested = false, () => this.scope.is_checkAccessRequested = false)\r\n }\r\n\r\n\r\n public AddTask(TaskTypeId: string) {\r\n if (this.scope.is_addTask) return;\r\n this.scope.is_addTask = true;\r\n\r\n this.TasksBackendService.resource.save({add: \"add\"}, {\r\n TaskTypeId: TaskTypeId\r\n }, () => {\r\n this.scope.is_addTask = false;\r\n this.scope.reload();\r\n }, () => this.scope.is_addTask = false)\r\n }\r\n}\r\n","import './router.js';\r\nimport {GisController} from './gis.controller.ts';\r\nimport {TasksBackendService} from './services/tasksBackend.service.ts'\r\nimport {FilesBackendService} from './services/filesBackend.service.ts'\r\n\r\nimport {GisAttachmentDirective} from './directives/gisAttachment.directive'\r\n\r\nangular.module('admin')\r\n .directive('attachment', GisAttachmentDirective.getInstance)\r\n .controller('GisController', GisController)\r\n .service('TasksBackendService', TasksBackendService)\r\n .service('FilesBackendService', FilesBackendService);","angular.module('app.routes').run(run);\r\n/* @ngInject */\r\nfunction run(stateAdapter, $templateCache) {\r\n stateAdapter.state('sitedetail.gis', {\r\n url: \"/gis\",\r\n template: $templateCache.get('site/detail/gis/gis.controller.html'),\r\n controller: 'GisController',\r\n reloadOnSearch: false\r\n })\r\n}","/// \r\n\r\nexport class FilesBackendService {\r\n public resource;\r\n \r\n\tconstructor(protected $resource, protected BackendUri) {\r\n this.resource = $resource(BackendUri + '/gis/file/:fileId/:size', {});\r\n\t}\r\n}\r\n","/// \r\n\r\nexport class TasksBackendService {\r\n public resource;\r\n \r\n\tconstructor(protected $resource, protected BackendUri) {\r\n this.resource = $resource(BackendUri + '/gis/task/:add/:TaskId/:action', {});\r\n\t}\r\n}\r\n","/// \r\nimport { ToastService } from \"../../../shared/services/toast.service\";\r\nimport { FlowConfigurator, IFlowObject } from \"../../../shared/services/flowConfigurator.service\";\r\nimport { IHouse, HousesService } from \"./houses.service\";\r\n\r\ndeclare var moment: any;\r\nmoment.locale(\"ru\");\r\n\r\nexport interface IHousesScope extends ng.IScope {\r\n houses: IHouse[];\r\n\tCurrentHouse: IHouse;\r\n\r\n\tisLoading: boolean;\r\n\tisUploading: boolean;\r\n\ttimehash: number;\r\n\tuploader_license: IFlowObject;\r\n}\r\n\r\n\r\n\r\nexport class HousesController {\r\n\tscope: IHousesScope;\r\n\r\n constructor($scope: any, $stateParams: any, private HousesService: HousesService,\r\n private $mdDialog: ng.material.IDialogService, private $templateCache: any, private ToastService: ToastService,\r\n private FlowConfigurator: FlowConfigurator, private $timeout: ng.ITimeoutService, StorageUri: string\r\n ) {\r\n\t\tthis.scope = $scope;\r\n this.scope.OGRN = $stateParams.ogrn;\r\n this.scope.CurrentHouse = null;\r\n this.scope.StorageUri = StorageUri;\r\n this.scope.isLoading = false;\r\n this.scope.isUploading = false;\r\n this.scope.uploader_license = {};\r\n $scope.getFlowConfig = (target) => FlowConfigurator.getConfig(target);\r\n\r\n this.scope.selectHouse = (house) => this.selectHouse(house);\r\n this.scope.deletePicture = (house) => this.deletePicture(house);\r\n this.scope.upload = () => this.upload();\r\n this.scope.error = () => this.error();\r\n this.scope.refresh = () => {\r\n\t\t\tthis.getHouses()\r\n\t\t\t\t.then(() => {\r\n\t\t\t\t\tif (this.scope.CurrentHouse != null) {\r\n\t\t\t\t\t\tconst houses: IHouse[] = this.scope.houses.filter(h => h.HouseUniqueNumber === this.scope.CurrentHouse.HouseUniqueNumber);\r\n\t\t\t\t\t\tif (houses.length > 0) {\r\n\t\t\t\t\t\t\tthis.scope.selectHouse(houses[0]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n };\r\n\r\n this.getHouses();\r\n }\r\n\r\n getHouses(): ng.IPromise {\r\n\t\tthis.scope.isUploading = false;\r\n\t\tthis.scope.isLoading = true;\r\n\t\t// return this.$http.get(`${this.BackendUri}/ogranization/houses`)\r\n\t\treturn this.HousesService.get()\r\n\t\t\t.then(houses => {\r\n\t\t\t\tthis.scope.timehash = new Date().getTime();\r\n\t\t\t\treturn this.scope.houses = houses;\r\n\t\t\t})\r\n\t\t\t.finally(() => {\r\n\t\t\t\tthis.scope.isLoading = false;\r\n\t\t\t});\r\n\t}\r\n\r\n\tupload(): void {\r\n\t\tthis.scope.isUploading = true;\r\n\t\ttry {\r\n\t\t\tif (this.scope.CurrentHouse.HouseUniqueNumber) {\r\n\t\t\tthis.scope.uploader_license.flow.opts.query.houseId = this.scope.CurrentHouse.HouseUniqueNumber;\r\n\t\t\t} else {\r\n\t\t\t\tthis.scope.uploader_license.flow.opts.query.reformaHouseId = this.scope.CurrentHouse.HouseId;\r\n\t\t\t}\r\n\t\t\tthis.scope.uploader_license.flow.upload();\r\n\t\t} catch {\r\n\t\t\tthis.scope.isUploading = false;\r\n\t\t}\r\n\t}\r\n\r\n\terror(): void {\r\n\t\tthis.scope.isUploading = false;\r\n\t\tthis.ToastService\r\n\t\t\t.show(\r\n\t\t\t\t\"Произошла ошибка\",\r\n\t\t\t\tthis.ToastService.status.warning\r\n\t\t\t);\r\n\t}\r\n\r\n selectHouse(house: IHouse): void {\r\n\t\tthis.scope.isUploading = true;\r\n\t\tthis.scope.CurrentHouse = null;\r\n\t\tthis.$timeout(() => {\r\n\t\t\tthis.scope.CurrentHouse = house;\r\n\t\t\tthis.scope.isUploading = false;\r\n\t\t}, 100);\r\n }\r\n\r\n deletePicture(house: IHouse): void {\r\n\t\tthis.scope.isUploading = false;\r\n\t\tthis.scope.isLoading = true;\r\n\t\tthis.scope.CurrentHouse = null;\r\n\t\tthis.HousesService.delete(house)\r\n\t\t\t.finally(() => this.scope.refresh() );\r\n\t\t// this.$http.delete(`${this.BackendUri}/ogranization/house/image?houseId=${house.HouseUniqueNumber}`)\r\n }\r\n}\r\n","import { IDistrict } from './../district/district.service';\r\n/// \r\n\r\ndeclare var moment: any;\r\nmoment.locale(\"ru\");\r\n\r\nexport interface IHouse {\r\n\tHouseUniqueNumber?: string;\r\n\tHouseId?: string;\r\n\r\n\tFIASHouseGUID?: string; // guid?\r\n\tFormalAddress: string; // string\r\n\tPicturePath: string; // string\r\n\r\n\tDistrictId?: string;\r\n\tDistrict?: IDistrict;\r\n}\r\n\r\nexport class HousesService {\r\n\tprotected isTest: boolean = false;\r\n\tprotected testData: IHouse[] = [];\r\n\r\n constructor(\r\n\t\tprotected $q: ng.IQService,\r\n\t\tprotected $http: ng.IHttpService,\r\n\t\tprotected BackendUri: string,\r\n\t\tprotected StorageUri: string,\r\n\t) {}\r\n\r\n\tget() {\r\n\t\tif (!this.isTest) {\r\n\t\t\treturn this.$http.get(`${this.BackendUri}/ogranization/houses`)\r\n\t\t\t\t.then(response => {\r\n\t\t\t\t\treturn response.data as IHouse[];\r\n\t\t\t\t});\r\n\t\t} else {\r\n\t\t\treturn this.$q.resolve(this.testData);\r\n\t\t}\r\n\t}\r\n\r\n\tdelete(house: IHouse) {\r\n\t\tif (house.HouseUniqueNumber) {\r\n\t\t\treturn this.$http.delete(`${this.BackendUri}/ogranization/house/image?houseId=${house.HouseUniqueNumber}`)\r\n\t\t} else {\r\n\t\t\treturn this.$http.delete(`${this.BackendUri}/ogranization/house/image?reformaHouseId=${house.HouseId}`)\r\n\t\t}\r\n\t}\r\n\r\n}\r\n","import './router.js';\r\nimport { HousesController } from './houses.controller';\r\nimport { HousesService } from './houses.service';\r\n\r\nangular.module('admin')\r\n\t.controller('HousesController', HousesController)\r\n\t.service('HousesService', HousesService);\r\n","angular.module('app.routes').run(run);\r\n/* @ngInject */\r\nfunction run(stateAdapter, $templateCache) {\r\n stateAdapter.state('sitedetail.houses', {\r\n url: \"/houses?filter\",\r\n template: $templateCache.get('site/detail/houses/houses.controller.html'),\r\n controller: 'HousesController',\r\n resolve : {\r\n userData: (User) => {\r\n let user = User.getUserIdentity('Backend');\r\n return user;\r\n }\r\n },\r\n reloadOnSearch: false\r\n\t})\r\n}\r\n","import './notes/module.js';\r\nimport './theme/module.js';\r\nimport './gis/module.js';\r\nimport './companyInfo/module.js';\r\nimport './emails/module.js';\r\nimport './charges/module.js';\r\nimport './dispatcher/module.js';\r\nimport './houses/module.js';\r\nimport './district/module.js'\r\nimport './router.js';\r\n\r\nimport {DetailController} from './detail.controller.ts';\r\nimport {SidenavMenuDirective} from './sidenav-menu.directive';\r\nimport {ImgPopupDialogController} from './dialogs/img-popup.dialog';\r\n\r\nangular.module('admin')\r\n .controller('DetailController', DetailController)\r\n\t.controller('ImgPopupDialogController', ImgPopupDialogController)\r\n\t.directive('sidenavMenu', SidenavMenuDirective.getInstance)\r\n","import './router.js';\r\nimport {NotesController} from './notes.controller.ts';\r\nimport {NotesAddController} from './notesAdd.controller.ts';\r\nimport {NotesBackendService} from './services/notesBackend.service.ts';\r\nimport {NoteTypeController} from './note-types/note-types.controller.ts';\r\nimport {NoteTypesService} from './note-types/note-types.service.ts';\r\n\r\nangular.module('admin')\r\n .controller('NotesController', NotesController)\r\n .controller('NotesAddController', NotesAddController)\r\n .controller('NoteTypeController', NoteTypeController)\r\n .service('NotesBackendService', NotesBackendService)\r\n .service('NoteTypesService', NoteTypesService);\r\n","/// \r\nimport { ToastService } from \"../../../../shared/services/toast.service\";\r\nimport { INoteType, NoteTypesService } from \"./note-types.service\";\r\n\r\ndeclare var moment: any;\r\nmoment.locale(\"ru\");\r\n\r\nexport interface INoteTypeScope extends ng.IScope {\r\n\tnewType: INoteType;\r\n\tlist: INoteType[];\r\n\tisLoading: boolean;\r\n\tcheckResult: {[key: string]: boolean};\r\n\r\n\tcreate: (noteType: INoteType) => void;\r\n\tupdate: (noteType: INoteType) => void;\r\n\tdelete: (noteType: INoteType) => void;\r\n\tonEnterLoad: (keyEvent: MouseEvent, data: INoteType) => void;\r\n\tcheckName: (noteType: INoteType, id: string) => void;\r\n}\r\n\r\nexport interface IQueryNoteType {\r\n limit: number;\r\n page: number;\r\n}\r\n\r\nexport class NoteTypeController {\r\n\tscope: INoteTypeScope;\r\n\r\n\tconstructor($scope: any, $stateParams: any, private $timeout: ng.ITimeoutService,\r\n\t\tprivate NoteTypesService: NoteTypesService, private ToastService: ToastService,\r\n\t\tprivate $mdBottomSheet: ng.material.IBottomSheetService, private $mdUtil: ng.material.IUtilService\r\n ) {\r\n\t\tthis.scope = $scope;\r\n this.scope.OGRN = $stateParams.ogrn;\r\n\t\tthis.scope.isLoading = true;\r\n\t\tthis.scope.checkResult = { 'new': false };\r\n\r\n\t\tthis.scope.checkName = this.$mdUtil.debounce((noteType: INoteType, id: string) => {\r\n\t\t\tthis.checkName(noteType.description, id);\r\n\t\t}, 250);\r\n\r\n\t\tthis.scope.closeWindow = () => { this.$mdBottomSheet.hide(); };\r\n\t\tthis.scope.edit = (noteType: INoteType) => {\r\n\t\t\tif (noteType.IsEditing) {\r\n\t\t\t\tnoteType.IsEditing = false;\r\n\t\t\t\tthis.scope.checkResult[noteType.type_id] = true;\r\n\t\t\t\tnoteType.description = JSON.parse(JSON.stringify(noteType.PreDescription));\r\n\t\t\t} else {\r\n\t\t\t\tnoteType.IsEditing = true;\r\n\t\t\t\tthis.scope.checkResult[noteType.type_id] = true;\r\n\t\t\t\tnoteType.PreDescription = JSON.parse(JSON.stringify(noteType.description));\r\n\t\t\t}\r\n\t\t};\r\n this.scope.create = (noteType: INoteType) => this.create(noteType);\r\n\t\tthis.scope.update = (noteType: INoteType) => this.update(noteType);\r\n this.scope.delete = (noteType: INoteType) => this.delete(noteType);\r\n this.scope.onEnterLoad = (keyEvent, noteType: INoteType) => {\r\n if (keyEvent.which === 13) {\r\n\t\t\t\tif (noteType.type_id) {\r\n\t\t\t\t\tthis.update(noteType);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.create(noteType);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tthis.scope.checkName(noteType, noteType.type_id ? noteType.type_id : 'new');\r\n\t\t\t}\r\n };\r\n\r\n\t\tthis.init();\r\n\t}\r\n\r\n\tinit() {\r\n\t\tthis.scope.isLoading = true;\r\n\t\tthis.scope.newType = { description: '' };\r\n\t\treturn this.NoteTypesService.get()\r\n\t\t\t.then((data) => {\r\n\t\t\t\tthis.scope.list = data;\r\n\t\t\t\tthis.scope.checkResult = { 'new': false };\r\n\t\t\t\tthis.sort();\r\n\t\t\t})\r\n\t\t\t.catch(() => this.ToastService.show('Ошибка получения списка'))\r\n\t\t\t.finally(() => this.scope.isLoading = false);\r\n\t}\r\n\r\n\tcheckName(description, id) {\r\n\t\treturn this.NoteTypesService.checkName(description)\r\n\t\t\t.then(data => {\r\n\t\t\t\tconst noteType = this.scope.list.find(t => t.type_id === id);\r\n\t\t\t\tthis.scope.checkResult[id] = noteType ? noteType.PreDescription === noteType.description || data : data;\r\n\t\t\t})\r\n\t\t\t.catch(() => this.ToastService.show('Ошибка проверки имени'));\r\n\t}\r\n\r\n\tcreate(data: INoteType) {\r\n\t\treturn this.NoteTypesService.create(data.description)\r\n\t\t\t.then(noteType => {\r\n\t\t\t\tthis.scope.list.push(noteType);\r\n\t\t\t\tthis.sort();\r\n\t\t\t\tthis.scope.newType = { description: '' };\r\n\t\t\t})\r\n\t\t\t.catch(() => this.ToastService.show('Ошибка проверки имени'));\r\n\t}\r\n\r\n\tupdate(data: INoteType) {\r\n\t\treturn this.NoteTypesService.update(data.type_id, data.description)\r\n\t\t\t.then(noteType => {\r\n\t\t\t\tconst index = this.scope.list.findIndex(i => i.type_id === noteType.type_id);\r\n\t\t\t\tif (index > -1) {\r\n\t\t\t\t\tthis.scope.list[index] = noteType;\r\n\t\t\t\t\tthis.sort();\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn this.init();\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.catch(() => this.ToastService.show('Ошибка проверки имени'));\r\n\t}\r\n\r\n\tdelete(data: INoteType) {\r\n\t\treturn this.NoteTypesService.delete(data.type_id)\r\n\t\t\t.then(() => this.init());\r\n\t}\r\n\r\n\tsort() {\r\n\t\tthis.scope.list = this.scope.list.sort((a,b) =>\r\n\t\t\ta.description.toLowerCase() > b.description.toLowerCase() ? 1 :\r\n\t\t\ta.description.toLowerCase() < b.description.toLowerCase() ? -1 : 0\r\n\t\t);\r\n\t}\r\n}\r\n","/// \r\n\r\nexport interface INoteType {\r\n\ttype_id?: string;\r\n\togrn?: string;\r\n\tdescription: string;\r\n\r\n\tIsEditing?: boolean;\r\n\tPreDescription?: string;\r\n}\r\n\r\nexport class NoteTypesService {\r\n\r\n constructor(\r\n\t\tprotected $q: ng.IQService,\r\n\t\tprotected $http: ng.IHttpService,\r\n\t\tprotected BackendUri: string,\r\n\t\tprotected StorageUri: string,\r\n\t) {}\r\n\r\n\tget uri() {\r\n\t\treturn `${this.BackendUri}/notes`;\r\n\t}\r\n\r\n\t// [HttpGet, Route(\"types\")]\r\n\tget() {\r\n\t\treturn this.$http.get(`${this.uri}/types`)\r\n\t\t\t\t.then(({ data }) => data);\r\n\t}\r\n\r\n\t// [HttpGet, Route(\"type/isFreeName\")]\r\n\tcheckName(description: string) {\r\n\t\treturn this.$http.get(`${this.uri}/type/isFreeName?description=${description}`)\r\n\t\t\t\t.then(({ data }) => data);\r\n\t}\r\n\r\n\t// [HttpPost, Route(\"type\")]\r\n\tcreate(description: string) {\r\n\t\tconst data = {\r\n\t\t\tDescription: description\r\n\t\t};\r\n\t\treturn this.$http.post(`${this.uri}/type`, data)\r\n\t\t\t\t.then(({ data }) => data);\r\n\t}\r\n\r\n\t// [HttpPatch, Route(\"type/{noteTypeId}\")]\r\n\tupdate(noteTypeId: string, description: string) {\r\n\t\tconst data = {\r\n\t\t\tDescription: description\r\n\t\t};\r\n\t\treturn this.$http.patch(`${this.uri}/type/${noteTypeId}`, data)\r\n\t\t\t\t.then(({ data }) => data);\r\n\t}\r\n\r\n\t// [HttpDelete, Route(\"type/{noteTypeId}\")]\r\n\tdelete(noteTypeId: string) {\r\n\t\treturn this.$http.delete(`${this.uri}/type/${noteTypeId}`)\r\n\t\t\t\t.then(({ data }) => data);\r\n\t}\r\n\r\n}\r\n","export class Note {\r\n\tnote_id?: any;\r\n date: Date;\r\n type: string;\r\n title: string;\r\n text: string;\r\n showOnMainPage: boolean;\r\n public?: boolean;\r\n\tFiles?: File[];\r\n\tHouseUniqueNumber?: string;\r\n\r\n constructor() {\r\n this.date = new Date();\r\n this.Files = [];\r\n this.showOnMainPage = false;\r\n }\r\n}\r\n\r\nexport class File {\r\n file_id: string;\r\n name: string;\r\n size: number;\r\n isDelete: boolean;\r\n ext: string;\r\n\r\n constructor(file_id: string,\r\n name: string, size: number = 0, ext: string)\r\n {\r\n this.file_id = file_id;\r\n this.name = name;\r\n this.isDelete = false;\r\n this.size = size;\r\n this.ext = ext.replace(\".\", \"\");\r\n }\r\n}\r\n\r\nexport class Type {\r\n description: string;\r\n type_id: string;\r\n}\r\n","/// \r\nimport { Note, Type, File } from \"./note\"\r\nimport { FlowConfigurator, IFlow } from \"../../../shared/services/flowConfigurator.service\";\r\nimport { NotesBackendService } from \"./services/notesBackend.service\";\r\n\r\nexport class NotesController {\r\n scope: any;\r\n mdDialog: any;\r\n BottomSheet: any;\r\n NoteTypeBottomSheet: any;\r\n\r\n constructor (public $scope, public $mdDialog, public FlowConfigurator: FlowConfigurator,\r\n public NotesBackendService: NotesBackendService, public $mdBottomSheet, StorageUri,\r\n\t\tpublic $templateCache, private SiteService, $stateParams,\r\n\t\tprivate ToastService, private $q: ng.IQService, private $timeout: ng.ITimeoutService,\r\n\t\tprivate BackendUri: string, private $http: ng.IHttpService,\r\n ) {\r\n this.scope = $scope;\r\n this.mdDialog = $mdDialog;\r\n this.scope.OGRN = $stateParams.ogrn;\r\n this.scope.StorageUri = StorageUri;\r\n this.getTypes();\r\n\t\tthis.scope.getFlowConfig = (target) => FlowConfigurator.getConfig(target, {singleFile: false});\r\n\r\n\t\tthis.scope.uploader = {};\r\n\t\tthis.scope.getFlowConfigPicture = (target) => FlowConfigurator.getConfig(target);\r\n\t\tthis.scope.uploadPicture = () => this.uploadPicture();\r\n\t\tthis.scope.successUploading = () => this.successUploading();\r\n\t\tthis.scope.errorUploading = () => this.errorUploading();\r\n\t\tthis.scope.deletePicture = (note) => this.deletePicture(note);\r\n\t\tthis.scope.selectNoteForUpload = (note) => this.selectNoteForUpload(note);\r\n\r\n this.scope.toogleShowOnMainPage = (item) => {\r\n\t\t\titem.showOnMainPage = !item.showOnMainPage;\r\n this.NotesBackendService.resource.save({action: \"edit\"}, item,\r\n res => {\r\n if(res.Result !== 0) {\r\n this.ToastService.show(\"Сохранено\", this.ToastService.status.success);\r\n // this.refresh();\r\n } else {\r\n this.ToastService.show(res.Description);\r\n }\r\n },\r\n err => {\r\n console.warn(err);\r\n this.ToastService.show(err.Description);\r\n }\r\n );\r\n };\r\n\t\tthis.scope.isLoading = true;\r\n\r\n\t\tthis.scope.clearCurrentItem = () => {\r\n\t\t\t$scope.currentItem = null;\r\n\t\t};\r\n\t\tthis.scope.setCurrentItem = (item) => {\r\n\t\t\t$scope.currentItem = item;\r\n\t\t};\r\n\t\tthis.scope.refresh = () => this.refresh();\r\n\t\tthis.scope.publish = (item) => this.publish(item);\r\n\t\tthis.scope.unpublish = (item) => this.unpublish(item);\r\n\t\tthis.scope.PlusUsageSize = (val) => { this.scope.UsageSize += 1 * val; };\r\n\r\n\t\tthis.getNotes()\r\n .then(Notes => {\r\n this.scope.showingExtended = 0;\r\n this.scope.findMistake = this.findMistake;\r\n this.scope.flowObj = {};\r\n this.scope.FlowConfigurator = FlowConfigurator;\r\n\r\n this.BottomSheet = {\r\n\t\t\t\t\ttemplate: $templateCache.get(\"site/detail/notes/notes-add-template.html\"),\r\n\t\t\t\t\tcontroller: \"NotesAddController\",\r\n\t\t\t\t\tpreserveScope: true,\r\n\t\t\t\t\tclickOutsideToClose: true,\r\n\t\t\t\t\tescapeToClose: false,\r\n\t\t\t\t\tscope: this.scope\r\n\t\t\t\t};\r\n this.scope.addNote = () => {\r\n this.scope.alert = \"add\";\r\n $mdBottomSheet.show(this.BottomSheet).then(() => {\r\n this.refresh();\r\n });\r\n\t\t\t\t};\r\n this.scope.editNote = (note) => {\r\n this.scope.currentItem = note;\r\n this.scope.alert = \"edit\";\r\n $mdBottomSheet.show(this.BottomSheet).then(() => {\r\n this.refresh();\r\n });\r\n };\r\n this.scope.del = (item) => {\r\n var confirm = $mdDialog.confirm()\r\n .title(\"Удаление\")\r\n .textContent(\"Вы точно хотите удалить запись?\")\r\n .ariaLabel(\"Удаление\")\r\n .ok(\"Да, удалить\")\r\n .cancel(\"Отмена\");\r\n $mdDialog.show(confirm).then(() => this.del(item));\r\n\t\t\t\t};\r\n\r\n\t\t\t\tthis.NoteTypeBottomSheet = {\r\n\t\t\t\t\ttemplate: $templateCache.get(\"site/detail/notes/note-types/note-types.controller.html\"),\r\n\t\t\t\t\tcontroller: \"NoteTypeController\",\r\n\t\t\t\t\tpreserveScope: true,\r\n\t\t\t\t\tclickOutsideToClose: true,\r\n\t\t\t\t\tescapeToClose: false\r\n\t\t\t\t};\r\n\t\t\t\tthis.scope.noteTypeOpen = () => {\r\n $mdBottomSheet.show(this.NoteTypeBottomSheet).then(() => {\r\n this.refresh();\r\n });\r\n\t\t\t\t};\r\n\t\t\t})\r\n\t\t\t.finally(() => {\r\n\t\t\t\tthis.scope.isLoading = false;\r\n\t\t\t});\r\n }\r\n\r\n culcUsageSize(notes: any[]) {\r\n return notes.reduce((prevNoteSize, note) => {\r\n prevNoteSize += note.Files.reduce((prevFilesSize, file) => prevFilesSize + file.size, 0);\r\n return prevNoteSize;\r\n }, 0) / ( 1024 * 1024);\r\n }\r\n\r\n // getSiteDetailsInfo() {\r\n // return this.NotesBackendService.getNotes();\r\n // }\r\n // private _getSiteDetailsInfo(defer: ng.IDeferred, count: number) {\r\n // count++;\r\n\r\n // if(count > 250) return defer.reject();\r\n\r\n // if(angular.isUndefined(this.scope.$parent.siteDetails) || this.scope.$parent.siteDetails == null)\r\n // return setTimeout(() => this._getSiteDetailsInfo(defer, count), 100);\r\n\r\n // return defer.resolve();\r\n // }\r\n\r\n getTypes() {\r\n this.NotesBackendService.resource.query({action: \"types\"}, {},\r\n result => {\r\n this.scope.types = result as Type[];\r\n },\r\n err => {\r\n this.scope.types = [];\r\n console.warn(err);\r\n this.ToastService.show(err.Description);\r\n }\r\n )\r\n }\r\n\r\n publish(item) {\r\n return this.NotesBackendService.resource.save({action: \"publish\"},\r\n {note_id: item.note_id, public: true},\r\n result => {\r\n if(result.Result != 0) {\r\n this.ToastService.show(\"Запись опубликована\");\r\n } else {\r\n this.ToastService.show(result.Description);\r\n }\r\n this.refresh();\r\n },\r\n err => {\r\n console.warn(err);\r\n this.ToastService.show(err.Description);\r\n }\r\n )\r\n }\r\n\r\n unpublish(item) {\r\n this.scope.currentItem = item;\r\n return this.NotesBackendService.resource.save({action: \"publish\"},\r\n {note_id: item.note_id, public: false},\r\n result => {\r\n if(result.Result != 0) {\r\n this.ToastService.show(\"Запись скрыта\");\r\n }\r\n else {\r\n this.ToastService.show(result.Description);\r\n }\r\n this.refresh();\r\n },\r\n err => {\r\n console.warn(err);\r\n this.ToastService.show(err.Description);\r\n }\r\n )\r\n }\r\n\r\n del(item) {\r\n this.NotesBackendService.resource.del({action: \"delete\"},\r\n {note_id: item.note_id},\r\n result => {\r\n if(result.Result != 0) {\r\n this.ToastService.show(\"Запись удалена\");\r\n }\r\n else {\r\n this.ToastService.show(result.Description);\r\n }\r\n this.refresh();\r\n },\r\n err => {\r\n console.warn(err);\r\n this.ToastService.show(err.Description);\r\n }\r\n )\r\n }\r\n\r\n findMistake($event) {\r\n\t\tthis.mdDialog.show(\r\n\t\t\tthis.mdDialog.alert()\r\n\t\t\t\t.clickOutsideToClose(true)\r\n\t\t\t\t.title(\"Если вы нашли ошибку\")\r\n\t\t\t\t// tslint:disable-next-line: max-line-length\r\n\t\t\t\t.htmlContent(\"Свяжитесь с техподдержкой I-GKH.RU по телефону +7 (495) 646-64-01 или по почте support@i-gkh.ru \")\r\n\t\t\t\t.ariaLabel(\"Если вы нашли ошибку\")\r\n\t\t\t\t.ok(\"ОК\")\r\n\t\t\t\t.targetEvent($event)\r\n\t\t);\r\n\t}\r\n\r\n refresh() {\r\n\t\tthis.scope.isLoading = true;\r\n\t\tthis.scope.PublishedNotes = [];\r\n\t\tthis.scope.UnpublishedNotes = [];\r\n\t\tthis.scope.UsageSize = this.culcUsageSize([]);\r\n\t\tthis.$timeout(() => this.getNotes(), 750)\r\n\t\t\t.finally(() => this.scope.isLoading = false);\r\n\t}\r\n\r\n\tgetNotes() {\r\n\t\treturn this.NotesBackendService.getNotes().then((Notes) => {\r\n\t\t\tthis.scope.clearCurrentItem();\r\n\t\t\tthis.scope.PublishedNotes = Notes.filter(x => x.public === true);\r\n\t\t\tthis.scope.UnpublishedNotes = Notes.filter(x => x.public === false);\r\n\t\t\tthis.scope.UsageSize = this.culcUsageSize(Notes);\r\n\t\t\treturn Notes;\r\n\t\t});\r\n\t}\r\n\r\n\tuploadPicture(): void {\r\n\t\tthis.scope.uploader.flow.opts.query.noteId = this.scope.noteForUpload.note_id;\r\n\t\tthis.scope.uploader.flow.upload();\r\n\t}\r\n\tselectNoteForUpload(note: Note): void {\r\n\t\tthis.scope.noteForUpload = note;\r\n\t\t$(\"#flow-btn\").click();\r\n\t}\r\n\tsuccessUploading(): void {\r\n\t\tthis.ToastService.show(\"Лого добавлено\", this.ToastService.status.success);\r\n\t\tthis.scope.refresh();\r\n\t}\r\n\terrorUploading(): void {\r\n\t\tthis.ToastService.show(\"Произошла ошибка\", this.ToastService.status.warning );\r\n\t}\r\n\tdeletePicture(note: Note): void {\r\n\t\tthis.NotesBackendService.deletePicture(note.note_id)\r\n\t\t\t.then(() => {\r\n\t\t\t\tthis.ToastService.show(\"Лого удалено\", this.ToastService.status.success);\r\n\t\t\t\tthis.refresh();\r\n\t\t\t})\r\n\t\t\t.catch(() => this.ToastService.show( \"Произошла ошибка\", this.ToastService.status.warning ))\r\n\t}\r\n}\r\n\r\n\r\n","/// \r\nimport { Note, Type, File } from \"./note\";\r\nimport { IFlow, IFlowFile } from \"../../../shared/services/flowConfigurator.service\";\r\nimport { ToastService } from \"../../../shared/services/toast.service\";\r\nimport { NotesBackendService } from \"./services/notesBackend.service\";\r\nimport { IHouse } from './../houses/houses.service';\r\nimport { HousesService } from './../houses/houses.service';\r\n\r\nexport interface INotesAddScope extends ng.IScope {\r\n\thouses: IHouse[];\r\n\tselectedHouse: IHouse;\r\n\tnote: Note;\r\n}\r\n\r\nexport class NotesAddController {\r\n scope: INotesAddScope;\r\n note: Note = new Note();\r\n types: Type[];\r\n mdBottomSheet: any;\r\n confirm: any;\r\n\r\n\tconstructor(public $scope: any, public NotesBackendService: NotesBackendService, $stateParams: any,\r\n\t\t$mdBottomSheet: ng.material.IBottomSheetService, $mdDialog: ng.material.IDialogService,\r\n\t\tprivate $q: ng.IQService, private ToastService: ToastService, private SiteService: any,\r\n\t\t$mdUtil: any, StorageUri: string, protected $http: ng.IHttpService, protected BackendUri: string,\r\n\t\tprivate HousesService: HousesService\r\n\t) {\r\n this.mdBottomSheet = $mdBottomSheet;\r\n this.scope = $scope;\r\n this.scope.StorageUri = StorageUri;\r\n this.getTypes();\r\n\r\n this.scope.isNoteLoading = false;\r\n this.scope.tooglePublic = (note) => {\r\n let tmp: any = note.public ? this.scope.unpublish(note) : this.scope.publish(note);\r\n tmp.$promise.then(() => this.refresh());\r\n\r\n };\r\n\r\n this.scope.AddFileSize = 0;\r\n this.scope.imageStrings = [];\r\n this.$scope.filesAdded = $mdUtil.debounce((flow: IFlow) => {\r\n flow.files.forEach((flowFile, i) => {\r\n var fileReader: FileReader = new FileReader();\r\n fileReader.onload = (event: any) => {\r\n var uri: string = event.target.result;\r\n this.scope.imageStrings[i] = uri;\r\n this.scope.$apply();\r\n };\r\n fileReader.readAsDataURL(flowFile.file);\r\n });\r\n this.scope.AddFileSize = flow.files.reduce((prev, file) => prev + file.size , 0) / ( 1024 * 1024 * 1024 );\r\n }, 250);\r\n\r\n let AddedFilesCount: any = $mdUtil.debounce((files) => {\r\n if(files == null) { return; }\r\n this.scope.FilesSize = files.reduce((prev, file) => prev + file.size , 0) / ( 1024 * 1024 * 1024 );\r\n }, 250);\r\n this.scope.$watch(\"files\", (files) =>AddedFilesCount(files), true);\r\n\r\n this.scope.note = angular.isDefined(this.scope.currentItem) && this.scope.currentItem != null ? {\r\n date: new Date(this.scope.currentItem.date),\r\n type: this.scope.currentItem.type,\r\n title: this.scope.currentItem.title,\r\n text: this.scope.currentItem.text,\r\n note_id: this.scope.currentItem.note_id,\r\n Files: this.scope.currentItem.Files,\r\n HouseUniqueNumber: this.scope.currentItem.HouseUniqueNumber,\r\n showOnMainPage: this.scope.currentItem.showOnMainPage,\r\n public: this.scope.currentItem.public\r\n } : this.note;\r\n\r\n this.scope.files = [] as File[];\r\n this.scope.note.Files.forEach(file => {\r\n this.scope.files.push(new File(file.file_id, file.name, file.size, file.ext));\r\n\t\t});\r\n\r\n\t\tthis.getHouses().then(() => {\r\n\t\t\tconst houses: IHouse[] = this.scope.houses.filter(h => h.HouseUniqueNumber === this.scope.note.HouseUniqueNumber);\r\n\t\t\tif (houses.length > 0) {\r\n\t\t\t\tthis.scope.selectedHouse = houses[0];\r\n\t\t\t} else {\r\n\t\t\t\tthis.scope.selectedHouse = null;\r\n\t\t\t}\r\n\t\t})\r\n\r\n\r\n this.scope.filesSubmitted = (files) => {\r\n if (files.length > 0) {\r\n let newFile: any = files.pop();\r\n let flag: boolean = false;\r\n this.scope.files.forEach(file => {\r\n if (file.name === newFile.name) {\r\n flag = true;\r\n }\r\n });\r\n if (!flag) {\r\n files.push(newFile);\r\n }\r\n }\r\n };\r\n\r\n this.scope.errorUpload = (message) => this.errorUpload(message);\r\n this.scope.complete = (message, flow) => this.complete(message, flow);\r\n this.scope.closeWindow = () => this.closeWindow();\r\n\r\n this.scope.saveNote = () => {\r\n if(this.scope.note.title && this.scope.note.title !== \"\") {\r\n if(this.scope.note.text && this.scope.note.text !== \"\") {\r\n this.saveNote();\r\n\t\t\t\t}\r\n\t\t\t}\r\n };\r\n\r\n this.scope.btn_text = () => this.scope.alert === \"edit\" ? \"Сохранить изменения\" : \"Добавить запись\";\r\n\r\n this.confirm = $mdDialog.confirm()\r\n .title(\"Подтверждение\")\r\n .textContent(\"Вы точно хотите удалить прикрепленный файл?\")\r\n .ariaLabel(\"Подтверждение\")\r\n .ok(\"Удалить\")\r\n .cancel(\"Отмена\");\r\n\r\n this.scope.delFile = (file) => {\r\n $mdDialog.show(this.confirm)\r\n .then(\r\n () => {\r\n this.delFile(file);\r\n },\r\n () => {\r\n\t\t\t\t\tthis.ToastService.show(\"Не обработанная ошибка\", this.ToastService.status.warning);\r\n\t\t\t\t}\r\n );\r\n };\r\n this.scope.delFlowFile = (file: IFlowFile) => {\r\n file.cancel();\r\n this.$scope.filesAdded(this.scope.flowObj.flow);\r\n\t\t};\r\n\r\n\t\tthis.scope.querySearch = (val) => this.querySearch(val);\r\n\t}\r\n\r\n\tquerySearch(term: string): IHouse[] {\r\n\t\tconst terms: string[] = term.split(\" \");\r\n\t\treturn this.scope.houses.filter(house => {\r\n\t\t\treturn terms.every(t => {\r\n\t\t\t\treturn house.FormalAddress.toLowerCase().indexOf(t.toLowerCase()) > -1;\r\n\t\t\t});\r\n\t\t});\r\n\t\t// return this.scope.houses.filter(h => h.FormalAddress.);\r\n }\r\n\r\n delFile(delFile: File): any {\r\n this.NotesBackendService.resource.save({action: \"delete-file\"}, { file_id: delFile.file_id },\r\n res => {\r\n if(res.Result !== 0) {\r\n this.scope.files = this.scope.files.filter(file => file !== delFile);\r\n this.ToastService.show(\"Файл удалён. Запись сохранена.\");\r\n this.scope.refresh();\r\n } else {\r\n this.ToastService.show(res.Description);\r\n }\r\n },\r\n err => {\r\n console.warn(err);\r\n this.ToastService.show(err.Description);\r\n }\r\n );\r\n }\r\n\r\n getTypes(): any {\r\n this.NotesBackendService.resource.query({action: \"types\"}, {},\r\n res => {\r\n this.scope.types = res as Type[];\r\n this.note.type = this.scope.types[0].type_id;\r\n },\r\n err => {\r\n console.warn(err);\r\n this.scope.types = [];\r\n }\r\n );\r\n }\r\n\r\n errorUpload(message: string): void {\r\n\t\tlet error: any = JSON.parse(message);\r\n\t\ttry {\r\n\t\t\tthis.ToastService.handle(error.Message);\r\n\t\t} catch (err) {\r\n\t\t\tthis.ToastService.show(\"Не обработанная ошибка\", this.ToastService.status.warning);\r\n\t\t}\r\n\t}\r\n\r\n\tgetHouses(): ng.IPromise {\r\n\t\treturn this.HousesService.get()\r\n\t\t\t.then(houses => {\r\n\t\t\t\tthis.scope.houses = houses;\r\n\t\t\t});\r\n\t}\r\n\r\n complete(message: string, flow: IFlow): void {\r\n // this.scope.btn_text = \"Сохранить изменения\";\r\n\r\n let goodFiles: IFlowFile[] = [];\r\n let files: IFlowFile[] = [];\r\n flow.files.forEach(file => {\r\n if(file.error === false) {\r\n goodFiles.push(file);\r\n } else {\r\n files.push(file);\r\n }\r\n });\r\n goodFiles.forEach(file => file.cancel());\r\n if(files.length > 0) {\r\n let strFileError: string = files.reduce((prevVal, Val, index) => {\r\n prevVal += Val.name;\r\n prevVal += index !== files.length - 1 ? \", \" : \"\";\r\n return Val.name;\r\n }, \"\");\r\n this.ToastService.show(`Файлы из списка не были прикреплены (${strFileError})`);\r\n } else {\r\n this.ToastService.show(`Запись ${this.scope.alert === \"edit\" ? \"сохранена\" : \"добавлена\" }`, this.ToastService.status.success);\r\n }\r\n this.scope.flowObj.flow.opts.target = this.scope.oldTarget;\r\n this.refresh();\r\n // this.mdBottomSheet.hide();\r\n }\r\n\r\n closeWindow(): void {\r\n this.mdBottomSheet.hide();\r\n }\r\n\r\n\r\n refresh(): any {\r\n\t\tthis.scope.isNoteLoading = false;\r\n this.scope.AddFileSize = 0;\r\n\t\tthis.NotesBackendService.getNotes()\r\n\t\t\t.then(data => {\r\n\t\t\t\tlet note: Note = data.find(x => x.note_id === this.scope.note.note_id);\r\n\t\t\t\tif(angular.isDefined(note)) {\r\n\t\t\t\t\tthis.scope.note.public = note.public;\r\n\t\t\t\t\tthis.scope.files = [] as File[];\r\n\t\t\t\t\tnote.Files.forEach(file => {\r\n\t\t\t\t\t\tthis.scope.files.push(new File(file.file_id, file.name, file.size, file.ext));\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n }\r\n\r\n saveNote(): any {\r\n\t\tthis.scope.isNoteLoading = true;\r\n\t\tconst date: any = new Date(Date.UTC(\r\n\t\t\tthis.scope.note.date.getFullYear(),\r\n\t\t\tthis.scope.note.date.getMonth(),\r\n\t\t\tthis.scope.note.date.getDate())\r\n\t\t);\r\n let note: Note = {\r\n\t\t\tdate: new Date(date),\r\n\t\t\ttype: this.scope.note.type,\r\n\t\t\ttitle: this.scope.note.title,\r\n\t\t\ttext: this.scope.note.text,\r\n\t\t\tHouseUniqueNumber: this.scope.selectedHouse ? this.scope.selectedHouse.HouseUniqueNumber : null,\r\n\t\t\tshowOnMainPage: this.scope.note.showOnMainPage\r\n\t\t};\r\n\r\n if (this.scope.alert === \"edit\") {\r\n note[\"note_id\"] = this.scope.note.note_id;\r\n }\r\n this.NotesBackendService.resource.save({action: this.scope.alert}, note,\r\n res => {\r\n if(res.Result !== 0) {\r\n if(this.scope.alert !== \"edit\") {\r\n note[\"note_id\"] = res.Note_id;\r\n this.scope.note.note_id = res.Note_id;\r\n this.scope.alert = \"edit\";\r\n }\r\n if(this.scope.flowObj.flow.files.length > 0) {\r\n this.scope.oldTarget = `${this.scope.flowObj.flow.opts.target}`;\r\n this.scope.flowObj.flow.opts.target += `/${note[\"note_id\"]}`;\r\n this.scope.flowObj.flow.opts.target += `?isPhoto=${this.scope.note.type === \"photo\" ? true : false}`;\r\n\r\n this.scope.flowObj.flow.upload();\r\n } else {\r\n this.ToastService.show(\"Сохранено\", this.ToastService.status.success);\r\n this.refresh();\r\n // this.closeWindow();\r\n }\r\n } else {\r\n this.ToastService.show(res.Description);\r\n this.refresh();\r\n }\r\n },\r\n err => {\r\n console.warn(err);\r\n this.ToastService.show(err.Description);\r\n }\r\n );\r\n }\r\n}\r\n","angular.module('app.routes').run(run);\r\n/* @ngInject */\r\nfunction run(stateAdapter, $templateCache) {\r\n stateAdapter.state('sitedetail.notes', {\r\n url: \"/notes\",\r\n template: $templateCache.get('site/detail/notes/notes.controller.html'),\r\n controller: 'NotesController',\r\n resolve : {}\r\n //parent: 'sitedetail',\r\n \r\n })\r\n}","/// \r\n\r\nimport { Note } from \"../note\";\r\n\r\nexport class NotesBackendService {\r\n public resource;\r\n\r\n constructor($resource, private BackendUri: string, private $http: ng.IHttpService) {\r\n this.resource = $resource(BackendUri + \"/notes/:action\",\r\n {},\r\n {\r\n 'query': {method:'GET', isArray:true},\r\n 'save': {method:'POST', isArray:false},\r\n 'del': {method:'POST', isArray:false},\r\n }\r\n );\r\n\t}\r\n\r\n\tgetNotes() {\r\n\t\treturn this.$http.get(`${this.BackendUri}/site/notes`)\r\n\t\t\t.then(response => response.data);\r\n\t}\r\n\r\n\tdeletePicture(note_id: string) {\r\n\t\treturn this.$http.delete(`${this.BackendUri}/notes/note/${note_id}/image`);\r\n\t}\r\n}\r\n","angular.module('app.routes').run(run);\r\n\r\n/* @ngInject */\r\nfunction run(stateAdapter, $templateCache, $q) {\r\n stateAdapter.state('sitedetail', {\r\n url: \"/{ogrn}?iframe\",\r\n template: $templateCache.get('site/detail/detail.controller.html'),\r\n controller: 'DetailController',\r\n data : {\r\n menu: true,\r\n },\r\n resolve : {}\r\n })\r\n}","import { MissedRecordService } from \"../../shared/services/missed-record.service\";\r\n\r\ndeclare var moment: any;\r\nmoment.locale(\"ru\");\r\n\r\nlet Instance: SidenavMenuDirective;\r\n\r\nexport interface ISidenavMenuScope extends ng.IScope {\r\n\tUser: any;\r\n\r\n\tsiteAccordion: boolean;\r\n\tbasicInfoAccordion: boolean;\r\n\tdispatcherAccordion: boolean;\r\n}\r\n\r\nexport class SidenavMenuController {\r\n scope: ISidenavMenuScope;\r\n element: ng.IAugmentedJQuery;\r\n input: any;\r\n\r\n link(scope: any, element: ng.IAugmentedJQuery, attr: ng.IAttributes): any {\r\n this.scope = scope;\r\n\t\tthis.element = element;\r\n\r\n\t\tthis.scope.siteAccordion = true;\r\n\t\tthis.scope.dispatcherAccordion = true;\r\n\t\tif ([\r\n\t\t\t\"sitedetail\", \"sitedetail.theme\", \"sitedetail.notes\",\r\n\t\t\t\"sitedetail.companyInfo\"\r\n\t\t].indexOf(Instance.$state.current.name) >= 0) {\r\n\t\t\tthis.scope.siteAccordion = true;\r\n\t\t} else if ([\r\n\t\t\t\"sitedetail.charges\", \"sitedetail.performers\",\r\n\t\t\t\"sitedetail.repair-request-types\", \"sitedetail.emails\",\r\n\t\t\t\"sitedetail.repair-request\", \"sitedetail.appeal\", \"sitedetail.new-appeal\",\r\n\t\t\t\"sitedetail.dispatcher-report\", \"sitedetail.missed-record\"\r\n\t\t].indexOf(Instance.$state.current.name) >= 0) {\r\n\t\t\tthis.scope.dispatcherAccordion = true;\r\n\t\t}\r\n\r\n\t\tthis.scope.User = Instance.User.getUserIdentity(\"Backend\");\r\n\t\tthis.scope.hasPermissionsDispatcherOrOrgInfo = Instance.User.hasPermissions(\"dispatcher\") || Instance.User.hasPermissions(\"org-info\");\r\n\t\tif(Instance.User.hasPermissions(\"dispatcher\")) {\r\n\t\t\tInstance.MissedRecordService.getList()\r\n\t\t\t\t.then(list => {\r\n\t\t\t\t\tthis.scope.MissedRecordCount = list.length;\r\n\r\n\t\t\t\t\tInstance.$rootScope.$on(\"MissedRecordService:Update\",\r\n\t\t\t\t\t( $event, newRecords, forDelete, count ) => {\r\n\t\t\t\t\t\tthis.scope.MissedRecordCount = count;\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t} else {\r\n\t\t\tthis.scope.MissedRecordCount = 0;\r\n\t\t}\r\n }\r\n}\r\n\r\nexport class SidenavMenuDirective {\r\n\tstatic getInstance($templateCache: ng.ITemplateCacheService, $stateParams: any, BackendUri: string,\r\n\t\tUser: any, MissedRecordService: MissedRecordService, $rootScope: any, $state: any\r\n ): any {\r\n return (Instance = new SidenavMenuDirective(\r\n $templateCache,\r\n $stateParams,\r\n\t\t\tBackendUri,\r\n\t\t\tUser,\r\n\t\t\tMissedRecordService,\r\n\t\t\t$rootScope,\r\n\t\t\t$state\r\n ));\r\n }\r\n\r\n public restrict: string = \"E\";\r\n public scope = {\r\n missedRecordCount: \"=?\",\r\n };\r\n public template: any;\r\n\r\n\tconstructor(public $templateCache: ng.ITemplateCacheService, public $stateParams: any, public BackendUri: string,\r\n\t\tpublic User: any, public MissedRecordService: MissedRecordService, public $rootScope: any, public $state: any\r\n\t) {\r\n this.template = $templateCache.get(\r\n \"site/detail/sidenav-menu.directive.html\"\r\n );\r\n }\r\n\r\n link(scope: any, element: any, attr: any, controller: SidenavMenuController): any {\r\n controller.link(scope, element, attr);\r\n }\r\n\r\n controller(): any {\r\n return new SidenavMenuController();\r\n }\r\n}\r\n","import './router.js';\r\nimport {ThemeController} from './theme.controller';\r\nimport {ThemeBackendService} from './theme.service';\r\n\r\nangular.module('admin')\r\n .controller('ThemeController', ThemeController)\r\n .service('ThemeBackendService', ThemeBackendService)\r\n","angular.module('app.routes').run(run);\r\n/* @ngInject */\r\nfunction run(stateAdapter, $templateCache) {\r\n stateAdapter.state('sitedetail.theme', {\r\n url: \"/theme\",\r\n template: $templateCache.get('site/detail/theme/theme.controller.html'),\r\n controller: 'ThemeController',\r\n //parent: 'sitedetail',\r\n resolve : {}\r\n })\r\n}","/// \r\n\r\nimport { ToastService } from \"../../../shared/services/toast.service\";\r\nimport { ThemeBackendService } from \"./theme.service\";\r\nimport { NotesBackendService } from \"../notes/services/notesBackend.service\";\r\nimport { FlowConfigurator, IFlow, IFlowOptions } from \"../../../shared/services/flowConfigurator.service\";\r\nimport { IAdditionalTab, IMeteringDevicesPageSetting, IThemeType } from \"./models\";\r\n\r\nexport interface IThemeScope extends ng.IScope {\r\n\tthemeList: IThemeType[];\r\n\tStorageUri: string;\r\n\tfindMistake: ($event: any) => void;\r\n\r\n\tCurrentTab: IAdditionalTab;\r\n\tAdditionalTabList: IAdditionalTab[];\r\n\taddNewTab: () => void;\r\n\tselectTab: (tab: IAdditionalTab) => void;\r\n\tsaveTab: () => ng.IPromise;\r\n\tdeleteTab: (tab: IAdditionalTab) => ng.IPromise;\r\n\r\n\tgetFlowConfig: (target: string) => IFlowOptions;\r\n\tsubmit: ($flow: IFlow) => void;\r\n\tcomplete: ($message: string, $flow: IFlow) => void;\r\n\r\n\r\n\tMeteringDevicesPageSetting: IMeteringDevicesPageSetting;\r\n\tmetering_devices_page_type: \"basic\" | \"frame\";\r\n}\r\n\r\nexport class ThemeController {\r\n\r\n\tscope: IThemeScope;\r\n\r\n\tconstructor(\r\n\t\t$scope: any, private $mdDialog: ng.material.IDialogService, private $timeout: ng.ITimeoutService,\r\n\t\tprivate ToastService: ToastService, private ThemeBackendService: ThemeBackendService,\r\n\t\tprivate NotesBackendService: NotesBackendService, private FlowConfigurator: FlowConfigurator,\r\n\t\tprivate StorageUri: string, private SiteService: any\r\n\t) {\r\n\t\tthis.scope = $scope;\r\n\t\tthis.scope.StorageUri = this.StorageUri;\r\n\r\n\t\tthis.scope.findMistake = ($event) => this.findMistake($event);\r\n\r\n\t\tthis.scope.getFlowConfig = (target) => this.FlowConfigurator.getConfig(target);\r\n\t\tthis.scope.submit = ($flow) => $flow.upload();\r\n\t\tthis.scope.complete = ($message, $flow) => {\r\n\t\t\t$flow.files = [];\r\n\t\t\tthis.scope.$parent.refresh();\r\n\t\t};\r\n\r\n\t\tthis.scope.save = () => {\r\n\t\t\tthis.saveMeteringDevicesPageSetting();\r\n\t\t\tthis.scope.$parent.save();\r\n\t\t};\r\n\r\n\t\tthis.scope.addNewTab = () => this.addNewTab();\r\n\t\tthis.scope.selectTab = (tab) => this.selectTab(tab);\r\n\t\tthis.scope.saveTab = () => this.saveTab();\r\n\t\tthis.scope.deleteTab = (tab) => this.deleteTab(tab);\r\n\r\n\t\tthis.getThemeList()\r\n\t\t\t.then(() => this.getNotesTypes())\r\n\t\t\t.then(() => this.setColorPicker())\r\n\t\t\t.then(() => this.getAdditionalTab())\r\n\t\t\t.then(() => this.getMeteringDevicesPageSetting())\r\n\t\t\t.then(() => this.SiteService.get({}).$promise)\r\n\t\t\t.then(siteDetails => this.setSiteDetails(siteDetails));\r\n\r\n\r\n\t}\r\n\r\n\tprivate setColorPicker(): ng.IPromise {\r\n\t\treturn this.$timeout(() => {\r\n\t\t\tthis.scope.themeList.forEach(theme => {\r\n\t\t\t\t$(`#theme-color-picker--${theme.id}`).css(\"background-color\", theme.color);\r\n\t\t\t});\r\n\t\t}, 0);\r\n\t}\r\n\r\n\tprivate findMistake($event: any): void {\r\n\t\tthis.$mdDialog.show(\r\n\t\t\tthis.$mdDialog.alert()\r\n\t\t\t\t.clickOutsideToClose(true)\r\n\t\t\t\t.title(\"Если вы нашли ошибку\")\r\n\t\t\t\t// tslint:disable-next-line: max-line-length\r\n\t\t\t\t.htmlContent(\"Свяжитесь с техподдержкой I-GKH.RU по телефону +7 (495) 646-64-01 или по почте support@i-gkh.ru \")\r\n\t\t\t\t.ariaLabel(\"Если вы нашли ошибку\")\r\n\t\t\t\t.ok(\"ОК\")\r\n\t\t\t\t.targetEvent($event)\r\n\t\t);\r\n\t}\r\n\r\n\tprivate getThemeList(): ng.IPromise {\r\n\t\treturn this.ThemeBackendService.resource.query().$promise\r\n .then(themeList => this.scope.themeList = themeList);\r\n\t}\r\n\r\n\tprivate setSiteDetails(siteDetails: any): any {\r\n\t\tif(this.scope.$parent && (this.scope.$parent.siteDetails === null || this.scope.$parent.siteDetails === undefined) ) {\r\n\t\t\tthis.scope.$parent.siteDetails = siteDetails;\r\n\t\t}\r\n\t\tthis.scope.hasLicense = () => this.scope.$parent.siteDetails.license === 1;\r\n\t\tthis.scope.toggleLicense = () => this.scope.$parent.siteDetails.license = this.scope.hasLicense() ? 0 : 1;\r\n\t}\r\n\r\n\tgetAdditionalTab(): ng.IPromise {\r\n\t\tthis.scope.isLoading = true;\r\n\t\treturn this.ThemeBackendService.getAdditionalTab()\r\n\t\t\t.then(AdditionalTabList => {\r\n\t\t\t\tthis.scope.AdditionalTabList = AdditionalTabList;\r\n\t\t\t\tthis.scope.isLoading = false;\r\n\t\t\t})\r\n\t\t\t.catch(err => this.ToastService.show(err.Description));\r\n\t}\r\n\r\n\tgetNotesTypes(): ng.IPromise {\r\n\t\tthis.scope.AdditionalTabTypes = [\r\n\t\t\t{ name: \"Notes\", display: \"Из раздела \\\"Для жильцов\\\"\" },\r\n\t\t\t{ name: \"Url\", display: \"Ссылка на другой ресурс\" }\r\n\t\t];\r\n\t\treturn this.NotesBackendService.resource.query({action: \"types\"}, {},\r\n\t\t\tresult => {\r\n\t\t\t\tthis.scope.NotesTypes = [{description: \"Проверка задолженности\", type_id: \"ChargesRegistry\"}].concat(result);\r\n\t\t\t},\r\n\t\t\terr => {\r\n\t\t\t\tthis.scope.NotesTypes = [];\r\n\t\t\t\tconsole.warn(err);\r\n\t\t\t\tthis.ToastService.show(err.Description);\r\n\t\t\t}\r\n\t\t).$promise;\r\n\t}\r\n\r\n\taddNewTab(): void {\r\n\t\tthis.scope.CurrentTab = {\r\n\t\t\tTabId: null,\r\n\t\t\tTitle: \"\",\r\n\t\t\tOGRN: this.scope.$parent.siteDetails.ogrn,\r\n\t\t\tTabType: this.scope.AdditionalTabTypes[0].name,\r\n\t\t\tNotesType: null,\r\n\t\t\tUrl: null\r\n\t\t};\r\n\t}\r\n\r\n\tselectTab(tab: IAdditionalTab): void {\r\n\t\tthis.scope.CurrentTab = tab;\r\n\t}\r\n\r\n\tsaveTab(): ng.IPromise {\r\n\t\tlet tab: IAdditionalTab = this.scope.CurrentTab;\r\n\t\tif (tab.TabId) {\r\n\t\t\treturn this.ThemeBackendService.updateAdditionalTab(tab)\r\n\t\t\t\t.then(() => {\r\n\t\t\t\t\tthis.ToastService.show(\"Успешно сохранено\", this.ToastService.status.success);\r\n\t\t\t\t\treturn this.getAdditionalTab();\r\n\t\t\t\t})\r\n\t\t\t\t.catch(err => this.ToastService.show(err.Description));\r\n\t\t} else {\r\n\t\t\treturn this.ThemeBackendService.createAdditionalTab(tab)\r\n\t\t\t\t.then(response => {\r\n\t\t\t\t\tthis.ToastService.show(\"Успешно создано\", this.ToastService.status.success);\r\n\t\t\t\t\tthis.scope.CurrentTab.TabId = response.data.TabId;\r\n\t\t\t\t\tthis.getAdditionalTab();\r\n\t\t\t\t})\r\n\t\t\t\t.catch(err => this.ToastService.show(err.Description));\r\n\t\t}\r\n\t}\r\n\r\n\tdeleteTab(tab: IAdditionalTab): ng.IPromise {\r\n\t\treturn this.ThemeBackendService.deleteAdditionalTab(tab)\r\n\t\t\t.then(() => {\r\n\t\t\t\tthis.ToastService.show(\"Успешно удалено\", this.ToastService.status.success);\r\n\t\t\t\tthis.getAdditionalTab();\r\n\t\t\t\tthis.scope.CurrentTab = null;\r\n\t\t\t})\r\n\t\t\t.catch(err => this.ToastService.show(err.Description));\r\n\t}\r\n\r\n\tgetMeteringDevicesPageSetting(): ng.IPromise {\r\n\t\treturn this.ThemeBackendService.getMeteringDevicesPageSetting()\r\n\t\t\t.then(mdps => {\r\n\t\t\t\tthis.scope.MeteringDevicesPageSetting = mdps;\r\n\t\t\t\tthis.scope.metering_devices_page_type = mdps.FrameUrl ? \"frame\" : \"basic\";\r\n\t\t\t})\r\n\t\t\t.catch(err => this.ToastService.show(err.Description));\r\n\t}\r\n\r\n\tsaveMeteringDevicesPageSetting(): void {\r\n\t\tthis.scope.MeteringDevicesPageSetting.FrameUrl = this.scope.metering_devices_page_type === \"frame\" ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t this.scope.MeteringDevicesPageSetting.FrameUrl : null;\r\n\t\tthis.ThemeBackendService.saveMeteringDevicesPageSetting(this.scope.MeteringDevicesPageSetting)\r\n\t\t\t.catch(err => this.ToastService.show(err.Description));\r\n\r\n\t}\r\n}\r\n","/// \r\n\r\nimport { IAdditionalTab, IMeteringDevicesPageSetting } from \"./models\";\r\n\r\nexport class ThemeBackendService {\r\n public resource;\r\n\r\n constructor($resource: any, private BackendUri: string, private $http: ng.IHttpService) {\r\n\t\tthis.resource = $resource(BackendUri + \"/theme\",\r\n\t\t\t{},\r\n\t\t\t{ \"query\": { method:\"GET\", isArray:true } }\r\n\t\t);\r\n\t}\r\n\r\n\tgetAdditionalTab(): ng.IPromise {\r\n\t\treturn this.$http.get(`${this.BackendUri}/tabs`)\r\n\t\t\t.then(response => response.data);\r\n\t}\r\n\tcreateAdditionalTab(tab: IAdditionalTab): ng.IPromise {\r\n\t\treturn this.$http.post(`${this.BackendUri}/tabs`, tab);\r\n\t}\r\n\tupdateAdditionalTab(tab: IAdditionalTab): ng.IPromise {\r\n\t\treturn this.$http.patch(`${this.BackendUri}/tabs/${tab.TabId}`, tab);\r\n\t}\r\n\tdeleteAdditionalTab(tab: IAdditionalTab): ng.IPromise {\r\n\t\treturn this.$http.delete(`${this.BackendUri}/tabs/${tab.TabId}`);\r\n\t}\r\n\r\n\tgetMeteringDevicesPageSetting(): ng.IPromise {\r\n\t\treturn this.$http.get(`${this.BackendUri}/site/metering-devices`)\r\n\t\t\t.then(response => response.data);\r\n\t}\r\n\tsaveMeteringDevicesPageSetting(dto: IMeteringDevicesPageSetting): ng.IPromise<{ MeteringDevicesPageSettingId: string }> {\r\n\t\treturn this.$http.post<{ MeteringDevicesPageSettingId: string }>(`${this.BackendUri}/site/metering-devices`, dto)\r\n\t\t\t.then(response => response.data);\r\n\t}\r\n}\r\n","import './router.js';\r\nimport './siteblocked/router.js';\r\n\r\nimport './detail/module.js';\r\nimport {SiteController} from './site.controller.ts';\r\nimport {SiteService} from './site.service.js';\r\nangular.module(\"admin\")\r\n .controller('SiteController', SiteController)\r\n .service('SiteService', SiteService)","angular.module('app.routes').run(run);\r\n\r\n/* @ngInject */\r\nfunction run(stateAdapter, $templateCache) {\r\n stateAdapter.state('site', {\r\n url: \"/?page&limit&query\",\r\n template: $templateCache.get('site/site.controller.html'),\r\n controller: 'SiteController',\r\n reloadOnSearch: false,\r\n resolve: {\r\n userData: (User, $state) => {\r\n let user = User.getUserIdentity('Backend');\r\n if(user == null) {\r\n User.DeleteKeys('Backend');\r\n $state.go('auth', { name : 'Backend' });\r\n throw \"Не авторизован\";\r\n }\r\n return user;\r\n }\r\n },\r\n secure: true\r\n })\r\n}","/// \r\n\r\nexport interface IQueryOption {\r\n query?: string;\r\n page?: number;\r\n limit?: number;\r\n}\r\n\r\nexport interface IOrganization {\r\n OGRN: string;\r\n CompanyName: string;\r\n}\r\n\r\nclass SiteController {\r\n timeout: any;\r\n constructor(private $scope: any, private $http: ng.IHttpService,\r\n private $state: any, $stateParams: any, $mdDialog: any, private BackendUri: string,\r\n $rootScope: any, private $mdUtil: any, private $timeout: ng.ITimeoutService,\r\n userData: any, private $location: ng.ILocationService\r\n ) {\r\n this.$scope.page = parseInt($stateParams.page, 10) || 1;\r\n this.$scope.limit = parseInt($stateParams.limit, 10) || 25;\r\n this.$scope.query = $stateParams.query;\r\n this.$scope.isLoading = true;\r\n this.$scope.User = userData;\r\n\r\n this.timeout = null;\r\n\r\n if(userData.Role === \"admin\") {\r\n // this.getOrganizations({page: this.$scope.page, limit: this.$scope.limit, query: this.$scope.query});\r\n this.searchWatchersStart();\r\n } else {\r\n this.$scope.limit = userData.Organizations.length;\r\n this.$scope.list = userData.Organizations;\r\n this.$scope.pageCount = 1;\r\n this.$scope.isLoading = false;\r\n if(userData.Organizations.length === 1) {\r\n $state.go(\"sitedetail\", {ogrn: userData.Organizations[0].OGRN});\r\n }\r\n }\r\n\r\n this.$scope.changeElementsCount = (value) => {\r\n this.$scope.page = 1;\r\n this.$scope.limit = value;\r\n };\r\n }\r\n\r\n searchWatchersStart(): void {\r\n let search: any = this.$mdUtil.debounce((query) => {\r\n this.$scope.page = 1;\r\n if(query === \"\") {\r\n this.$location.search(\"query\", null);\r\n this.getOrganizations({page: this.$scope.page, limit: this.$scope.limit, query: null});\r\n } else {\r\n this.$location.search(\"query\", query);\r\n this.getOrganizations({page: this.$scope.page, limit: this.$scope.limit, query: query});\r\n }\r\n }, 200);\r\n\r\n this.$scope.$watch(\"query\", (query: string) => {\r\n if(query === null) { return; }\r\n search(query);\r\n });\r\n this.$scope.$watch(\"page\", (page: number) => {\r\n if(page === null) { return; }\r\n if(page === 1) {\r\n this.$location.search(\"page\", null);\r\n } else {\r\n this.$location.search(\"page\", page);\r\n }\r\n });\r\n\r\n this.$scope.$watch(\"limit\", (limit: number) => {\r\n if(limit === null) { return; }\r\n this.$location.search(\"limit\", limit);\r\n this.getOrganizations({page: this.$scope.page, limit: limit, query: this.$scope.query});\r\n });\r\n }\r\n\r\n getOrganizations(_option: IQueryOption): any {\r\n if(this.timeout != null) {\r\n this.$timeout.cancel(this.timeout);\r\n this.timeout = null;\r\n }\r\n this.$scope.isLoading = true;\r\n let defaultOption: IQueryOption = {\r\n page: 1,\r\n limit: 25,\r\n query: null\r\n };\r\n let option: IQueryOption = angular.extend({}, defaultOption, _option);\r\n let url: string = `${this.BackendUri}/api/auth/organization?page=${option.page}&limit=${option.limit}`;\r\n if(option.query != null && option.query !== \"\") {\r\n url += `&query=${option.query}`;\r\n }\r\n return this.$http.get(url)\r\n .then(result => {\r\n // tslint:disable-next-line:no-string-literal\r\n this.$scope.pageCount = Math.ceil(result.data[\"Count\"] / option.limit);\r\n // tslint:disable-next-line:no-string-literal\r\n this.$scope.countItems = result.data[\"Count\"];\r\n // tslint:disable-next-line:no-string-literal\r\n this.$scope.list = result.data[\"Items\"];\r\n // tslint:disable-next-line:no-string-literal\r\n this.$scope.countItems = result.data[\"Count\"];\r\n this.$scope.isLoading = false;\r\n // tslint:disable-next-line:no-string-literal\r\n if( result.data[\"Count\"] === 1 &&\r\n ( option.query == null || option.query === \"\")\r\n ) {\r\n // tslint:disable-next-line:no-string-literal\r\n this.$state.go(\"sitedetail\", {ogrn: result.data[\"Items\"][0].OGRN});\r\n }\r\n // tslint:disable-next-line:no-string-literal\r\n return (result.data[\"Items\"] as IOrganization[]);\r\n })\r\n .catch(() => {\r\n this.timeout = this.$timeout(() =>\r\n this.getOrganizations({page: this.$scope.page, limit: this.$scope.limit, query: this.$scope.query}), 10000);\r\n });\r\n }\r\n}\r\n\r\nexport {SiteController};","class SiteService {\r\n constructor($resource, BackendUri) {\r\n return $resource(BackendUri + \"/site\", {}, {'query': {method:'GET', isArray:true}});\r\n }\r\n}\r\n\r\nexport {SiteService}","angular.module('app.routes').run(run);\r\n\r\n/* @ngInject */\r\nfunction run(stateAdapter, $templateCache) {\r\n stateAdapter.state('siteblocked', {\r\n url: '/blocked',\r\n template: $templateCache.get('site/siteblocked/siteblocked.html'),\r\n });\r\n}","import { IOrganizationInfo, IOpeningHours, ISite } from \"../model\";\r\n\r\nlet Instance: BaseInfoDirective;\r\nconst DAYSNAMES = {\r\n\t1: \"Понедельник\",\r\n\t2: \"Вторник\",\r\n\t3: \"Среда\",\r\n\t4: \"Четверг\",\r\n\t5: \"Пятница\",\r\n\t6: \"Суббота\",\r\n\t7: \"Воскресенье\"\r\n};\r\n\r\nexport interface IBaseInfoScope extends ng.IScope {\r\n\tcompany: IOrganizationInfo;\r\n\tsite: ISite;\r\n\tsendBaseInfo(): any;\r\n\tdaysNames: any;\r\n\r\n\tonSave: any;\r\n\tonError: any;\r\n\r\n\ttmpCompany: any; // Временная переменная для функционирования упрощенного вида заполнения графиков\r\n\tisOpenHoursFull: boolean;\r\n\tisCitizensReceptionHoursFull: boolean;\r\n\topenFullOpenHours(): any;\r\n\topenFullCitizensReception(): any;\r\n\r\n\tisSending: boolean;\r\n\r\n\tsetAutoSiteUrl(): any;\r\n\tcompanyWatcherCounter: number;\r\n}\r\n\r\nexport class BaseInfoController {\r\n\tscope: IBaseInfoScope;\r\n\telement: ng.IAugmentedJQuery;\r\n\r\n\tlink(scope, element: ng.IAugmentedJQuery, attr: ng.IAttributes) {\r\n\t\tthis.scope = scope;\r\n\t\tthis.element = element;\r\n\t\tthis.scope.saveBtnText = \"Далее\";\r\n\r\n\t\tthis.scope.User = Instance.User.getUserIdentity(\"Backend\");\r\n\t\tthis.scope.mapHelp = localStorage.getItem(\"needMapHelp\");\r\n\t\tif(this.scope.mapHelp == null) {\r\n\t\t\tlocalStorage.setItem(\"needMapHelp\", \"0\");\r\n\t\t\tthis.scope.mapHelp = true;\r\n\t\t} else {\r\n\t\t\tthis.scope.mapHelp = this.scope.mapHelp == \"1\" ? true : false;\r\n\t\t}\r\n\t\tthis.scope.tmpCompany = {\r\n\t\t\tOpenHoursWeekdaysOpenHours: null,\r\n\t\t\tOpenHoursWeekdaysBreakHours: null,\r\n\r\n\t\t\tOpenHoursWeekendOpenHours: null,\r\n\t\t\tOpenHoursWeekendBreakHours: null,\r\n\r\n\t\t\tCitizensReceptionHoursWeekdaysHours: null,\r\n\t\t\tCitizensReceptionHoursWeekdaysBreakHours: null,\r\n\r\n\t\t\tCitizensReceptionHoursWeekendHours: null,\r\n\t\t\tCitizensReceptionHoursWeekendBreakHours: null\r\n\t\t};\r\n\r\n\t\tthis.scope.isOpenHoursFull = false;\r\n\t\tthis.scope.isCitizensReceptionHoursFull = false;\r\n\r\n\t\tthis.scope.$watch(\"isFull\", (isFull: boolean) => {\r\n\t\t\tif (isFull === null && isFull === void 0) return;\r\n\t\t\tif (isFull) {\r\n\t\t\t\tthis.scope.isOpenHoursFull = isFull;\r\n\t\t\t\tthis.scope.isCitizensReceptionHoursFull = isFull;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif (typeof this.scope.company === \"undefined\") {\r\n\t\t\tthis.scope.company = {\r\n\t\t\t\tFullName: null,\r\n\t\t\t\tShortName: null,\r\n\t\t\t\tINN: null,\r\n\t\t\t\tKPP: null,\r\n\t\t\t\tRegistrationDate: null,\r\n\t\t\t\tPostalAddress: null,\r\n\t\t\t\tActualAddress: null,\r\n\t\t\t\tLegalAddress: null,\r\n\t\t\t\tPhone: null,\r\n\t\t\t\tFax: null,\r\n\t\t\t\tEmail: null,\r\n\t\t\t\tUrl: null,\r\n\t\t\t\tChiefLastName: null,\r\n\t\t\t\tChiefFirstName: null,\r\n\t\t\t\tChiefMiddleName: null,\r\n\t\t\t\tOpenHours: [],\r\n\t\t\t\tCitizensReceptionHours: [],\r\n\t\t\t\tPlanUnitCount: null,\r\n\t\t\t\tPlanAdministrativeUnitCount: null,\r\n\t\t\t\tPlanEngineerUnitCount: null,\r\n\t\t\t\tPlanWorkerUnitCount: null,\r\n\t\t\t\tMapScript: null\r\n\t\t\t};\r\n\r\n\t\t\tfor (let i = 0; i < 7; i++) {\r\n\t\t\t\tthis.scope.company.OpenHours.push({\r\n\t\t\t\t\tDayOfWeek: i + 1,\r\n\t\t\t\t\tOpenHours: null,\r\n\t\t\t\t\tBreakHours: null,\r\n\t\t\t\t\tComment: null\r\n\t\t\t\t});\r\n\t\t\t\tthis.scope.company.CitizensReceptionHours.push({\r\n\t\t\t\t\tDayOfWeek: i + 1,\r\n\t\t\t\t\tOpenHours: null,\r\n\t\t\t\t\tBreakHours: null,\r\n\t\t\t\t\tComment: null\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (typeof this.scope.site === \"undefined\") {\r\n\t\t\tthis.scope.saveBtnText = \"Сохранить\";\r\n\t\t\tthis.scope.site = {\r\n\t\t\t\tOgrn: Instance.$stateParams.ogrn,\r\n\t\t\t\tHost: null,\r\n\t\t\t\tDirectory: null,\r\n\t\t\t\tRobots: true,\r\n\t\t\t\tIsRedesign: false\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tthis.scope.daysNames = DAYSNAMES;\r\n\r\n\t\tthis.scope.isSending = false;\r\n\r\n\t\tthis.scope.sendBaseInfo = () => {\r\n\t\t\tthis.scope.isSending = true;\r\n\t\t\tvar date: Date = (this.scope.company.RegistrationDate as any) as Date;\r\n\t\t\tthis.scope.company.RegistrationDate = new Date(\r\n\t\t\t\tDate.UTC( date.getFullYear(), date.getMonth(), date.getDate())\r\n\t\t\t);\r\n\r\n\t\t\t// Если не открыта полная форма OpenHours\r\n\t\t\tif (!this.scope.isOpenHoursFull) {\r\n\t\t\t\tfor (let i = 0; i < 7; i++) {\r\n\t\t\t\t\tif (i < 5) {\r\n\t\t\t\t\t\tthis.scope.company.OpenHours[i] = {\r\n\t\t\t\t\t\t\tDayOfWeek: i + 1,\r\n\t\t\t\t\t\t\tOpenHours: this.scope.tmpCompany\r\n\t\t\t\t\t\t\t\t.OpenHoursWeekdaysOpenHours,\r\n\t\t\t\t\t\t\tBreakHours: this.scope.tmpCompany\r\n\t\t\t\t\t\t\t\t.OpenHoursWeekdaysBreakHours,\r\n\t\t\t\t\t\t\tComment: null\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (i >= 5) {\r\n\t\t\t\t\t\tthis.scope.company.OpenHours[i] = {\r\n\t\t\t\t\t\t\tDayOfWeek: i + 1,\r\n\t\t\t\t\t\t\tOpenHours: this.scope.tmpCompany\r\n\t\t\t\t\t\t\t\t.OpenHoursWeekendOpenHours,\r\n\t\t\t\t\t\t\tBreakHours: this.scope.tmpCompany\r\n\t\t\t\t\t\t\t\t.OpenHoursWeekendBreakHours,\r\n\t\t\t\t\t\t\tComment: null\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Если не открыта полная форма CitizensReceptionHours\r\n\t\t\tif (!this.scope.isCitizensReceptionHoursFull) {\r\n\t\t\t\tfor (let i = 0; i < 7; i++) {\r\n\t\t\t\t\tif (i < 5) {\r\n\t\t\t\t\t\tthis.scope.company.CitizensReceptionHours[i] = {\r\n\t\t\t\t\t\t\tDayOfWeek: i + 1,\r\n\t\t\t\t\t\t\tOpenHours: this.scope.tmpCompany\r\n\t\t\t\t\t\t\t\t.CitizensReceptionHoursWeekdaysHours,\r\n\t\t\t\t\t\t\tBreakHours: this.scope.tmpCompany\r\n\t\t\t\t\t\t\t\t.CitizensReceptionHoursWeekdaysBreakHours,\r\n\t\t\t\t\t\t\tComment: null\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (i >= 5) {\r\n\t\t\t\t\t\tthis.scope.company.CitizensReceptionHours[i] = {\r\n\t\t\t\t\t\t\tDayOfWeek: i + 1,\r\n\t\t\t\t\t\t\tOpenHours: this.scope.tmpCompany\r\n\t\t\t\t\t\t\t\t.CitizensReceptionHoursWeekendHours,\r\n\t\t\t\t\t\t\tBreakHours: this.scope.tmpCompany\r\n\t\t\t\t\t\t\t\t.CitizensReceptionHoursWeekendBreakHours,\r\n\t\t\t\t\t\t\tComment: null\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tInstance.$http\r\n\t\t\t\t.post(`${Instance.BackendUri}/v2/save`, {\r\n\t\t\t\t\tSite: this.scope.site,\r\n\t\t\t\t\tBasicInfo: this.scope.company\r\n\t\t\t\t})\r\n\t\t\t\t.then(response => {\r\n\t\t\t\t\tthis.scope.onSave(response);\r\n\r\n\t\t\t\t\tthis.scope.isSending = false;\r\n\t\t\t\t})\r\n\t\t\t\t.catch(error => {\r\n\t\t\t\t\tthis.scope.onError(error);\r\n\r\n\t\t\t\t\tthis.scope.isSending = false;\r\n\t\t\t\t});\r\n\t\t};\r\n\r\n\t\tthis.scope.openFullOpenHours = () => {\r\n\t\t\tthis.scope.isOpenHoursFull = !this.scope.isOpenHoursFull;\r\n\t\t};\r\n\r\n\t\tthis.scope.openFullCitizensReception = () => {\r\n\t\t\tthis.scope.isCitizensReceptionHoursFull = !this.scope\r\n\t\t\t\t.isCitizensReceptionHoursFull;\r\n\t\t};\r\n\r\n\t\tthis.scope.setAutoSiteUrl = () => {\r\n\t\t\tif (this.scope.site.Host == null) {\r\n\t\t\t\tthis.scope.site.Host =\r\n\t\t\t\t\t\"http://\" + this.scope.site.Directory + \".i-gkh.ru\";\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t$(\".input-mask--hours\").mask(\"00:00 - 00:00\", {\r\n\t\t\tplaceholder: \"__:__ - __:__\"\r\n\t\t});\r\n\r\n\t\tthis.scope.openImagePopup = (img, $event) => {\r\n\t\t\tthis.openImagePopup(img, $event);\r\n };\r\n\t}\r\n\r\n\topenImagePopup(imgSrc, $event) {\r\n return Instance.$mdDialog.show({\r\n controller: \"ImgPopupDialogController\",\r\n template: Instance.$templateCache.get(\r\n \"site/detail/dialogs/img-popup.dialog.html\"\r\n ),\r\n parent: angular.element(document.body),\r\n targetEvent: $event,\r\n locals: { imgSrc },\r\n clickOutsideToClose: true,\r\n fullscreen: true\r\n });\r\n }\r\n}\r\n\r\nexport class BaseInfoDirective {\r\n\tstatic getInstance(\r\n\t\t$templateCache: ng.ITemplateCacheService,\r\n\t\tBackendUri,\r\n\t\t$http,\r\n\t\t$stateParams,\r\n\t\tUser: any,\r\n\t\t$mdDialog\r\n\t) {\r\n\t\treturn (Instance = new BaseInfoDirective(\r\n\t\t\t$templateCache,\r\n\t\t\tBackendUri,\r\n\t\t\t$http,\r\n\t\t\t$stateParams,\r\n\t\t\tUser,\r\n\t\t\t$mdDialog\r\n\t\t));\r\n\t}\r\n\r\n\tpublic restrict: string = \"E\";\r\n\tpublic scope = {\r\n\t\tcompany: \"=?\",\r\n\t\tsite: \"=?\",\r\n\t\tisFull: \"=?\",\r\n\t\tonSave: \"=\",\r\n\t\tonError: \"=\"\r\n\t};\r\n\tpublic template: any;\r\n\r\n\tconstructor(\r\n\t\tpublic $templateCache: ng.ITemplateCacheService,\r\n\t\tpublic BackendUri,\r\n\t\tpublic $http,\r\n\t\tpublic $stateParams,\r\n\t\tpublic User,\r\n\t\tpublic $mdDialog\r\n\t) {\r\n\t\tthis.template = $templateCache.get(\r\n\t\t\t\"v2/directives/baseInfo.directive.html\"\r\n\t\t);\r\n\t}\r\n\r\n\tlink(scope, element, attr, controller: BaseInfoController) {\r\n\t\tcontroller.link(scope, element, attr);\r\n\t}\r\n\r\n\tcontroller() {\r\n\t\treturn new BaseInfoController();\r\n\t}\r\n}\r\n","\"use strict\";\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRldi9qcy92Mi9tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwiZmlsZSI6Im1vZGVsLmpzIiwic291cmNlc0NvbnRlbnQiOltdfQ==","import \"./router.js\";\r\nimport { BaseInfoDirective } from \"./directives/baseInfo.directive\";\r\nimport { IOpeningHours, IOrganizationInfo } from \"./model\";\r\nimport {SiteV2Controller} from './siteV2.controller.ts';\r\n\r\nangular.module(\"v2\")\r\n .controller('SiteV2Controller', SiteV2Controller)\r\n .directive(\"v2BaseInfo\", BaseInfoDirective.getInstance);\r\n","angular.module(\"app.routes\").run(run);\r\n\r\n/* @ngInject */\r\nfunction run(stateAdapter, $templateCache) {\r\n stateAdapter.state(\"v2\", {\r\n url: \"/{ogrn}/v2\",\r\n template: $templateCache.get(\"v2/v2.html\"),\r\n controller: 'SiteV2Controller'\r\n });\r\n}\r\n","/// \r\nimport { ToastService } from \"../shared/services/toast.service.js\";\r\n\r\nexport class SiteV2Controller {\r\n\tconstructor(\r\n\t\tprivate $scope: any,\r\n\t\tprivate $state: any,\r\n\t\tprivate $stateParams: any,\r\n\t\tprivate ToastService: ToastService\r\n\t) {\r\n\t\t$scope.OGRN = $stateParams.ogrn;\r\n\r\n\t\t$scope.onSave = response => {\r\n\t\t\tToastService.show(\"Сохранено\");\r\n\t\t\t$state.go(\"sitedetail\", { ogrn: $scope.OGRN });\r\n\t\t};\r\n\r\n\t\t$scope.onError = error => {\r\n\t\t\tconsole.warn(error);\r\n\t\t\tToastService.show(\"Произошла ошибка\");\r\n\t\t};\r\n\t}\r\n}\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar es6_promise_1 = require(\"es6-promise\");\r\nif (!(\"Promise\" in window)) {\r\n window[\"Promise\"] = es6_promise_1.Promise;\r\n}\r\nvar authenticationModule_1 = require(\"./authenticationModule\");\r\nexports.AuthenticationModule = authenticationModule_1.AuthenticationModule;\r\nvar authentication_service_1 = require(\"./services/authentication.service\");\r\nexports.Authentication = authentication_service_1.Authentication;\r\nvar rutoken_service_1 = require(\"./services/rutoken.service\");\r\nexports.RutokenService = rutoken_service_1.RutokenService;\r\nvar user_service_1 = require(\"./services/user.service\");\r\nexports.User = user_service_1.User;\r\nvar resourceSource_provider_1 = require(\"./provider/resourceSource.provider\");\r\nexports.ResourceSource = resourceSource_provider_1.ResourceSource;\r\nvar Resource_1 = require(\"./models/Resource\");\r\nexports.Resource = Resource_1.Resource;\r\nvar ResourceSource_1 = require(\"./models/ResourceSource\");\r\nexports.ResourceSourceModel = ResourceSource_1.ResourceSourceModel;\r\nvar http_1 = require(\"./models/http\");\r\nexports.http = http_1.http;\r\nvar LocalStorage_1 = require(\"./models/LocalStorage\");\r\nexports.LocalStorage = LocalStorage_1.LocalStorage;\r\nvar queryString_1 = require(\"./models/queryString\");\r\nexports.getQueryParam = queryString_1.getQueryParam;\r\nvar authentication_additional_service_1 = require(\"./services/authentication-additional.service\");\r\nexports.AuthenticationAdditional = authentication_additional_service_1.AuthenticationAdditional;\r\n//# sourceMappingURL=app.js.map","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar angular = (typeof window !== \"undefined\" ? window['angular'] : typeof global !== \"undefined\" ? global['angular'] : null);\r\nvar authentication_service_1 = require(\"./services/authentication.service\");\r\nvar user_service_1 = require(\"./services/user.service\");\r\nvar rutoken_service_1 = require(\"./services/rutoken.service\");\r\nvar resourceSource_provider_1 = require(\"./provider/resourceSource.provider\");\r\nvar Resource_1 = require(\"./models/Resource\");\r\nvar AuthenticationModule = null;\r\nexports.AuthenticationModule = AuthenticationModule;\r\ntry {\r\n exports.AuthenticationModule = AuthenticationModule = angular.module('AuthenticationModule', [])\r\n .provider(\"ResourceSource\", resourceSource_provider_1.ResourceSource)\r\n .config(function (ResourceSourceProvider) {\r\n var newResource = new Resource_1.Resource('NameResource', 'UrlResource');\r\n ResourceSourceProvider.setResource(newResource);\r\n newResource = new Resource_1.Resource('Auth', 'localhost:3210');\r\n ResourceSourceProvider.setResource(newResource);\r\n newResource = new Resource_1.Resource('Auth', 'localhost:auth');\r\n ResourceSourceProvider.setResource(newResource);\r\n })\r\n .service('User', user_service_1.User.Restore())\r\n .service('Authentication', authentication_service_1.Authentication)\r\n .service('RutokenService', rutoken_service_1.RutokenService)\r\n .run(authentication_service_1.Authentication.FlushRequestToken);\r\n}\r\ncatch (ex) {\r\n console.warn(ex);\r\n}\r\n//# sourceMappingURL=authenticationModule.js.map","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar LocalStorage = (function () {\r\n function LocalStorage() {\r\n }\r\n ;\r\n LocalStorage.prototype.set = function (key, value) {\r\n window.localStorage[key] = value;\r\n };\r\n LocalStorage.prototype.get = function (key) {\r\n return window.localStorage[key];\r\n };\r\n LocalStorage.prototype.setObject = function (key, value) {\r\n this.set(key, this.serialize(value));\r\n };\r\n LocalStorage.prototype.getObject = function (key, reviewer) {\r\n return this.deserialize(this.get(key), reviewer);\r\n };\r\n LocalStorage.prototype.serialize = function (value) {\r\n return JSON.stringify(value);\r\n };\r\n LocalStorage.prototype.deserialize = function (value, reviewer) {\r\n return JSON.parse(value || null, reviewer);\r\n };\r\n LocalStorage.prototype.remove = function (key) {\r\n delete window.localStorage[key];\r\n };\r\n LocalStorage.prototype.clear = function () {\r\n window.localStorage.clear();\r\n };\r\n return LocalStorage;\r\n}());\r\nexports.LocalStorage = LocalStorage;\r\n//# sourceMappingURL=LocalStorage.js.map","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Resource = (function () {\r\n function Resource(name, host) {\r\n this.name = name;\r\n this.host = host;\r\n }\r\n return Resource;\r\n}());\r\nexports.Resource = Resource;\r\n//# sourceMappingURL=Resource.js.map","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ResourceSourceModel = (function () {\r\n function ResourceSourceModel(sources) {\r\n this._sources = sources;\r\n }\r\n ResourceSourceModel.prototype.getResource = function (name) {\r\n return this._sources.filter(function (item) { return item.name == name; })[0] || null;\r\n };\r\n ResourceSourceModel.prototype.hasHost = function (url) {\r\n var name = null;\r\n this._sources.forEach(function (res) {\r\n if (url.indexOf(res.host) === 0) {\r\n name = res.name;\r\n }\r\n });\r\n return name;\r\n };\r\n ResourceSourceModel.prototype.ShouldRequestBeSigned = function (url) {\r\n return false;\r\n };\r\n ;\r\n return ResourceSourceModel;\r\n}());\r\nexports.ResourceSourceModel = ResourceSourceModel;\r\n//# sourceMappingURL=ResourceSource.js.map","\"use strict\";\r\n/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\r\n/* Utf8 class: encode / decode between multi-byte Unicode characters and UTF-8 multiple */\r\n/* single-byte character encoding (c) Chris Veness 2002-2011 */\r\n/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/* changelog\r\n* 2010-09-29: fixed decode order of operation to avoid falsely recognising decoded string as 3-byte\r\n* utf-8 charaacter\r\n*/\r\nvar Utf8 = {};\r\n// Utf8 namespace\r\n/**\r\n* Encode multi-byte Unicode string into utf-8 multiple single-byte characters\r\n* (BMP / basic multilingual plane only)\r\n*\r\n* Chars in range U+0080 - U+07FF are encoded in 2 chars, U+0800 - U+FFFF in 3 chars\r\n*\r\n* @param {String} strUni Unicode string to be encoded as UTF-8\r\n* @returns {String} encoded string\r\n*/\r\nUtf8.encode = function (strUni) {\r\n // use regular expressions & String.replace callback function for better efficiency \r\n // than procedural approaches\r\n var strUtf = strUni.replace(/[\\u0080-\\u07ff]/g, // U+0080 - U+07FF => 2 bytes 110yyyyy, 10zzzzzz\r\n function (c) {\r\n var cc = c.charCodeAt(0);\r\n return String.fromCharCode(0xc0 | cc >> 6, 0x80 | cc & 0x3f);\r\n });\r\n strUtf = strUtf.replace(/[\\u0800-\\uffff]/g, // U+0800 - U+FFFF => 3 bytes 1110xxxx, 10yyyyyy, 10zzzzzz\r\n function (c) {\r\n var cc = c.charCodeAt(0);\r\n return String.fromCharCode(0xe0 | cc >> 12, 0x80 | cc >> 6 & 0x3F, 0x80 | cc & 0x3f);\r\n });\r\n return strUtf;\r\n};\r\n/**\r\n* Decode utf-8 encoded string back into multi-byte Unicode characters\r\n*\r\n* @param {String} strUtf UTF-8 string to be decoded back to Unicode\r\n* @returns {String} decoded string\r\n*/\r\nUtf8.decode = function (strUtf) {\r\n // note: decode 3-byte chars first as decoded 2-byte strings could appear to be 3-byte char!\r\n var strUni = strUtf.replace(/[\\u00e0-\\u00ef][\\u0080-\\u00bf][\\u0080-\\u00bf]/g, // 3-byte chars\r\n function (c) {\r\n var cc = ((c.charCodeAt(0) & 0x0f) << 12) | ((c.charCodeAt(1) & 0x3f) << 6) | (c.charCodeAt(2) & 0x3f);\r\n return String.fromCharCode(cc);\r\n });\r\n strUni = strUni.replace(/[\\u00c0-\\u00df][\\u0080-\\u00bf]/g, // 2-byte chars\r\n function (c) {\r\n var cc = (c.charCodeAt(0) & 0x1f) << 6 | c.charCodeAt(1) & 0x3f;\r\n return String.fromCharCode(cc);\r\n });\r\n return strUni;\r\n};\r\n/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\r\n/* SHA-256 implementation in JavaScript | (c) Chris Veness 2002-2010 | www.movable-type.co.uk */\r\n/* - see http://csrc.nist.gov/groups/ST/toolkit/secure_hashing.html */\r\n/* http://csrc.nist.gov/groups/ST/toolkit/examples.html */\r\n/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\r\nvar Sha256 = {\r\n hash: null\r\n};\r\n// Sha256 namespace\r\n/**\r\n* Generates SHA-256 hash of string\r\n*\r\n* @param {String} msg String to be hashed\r\n* @param {Boolean} [utf8encode=true] Encode msg as UTF-8 before generating hash\r\n* @returns {String} Hash of msg as hex character string\r\n*/\r\nSha256.hash = function (msg, utf8encode) {\r\n utf8encode = (typeof utf8encode == 'undefined') ? true : utf8encode;\r\n // convert string to UTF-8, as SHA only deals with byte-streams\r\n if (utf8encode)\r\n msg = Utf8.encode(msg);\r\n // constants [§4.2.2]\r\n var K = [0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\r\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\r\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\r\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\r\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\r\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\r\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\r\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2];\r\n // initial hash value [§5.3.1]\r\n var H = [0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19];\r\n // PREPROCESSING \r\n msg += String.fromCharCode(0x80); // add trailing '1' bit (+ 0's padding) to string [§5.1.1]\r\n // convert string msg into 512-bit/16-integer blocks arrays of ints [§5.2.1]\r\n var l = msg.length / 4 + 2; // length (in 32-bit integers) of msg + ‘1’ + appended length\r\n var N = Math.ceil(l / 16); // number of 16-integer-blocks required to hold 'l' ints\r\n var M = new Array(N);\r\n for (var i = 0; i < N; i++) {\r\n M[i] = new Array(16);\r\n for (var j = 0; j < 16; j++) {\r\n M[i][j] = (msg.charCodeAt(i * 64 + j * 4) << 24) | (msg.charCodeAt(i * 64 + j * 4 + 1) << 16) |\r\n (msg.charCodeAt(i * 64 + j * 4 + 2) << 8) | (msg.charCodeAt(i * 64 + j * 4 + 3));\r\n } // note running off the end of msg is ok 'cos bitwise ops on NaN return 0\r\n }\r\n // add length (in bits) into final pair of 32-bit integers (big-endian) [§5.1.1]\r\n // note: most significant word would be (len-1)*8 >>> 32, but since JS converts\r\n // bitwise-op args to 32 bits, we need to simulate this by arithmetic operators\r\n M[N - 1][14] = ((msg.length - 1) * 8) / Math.pow(2, 32);\r\n M[N - 1][14] = Math.floor(M[N - 1][14]);\r\n M[N - 1][15] = ((msg.length - 1) * 8) & 0xffffffff;\r\n // HASH COMPUTATION [§6.1.2]\r\n var W = new Array(64);\r\n var a, b, c, d, e, f, g, h;\r\n for (var i = 0; i < N; i++) {\r\n // 1 - prepare message schedule 'W'\r\n for (var t = 0; t < 16; t++)\r\n W[t] = M[i][t];\r\n for (var t = 16; t < 64; t++)\r\n W[t] = (Sha256.sigma1(W[t - 2]) + W[t - 7] + Sha256.sigma0(W[t - 15]) + W[t - 16]) & 0xffffffff;\r\n // 2 - initialise working variables a, b, c, d, e, f, g, h with previous hash value\r\n a = H[0];\r\n b = H[1];\r\n c = H[2];\r\n d = H[3];\r\n e = H[4];\r\n f = H[5];\r\n g = H[6];\r\n h = H[7];\r\n // 3 - main loop (note 'addition modulo 2^32')\r\n for (var t = 0; t < 64; t++) {\r\n var T1 = h + Sha256.Sigma1(e) + Sha256.Ch(e, f, g) + K[t] + W[t];\r\n var T2 = Sha256.Sigma0(a) + Sha256.Maj(a, b, c);\r\n h = g;\r\n g = f;\r\n f = e;\r\n e = (d + T1) & 0xffffffff;\r\n d = c;\r\n c = b;\r\n b = a;\r\n a = (T1 + T2) & 0xffffffff;\r\n }\r\n // 4 - compute the new intermediate hash value (note 'addition modulo 2^32')\r\n H[0] = (H[0] + a) & 0xffffffff;\r\n H[1] = (H[1] + b) & 0xffffffff;\r\n H[2] = (H[2] + c) & 0xffffffff;\r\n H[3] = (H[3] + d) & 0xffffffff;\r\n H[4] = (H[4] + e) & 0xffffffff;\r\n H[5] = (H[5] + f) & 0xffffffff;\r\n H[6] = (H[6] + g) & 0xffffffff;\r\n H[7] = (H[7] + h) & 0xffffffff;\r\n }\r\n return Sha256.toHexStr(H[0]) + Sha256.toHexStr(H[1]) + Sha256.toHexStr(H[2]) + Sha256.toHexStr(H[3]) +\r\n Sha256.toHexStr(H[4]) + Sha256.toHexStr(H[5]) + Sha256.toHexStr(H[6]) + Sha256.toHexStr(H[7]);\r\n};\r\nSha256.ROTR = function (n, x) { return (x >>> n) | (x << (32 - n)); };\r\nSha256.Sigma0 = function (x) { return Sha256.ROTR(2, x) ^ Sha256.ROTR(13, x) ^ Sha256.ROTR(22, x); };\r\nSha256.Sigma1 = function (x) { return Sha256.ROTR(6, x) ^ Sha256.ROTR(11, x) ^ Sha256.ROTR(25, x); };\r\nSha256.sigma0 = function (x) { return Sha256.ROTR(7, x) ^ Sha256.ROTR(18, x) ^ (x >>> 3); };\r\nSha256.sigma1 = function (x) { return Sha256.ROTR(17, x) ^ Sha256.ROTR(19, x) ^ (x >>> 10); };\r\nSha256.Ch = function (x, y, z) { return (x & y) ^ (~x & z); };\r\nSha256.Maj = function (x, y, z) { return (x & y) ^ (x & z) ^ (y & z); };\r\n//\r\n// hexadecimal representation of a number \r\n// (note toString(16) is implementation-dependant, and \r\n// in IE returns signed numbers when used on full words)\r\n//\r\nSha256.toHexStr = function (n) {\r\n var s = \"\", v;\r\n for (var i = 7; i >= 0; i--) {\r\n v = (n >>> (i * 4)) & 0xf;\r\n s += v.toString(16);\r\n }\r\n return s;\r\n};\r\nvar hash = function (msg) {\r\n return Sha256.hash(msg);\r\n};\r\nexports.hash = hash;\r\n//# sourceMappingURL=hash256.js.map","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Q = require(\"q\");\r\nvar http = (function () {\r\n function http(headers, withCredentials) {\r\n if (headers === void 0) { headers = []; }\r\n if (withCredentials === void 0) { withCredentials = false; }\r\n this.request = new XMLHttpRequest();\r\n this.headers = headers;\r\n this.withCredentials = withCredentials;\r\n }\r\n http.prototype.AddHeaders = function () {\r\n var _this = this;\r\n this.headers.forEach(function (item) {\r\n _this.request.setRequestHeader(item.name, item.value);\r\n });\r\n this.request.withCredentials = this.withCredentials;\r\n };\r\n http.prototype.Post = function (url, data) {\r\n var _this = this;\r\n var deferred = Q.defer();\r\n this.request.open(\"POST\", url, true);\r\n this.AddHeaders();\r\n this.request.onload = function () {\r\n try {\r\n var result = _this.request.responseText != '' ? JSON.parse(_this.request.responseText) : _this.request.responseText;\r\n if (_this.request.status === 200) {\r\n deferred.resolve(result);\r\n }\r\n else {\r\n deferred.reject({ data: result, status: _this.request.status });\r\n }\r\n }\r\n catch (error) {\r\n deferred.reject({ data: error, status: 404 });\r\n }\r\n };\r\n this.request.onerror = function () {\r\n deferred.reject(new Error(\"Can't XHR \" + JSON.stringify(url)));\r\n };\r\n this.request.send(data);\r\n return deferred.promise;\r\n };\r\n http.prototype.Get = function (url) {\r\n var _this = this;\r\n var deferred = Q.defer();\r\n this.request.open(\"GET\", url, true);\r\n this.AddHeaders();\r\n this.request.onload = function () {\r\n try {\r\n var result = _this.request.responseText != '' ? JSON.parse(_this.request.responseText) : _this.request.responseText;\r\n if (_this.request.status === 200) {\r\n deferred.resolve(result);\r\n }\r\n else {\r\n deferred.reject({ data: result, status: _this.request.status });\r\n }\r\n }\r\n catch (error) {\r\n deferred.reject({ data: error, status: 404 });\r\n }\r\n };\r\n this.request.onerror = function () {\r\n deferred.reject(new Error(\"Can't XHR \" + JSON.stringify(url)));\r\n };\r\n this.request.send();\r\n return deferred.promise;\r\n };\r\n return http;\r\n}());\r\nexports.http = http;\r\n//# sourceMappingURL=http.js.map","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar getQueryParam = function (name) {\r\n var url = window.location.href;\r\n name = name.replace(/[\\[\\]]/g, \"\\\\$&\");\r\n var regex = new RegExp(\"[?&]\" + name + \"(=([^&#]*)|&|#|$)\"), results = regex.exec(url);\r\n if (!results)\r\n return null;\r\n if (!results[2])\r\n return '';\r\n return decodeURIComponent(results[2].replace(/\\+/g, \" \"));\r\n};\r\nexports.getQueryParam = getQueryParam;\r\n//# sourceMappingURL=queryString.js.map","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar hash256_js_1 = require(\"./hash256.js\");\r\nvar Rutoken = (function () {\r\n function Rutoken(container_name, plugin) {\r\n this.plugin = plugin;\r\n this.container_name = container_name;\r\n this.css = \"\\n * {background-color: transparent}\\n QPushButton { color: #fff; border-style: solid; border-color: #124521; border-width: 1px; border-radius: 5px; min-width: 75px; min-height: 25px; font-weight:bold;}\\n QPushButton:hover { background-color: rgb(15,100,180); color:#fff;}\\n QLabel { color: #fff;}\\n QLineEdit {color: rgb(25,120,210); background-color: #fff;}\\n QDialog {background-color: rgb(25,120,210); }\\n \";\r\n }\r\n Object.defineProperty(Rutoken.prototype, \"PublicKey\", {\r\n get: function () {\r\n return this.publicKey().then(function (key) {\r\n return key;\r\n });\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ;\r\n Rutoken.prototype.publicKey = function () {\r\n return this.plugin.rtwGetPublicKey(this.container_name);\r\n };\r\n Rutoken.prototype.GetRutokenID = function () {\r\n return this.plugin.rtwGetDeviceID();\r\n };\r\n ;\r\n Rutoken.prototype.CalcHash = function (message) {\r\n return this.plugin.rtwHashSign(this.container_name, message, this.css);\r\n };\r\n ;\r\n Rutoken.prototype.genHash = function (message) {\r\n return hash256_js_1.hash(message);\r\n };\r\n ;\r\n Rutoken.prototype.Sign = function (hash) {\r\n return this.plugin.rtwSign(this.container_name, hash, this.css);\r\n };\r\n Rutoken.prototype.GenKey = function (container_name) {\r\n return this.plugin.rtwGenKeyPair(container_name, this.css);\r\n };\r\n Rutoken.prototype.DestroyKey = function (container_name) {\r\n return this.plugin.rtwDestroyContainer(container_name, this.css);\r\n };\r\n return Rutoken;\r\n}());\r\nexports.Rutoken = Rutoken;\r\n//# sourceMappingURL=rutoken.js.map","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar rutokenweb = require(\"rutokenweb\");\r\nvar rutoken_1 = require(\"./rutoken\");\r\nvar RutokenPlugin = (function () {\r\n function RutokenPlugin() {\r\n this.Directory = {\r\n \"-1\": \"USB-токен не найден\",\r\n \"-2\": \"USB-токен не залогинен пользователем\",\r\n \"-3\": \"PIN-код не верен\",\r\n \"-4\": \"PIN-код не корректен\",\r\n \"-5\": \"PIN-код заблокирован\",\r\n \"-6\": \"Неправильная длина PIN-кода\",\r\n \"-7\": \"Отказ от ввода PIN-кода\",\r\n \"-10\": \"Неправильные аргументы функции\",\r\n \"-11\": \"Неправильная длина аргументов функции\",\r\n \"-12\": \"Открыто другое окно ввода PIN-кода\",\r\n \"-20\": \"Контейнер не найден\",\r\n \"-21\": \"Контейнер уже существует\",\r\n \"-22\": \"Контейнер поврежден\",\r\n \"-30\": \"ЭЦП не верна\",\r\n \"-40\": \"Не хватает свободной памяти чтобы завершить операцию\",\r\n \"-50\": \"Библиотека не загружена\",\r\n \"-51\": \"Библиотека находится в неинициализированном состоянии\",\r\n \"-52\": \"Библиотека не поддерживает расширенный интерфейс\",\r\n \"-53\": \"Ошибка в библиотеке rtpkcs11ecp\",\r\n \"-72\": \"Некорректный код восстановления\"\r\n };\r\n }\r\n Object.defineProperty(RutokenPlugin.prototype, \"Plugin\", {\r\n get: function () {\r\n return this.plugin;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n RutokenPlugin.prototype.ErrorHandling = function (err) {\r\n return this.Directory[err.message];\r\n };\r\n RutokenPlugin.prototype.isPluginValid = function () {\r\n if (this.plugin == null || !this.plugin.valid)\r\n return Promise.reject(\"Проблема с плагином Рутокен WEB!\");\r\n return Promise.resolve(\"Корректный Рутокен WEB!\");\r\n };\r\n RutokenPlugin.prototype.CheckPluginVersion = function () {\r\n var _this = this;\r\n return this.isPluginValid()\r\n .then(function () { return _this.plugin.get_version(); });\r\n };\r\n RutokenPlugin.prototype.CheckTokenID = function () {\r\n var _this = this;\r\n return this.isPluginValid()\r\n .then(function () { return _this.plugin.rtwIsTokenPresentAndOK(); })\r\n .then(function (isTokenPresent) {\r\n if (isTokenPresent === true) {\r\n return _this.plugin.rtwGetDeviceID();\r\n }\r\n else {\r\n throw \"Подключите USB-токен!\";\r\n }\r\n }).then(function (TokenID) {\r\n return TokenID;\r\n });\r\n };\r\n RutokenPlugin.prototype.GetRutoken = function () {\r\n var _this = this;\r\n return this.isPluginValid()\r\n .then(function (isTokenPresent) {\r\n return _this.plugin.rtwGetNumberOfContainers();\r\n }).then(function (containers_count) {\r\n var promises = [];\r\n for (var i = 0; i < containers_count; i++) {\r\n promises.push(_this.plugin.rtwGetContainerName(i));\r\n }\r\n return Promise.all(promises);\r\n })\r\n .then(function (containers_names) {\r\n if (containers_names == null || containers_names.length == 0)\r\n throw \"Отсутствуют контейнеры!\";\r\n return containers_names.filter(function (name) { return name == 'employee'; })[0] || containers_names[0];\r\n })\r\n .then(function (container_name) {\r\n return new rutoken_1.Rutoken(container_name, _this.plugin);\r\n });\r\n };\r\n /**\r\n * @description Поиск наличия контейнера по имени\r\n * @param _name Название требуемого контейнера\r\n * @\r\n */\r\n RutokenPlugin.prototype.checkContainer = function (_name) {\r\n var _this = this;\r\n return this.plugin.rtwGetNumberOfContainers()\r\n .then(function (containers_count) {\r\n if (containers_count == 0) {\r\n throw 'Отсутствуют контейнеры!';\r\n }\r\n var promises = [];\r\n for (var i = 0; i < containers_count; i++) {\r\n promises.push(_this.plugin.rtwGetContainerName(i));\r\n }\r\n return Promise.all(promises);\r\n })\r\n .then(function (containers_names) {\r\n if (containers_names == null || containers_names.length == 0) {\r\n throw \"Отсутствуют контейнеры!\";\r\n }\r\n return containers_names.filter(function (name) { return name == _name; })[0] || null;\r\n });\r\n };\r\n /**\r\n * @description Получение рутокена по названию контейнера\r\n * @param container_name Название требуемого контейнера\r\n */\r\n RutokenPlugin.prototype.GetRutokenByName = function (container_name) {\r\n return new rutoken_1.Rutoken(container_name, this.plugin);\r\n };\r\n RutokenPlugin.prototype.init = function () {\r\n var _this = this;\r\n return rutokenweb.ready\r\n .then(function (res) {\r\n if (\"chrome\" in window) {\r\n return rutokenweb.isExtensionInstalled();\r\n }\r\n else {\r\n return Promise.resolve(true);\r\n }\r\n }).then(function (result) {\r\n if (result) {\r\n return rutokenweb.isPluginInstalled();\r\n }\r\n else {\r\n throw \"Расширение Рутокен WEB не найдено!\";\r\n }\r\n }).then(function (result) {\r\n if (result) {\r\n return rutokenweb.loadPlugin();\r\n }\r\n else {\r\n throw \"Плагин Рутокен WEB не найден\";\r\n }\r\n }).then(function (plugin) {\r\n _this.plugin = plugin;\r\n return _this;\r\n });\r\n };\r\n return RutokenPlugin;\r\n}());\r\nexports.RutokenPlugin = RutokenPlugin;\r\n//# sourceMappingURL=rutokenPlugin.js.map","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ResourceSource_1 = require(\"../models/ResourceSource\");\r\nvar ResourceSource = (function () {\r\n function ResourceSource() {\r\n this._source = [];\r\n }\r\n ResourceSource.prototype.setResource = function (resource) {\r\n var resKey = null;\r\n this._source.forEach(function (r, key) {\r\n if (r.name == resource.name)\r\n resKey = key;\r\n });\r\n if (resKey == null) {\r\n this._source.push(resource);\r\n }\r\n else {\r\n this._source[resKey] = resource;\r\n }\r\n };\r\n ResourceSource.prototype.$get = function () {\r\n return new ResourceSource_1.ResourceSourceModel(this._source);\r\n };\r\n return ResourceSource;\r\n}());\r\nexports.ResourceSource = ResourceSource;\r\n//# sourceMappingURL=resourceSource.provider.js.map","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar LocalStorage_1 = require(\"../models/LocalStorage\");\r\nvar http_1 = require(\"../models/http\");\r\nvar AuthenticationAdditional = (function () {\r\n function AuthenticationAdditional(resource, UserService) {\r\n this.resource = resource;\r\n this.UserService = UserService;\r\n this.http = new http_1.http();\r\n AuthenticationAdditional.FlushRequestToken();\r\n }\r\n AuthenticationAdditional.FlushRequestToken = function () {\r\n var _storage = new LocalStorage_1.LocalStorage();\r\n var RequestTokens = _storage.getObject(\"RequestTokens\");\r\n if (RequestTokens != null && typeof RequestTokens !== 'undefined') {\r\n var now = new Date();\r\n for (var name_1 in RequestTokens) {\r\n var created = RequestTokens[name_1].created;\r\n if (Number(now) - Number(created) > 86400000) {\r\n delete RequestTokens[name_1];\r\n }\r\n }\r\n }\r\n _storage.setObject('RequestTokens', RequestTokens);\r\n };\r\n AuthenticationAdditional.prototype.GetRequestToken = function () {\r\n return this.http.Get(this.resource.host + \"/api/auth/request-token\")\r\n .then(function (result) { return result.RequestToken; })\r\n .catch(function (err) { throw err; });\r\n };\r\n AuthenticationAdditional.prototype.ConfirmToken = function (token) {\r\n var _this = this;\r\n return this.http.Get(this.resource.host + (\"/api/auth/request-token/\" + token + \"/confirm\"))\r\n .then(function (result) {\r\n _this.UserService.SetKeys(result, _this.resource);\r\n return result;\r\n })\r\n .catch(function (err) { throw err; });\r\n };\r\n return AuthenticationAdditional;\r\n}());\r\nexports.AuthenticationAdditional = AuthenticationAdditional;\r\n//# sourceMappingURL=authentication-additional.service.js.map","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar angular = (typeof window !== \"undefined\" ? window['angular'] : typeof global !== \"undefined\" ? global['angular'] : null);\r\nvar LocalStorage_1 = require(\"../models/LocalStorage\");\r\nvar Authentication = (function () {\r\n function Authentication($injector, ResourceSource, User) {\r\n this.$injector = $injector;\r\n this.ResourceSource = ResourceSource;\r\n this.User = User;\r\n this._storage = new LocalStorage_1.LocalStorage();\r\n }\r\n Authentication.FlushRequestToken = function () {\r\n var _storage = new LocalStorage_1.LocalStorage();\r\n var RequestTokens = _storage.getObject(\"RequestTokens\");\r\n if (RequestTokens != null && angular.isDefined(RequestTokens)) {\r\n var now = new Date;\r\n for (var name_1 in RequestTokens) {\r\n var created = RequestTokens[name_1].created;\r\n if (Number(now) - Number(created) > 86400000) {\r\n delete RequestTokens[name_1];\r\n }\r\n }\r\n }\r\n _storage.setObject('RequestTokens', RequestTokens);\r\n };\r\n Authentication.prototype.getHttp = function () {\r\n return this.$injector.get('$http');\r\n };\r\n Authentication.prototype.Start = function (resource, state) {\r\n var _this = this;\r\n return this.GetRequestToken(resource)\r\n .then(function (result) { return _this.SaveStateAndRedirect(result.data.RequestToken, state, resource); });\r\n };\r\n Authentication.prototype.GetRequestToken = function (resource) {\r\n return this.getHttp().get(resource.host + \"/api/auth/request-token\");\r\n };\r\n Authentication.prototype.SaveStateAndRedirect = function (token, state, resource) {\r\n this._storage.setObject('state', state);\r\n var RequestTokens = this._storage.getObject(\"RequestTokens\");\r\n if (RequestTokens == null || angular.isUndefined(RequestTokens)) {\r\n RequestTokens = {};\r\n }\r\n RequestTokens[resource.name] = {\r\n token: token,\r\n created: new Date()\r\n };\r\n this._storage.setObject(\"RequestTokens\", RequestTokens);\r\n var auth = this.ResourceSource.getResource(\"Auth\");\r\n if (auth.host != 'localhost:auth')\r\n window.location.replace(auth.host + \"/?request-token=\" + token);\r\n };\r\n Authentication.prototype.Continue = function (token) {\r\n var _this = this;\r\n var resource = this.FindRecource(token);\r\n return this.ConfirmToken(resource, token)\r\n .then(function (result) { return _this.User.SetKeys(result.data, resource); })\r\n .then(function () { return _this.RestoreState(token, resource.name); });\r\n };\r\n Authentication.prototype.FindRecource = function (token) {\r\n var resource = null;\r\n var RequestTokens = this._storage.getObject(\"RequestTokens\");\r\n if (RequestTokens != null && angular.isDefined(RequestTokens)) {\r\n for (var name_2 in RequestTokens) {\r\n if (RequestTokens[name_2].token == token) {\r\n resource = this.ResourceSource.getResource(name_2);\r\n break;\r\n }\r\n }\r\n }\r\n return resource;\r\n };\r\n Authentication.prototype.ConfirmToken = function (resource, token) {\r\n var q = this.$injector.get('$q');\r\n if (resource == null)\r\n return q.reject('Ресурс не найден');\r\n return this.getHttp().get(resource.host + (\"/api/auth/request-token/\" + token + \"/confirm\"));\r\n };\r\n Authentication.prototype.RestoreState = function (token, name) {\r\n var state = this._storage.getObject('state');\r\n this._storage.remove('state');\r\n var RequestTokens = this._storage.getObject(\"RequestTokens\");\r\n if (RequestTokens != null && angular.isDefined(RequestTokens)) {\r\n delete RequestTokens[name];\r\n }\r\n this._storage.setObject('RequestTokens', RequestTokens);\r\n return state;\r\n };\r\n return Authentication;\r\n}());\r\nexports.Authentication = Authentication;\r\n//# sourceMappingURL=authentication.service.js.map","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar rutokenPlugin_1 = require(\"../models/rutokenPlugin\");\r\nvar rutoken_1 = require(\"../models/rutoken\");\r\nvar RutokenService = (function () {\r\n function RutokenService($q) {\r\n this.$q = $q;\r\n }\r\n RutokenService.prototype.init = function () {\r\n var _this = this;\r\n var defer = this.$q.defer();\r\n this.plugin = new rutokenPlugin_1.RutokenPlugin();\r\n this.plugin.init()\r\n .then(function () {\r\n return _this.plugin.GetRutoken();\r\n })\r\n .then(function (rutoken) {\r\n _this.rutoken = rutoken;\r\n return defer.resolve(rutoken);\r\n })\r\n .catch(function (err) {\r\n return defer.reject({ err: _this.plugin.ErrorHandling(err), plugin: _this.plugin });\r\n });\r\n return defer.promise;\r\n };\r\n RutokenService.prototype.CalcHash = function (msg) {\r\n return this.rutoken.CalcHash(msg);\r\n };\r\n RutokenService.prototype.GetRutokenID = function () {\r\n return this.rutoken.GetRutokenID();\r\n };\r\n RutokenService.prototype.genHash = function (msg) {\r\n return this.rutoken.genHash(msg);\r\n };\r\n RutokenService.prototype.Sign = function (hash) {\r\n return this.rutoken.Sign(hash);\r\n };\r\n RutokenService.prototype.genGUID = function () {\r\n function s4() {\r\n return Math.floor((1 + Math.random()) * 0x10000)\r\n .toString(16)\r\n .substring(1);\r\n }\r\n return s4() + s4() + '-' + s4() + '-' + s4() + '-' +\r\n s4() + '-' + s4() + s4() + s4();\r\n };\r\n RutokenService.prototype.getSignedAt = function () {\r\n var SignedAt = new Date();\r\n return SignedAt.toISOString();\r\n };\r\n RutokenService.prototype.ErrorHandle = function (err) {\r\n if (typeof err === 'object') {\r\n console.warn(this.plugin.ErrorHandling(err));\r\n }\r\n };\r\n /**\r\n * @description Получение данных рутокена по названию контейнера\r\n * @param container_name Название требуемого контейнера\r\n */\r\n RutokenService.prototype.GetNewRutoken = function (container_name) {\r\n var defer = this.$q.defer();\r\n var curPlugin = new rutokenPlugin_1.RutokenPlugin();\r\n var info = {\r\n PublicKey: null,\r\n RutokenID: null\r\n };\r\n curPlugin.init()\r\n .then(function () {\r\n return curPlugin.checkContainer(container_name);\r\n })\r\n .then(function (res) {\r\n if (res == null)\r\n throw \"Отсутствует требуемый контейнер\";\r\n return curPlugin.GetRutokenByName(res);\r\n })\r\n .then(function (rutoken) {\r\n info.PublicKey = rutoken.PublicKey;\r\n return rutoken.GetRutokenID();\r\n })\r\n .then(function (RutokenID) {\r\n info.RutokenID = RutokenID;\r\n return defer.resolve(info);\r\n })\r\n .catch(function (err) {\r\n if (typeof err === 'string') {\r\n defer.reject(err);\r\n }\r\n else {\r\n defer.reject(curPlugin.ErrorHandling(err));\r\n }\r\n });\r\n return defer.promise;\r\n };\r\n /**\r\n * @description Генерация ключа для контейнера\r\n * @param container_name Название требуемого контейнера\r\n */\r\n RutokenService.prototype.GenKey = function (container_name) {\r\n var defer = this.$q.defer();\r\n var curPlugin = new rutokenPlugin_1.RutokenPlugin();\r\n curPlugin.init()\r\n .then(function () {\r\n var rutoken = new rutoken_1.Rutoken(container_name, curPlugin.Plugin);\r\n return rutoken.GenKey(container_name);\r\n })\r\n .then(function (res) { return defer.resolve(res); })\r\n .catch(function (err) { return defer.reject(curPlugin.ErrorHandling(err)); });\r\n return defer.promise;\r\n };\r\n /**\r\n * @description Удаление ключа для контейнера\r\n * @param container_name Название требуемого контейнера\r\n */\r\n RutokenService.prototype.DestroyKey = function (container_name) {\r\n var defer = this.$q.defer();\r\n var curPlugin = new rutokenPlugin_1.RutokenPlugin();\r\n curPlugin.init()\r\n .then(function () {\r\n var rutoken = new rutoken_1.Rutoken(container_name, curPlugin.Plugin);\r\n return rutoken.DestroyKey(container_name);\r\n })\r\n .then(function (res) { return defer.resolve(res); })\r\n .catch(function (err) { return defer.reject(curPlugin.ErrorHandling(err)); });\r\n return defer.promise;\r\n };\r\n return RutokenService;\r\n}());\r\nexports.RutokenService = RutokenService;\r\n//# sourceMappingURL=rutoken.service.js.map","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar LocalStorage_1 = require(\"../models/LocalStorage\");\r\nvar http_1 = require(\"../models/http\");\r\nvar Q = require(\"q\");\r\nvar CurrentUserModelVersion = 1;\r\nvar User = (function () {\r\n function User(data) {\r\n if (data === void 0) { data = null; }\r\n this._credentials = {};\r\n this._credentials = data === null || typeof data === 'undefined' ? {} : data._credentials;\r\n }\r\n User.JsonReviewer = function (key, value) {\r\n if (key.indexOf(\"ExpiresAt\") > -1) {\r\n try {\r\n return new Date(value);\r\n }\r\n catch (e) {\r\n return null;\r\n }\r\n }\r\n return value;\r\n };\r\n User.prototype.hasPermissions = function (permission) {\r\n for (var resource in this._credentials) {\r\n if (this._credentials[resource] == null) {\r\n continue;\r\n }\r\n if (this._credentials[resource].Permissions.indexOf(permission) > -1) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n User.prototype.SetKeys = function (key, resource) {\r\n key.version = CurrentUserModelVersion;\r\n if (typeof key.AccessTokenExpiresAt == 'string')\r\n key.AccessTokenExpiresAt = new Date(key.AccessTokenExpiresAt);\r\n if (typeof key.RefreshTokenExpiresAt == 'string')\r\n key.RefreshTokenExpiresAt = new Date(key.RefreshTokenExpiresAt);\r\n this._credentials[resource.name] = key;\r\n this.Save();\r\n };\r\n User.prototype.Save = function () {\r\n User._storage.setObject(User._storageObjName, this);\r\n };\r\n User.Restore = function () {\r\n var _this = this;\r\n return function () {\r\n var fromStorage = _this._storage.getObject(_this._storageObjName, User.JsonReviewer);\r\n return new User(fromStorage);\r\n };\r\n };\r\n User.prototype.getKeys = function (name, authUri) {\r\n var _this = this;\r\n var deferred = Q.defer();\r\n if (!this.isAuth(name)) {\r\n deferred.reject(\"Не авторизован с данным именем!\");\r\n return deferred.promise;\r\n }\r\n var AccessToken = this.getAccessKey(name);\r\n if (AccessToken != null) {\r\n deferred.resolve(AccessToken);\r\n return deferred.promise;\r\n }\r\n var RefreshToken = this.getRefreshToken(name);\r\n if (RefreshToken == null) {\r\n this.DeleteKeys(name);\r\n deferred.reject(\"RefreshToken отсутствует или не валиден!\");\r\n return deferred.promise;\r\n }\r\n var Http = new http_1.http();\r\n Http.Post(authUri + \"/api/auth/refresh-token/\" + RefreshToken, null)\r\n .then(function (result) {\r\n var response = JSON.stringify(result);\r\n var date = JSON.parse(response, User.JsonReviewer);\r\n _this._credentials[name] = date;\r\n _this.Save();\r\n return deferred.resolve(date.AccessToken);\r\n })\r\n .catch(function (err) {\r\n _this.DeleteKeys(name);\r\n return deferred.reject('Ошибка при обновлении ключей: ' + err.data);\r\n });\r\n return deferred.promise;\r\n };\r\n User.prototype.DeleteKeys = function (name) {\r\n if (this.isAuth(name)) {\r\n delete this._credentials[name];\r\n this.Save();\r\n }\r\n return null;\r\n };\r\n User.prototype.getAccessKey = function (name) {\r\n if (!this.isAuth(name))\r\n return null;\r\n if (this._credentials[name].AccessTokenExpiresAt < new Date())\r\n return null;\r\n return this._credentials[name].AccessToken;\r\n };\r\n User.prototype.getRefreshToken = function (name) {\r\n if (!this.isAuth(name))\r\n return null;\r\n if (this._credentials[name].RefreshTokenExpiresAt < new Date())\r\n return null;\r\n return this._credentials[name].RefreshToken;\r\n };\r\n User.prototype.getUserIdentity = function (name) {\r\n if (!this.isAuth(name))\r\n return null;\r\n return {\r\n DisplayName: this._credentials[name].DisplayName,\r\n Role: this._credentials[name].Role,\r\n Permissions: this._credentials[name].Permissions,\r\n Organizations: this._credentials[name].Organizations\r\n };\r\n };\r\n User.prototype.isAuth = function (name) {\r\n if (this._credentials[name] !== null && typeof this._credentials[name] !== 'undefined')\r\n return this.CheckModel(name);\r\n return false;\r\n };\r\n User.prototype.CheckModel = function (name) {\r\n if (this._credentials[name].version == null ||\r\n typeof this._credentials[name].version === 'undefined' ||\r\n this._credentials[name].version < CurrentUserModelVersion)\r\n return false;\r\n var notNullProps = [\r\n 'AccessToken',\r\n 'AccessTokenExpiresAt',\r\n 'RefreshToken',\r\n 'RefreshTokenExpiresAt',\r\n 'DisplayName',\r\n 'Permissions',\r\n 'Role',\r\n ];\r\n for (var index = 0; index < notNullProps.length; index++) {\r\n var property = notNullProps[index];\r\n if (this._credentials[name][property] === null || typeof this._credentials[name][property] === 'undefined') {\r\n return false;\r\n }\r\n }\r\n if (this._credentials[name].Role != 'admin' && (this._credentials[name].Organizations === null || typeof this._credentials[name].Organizations === 'undefined')) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n User._storageObjName = \"AuthUserInfo\";\r\n User._storage = new LocalStorage_1.LocalStorage();\r\n return User;\r\n}());\r\nexports.User = User;\r\n//# sourceMappingURL=user.service.js.map","/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version v4.2.4+314e4831\n */\n\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.ES6Promise = factory());\n}(this, (function () { 'use strict';\n\nfunction objectOrFunction(x) {\n var type = typeof x;\n return x !== null && (type === 'object' || type === 'function');\n}\n\nfunction isFunction(x) {\n return typeof x === 'function';\n}\n\n\n\nvar _isArray = void 0;\nif (Array.isArray) {\n _isArray = Array.isArray;\n} else {\n _isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n}\n\nvar isArray = _isArray;\n\nvar len = 0;\nvar vertxNext = void 0;\nvar customSchedulerFn = void 0;\n\nvar asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n};\n\nfunction setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n}\n\nfunction setAsap(asapFn) {\n asap = asapFn;\n}\n\nvar browserWindow = typeof window !== 'undefined' ? window : undefined;\nvar browserGlobal = browserWindow || {};\nvar BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\nvar isNode = typeof self === 'undefined' && typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n\n// test for web worker but not in IE10\nvar isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n// node\nfunction useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n}\n\n// vertx\nfunction useVertxTimer() {\n if (typeof vertxNext !== 'undefined') {\n return function () {\n vertxNext(flush);\n };\n }\n\n return useSetTimeout();\n}\n\nfunction useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n}\n\n// web worker\nfunction useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n}\n\nfunction useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n}\n\nvar queue = new Array(1000);\nfunction flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n\n callback(arg);\n\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n}\n\nfunction attemptVertx() {\n try {\n var vertx = Function('return this')().require('vertx');\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n}\n\nvar scheduleFlush = void 0;\n// Decide what async method to use to triggering processing of queued callbacks:\nif (isNode) {\n scheduleFlush = useNextTick();\n} else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n} else if (isWorker) {\n scheduleFlush = useMessageChannel();\n} else if (browserWindow === undefined && typeof require === 'function') {\n scheduleFlush = attemptVertx();\n} else {\n scheduleFlush = useSetTimeout();\n}\n\nfunction then(onFulfillment, onRejection) {\n var parent = this;\n\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n\n if (_state) {\n var callback = arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n}\n\n/**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.resolve(1);\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n*/\nfunction resolve$1(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n resolve(promise, object);\n return promise;\n}\n\nvar PROMISE_ID = Math.random().toString(36).substring(2);\n\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nvar TRY_CATCH_ERROR = { error: null };\n\nfunction selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n}\n\nfunction cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n}\n\nfunction getThen(promise) {\n try {\n return promise.then;\n } catch (error) {\n TRY_CATCH_ERROR.error = error;\n return TRY_CATCH_ERROR;\n }\n}\n\nfunction tryThen(then$$1, value, fulfillmentHandler, rejectionHandler) {\n try {\n then$$1.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n}\n\nfunction handleForeignThenable(promise, thenable, then$$1) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then$$1, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n\n reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n reject(promise, error);\n }\n }, promise);\n}\n\nfunction handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return resolve(promise, value);\n }, function (reason) {\n return reject(promise, reason);\n });\n }\n}\n\nfunction handleMaybeThenable(promise, maybeThenable, then$$1) {\n if (maybeThenable.constructor === promise.constructor && then$$1 === then && maybeThenable.constructor.resolve === resolve$1) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then$$1 === TRY_CATCH_ERROR) {\n reject(promise, TRY_CATCH_ERROR.error);\n TRY_CATCH_ERROR.error = null;\n } else if (then$$1 === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then$$1)) {\n handleForeignThenable(promise, maybeThenable, then$$1);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n}\n\nfunction resolve(promise, value) {\n if (promise === value) {\n reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n handleMaybeThenable(promise, value, getThen(value));\n } else {\n fulfill(promise, value);\n }\n}\n\nfunction publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n}\n\nfunction fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n\n asap(publishRejection, promise);\n}\n\nfunction subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n\n\n parent._onerror = null;\n\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n}\n\nfunction publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = void 0,\n callback = void 0,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n}\n\nfunction tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch (e) {\n TRY_CATCH_ERROR.error = e;\n return TRY_CATCH_ERROR;\n }\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = void 0,\n error = void 0,\n succeeded = void 0,\n failed = void 0;\n\n if (hasCallback) {\n value = tryCatch(callback, detail);\n\n if (value === TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value.error = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (failed) {\n reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n reject(promise, value);\n }\n}\n\nfunction initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n resolve(promise, value);\n }, function rejectPromise(reason) {\n reject(promise, reason);\n });\n } catch (e) {\n reject(promise, e);\n }\n}\n\nvar id = 0;\nfunction nextId() {\n return id++;\n}\n\nfunction makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n}\n\nfunction validationError() {\n return new Error('Array Methods must be provided an Array');\n}\n\nvar Enumerator = function () {\n function Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate(input);\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n reject(this.promise, validationError());\n }\n }\n\n Enumerator.prototype._enumerate = function _enumerate(input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n };\n\n Enumerator.prototype._eachEntry = function _eachEntry(entry, i) {\n var c = this._instanceConstructor;\n var resolve$$1 = c.resolve;\n\n\n if (resolve$$1 === resolve$1) {\n var _then = getThen(entry);\n\n if (_then === then && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise$1) {\n var promise = new c(noop);\n handleMaybeThenable(promise, entry, _then);\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve$$1) {\n return resolve$$1(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve$$1(entry), i);\n }\n };\n\n Enumerator.prototype._settledAt = function _settledAt(state, i, value) {\n var promise = this.promise;\n\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n };\n\n Enumerator.prototype._willSettleAt = function _willSettleAt(promise, i) {\n var enumerator = this;\n\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n };\n\n return Enumerator;\n}();\n\n/**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n\n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n\n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n*/\nfunction all(entries) {\n return new Enumerator(this, entries).promise;\n}\n\n/**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n\n Example:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n\n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n\n An example real-world use case is implementing timeouts:\n\n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n\n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n*/\nfunction race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n}\n\n/**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n*/\nfunction reject$1(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n reject(promise, reason);\n return promise;\n}\n\nfunction needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n}\n\nfunction needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n}\n\n/**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {Function} resolver\n Useful for tooling.\n @constructor\n*/\n\nvar Promise$1 = function () {\n function Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n }\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n Chaining\n --------\n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n Assimilation\n ------------\n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n If the assimliated promise rejects, then the downstream promise will also reject.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n Simple Example\n --------------\n Synchronous Example\n ```javascript\n let result;\n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n Advanced Example\n --------------\n Synchronous Example\n ```javascript\n let author, books;\n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n function foundBooks(books) {\n }\n function failure(reason) {\n }\n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n\n\n Promise.prototype.catch = function _catch(onRejection) {\n return this.then(null, onRejection);\n };\n\n /**\n `finally` will be invoked regardless of the promise's fate just as native\n try/catch/finally behaves\n \n Synchronous example:\n \n ```js\n findAuthor() {\n if (Math.random() > 0.5) {\n throw new Error();\n }\n return new Author();\n }\n \n try {\n return findAuthor(); // succeed or fail\n } catch(error) {\n return findOtherAuther();\n } finally {\n // always runs\n // doesn't affect the return value\n }\n ```\n \n Asynchronous example:\n \n ```js\n findAuthor().catch(function(reason){\n return findOtherAuther();\n }).finally(function(){\n // author was either found, or not\n });\n ```\n \n @method finally\n @param {Function} callback\n @return {Promise}\n */\n\n\n Promise.prototype.finally = function _finally(callback) {\n var promise = this;\n var constructor = promise.constructor;\n\n return promise.then(function (value) {\n return constructor.resolve(callback()).then(function () {\n return value;\n });\n }, function (reason) {\n return constructor.resolve(callback()).then(function () {\n throw reason;\n });\n });\n };\n\n return Promise;\n}();\n\nPromise$1.prototype.then = then;\nPromise$1.all = all;\nPromise$1.race = race;\nPromise$1.resolve = resolve$1;\nPromise$1.reject = reject$1;\nPromise$1._setScheduler = setScheduler;\nPromise$1._setAsap = setAsap;\nPromise$1._asap = asap;\n\n/*global self*/\nfunction polyfill() {\n var local = void 0;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {\n // silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise$1;\n}\n\n// Strange compat..\nPromise$1.polyfill = polyfill;\nPromise$1.Promise = Promise$1;\n\nreturn Promise$1;\n\n})));\n\n\n\n//# sourceMappingURL=es6-promise.map\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","// vim:ts=4:sts=4:sw=4:\n/*!\n *\n * Copyright 2009-2017 Kris Kowal under the terms of the MIT\n * license found at https://github.com/kriskowal/q/blob/v1/LICENSE\n *\n * With parts by Tyler Close\n * Copyright 2007-2009 Tyler Close under the terms of the MIT X license found\n * at http://www.opensource.org/licenses/mit-license.html\n * Forked at ref_send.js version: 2009-05-11\n *\n * With parts by Mark Miller\n * Copyright (C) 2011 Google Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n(function (definition) {\n \"use strict\";\n\n // This file will function properly as a