Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/calendar/roomsmanager/dist/ |
Upload File : |
{"version":3,"file":"roomsmanager.bundle.js","sources":["../src/roomssection.js","../src/roomsmanager.js"],"sourcesContent":["import { Util } from 'calendar.util';\nimport { CalendarSection } from 'calendar.sectionmanager';\n\nexport class RoomsSection extends CalendarSection\n{\n\tconstructor(data)\n\t{\n\t\tsuper(data);\n\t\tthis.updateData(data);\n\t\tthis.calendarContext = Util.getCalendarContext();\n\t\t// this.roomsManager = this.calendarContext.roomsManager;\n\t}\n\n\tupdateData(data)\n\t{\n\t\tthis.data = data || {};\n\t\tthis.type = data.CAL_TYPE || '';\n\t\tthis.necessity = data.NECESSITY || 'N';\n\t\tthis.capacity = parseInt(data.CAPACITY) || 0;\n\t\tthis.ownerId = parseInt(data.OWNER_ID) || 0;\n\t\tthis.id = parseInt(data.ID);\n\t\tthis.location_id = parseInt(data.LOCATION_ID);\n\t\tthis.color = this.data.COLOR;\n\t\tthis.name = this.data.NAME;\n\t\tthis.categoryId = parseInt(this.data.CATEGORY_ID);\n\t\tthis.reserved = this.data.reserved || false;\n\t}\n\n\tbelongsToView()\n\t{\n\t\treturn true;\n\t}\n}","import {Type, Loc, Event, Runtime } from 'main.core';\nimport { SectionManager } from 'calendar.sectionmanager';\nimport { Util } from 'calendar.util';\nimport { RoomsSection } from './roomssection';\nimport { EventEmitter } from 'main.core.events';\nexport { RoomsSection };\n\nexport class RoomsManager extends SectionManager\n{\n\tconstructor(data, config)\n\t{\n\t\tsuper(data, config);\n\t\tthis.locationAccess = config.locationAccess || false;\n\t\tthis.locationContext = config.locationContext || null;\n\t\tthis.setRooms(data.rooms);\n\t\tthis.setConfig(config);\n\t\tthis.sortRooms();\n\t\tthis.setSections(data.sections);\n\t\tthis.sortSections();\n\t\tthis.reloadRoomsFromDatabaseDebounce = Runtime.debounce(this.reloadRoomsFromDatabase, SectionManager.RELOAD_DELAY, this);\n\n\t\tif (Object.keys(Util.accessNames).length === 0)\n\t\t{\n\t\t\tBX.Calendar.Util.setAccessNames(config.accessNames);\n\t\t}\n\t\tEventEmitter.subscribeOnce('BX.Calendar.Rooms:delete', this.deleteRoomHandler.bind(this));\n\t}\n\n\tsortRooms()\n\t{\n\t\tthis.roomsIndex = {};\n\t\tthis.rooms = this.rooms.sort((a, b) => {\n\t\t\tif (a.name.toLowerCase() > b.name.toLowerCase())\n\t\t\t{\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t\tif (a.name.toLowerCase() < b.name.toLowerCase())\n\t\t\t{\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\treturn 0;\n\t\t});\n\n\t\tthis.rooms.forEach((room, i) => {\n\t\t\tthis.roomsIndex[room.getId()] = i;\n\t\t});\n\t}\n\n\tsetRooms(params = [])\n\t{\n\t\tthis.rooms = [];\n\t\tthis.roomsIndex = {};\n\t\tparams.forEach((roomData) => {\n\t\t\tlet room = new RoomsSection(roomData);\n\t\t\tthis.rooms.push(room);\n\t\t\tthis.roomsIndex[room.getId()] = this.rooms.length - 1;\n\t\t});\n\t}\n\n\tgetRooms()\n\t{\n\t\treturn this.rooms;\n\t}\n\n\tgetRoom(id)\n\t{\n\t\treturn this.rooms[this.roomsIndex[id]];\n\t}\n\n\tcreateRoom(params)\n\t{\n\t\treturn new Promise(resolve => {\n\n\t\t\tparams.name = this.checkName(params.name);\n\t\t\tparams.capacity = this.checkCapacity(params.capacity);\n\t\t\tparams.necessity = (params.necessity && params.capacity !== 0) ? 'Y' : 'N';\n\n\t\t\tBX.ajax.runAction('calendar.api.locationajax.createRoom', {\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tname: params.name,\n\t\t\t\t\t\tcapacity: params.capacity,\n\t\t\t\t\t\tnecessity: params.necessity,\n\t\t\t\t\t\townerId: this.ownerId,\n\t\t\t\t\t\tcolor: params.color,\n\t\t\t\t\t\taccess: params.access || null,\n\t\t\t\t\t\tcategoryId: params.categoryId,\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.then(\n\t\t\t\t\t(response) => {\n\t\t\t\t\t\tconst roomList = response.data.rooms || [];\n\t\t\t\t\t\tconst sectionList = response.data.sections || [];\n\t\t\t\t\t\tthis.setRooms(roomList);\n\t\t\t\t\t\tthis.sortRooms();\n\t\t\t\t\t\tthis.setSections(sectionList);\n\t\t\t\t\t\tthis.sortSections();\n\n\t\t\t\t\t\tUtil.getBX().Event.EventEmitter.emit(\n\t\t\t\t\t\t\t'BX.Calendar.Rooms:create',\n\t\t\t\t\t\t\tnew Event.BaseEvent(\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tdata: { roomsList: roomList }\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t\tthis.setLocationSelector(roomList);\n\t\t\t\t\t\tresolve(response.data);\n\t\t\t\t\t},\n\t\t\t\t\t(response) => {\n\t\t\t\t\t\tBX.Calendar.Util.displayError(response.errors);\n\t\t\t\t\t\tresolve(response.data);\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t});\n\t}\n\n\tupdateRoom(params)\n\t{\n\t\treturn new Promise(resolve => {\n\t\t\tparams.name = this.checkName(params.name);\n\t\t\tparams.capacity = this.checkCapacity(params.capacity);\n\t\t\tparams.necessity = (params.necessity && params.capacity !== 0) ? 'Y' : 'N';\n\n\t\t\tBX.ajax.runAction('calendar.api.locationajax.updateRoom', {\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tid: params.id,\n\t\t\t\t\t\tlocation_id: params.location_id,\n\t\t\t\t\t\tname: params.name,\n\t\t\t\t\t\tcapacity: params.capacity,\n\t\t\t\t\t\tnecessity: params.necessity,\n\t\t\t\t\t\tcolor: params.color,\n\t\t\t\t\t\taccess: params.access || null,\n\t\t\t\t\t\tcategoryId: params.categoryId,\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.then(\n\t\t\t\t\t(response) => {\n\t\t\t\t\t\tconst roomList = response.data.rooms || [];\n\t\t\t\t\t\tconst sectionList = response.data.sections || [];\n\t\t\t\t\t\tthis.setRooms(roomList);\n\t\t\t\t\t\tthis.sortRooms();\n\t\t\t\t\t\tthis.setSections(sectionList);\n\t\t\t\t\t\tthis.sortSections();\n\t\t\t\t\t\tthis.unsetHiddenRoom(params.id)\n\n\t\t\t\t\t\tUtil.getBX().Event.EventEmitter.emit(\n\t\t\t\t\t\t\t'BX.Calendar.Rooms:update',\n\t\t\t\t\t\t\tnew Event.BaseEvent(\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tdata: { roomsList: roomList }\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t\tthis.setLocationSelector(roomList);\n\t\t\t\t\t\tresolve(response.data);\n\t\t\t\t\t},\n\t\t\t\t\t(response) => {\n\t\t\t\t\t\tBX.Calendar.Util.displayError(response.errors);\n\t\t\t\t\t\tresolve(response.data);\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t});\n\t}\n\n\tdeleteRoom(id, location_id)\n\t{\n\t\tconst EventAlias = Util.getBX().Event;\n\t\tEventAlias.EventEmitter.emit(\n\t\t\t'BX.Calendar.Section:delete',\n\t\t\tnew EventAlias.BaseEvent({data: {sectionId: id}})\n\t\t);\n\t\treturn new Promise(resolve => {\n\t\t\tBX.ajax.runAction('calendar.api.locationajax.deleteRoom', {\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tid: id,\n\t\t\t\t\t\tlocation_id: location_id\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.then(\n\t\t\t\t\t(response) => {\n\t\t\t\t\t\tconst roomList = response.data.rooms || [];\n\t\t\t\t\t\tconst sectionList = response.data.sections || [];\n\t\t\t\t\t\tif (!roomList.length)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tBX.reload();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.setRooms(roomList);\n\t\t\t\t\t\tthis.sortRooms();\n\t\t\t\t\t\tthis.setSections(sectionList);\n\t\t\t\t\t\tthis.sortSections();\n\n\t\t\t\t\t\tUtil.getBX().Event.EventEmitter.emit(\n\t\t\t\t\t\t\t'BX.Calendar.Rooms:delete',\n\t\t\t\t\t\t\tnew Event.BaseEvent(\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t\t\t\tid: id\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t\tthis.setLocationSelector(roomList);\n\t\t\t\t\t\tresolve(response.data);\n\t\t\t\t\t},\n\t\t\t\t\t(response) => {\n\t\t\t\t\t\tBX.Calendar.Util.displayError(response.errors);\n\t\t\t\t\t\tresolve(response.data);\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t});\n\t}\n\n\tcheckName(name)\n\t{\n\t\tif (typeof name === 'string')\n\t\t{\n\t\t\tname = name.trim();\n\t\t\tif (RoomsManager.isEmpty(name))\n\t\t\t{\n\t\t\t\tname = Loc.getMessage('EC_SEC_SLIDER_NEW_ROOM');\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\tname = Loc.getMessage('EC_SEC_SLIDER_NEW_ROOM');\n\t\t}\n\t\treturn name;\n\t}\n\n\tcheckCapacity(capacity)\n\t{\n\t\tif (RoomsManager.isEmpty(capacity) || capacity <= 0 || capacity >= 10000)\n\t\t{\n\t\t\treturn 0;\n\t\t}\n\t\treturn capacity;\n\t}\n\n\tgetRoomsInfo()\n\t{\n\t\tconst allActive = [];\n\t\tconst superposed = [];\n\t\tconst active = [];\n\t\tconst hidden = [];\n\n\t\tthis.rooms.forEach((room) => {\n\t\t\tif (room.isShown() && this.calendarType === 'location' && room.type === 'location')\n\t\t\t{\n\t\t\t\tif (room.isSuperposed())\n\t\t\t\t{\n\t\t\t\t\tsuperposed.push(room.id);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tactive.push(room.id);\n\t\t\t\t}\n\t\t\t\tallActive.push(room.id);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\thidden.push(room.id);\n\t\t\t}\n\t\t});\n\n\t\treturn { superposed, active, hidden, allActive };\n\t}\n\n\tgetRoomName(id)\n\t{\n\t\tif (RoomsManager.isEmpty(id))\n\t\t{\n\t\t\treturn null;\n\t\t}\n\t\tconst room = this.getRoom(id);\n\t\treturn room.name;\n\t}\n\n\tunsetHiddenRoom(id)\n\t{\n\t\tif (id)\n\t\t{\n\t\t\tconst room = this.getRoom(id)\n\t\t\tif (room.calendarContext && !room.isShown())\n\t\t\t{\n\t\t\t\troom.show();\n\t\t\t}\n\t\t}\n\t}\n\n\thandlePullRoomChanges(params)\n\t{\n\t\tif (params.command === 'delete_room')\n\t\t{\n\t\t\tconst roomId = parseInt(params.ID, 10);\n\t\t\tif (this.roomsIndex[roomId])\n\t\t\t{\n\t\t\t\tthis.deleteRoomHandler(roomId);\n\t\t\t\tUtil.getBX().Event.EventEmitter.emit(\n\t\t\t\t\t'BX.Calendar.Rooms:pull-delete',\n\t\t\t\t\tnew Event.BaseEvent(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tdata: { roomId: roomId }\n\t\t\t\t\t\t}\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.reloadRoomsFromDatabaseDebounce();\n\t\t\t}\n\t\t}\n\t\telse if (params.command === 'create_room')\n\t\t{\n\t\t\tthis.reloadRoomsFromDatabase().then(this.reloadDataDebounce());\n\t\t\tUtil.getBX().Event.EventEmitter.emit('BX.Calendar.Rooms:pull-create');\n\t\t\tUtil.getBX().Event.EventEmitter.emit('BX.Calendar:doRefresh');\n\t\t}\n\t\telse if (params.command === 'update_room')\n\t\t{\n\t\t\tthis.reloadRoomsFromDatabase().then(this.reloadDataDebounce());\n\t\t\tUtil.getBX().Event.EventEmitter.emit('BX.Calendar.Rooms:pull-update');\n\t\t\tUtil.getBX().Event.EventEmitter.emit('BX.Calendar:doRefresh');\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.reloadRoomsFromDatabase().then(this.reloadDataDebounce());\n\t\t}\n\t}\n\n\tdeleteRoomHandler(id)\n\t{\n\t\tif (this.roomsIndex[id] !== undefined)\n\t\t{\n\t\t\tthis.rooms.splice(this.roomsIndex[id], 1);\n\t\t\tfor (let i = 0; i < this.rooms.length; i++)\n\t\t\t{\n\t\t\t\tthis.roomsIndex[this.rooms[i].id] = i;\n\t\t\t}\n\t\t}\n\t\tif (this.sectionIndex[id] !== undefined)\n\t\t{\n\t\t\tthis.sections.splice(this.sectionIndex[id], 1);\n\t\t\tfor (let i = 0; i < this.sections.length; i++)\n\t\t\t{\n\t\t\t\tthis.sectionIndex[this.sections[i].id] = i;\n\t\t\t}\n\t\t}\n\t}\n\n\treloadRoomsFromDatabase()\n\t{\n\t\treturn new Promise(resolve => {\n\t\t\tBX.ajax.runAction('calendar.api.locationajax.getRoomsList')\n\t\t\t\t.then((response) => {\n\t\t\t\t\t\tthis.setRooms(response.data.rooms || []);\n\t\t\t\t\t\tthis.sortRooms();\n\t\t\t\t\t\tBX.Calendar.Controls.Location.setLocationList(response.data.rooms);\n\t\t\t\t\t\tresolve(response.data);\n\t\t\t\t\t},\n\t\t\t\t\t// Failure\n\t\t\t\t\t(response) => {\n\t\t\t\t\t\tresolve(response.data);\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t});\n\t}\n\n\tgetLocationAccess()\n\t{\n\t\treturn this.locationAccess;\n\t}\n\n\tsetLocationSelector(roomList)\n\t{\n\t\tBX.Calendar.Controls.Location.setLocationList(roomList);\n\t\tif (this.locationContext !== null)\n\t\t{\n\t\t\tthis.locationContext.setValues();\n\t\t}\n\t}\n\n\tstatic isEmpty(param)\n\t{\n\t\tif (Type.isArray(param))\n\t\t{\n\t\t\treturn !param.length;\n\t\t}\n\t\treturn param === null || param === undefined || param === '' || param === [] || param === {};\n\t}\n}"],"names":["RoomsSection","CalendarSection","constructor","data","updateData","calendarContext","Util","getCalendarContext","type","CAL_TYPE","necessity","NECESSITY","capacity","parseInt","CAPACITY","ownerId","OWNER_ID","id","ID","location_id","LOCATION_ID","color","COLOR","name","NAME","categoryId","CATEGORY_ID","reserved","belongsToView","RoomsManager","SectionManager","config","locationAccess","locationContext","setRooms","rooms","setConfig","sortRooms","setSections","sections","sortSections","reloadRoomsFromDatabaseDebounce","Runtime","debounce","reloadRoomsFromDatabase","RELOAD_DELAY","Object","keys","accessNames","length","BX","Calendar","setAccessNames","EventEmitter","subscribeOnce","deleteRoomHandler","bind","roomsIndex","sort","a","b","toLowerCase","forEach","room","i","getId","params","roomData","push","getRooms","getRoom","createRoom","Promise","resolve","checkName","checkCapacity","ajax","runAction","access","then","response","roomList","sectionList","getBX","Event","emit","BaseEvent","roomsList","setLocationSelector","displayError","errors","updateRoom","unsetHiddenRoom","deleteRoom","EventAlias","sectionId","reload","trim","isEmpty","Loc","getMessage","getRoomsInfo","allActive","superposed","active","hidden","isShown","calendarType","isSuperposed","getRoomName","show","handlePullRoomChanges","command","roomId","reloadDataDebounce","undefined","splice","sectionIndex","Controls","Location","setLocationList","getLocationAccess","setValues","param","Type","isArray"],"mappings":"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"}