{
"namespace": "project-management",
"parametrised": true, //
"globals": {
"moduleTitles": {
"registry": {
"description": "Проектное управление",
"order": 10,
"skipModules": true
}
},
"explicitTopMenu": [
{
"id": "mytasks",
"url": "/registry/project-management@indicatorValue.all",
"caption": "Мои задачи"
},
{
"type": "system",
"name": "report"
}
],
"plugins": {
"sessionHandler": {
"options": {
"storage": {
"type": "[[session.type]]",
"options": {
"host": "[[cache.redis.host]]",
"port": "[[cache.redis.port]]"
}
}
}
},
"wfEvents": {
"module": "applications/project-management/lib/wfEvents",
"initMethod": "init",
"initLevel": 1,
"options": {
"workflows": "ion://workflows",
"metaRepo": "ion://metaRepo",
"dataRepo": "ion://dataRepo",
"log": "ion://sysLog"
}
},
"actualAclProvider": {
"module": "core/impl/access/aclmongo",
"initMethod": "init",
"initLevel": 1,
"options": {
"dataSource": "ion://Db"
}
},
"aclProvider": {
"module": "core/impl/access/aclMetaMap",
"options": {
"dataRepo": "ion://dataRepo",
"acl": "ion://actualAclProvider",
"accessManager": "ion://roleAccessManager",
"map": {
"person@project-management": {
"isEntry": true,
"sidAttribute": "user",
"jumps": [
"employee"
]
}
}
}
},
"fileStorage": {
"module": "core/impl/resource/OwnCloudStorage",
"options": {
"url": "[[ownCloud.url]]",
"login": "[[ownCloud.login]]",
"password": "[[ownCloud.pwd]]"
}
},
"dataRepo": {
"options": {
"maxEagerDepth": 4
}
},
"customProfile": {
"module": "lib/plugins/customProfile",
"initMethod": "inject",
"options": {
"auth": "ion://auth",
"metaRepo": "ion://metaRepo",
"dataRepo": "ion://dataRepo",
"fields": {
"piAct": {
"caption": "Участник прогресс-индикатора",
"required": false,
"readonly": true,
"type": 4
}
},
"propertyMap": {
"person@project-management": {
"filter": "user",
"properties": {
"person": "id",
"piAct": "piAct",
"surname": "surname"
}
}
}
}
},
"securedDataRepo": {
"options": {
"accessManager": "ion://roleAccessManager",
"roleMap": {
"eventBasic@project-management": {
"PROJECT_ADMIN": {
"caption": "Администратор проекта",
"resource": {
"id": "pm::project-events"
},
"attribute": "project.administrator"
},
"PROJECT_RESPONSIBLE": {
"caption": "Ответственный по проекту",
"resource": {
"id": "pm::project-events"
},
"sids": [
"$project.owner"
]
}
}
}
}
},
"indicatorWfHandler": {
"module": "applications/project-management/lib/util/indicatorWfHandler",
"initMethod": "init",
"initLevel": 2,
"options": {
"workflows": "ion://workflows",
"data": "ion://securedDataRepo",
"log": "ion://sysLog"
}
},
"auth": {
"options": {
"checkUrlAccess": [
"/registry/project-management@project",
"/portal"
]
}
}
},
"jobs": {
"fact-creator": {
"description": "Служба генератора фактический показателей",
"launch": {
"day": 1
},
"worker": "factCreator",
"di": {
"factCreator": {
"executable": "applications/project-management/lib/fact-creator",
"options": {
"log": "ion://sysLog",
"data": "ion://dataRepo",
"workflows": "ion://workflows"
}
}
}
},
"report-builder": {
"description": "Служба сборки шахт данных модуля отчетов",
"launch": {
"hour": 24
},
"worker": "rebuilder",
"di": {
"reportMeta": {
"module": "modules/report/lib/impl/DsReportMetaRepository",
"initMethod": "init",
"initLevel": 1,
"options": {
"dataSource": "ion://Db",
"calc": "ion://calculator"
}
},
"stdBuilder": {
"module": "modules/report/lib/impl/StdMineBuilder",
"options": {
"dataSource": "ion://Db",
"metaRepo": "ion://metaRepo",
"dataRepo": "ion://dataRepo"
}
},
"rebuilder": {
"executable": "modules/report/lib/rebuilder",
"options": {
"log": "ion://sysLog",
"meta": "ion://reportMeta",
"mineBuilders": {
"project-management": {
"projects": {
"indicatorAll": "ion://stdBuilder"
}
}
}
}
}
}
}
}
},
"deployer": "built-in",
"modules": {
"registry": {
"globals": {
"signedClasses": [
"indicatorBasic@project-management"
],
"staticOptions": {
"maxAge": 3600000
},
"explicitTopMenu": [
"mytasks",
{
"type": "system",
"name": "report"
}
],
"eagerLoading": {
"*": {
"briefcase@project-management": {
"item": [
"projects.typeProject.name"
],
"list": [
"projects.typeProject.name"
],
"exportItem": [
"direction.name"
],
"exportList": [
"result"
]
}
}
},
"listSearchMinLength": 3,
"listSearchOptions": {
"indicatorBasic@project-management": {
"*": {
"searchBy": [
"name",
"objectBasic"
],
"mode": [
"starts",
"starts"
],
"joinBy": "and"
}
}
},
"storage": {
"basicObj@project-management": {
"cloudFile": "/${item.code} (${item.name})/",
"resultCloudFile": "/${item.code} (${item.name})/"
}
},
"defaultPath": "dashboard",
"inlineForm": true,
"navigation": {
"namespaces": {
"project-management": "Проектное управление"
},
"menus": {
"top": [
"project-management@mark"
]
}
},
"templates": [
"applications/project-management/templates/registry"
],
"customTemplates": [
{
"node": "project-management@eventBasic",
"classes": [
{
"name": "*",
"types": {
"create": "task/view",
"item": "task/view",
"selectClass": "task/selectClass"
}
}
]
},
{
"node": "*",
"classes": [
{
"name": "project@project-management",
"types": {
"item": "to-gantt-view",
"selectClass": "task/selectClass"
}
}
]
}
],
"statics": {
"app-static": "applications/project-management/templates/registry/static",
"app-vendor": "applications/project-management/themes/registry/static/vendor",
"common-static": "applications/project-management/templates/static"
},
"logo": "common-static/logo.png",
"di": {
"pmItemToDocx": {
"module": "modules/registry/export/itemToDocx",
"initMethod": "init",
"initLevel": 0,
"options": {
"tplDir": "applications/project-management/export/item",
"injectors": []
}
},
"pmListToDocx": {
"module": "modules/registry/export/listToDocx",
"initMethod": "init",
"initLevel": 0,
"options": {
"tplDir": "applications/project-management/export/item2",
"log": "ion://sysLog"
}
},
"export": {
"options": {
"configs": {
"project@project-management": {
"passport": {
"caption": "Паспорт проекта",
"mimeType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
"extension": "docx",
"type": "item",
"preprocessor": "ion://pmItemToDocx",
"isBackground": true
},
"markResult": {
"caption": "Оценка проектов",
"mimeType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
"extension": "docx",
"type": "list",
"query": {
"filter": {
"and": [
{
"eq": [
"$guid",
":project"
]
}
]
}
},
"params": {
"project": {
"caption": "Проект",
"type": "reference",
"className": "project@project-management"
}
},
"preprocessor": "ion://pmFromListToDocx",
"isBackground": true
}
}
}
}
},
"createIndicatorValueHandler": {
"module": "applications/project-management/lib/actions/createIndicatorValueHandler",
"initMethod": "init",
"initLevel": 2,
"options": {
"data": "ion://securedDataRepo",
"workflows": "ion://workflows",
"log": "ion://sysLog",
"changelogFactory": "ion://changelogFactory",
"state": "onapp"
}
},
"actions": {
"options": {
"actions": [
{
"code": "CREATE_INDICATOR_VALUE",
"handler": "ion://createIndicatorValueHandler"
}
]
}
},
"digestData": {
"module": "applications/project-management/lib/digest/digestData",
"options": {
"log": "ion://sysLog"
}
},
"signManager": {
"options": {
"Preprocessor": "ion://digestData",
"signaturePreprocessor": "ion://signSaver"
}
},
"treegridController": {
"module": "applications/viewlib-extra/lib/controllers/api/treegrid",
"initMethod": "init",
"initLevel": 0,
"options": {
"module": "ion://module",
"logger": "ion://sysLog",
"dataRepo": "ion://securedDataRepo",
"metaRepo": "ion://metaRepo",
"auth": "ion://auth",
"config": {
"*": {
"eventBasic@project-management": {
"roots": [
{
"property": "name",
"operation": 1,
"value": [
null
],
"nestedConditions": []
}
],
"childs": [
"basicObjs"
]
}
}
}
}
},
"fileshareController": {
"module": "applications/viewlib/lib/controllers/api/fileshare",
"initMethod": "init",
"initLevel": 0,
"options": {
"module": "ion://module",
"fileStorage": "ion://fileStorage"
}
}
},
"dashboard": {
"project-management": {
"modules": {
"dashboard": {}
}
}
}
}
},
"geomap": {
"globals": {
"ymapControls": {
"loader": {
"position": {
"left": 15,
"top": 90
}
},
"rulerControl": null,
"typeSelector": {
"float": "right"
},
"zoomControl": {
"position": {
"right": 10,
"top": 10
}
}
},
"panels": {
"rightInfo": {
"type": "rightInfo"
},
"navFloat": {
"type": "float",
"cssClass": "map-nav-float nav-tree",
"cssStyle": "left:10px; top:46px; width: 310px; max-height:calc(100% - 163px);"
},
"filterFloat": {
"type": "float",
"title": "Фильтры",
"cssClass": "map-filter-float collapsible",
"cssStyle": "left:10px; bottom:10px; width: 310px; max-height:calc(100% - 163px);"
}
},
"hidePageHead": false,
"hidePageSidebar": true,
"stroke": {
"panel": {
"name": "filterFloat"
},
"path": {
"strokeColor": "#00ff00",
"strokeWidth": 6,
"opacity": 0.8
},
"polygon": {
"fillColor": "#00ff00",
"fillOpacity": 0.1,
"strokeColor": "#00ff00",
"strokeOpacity": 0.9,
"strokeWidth": 3
}
},
"namespaces": {
"project-management": "Геоданные проекта"
},
"templates": [
"applications/project-management/templates"
],
"statics": {
"geoicons": "applications/project-management/icons"
},
"start": [
135.07,
48.48
],
"zoom": 10,
"regions": {
"enabled": true,
"osmIds": [
"151223"
],
"panel": {
"name": "filterFloat"
},
"button": {
"caption": "Районы",
"hint": "Фильтр по районам",
"resetHint": "Сбросить фильтр"
},
"levels": {
"4": {
"strokeWidth": 3,
"strokeColor": "#7e8dab",
"strokeStyle": "solid",
"strokeOpacity": 1,
"fillColor": "#ffffff",
"fillOpacity": 0
}
}
},
"defaultNav": {
"namespace": "project-management",
"node": "objectBasic"
},
"search": {
"panel": {
"name": "filterFloat",
"orderNumber": 10
},
"enabled": true,
"timeout": 2000
},
"formFilter": {
"panel": {
"name": "filterFloat"
}
},
"di": {
"dataRepo": {
"module": "core/impl/datarepository/ionDataRepository",
"options": {
"dataSource": "ion://Db",
"metaRepository": "ion://metaRepo",
"fileStorage": "ion://fileStorage",
"imageStorage": "ion://imageStorage",
"log": "ion://sysLog",
"keyProvider": {
"name": "keyProvider",
"module": "core/impl/meta/keyProvider",
"options": {
"metaRepo": "ion://metaRepo"
}
},
"maxEagerDepth": 3
}
}
}
},
"import": {
"src": "applications/project-management/geo",
"namespace": "project-management"
}
},
"gantt-chart": {
"globals": {
"staticOptions": {
"maxAge": 3600000
},
"config": {
"columns": [
{
"name": "owner",
"caption": "Владелец",
"align": "center",
"filter": true,
"editor": {
"type": "select2",
"from": "employee@project-management"
}
}
],
"preConfigurations": {
"config2": {
"caption": "Расширенная",
"showPlan": false,
"units": "year",
"days_mode": "full",
"hours_mode": "work",
"columnDisplay": {
"text": true,
"owner": true,
"priority": true,
"start": true,
"progress": true
}
}
},
"roots": [
"briefcase@project-management",
"project@project-management"
],
"initialDepth": 1,
"createUrl": {
"project@project-management": "registry/project-management@myprojectevent.all/new/{{parentClass}}.{{parentId}}/basicObjs/event@project-management"
},
"searchCount": 25,
"inplaceCreation": {
"rootLevel": true,
"skip": [
"briefcase@project-management"
],
"ambigiousDefault": "event@project-management",
"force": {
"@root": "briefcase@project-management",
"eventObject@project-management": "eventOnly@project-management"
}
},
"map": {
"employee@project-management": {
"eager": [
"person",
"organization"
]
},
"project@project-management": {
"type": "project",
"open": true,
"color": "#e3fcef",
"textColor": "#000",
"text": "name",
"override": {
"owner": "head"
},
"parents": [
"briefcase"
],
"filter": {
"ne": [
"$archive",
true
]
},
"url": "registry/project-management@myprojectevent.all/view/:class/:id"
}
}
},
"statics": {
"common-static": "applications/project-management/templates/static"
},
"logo": "common-static/logo.png",
"rootParamNeeded": true
}
},
"report": {
"globals": {
"namespaces": {
"project-management": "Проектное управление"
},
"defaultNav": {
"namespace": "project-management",
"mine": "projects",
"report": "roadmap"
},
"mineBuilders": {
"project-management": {
"test": {
"projects": "mineBuilder"
},
"projects": {
"indicatorAll": "mineBuilder"
}
}
},
"di": {},
"statics": {
"common-static": "applications/project-management/templates/static"
},
"logo": "common-static/logo.png"
},
"import": {
"src": "applications/project-management/bi",
"namespace": "project-management"
}
},
"rest": {
"globals": {
"di": {}
}
},
"portal": {
"import": {
"src": "applications/project-management/portal",
"namespace": "project-management"
},
"globals": {
"portalName": "pm",
"needAuth": true,
"default": "index",
"theme": "project-management/portal",
"templates": [
"applications/project-management/themes/portal/templates"
],
"statics": {
"pm": "applications/project-management/themes/portal/static"
},
"pageTemplates": {
"navigation": {
"index": "pages/index"
}
}
}
},
"ionadmin": {
"globals": {
"defaultPath": "ionadmin",
"securityParams": {
"resourceTypes": {
"*": {
"title": "Общие"
}
},
"hiddenRoles": [
"^PROJ_DEPART_EMPLOYEE"
]
}
},
"statics": {
"common-static": "applications/project-management/templates/static"
},
"logo": "common-static/logo.png"
},
"dashboard": {
"globals": {
"namespaces": {
"project-management": "Проектное управление"
},
"root": {
"project-management": "applications/project-management/dashboard"
}
}
},
"diagram": {
"globals": {
"config": {
"org1": {
"caption": "Организационная структура",
"edit": true,
"showSections": false,
"relations": {
"className": "organization@project-management",
"title": "name",
"text": "address",
"img": "",
"filter": [
{
"property": "headOrg",
"operation": 0,
"value": [
null
],
"nestedConditions": []
}
],
"children": [
{
"className": "branchOrg@project-management",
"property": "branch",
"title": "name",
"text": "address",
"children": [
{
"className": "branchOrg@project-management",
"property": "branch",
"children": []
}
]
}
]
}
}
}
}
}
}
}