diff --git a/manager/api/urls.py b/manager/api/urls.py index fd49f568..db61cc90 100644 --- a/manager/api/urls.py +++ b/manager/api/urls.py @@ -52,6 +52,7 @@ path("salinfo/topic-data", api.views.salinfo_topic_data, name="salinfo-topic-data"), path("config", api.views.get_config, name="config"), path("efd/timeseries", api.views.query_efd, name="EFD-timeseries"), + path("efd/efd_clients", api.views.query_efd_clients, name="EFD-clients"), path("tcs/aux", api.views.tcs_aux_command, name="TCS-aux"), path("tcs/docstrings", api.views.tcs_docstrings, name="TCS-docstrings"), ] diff --git a/manager/api/views.py b/manager/api/views.py index dafd9352..bf64f685 100644 --- a/manager/api/views.py +++ b/manager/api/views.py @@ -502,6 +502,27 @@ class EmergencyContactViewSet(viewsets.ModelViewSet): """Serializer used to serialize View objects""" +@api_view(["GET"]) +@permission_classes((IsAuthenticated,)) +def query_efd_clients(request): + """Requests EFD instances + + Params + ------ + request: Request + The Request object + + Returns + ------- + Response + The response and status code of the request to the LOVE-Commander + """ + url = f"http://{os.environ.get('COMMANDER_HOSTNAME')}:{os.environ.get('COMMANDER_PORT')}/efd/efd_clients" + response = requests.get(url) + + return Response(response.json(), status=response.status_code) + + @api_view(["POST"]) @permission_classes((IsAuthenticated,)) def query_efd(request, *args, **kwargs): @@ -551,9 +572,9 @@ def tcs_aux_command(request, *args, **kwargs): List of addittional arguments. Currently unused kwargs: dict Dictionary with request arguments. Request should contain the following: - command_name (required): The name of the command to be run. It should be a field of - the lsst.ts.observatory.control.auxtel.ATCS class params (required): - Parameters to be passed to the command method, e.g. + command_name (required): The name of the command to be run. + It should be a field of the lsst.ts.observatory.control.auxtel.ATCS class + params (required): Parameters to be passed to the command method, e.g. { ra: 80, dec: 30, diff --git a/manager/requirements.txt b/manager/requirements.txt index 9e7da19e..6f4a53a8 100644 --- a/manager/requirements.txt +++ b/manager/requirements.txt @@ -19,7 +19,7 @@ coreapi==2.3.3 coreschema==0.0.4 cryptography==3.3.2 daphne==3.0.1 -Django==3.1.13 +Django==3.1.14 django-auth-ldap==2.1.0 django-cors-headers==3.2.1 django-webpack-loader==0.7.0 @@ -45,10 +45,10 @@ mccabe==0.6.1 mistune==0.8.4 more-itertools==8.2.0 msgpack==1.0.0 -numpy==1.18.1 +numpy==1.21.0 packaging==20.3 -Pillow==8.3.2 pip-licenses==2.1.1 +Pillow==9.0.0 pluggy==0.13.1 psycopg2==2.8.4 py==1.10.0 @@ -66,7 +66,7 @@ pytest-asyncio==0.10.0 pytest-django==3.8.0 pytest-env==0.6.2 python-dateutil==2.8.1 -python-ldap==3.2.0 +python-ldap==3.4.0 pytz==2019.3 PyYAML==5.4 requests==2.23.0 diff --git a/manager/runserver-dev.sh b/manager/runserver-dev.sh index ac13f8a2..22dba801 100755 --- a/manager/runserver-dev.sh +++ b/manager/runserver-dev.sh @@ -12,13 +12,22 @@ python manage.py migrate echo -e "\nCreating default users" python manage.py createusers --adminpass ${ADMIN_USER_PASS} --userpass ${USER_USER_PASS} --cmduserpass ${CMD_USER_PASS} --authlistuserpass ${AUTHLIST_USER_PASS} +if [ -z ${LOVE_SITE} ]; then + love_site="summit" +else + love_site=${LOVE_SITE} +fi +echo -e "\nSite: ${love_site}" echo -e "\nApplying fixtures" mkdir -p media/thumbnails cp -u ui_framework/fixtures/thumbnails/* media/thumbnails +if [ -d "ui_framework/fixtures/thumbnails/${love_site}" ]; then + cp -u ui_framework/fixtures/thumbnails/${love_site}/* media/thumbnails +fi mkdir -p media/configs cp -u api/fixtures/configs/* media/configs -python manage.py loaddata ui_framework/fixtures/initial_data.json +python manage.py loaddata ui_framework/fixtures/initial_data_${love_site}.json python manage.py loaddata api/fixtures/initial_data.json echo -e "\nStarting server" diff --git a/manager/runserver.sh b/manager/runserver.sh index c2317de1..90dd08d9 100755 --- a/manager/runserver.sh +++ b/manager/runserver.sh @@ -12,13 +12,22 @@ python manage.py migrate echo -e "\nCreating default users" python manage.py createusers --adminpass ${ADMIN_USER_PASS} --userpass ${USER_USER_PASS} --cmduserpass ${CMD_USER_PASS} --authlistuserpass ${AUTHLIST_USER_PASS} +if [ -z ${LOVE_SITE} ]; then + love_site="summit" +else + love_site=${LOVE_SITE} +fi +echo -e "\nSite: ${love_site}" echo -e "\nApplying fixtures" mkdir -p media/thumbnails cp -u ui_framework/fixtures/thumbnails/* media/thumbnails +if [ -d "ui_framework/fixtures/thumbnails/${love_site}" ]; then + cp -u ui_framework/fixtures/thumbnails/${love_site}/* media/thumbnails +fi mkdir -p media/configs cp -u api/fixtures/configs/* media/configs -python manage.py loaddata ui_framework/fixtures/initial_data.json +python manage.py loaddata ui_framework/fixtures/initial_data_${love_site}.json python manage.py loaddata api/fixtures/initial_data.json echo -e "\nStarting server" diff --git a/manager/ui_framework/fixtures/initial_data.json b/manager/ui_framework/fixtures/initial_data.json deleted file mode 100644 index acf8c294..00000000 --- a/manager/ui_framework/fixtures/initial_data.json +++ /dev/null @@ -1,898 +0,0 @@ -[ - { - "model": "ui_framework.view", - "pk": 30, - "fields": { - "creation_timestamp": "2020-08-19T00:38:07.360Z", - "update_timestamp": "2020-08-19T00:38:07.360Z", - "name": "Dome-Mount test", - "data": { - "content": { - "newPanel-1": { - "config": { - "title": "ScriptQueue", - "margin": true, - "salindex": 1, - "titleBar": true - }, - "content": "ScriptQueue", - "properties": { - "h": 54, - "i": 1, - "w": 56, - "x": 0, - "y": 0, - "type": "component" - } - }, - "newPanel-2": { - "config": { - "link": "", - "name": "Script", - "title": "Script.0 Logs", - "margin": true, - "salindex": 0, - "titleBar": true, - "hasRawMode": false, - "_functionProps": [] - }, - "content": "CSCExpanded", - "properties": { - "h": 45, - "i": 2, - "w": 32, - "x": 56, - "y": 9, - "type": "component" - } - }, - "newPanel-3": { - "config": { - "cscs": [ - { "name": "ATMCS", "salindex": 0 }, - { "name": "ATDome", "salindex": 0 }, - { "name": "Watcher", "salindex": 0 }, - { "name": "ScriptQueue", "salindex": 1 } - ], - "link": "", - "name": "CSC Summary", - "title": "CSC Summary", - "margin": true, - "titleBar": false, - "hasRawMode": false, - "_functionProps": ["subscribeToStreamCallback"], - "subscribeToStreamCallback": "() => {}" - }, - "content": "CSCGroup", - "properties": { - "h": 9, - "i": 3, - "w": 25, - "x": 56, - "y": 0, - "type": "component" - } - }, - "newPanel-4": { - "config": { - "link": "", - "title": "Dome", - "margin": true, - "titleBar": true, - "hasRawMode": true - }, - "content": "Dome", - "properties": { - "h": 46, - "i": 4, - "w": 49, - "x": 0, - "y": 54, - "type": "component" - } - }, - "newPanel-5": { - "config": { - "link": "", - "title": "AT Lightpath", - "margin": true, - "titleBar": true, - "lightPath": true, - "hasRawMode": true - }, - "content": "LightPath", - "properties": { - "h": 33, - "i": 5, - "w": 20, - "x": 49, - "y": 54, - "type": "component", - "allowOverflow": true - } - }, - "newPanel-6": { - "config": { - "link": "", - "title": "AT summary", - "margin": true, - "titleBar": true, - "hasRawMode": true - }, - "content": "MountSummaryPanel", - "properties": { - "h": 26, - "i": 6, - "w": 19, - "x": 69, - "y": 54, - "type": "component" - } - } - }, - "properties": { - "h": 2, - "i": 0, - "w": 100, - "x": 0, - "y": 0, - "cols": 100, - "type": "container", - "allowOverflow": true - } - }, - "thumbnail": "thumbnails/view_1.png" - } - }, - { - "model": "ui_framework.view", - "pk": 31, - "fields": { - "creation_timestamp": "2020-08-19T00:38:09.319Z", - "update_timestamp": "2020-08-19T00:38:09.319Z", - "name": "WeatherStation", - "data": { - "content": { - "newPanel-1": { - "config": { - "link": "", - "title": "Weather station component", - "margin": true, - "salindex": 1, - "titleBar": true, - "hasRawMode": false - }, - "content": "WeatherStation", - "properties": { - "h": 57, - "i": 1, - "w": 56, - "x": 0, - "y": 0, - "type": "component" - } - } - }, - "properties": { - "h": 2, - "i": 0, - "w": 100, - "x": 0, - "y": 0, - "cols": 100, - "type": "container", - "allowOverflow": true - } - }, - "thumbnail": "thumbnails/view_31.png" - } - }, - { - "model": "ui_framework.view", - "pk": 33, - "fields": { - "creation_timestamp": "2020-08-19T00:39:09.619Z", - "update_timestamp": "2020-08-19T00:39:09.619Z", - "name": "Watcher + ObsLogs", - "data": { - "content": { - "newPanel-1": { - "config": { - "link": "", - "title": "Watcher", - "margin": true, - "titleBar": true, - "hasRawMode": true - }, - "content": "Watcher", - "properties": { - "h": 52, - "i": 1, - "w": 50, - "x": 0, - "y": 0, - "type": "component" - } - }, - "newPanel-2": { - "config": { - "link": "", - "title": "Observing log", - "margin": true, - "titleBar": true, - "hasRawMode": true - }, - "content": "ObservingLogMessages", - "properties": { - "h": 52, - "i": 2, - "w": 20, - "x": 50, - "y": 0, - "type": "component" - } - }, - "newPanel-3": { - "config": { - "link": "", - "title": "Observing log input", - "margin": true, - "titleBar": true, - "hasRawMode": true - }, - "content": "ObservingLogInput", - "properties": { - "h": 25, - "i": 3, - "w": 21, - "x": 70, - "y": 0, - "type": "component" - } - } - }, - "properties": { - "h": 2, - "i": 0, - "w": 100, - "x": 0, - "y": 0, - "cols": 100, - "type": "container", - "allowOverflow": true - } - }, - "thumbnail": "thumbnails/view_32.png" - } - }, - { - "model": "ui_framework.view", - "pk": 34, - "fields": { - "creation_timestamp": "2020-08-19T00:39:44.681Z", - "update_timestamp": "2020-08-19T00:39:44.681Z", - "name": "TimeDisplay", - "data": { - "content": { - "newPanel-1": { - "config": { - "title": "TimeDisplay", - "locale": "en-GB", - "margin": true, - "titleBar": true, - "clocks_layout": [ - [ - { - "name": "Local Time", - "hideDate": false, - "timezone": "local", - "hideAnalog": false, - "hideOffset": false - }, - { - "name": "Sidereal Time", - "hideDate": true, - "timezone": "sidereal-summit", - "hideAnalog": false, - "hideOffset": false - } - ], - [ - [ - { - "name": "La Serena", - "hideDate": false, - "timezone": "America/Santiago", - "hideAnalog": true, - "hideOffset": false - }, - { - "name": "Arizona", - "hideDate": false, - "timezone": "America/Phoenix", - "hideAnalog": true, - "hideOffset": false - }, - { - "name": "Illinois", - "hideDate": false, - "timezone": "America/Chicago", - "hideAnalog": true, - "hideOffset": false - } - ], - [ - { - "name": "Universal Time", - "hideDate": false, - "timezone": "UTC", - "hideAnalog": true, - "hideOffset": false - }, - { - "name": "International Atomic Time", - "hideDate": false, - "timezone": "TAI", - "hideAnalog": true, - "hideOffset": false - }, - { - "name": "Modified Julian Date", - "hideDate": false, - "timezone": "MJD", - "hideAnalog": true, - "hideOffset": false - } - ] - ] - ] - }, - "content": "TimeDisplay", - "properties": { - "h": 16, - "i": 1, - "w": 45, - "x": 0, - "y": 0, - "type": "component" - } - } - }, - "properties": { - "h": 2, - "i": 0, - "w": 100, - "x": 0, - "y": 0, - "cols": 100, - "type": "container", - "allowOverflow": true - } - }, - "thumbnail": "thumbnails/view_34.png" - } - }, - { - "model": "ui_framework.view", - "pk": 35, - "fields": { - "creation_timestamp": "2020-08-19T00:40:10.493Z", - "update_timestamp": "2020-08-19T00:40:28.975Z", - "name": "Network + Scheduler", - "data": { - "content": { - "newPanel-6": { - "config": { - "url": "https://dashboard.ampath.net/maddash-webui/index.cgi", - "link": "", - "title": "Network component", - "margin": true, - "titleBar": true, - "hasRawMode": false - }, - "content": "Network", - "properties": { - "h": 61, - "i": 6, - "w": 40, - "x": 0, - "y": 0, - "type": "component" - } - }, - "newPanel-7": { - "config": { - "link": "", - "title": "Scheduler", - "margin": true, - "feedKey": "allSky", - "titleBar": true, - "hasRawMode": true - }, - "content": "Scheduler", - "properties": { - "h": 45, - "i": 7, - "w": 52, - "x": 40, - "y": 0, - "type": "component" - } - } - }, - "properties": { - "h": 2, - "i": 0, - "w": 100, - "x": 0, - "y": 0, - "cols": 100, - "type": "container", - "allowOverflow": true - } - }, - "thumbnail": "thumbnails/view_35.png" - } - }, - { - "model": "ui_framework.view", - "pk": 36, - "fields": { - "creation_timestamp": "2020-08-19T00:40:57.108Z", - "update_timestamp": "2020-08-19T00:40:57.108Z", - "name": "LATISS + Camera", - "data": { - "content": { - "newPanel-1": { - "config": { - "link": "", - "title": "LATISS", - "margin": true, - "titleBar": true, - "hasRawMode": true - }, - "content": "LATISS", - "properties": { - "h": 33, - "i": 1, - "w": 49, - "x": 0, - "y": 12, - "type": "component" - } - }, - "newPanel-2": { - "config": { - "link": "", - "title": "Camera", - "margin": true, - "titleBar": true, - "hasRawMode": true - }, - "content": "Camera", - "properties": { - "h": 12, - "i": 2, - "w": 49, - "x": 0, - "y": 0, - "type": "component" - } - } - }, - "properties": { - "h": 2, - "i": 0, - "w": 100, - "x": 0, - "y": 0, - "cols": 100, - "type": "container", - "allowOverflow": true - } - }, - "thumbnail": "thumbnails/view_36.png" - } - }, - { - "model": "ui_framework.view", - "pk": 37, - "fields": { - "creation_timestamp": "2020-08-19T00:41:33.170Z", - "update_timestamp": "2020-08-19T00:41:33.170Z", - "name": "HealthStatusSummary", - "data": { - "content": { - "newPanel-1": { - "config": { - "link": "", - "title": "Health status summary", - "margin": true, - "titleBar": true, - "hasRawMode": true, - "topicConfiguration": { - "telemetry-ATDome-0-position": { - "azimuthPosition": "return Math.floor(new Date().getSeconds() / 4) % 5 ;", - "azimuthEncoderPosition": "return Math.floor(new Date().getSeconds() / 4) % 5 ;", - "mainDoorOpeningPercentage": "return Math.floor(new Date().getSeconds() / 4) % 5 ;", - "dropoutDoorOpeningPercentage": "return Math.floor(new Date().getSeconds() / 4) % 5 ;" - }, - "telemetry-ATMCS-0-mount_AzEl_Encoders": { - "cRIO_timestamp": "return Math.floor(new Date().getSeconds() / 4) % 5 ;", - "elevationCalculatedAngle": "return Math.floor(new Date().getSeconds() / 4) % 5 ;" - }, - "telemetry-ATMCS-0-mount_Nasmyth_Encoders": { - "trackId": "return Math.floor(new Date().getSeconds() / 4) % 5 ;", - "nasmyth1Encoder1Raw": "return Math.floor(new Date().getSeconds() / 4) % 5 ;", - "nasmyth1Encoder2Raw": "return Math.floor(new Date().getSeconds() / 4) % 5 ;", - "nasmyth1Encoder3Raw": "return Math.floor(new Date().getSeconds() / 4) % 5 ;", - "nasmyth2Encoder1Raw": "return Math.floor(new Date().getSeconds() / 4) % 5 ;", - "nasmyth2Encoder2Raw": "return Math.floor(new Date().getSeconds() / 4) % 5 ;", - "nasmyth2Encoder3Raw": "return Math.floor(new Date().getSeconds() / 4) % 5 ;", - "nasmyth1CalculatedAngle": "return Math.floor(new Date().getSeconds() / 4) % 5 ;", - "nasmyth2CalculatedAngle": "return Math.floor(new Date().getSeconds() / 4) % 5 ;" - } - } - }, - "content": "HealthStatusSummary", - "properties": { - "h": 35, - "i": 1, - "w": 24, - "x": 0, - "y": 0, - "type": "component" - } - } - }, - "properties": { - "h": 2, - "i": 0, - "w": 100, - "x": 0, - "y": 0, - "cols": 100, - "type": "container", - "allowOverflow": true - } - }, - "thumbnail": "thumbnails/view_37.png" - } - }, - { - "model": "ui_framework.view", - "pk": 38, - "fields": { - "creation_timestamp": "2020-08-19T00:42:03.101Z", - "update_timestamp": "2020-08-19T00:42:29.834Z", - "name": "Dome & Mount", - "data": { - "content": { - "newPanel-1": { - "config": { - "link": "", - "title": "Dome", - "margin": true, - "titleBar": true, - "hasRawMode": true - }, - "content": "Dome", - "properties": { - "h": 48, - "i": 1, - "w": 44, - "x": 0, - "y": 0, - "type": "component" - } - }, - "newPanel-2": { - "config": { - "link": "", - "title": "ATMount motors", - "margin": true, - "titleBar": true, - "hasRawMode": true - }, - "content": "MotorTable", - "properties": { - "h": 14, - "i": 2, - "w": 55, - "x": 44, - "y": 34, - "type": "component" - } - }, - "newPanel-3": { - "config": { - "link": "", - "title": "AT Lightpath", - "margin": true, - "titleBar": true, - "lightPath": true, - "hasRawMode": true - }, - "content": "LightPath", - "properties": { - "h": 34, - "i": 3, - "w": 20, - "x": 44, - "y": 0, - "type": "component", - "allowOverflow": true - } - }, - "newPanel-4": { - "config": { - "link": "", - "title": "AT summary", - "margin": true, - "titleBar": false, - "hasRawMode": true - }, - "content": "MountSummaryPanel", - "properties": { - "h": 34, - "i": 4, - "w": 15, - "x": 66, - "y": 0, - "type": "component" - } - } - }, - "properties": { - "h": 2, - "i": 0, - "w": 100, - "x": 0, - "y": 0, - "cols": 100, - "type": "container", - "allowOverflow": true - } - }, - "thumbnail": "thumbnails/view_38.png" - } - }, - { - "model": "ui_framework.view", - "pk": 39, - "fields": { - "creation_timestamp": "2020-08-19T00:42:57.339Z", - "update_timestamp": "2020-08-19T00:42:57.339Z", - "name": "CSCSummary + CSCG", - "data": { - "content": { - "newPanel-1": { - "config": { - "link": "", - "title": "CSC summary", - "margin": true, - "titleBar": true, - "hierarchy": { - "Observatory": { - "Queue": [ - { "name": "ScriptQueue", "salindex": 1 }, - { "name": "ScriptQueue", "salindex": 2 } - ], - "Environment": [ - { "name": "DIMM", "salindex": 1 }, - { "name": "DIMM", "salindex": 2 }, - { "name": "Environment", "salindex": 1 } - ] - }, - "Aux Telescope": { - "ATTCS": [ - { "name": "ATMCS", "salindex": 0 }, - { "name": "ATPtg", "salindex": 0 }, - { "name": "ATDome", "salindex": 0 }, - { "name": "ATDomeTrajectory", "salindex": 0 }, - { "name": "ATAOS", "salindex": 0 }, - { "name": "ATPneumatics", "salindex": 0 }, - { "name": "ATHexapod", "salindex": 0 }, - { "name": "GenericCamera", "salindex": 1 } - ], - "LATISS": [ - { "name": "ATCamera", "salindex": 0 }, - { "name": "ATArchiver", "salindex": 0 }, - { "name": "ATHeaderService", "salindex": 0 }, - { "name": "ATSpectrograph", "salindex": 0 } - ], - "ATCalSys": [ - { "name": "ATMonochromator", "salindex": 0 }, - { "name": "FiberSpectrograph", "salindex": 0 }, - { "name": "ATWhiteLight", "salindex": 0 }, - { "name": "Electrometer", "salindex": 1 }, - { "name": "Electrometer", "salindex": 2 }, - { "name": "LinearStage", "salindex": 1 }, - { "name": "LinearStage", "salindex": 2 } - ] - }, - "Main Telescope": { - "CSC Group 1": [ - { "name": "Test", "salindex": 1 }, - { "name": "Test", "salindex": 2 } - ], - "CSC Group 2": [] - } - }, - "hasRawMode": true - }, - "content": "CSCSummary", - "properties": { - "h": 39, - "i": 1, - "w": 55, - "x": 0, - "y": 0, - "type": "component" - } - }, - "newPanel-2": { - "config": { - "cscs": [ - { "name": "ATMCS", "salindex": 0 }, - { "name": "ATPtg", "salindex": 0 }, - { "name": "ATDome", "salindex": 0 }, - { "name": "ATDomeTrajectory", "salindex": 0 }, - { "name": "ATAOS", "salindex": 0 }, - { "name": "ATPneumatics", "salindex": 0 }, - { "name": "ATHexapod", "salindex": 0 } - ], - "link": "", - "name": "CSC ATTCS", - "title": "CSC Aux Telescope", - "margin": true, - "titleBar": true, - "hasRawMode": false, - "_functionProps": ["subscribeToStreamCallback"], - "subscribeToStreamCallback": "() => {}" - }, - "content": "CSCGroup", - "properties": { - "h": 21, - "i": 2, - "w": 13, - "x": 56, - "y": 0, - "type": "component" - } - }, - "newPanel-3": { - "config": { - "link": "", - "group": "CSC group", - "title": "CSC group log", - "margin": true, - "cscList": [{ "name": "ATMCS", "salindex": 0 }], - "titleBar": false, - "hasRawMode": false - }, - "content": "CSCGroupLog", - "properties": { - "h": 17, - "i": 3, - "w": 24, - "x": 0, - "y": 39, - "type": "component" - } - }, - "newPanel-4": { - "config": { - "link": "", - "name": "Test", - "title": "CSC expanded", - "margin": true, - "salindex": 1, - "titleBar": false, - "hasRawMode": false, - "_functionProps": [] - }, - "content": "CSCExpanded", - "properties": { - "h": 17, - "i": 4, - "w": 22, - "x": 24, - "y": 39, - "type": "component" - } - } - }, - "properties": { - "h": 2, - "i": 0, - "w": 100, - "x": 0, - "y": 0, - "cols": 100, - "type": "container", - "allowOverflow": true - } - }, - "thumbnail": "thumbnails/view_39.png" - } - }, - { - "model": "ui_framework.view", - "pk": 40, - "fields": { - "creation_timestamp": "2020-08-19T00:44:16.660Z", - "update_timestamp": "2020-08-19T00:44:16.660Z", - "name": "Random view", - "data": { - "content": { - "newPanel-1": { - "config": { - "link": "", - "title": "Dome", - "margin": true, - "titleBar": true, - "hasRawMode": true - }, - "content": "Dome", - "properties": { - "h": 44, - "i": 1, - "w": 50, - "x": 0, - "y": 0, - "type": "component" - } - }, - "newPanel-2": { - "config": { - "link": "", - "title": "LATISS", - "margin": true, - "titleBar": true, - "hasRawMode": true - }, - "content": "LATISS", - "properties": { - "h": 29, - "i": 2, - "w": 50, - "x": 50, - "y": 0, - "type": "component" - } - }, - "newPanel-3": { - "config": { - "link": "", - "title": "ATMount motors", - "margin": true, - "titleBar": true, - "hasRawMode": true - }, - "content": "MotorTable", - "properties": { - "h": 15, - "i": 3, - "w": 49, - "x": 50, - "y": 29, - "type": "component" - } - } - }, - "properties": { - "h": 2, - "i": 0, - "w": 100, - "x": 0, - "y": 0, - "cols": 100, - "type": "container", - "allowOverflow": true - } - }, - "thumbnail": "thumbnails/view_40.png" - } - } -] diff --git a/manager/ui_framework/fixtures/initial_data_ncsa.json b/manager/ui_framework/fixtures/initial_data_ncsa.json new file mode 100644 index 00000000..efb2bf07 --- /dev/null +++ b/manager/ui_framework/fixtures/initial_data_ncsa.json @@ -0,0 +1,1677 @@ +[ + { + "model": "ui_framework.view", + "pk": 30, + "fields": { + "creation_timestamp": "2020-08-19T00:38:07.36Z", + "update_timestamp": "2020-08-19T00:38:07.36Z", + "name": "Dome-Mount test", + "data": { + "content": { + "newPanel-1": { + "config": { + "title": "ScriptQueue", + "margin": true, + "salindex": 1, + "titleBar": true + }, + "content": "ScriptQueue", + "properties": { + "h": 54, + "i": 1, + "w": 56, + "x": 0, + "y": 0, + "type": "component" + } + }, + "newPanel-2": { + "config": { + "link": "", + "name": "Script", + "title": "Script.0 Logs", + "margin": true, + "salindex": 0, + "titleBar": true, + "hasRawMode": false, + "_functionProps": [] + }, + "content": "CSCExpanded", + "properties": { + "h": 45, + "i": 2, + "w": 32, + "x": 56, + "y": 9, + "type": "component" + } + }, + "newPanel-3": { + "config": { + "cscs": [ + { + "name": "ATMCS", + "salindex": 0 + }, + { + "name": "ATDome", + "salindex": 0 + }, + { + "name": "Watcher", + "salindex": 0 + }, + { + "name": "ScriptQueue", + "salindex": 1 + } + ], + "link": "", + "name": "CSC Summary", + "title": "CSC Summary", + "margin": true, + "titleBar": false, + "hasRawMode": false, + "_functionProps": [ + "subscribeToStreamCallback" + ], + "subscribeToStreamCallback": "() => {}" + }, + "content": "CSCGroup", + "properties": { + "h": 9, + "i": 3, + "w": 25, + "x": 56, + "y": 0, + "type": "component" + } + }, + "newPanel-4": { + "config": { + "link": "", + "title": "Dome", + "margin": true, + "titleBar": true, + "hasRawMode": true + }, + "content": "Dome", + "properties": { + "h": 46, + "i": 4, + "w": 49, + "x": 0, + "y": 54, + "type": "component" + } + }, + "newPanel-5": { + "config": { + "link": "", + "title": "AT Lightpath", + "margin": true, + "titleBar": true, + "lightPath": true, + "hasRawMode": true + }, + "content": "LightPath", + "properties": { + "h": 33, + "i": 5, + "w": 20, + "x": 49, + "y": 54, + "type": "component", + "allowOverflow": true + } + }, + "newPanel-6": { + "config": { + "link": "", + "title": "AT summary", + "margin": true, + "titleBar": true, + "hasRawMode": true + }, + "content": "MountSummaryPanel", + "properties": { + "h": 26, + "i": 6, + "w": 19, + "x": 69, + "y": 54, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "thumbnails/view_1.png" + } + }, + { + "model": "ui_framework.view", + "pk": 31, + "fields": { + "creation_timestamp": "2020-08-19T00:38:09.319Z", + "update_timestamp": "2020-08-19T00:38:09.319Z", + "name": "WeatherStation", + "data": { + "content": { + "newPanel-1": { + "config": { + "link": "", + "title": "Weather station component", + "margin": true, + "salindex": 1, + "titleBar": true, + "hasRawMode": false + }, + "content": "WeatherStation", + "properties": { + "h": 57, + "i": 1, + "w": 56, + "x": 0, + "y": 0, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "thumbnails/view_31.png" + } + }, + { + "model": "ui_framework.view", + "pk": 33, + "fields": { + "creation_timestamp": "2020-08-19T00:39:09.619Z", + "update_timestamp": "2020-08-19T00:39:09.619Z", + "name": "Watcher + ObsLogs", + "data": { + "content": { + "newPanel-1": { + "config": { + "link": "", + "title": "Watcher", + "margin": true, + "titleBar": true, + "hasRawMode": true + }, + "content": "Watcher", + "properties": { + "h": 52, + "i": 1, + "w": 50, + "x": 0, + "y": 0, + "type": "component" + } + }, + "newPanel-2": { + "config": { + "link": "", + "title": "Observing log", + "margin": true, + "titleBar": true, + "hasRawMode": true + }, + "content": "ObservingLogMessages", + "properties": { + "h": 52, + "i": 2, + "w": 20, + "x": 50, + "y": 0, + "type": "component" + } + }, + "newPanel-3": { + "config": { + "link": "", + "title": "Observing log input", + "margin": true, + "titleBar": true, + "hasRawMode": true + }, + "content": "ObservingLogInput", + "properties": { + "h": 25, + "i": 3, + "w": 21, + "x": 70, + "y": 0, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "thumbnails/view_33.png" + } + }, + { + "model": "ui_framework.view", + "pk": 34, + "fields": { + "creation_timestamp": "2020-08-19T00:39:44.681Z", + "update_timestamp": "2020-08-19T00:39:44.681Z", + "name": "TimeDisplay", + "data": { + "content": { + "newPanel-1": { + "config": { + "title": "TimeDisplay", + "locale": "en-GB", + "margin": true, + "titleBar": true, + "clocks_layout": [ + [ + { + "name": "Local Time", + "hideDate": false, + "timezone": "local", + "hideAnalog": false, + "hideOffset": false + }, + { + "name": "Sidereal Time", + "hideDate": true, + "timezone": "sidereal-summit", + "hideAnalog": false, + "hideOffset": false + } + ], + [ + [ + { + "name": "La Serena", + "hideDate": false, + "timezone": "America/Santiago", + "hideAnalog": true, + "hideOffset": false + }, + { + "name": "Arizona", + "hideDate": false, + "timezone": "America/Phoenix", + "hideAnalog": true, + "hideOffset": false + }, + { + "name": "Illinois", + "hideDate": false, + "timezone": "America/Chicago", + "hideAnalog": true, + "hideOffset": false + } + ], + [ + { + "name": "Universal Time", + "hideDate": false, + "timezone": "UTC", + "hideAnalog": true, + "hideOffset": false + }, + { + "name": "International Atomic Time", + "hideDate": false, + "timezone": "TAI", + "hideAnalog": true, + "hideOffset": false + }, + { + "name": "Modified Julian Date", + "hideDate": false, + "timezone": "MJD", + "hideAnalog": true, + "hideOffset": false + } + ] + ] + ] + }, + "content": "TimeDisplay", + "properties": { + "h": 16, + "i": 1, + "w": 45, + "x": 0, + "y": 0, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "thumbnails/view_28.png" + } + }, + { + "model": "ui_framework.view", + "pk": 35, + "fields": { + "creation_timestamp": "2020-08-19T00:40:10.493Z", + "update_timestamp": "2020-08-19T00:40:28.975Z", + "name": "Network + Scheduler", + "data": { + "content": { + "newPanel-6": { + "config": { + "url": "https://dashboard.ampath.net/maddash-webui/index.cgi", + "link": "", + "title": "Network component", + "margin": true, + "titleBar": true, + "hasRawMode": false + }, + "content": "Network", + "properties": { + "h": 61, + "i": 6, + "w": 40, + "x": 0, + "y": 0, + "type": "component" + } + }, + "newPanel-7": { + "config": { + "link": "", + "title": "Scheduler", + "margin": true, + "feedKey": "allSky", + "titleBar": true, + "hasRawMode": true + }, + "content": "Scheduler", + "properties": { + "h": 45, + "i": 7, + "w": 52, + "x": 40, + "y": 0, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "thumbnails/view_35.png" + } + }, + { + "model": "ui_framework.view", + "pk": 36, + "fields": { + "creation_timestamp": "2020-08-19T00:40:57.108Z", + "update_timestamp": "2020-08-19T00:40:57.108Z", + "name": "LATISS + Camera", + "data": { + "content": { + "newPanel-1": { + "config": { + "link": "", + "title": "LATISS", + "margin": true, + "titleBar": true, + "hasRawMode": true + }, + "content": "LATISS", + "properties": { + "h": 33, + "i": 1, + "w": 49, + "x": 0, + "y": 12, + "type": "component" + } + }, + "newPanel-2": { + "config": { + "link": "", + "title": "Camera", + "margin": true, + "titleBar": true, + "hasRawMode": true + }, + "content": "Camera", + "properties": { + "h": 12, + "i": 2, + "w": 49, + "x": 0, + "y": 0, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "thumbnails/view_25.png" + } + }, + { + "model": "ui_framework.view", + "pk": 37, + "fields": { + "creation_timestamp": "2020-08-19T00:41:33.17Z", + "update_timestamp": "2020-08-19T00:41:33.17Z", + "name": "HealthStatusSummary", + "data": { + "content": { + "newPanel-1": { + "config": { + "link": "", + "title": "Health status summary", + "margin": true, + "titleBar": true, + "hasRawMode": true, + "topicConfiguration": { + "telemetry-ATDome-0-position": { + "azimuthPosition": "return Math.floor(new Date().getSeconds() / 4) % 5 ;", + "azimuthEncoderPosition": "return Math.floor(new Date().getSeconds() / 4) % 5 ;", + "mainDoorOpeningPercentage": "return Math.floor(new Date().getSeconds() / 4) % 5 ;", + "dropoutDoorOpeningPercentage": "return Math.floor(new Date().getSeconds() / 4) % 5 ;" + }, + "telemetry-ATMCS-0-mount_AzEl_Encoders": { + "cRIO_timestamp": "return Math.floor(new Date().getSeconds() / 4) % 5 ;", + "elevationCalculatedAngle": "return Math.floor(new Date().getSeconds() / 4) % 5 ;" + }, + "telemetry-ATMCS-0-mount_Nasmyth_Encoders": { + "trackId": "return Math.floor(new Date().getSeconds() / 4) % 5 ;", + "nasmyth1Encoder1Raw": "return Math.floor(new Date().getSeconds() / 4) % 5 ;", + "nasmyth1Encoder2Raw": "return Math.floor(new Date().getSeconds() / 4) % 5 ;", + "nasmyth1Encoder3Raw": "return Math.floor(new Date().getSeconds() / 4) % 5 ;", + "nasmyth2Encoder1Raw": "return Math.floor(new Date().getSeconds() / 4) % 5 ;", + "nasmyth2Encoder2Raw": "return Math.floor(new Date().getSeconds() / 4) % 5 ;", + "nasmyth2Encoder3Raw": "return Math.floor(new Date().getSeconds() / 4) % 5 ;", + "nasmyth1CalculatedAngle": "return Math.floor(new Date().getSeconds() / 4) % 5 ;", + "nasmyth2CalculatedAngle": "return Math.floor(new Date().getSeconds() / 4) % 5 ;" + } + } + }, + "content": "HealthStatusSummary", + "properties": { + "h": 35, + "i": 1, + "w": 24, + "x": 0, + "y": 0, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "thumbnails/view_37.png" + } + }, + { + "model": "ui_framework.view", + "pk": 38, + "fields": { + "creation_timestamp": "2020-08-19T00:42:03.101Z", + "update_timestamp": "2020-08-19T00:42:29.834Z", + "name": "Dome & Mount", + "data": { + "content": { + "newPanel-1": { + "config": { + "link": "", + "title": "Dome", + "margin": true, + "titleBar": true, + "hasRawMode": true + }, + "content": "Dome", + "properties": { + "h": 48, + "i": 1, + "w": 44, + "x": 0, + "y": 0, + "type": "component" + } + }, + "newPanel-2": { + "config": { + "link": "", + "title": "ATMount motors", + "margin": true, + "titleBar": true, + "hasRawMode": true + }, + "content": "MotorTable", + "properties": { + "h": 14, + "i": 2, + "w": 55, + "x": 44, + "y": 34, + "type": "component" + } + }, + "newPanel-3": { + "config": { + "link": "", + "title": "AT Lightpath", + "margin": true, + "titleBar": true, + "lightPath": true, + "hasRawMode": true + }, + "content": "LightPath", + "properties": { + "h": 34, + "i": 3, + "w": 20, + "x": 44, + "y": 0, + "type": "component", + "allowOverflow": true + } + }, + "newPanel-4": { + "config": { + "link": "", + "title": "AT summary", + "margin": true, + "titleBar": false, + "hasRawMode": true + }, + "content": "MountSummaryPanel", + "properties": { + "h": 34, + "i": 4, + "w": 15, + "x": 66, + "y": 0, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "thumbnails/view_38.png" + } + }, + { + "model": "ui_framework.view", + "pk": 39, + "fields": { + "creation_timestamp": "2020-08-19T00:42:57.339Z", + "update_timestamp": "2020-08-19T00:42:57.339Z", + "name": "CSCSummary + CSCG", + "data": { + "content": { + "newPanel-1": { + "config": { + "link": "", + "title": "CSC summary", + "margin": true, + "titleBar": true, + "hierarchy": { + "Observatory": { + "Queue": [ + { + "name": "ScriptQueue", + "salindex": 1 + }, + { + "name": "ScriptQueue", + "salindex": 2 + } + ], + "Environment": [ + { + "name": "DIMM", + "salindex": 1 + }, + { + "name": "DIMM", + "salindex": 2 + }, + { + "name": "Environment", + "salindex": 1 + } + ] + }, + "Aux Telescope": { + "ATTCS": [ + { + "name": "ATMCS", + "salindex": 0 + }, + { + "name": "ATPtg", + "salindex": 0 + }, + { + "name": "ATDome", + "salindex": 0 + }, + { + "name": "ATDomeTrajectory", + "salindex": 0 + }, + { + "name": "ATAOS", + "salindex": 0 + }, + { + "name": "ATPneumatics", + "salindex": 0 + }, + { + "name": "ATHexapod", + "salindex": 0 + }, + { + "name": "GenericCamera", + "salindex": 1 + } + ], + "LATISS": [ + { + "name": "ATCamera", + "salindex": 0 + }, + { + "name": "ATArchiver", + "salindex": 0 + }, + { + "name": "ATHeaderService", + "salindex": 0 + }, + { + "name": "ATSpectrograph", + "salindex": 0 + } + ], + "ATCalSys": [ + { + "name": "ATMonochromator", + "salindex": 0 + }, + { + "name": "FiberSpectrograph", + "salindex": 0 + }, + { + "name": "ATWhiteLight", + "salindex": 0 + }, + { + "name": "Electrometer", + "salindex": 1 + }, + { + "name": "Electrometer", + "salindex": 2 + }, + { + "name": "LinearStage", + "salindex": 1 + }, + { + "name": "LinearStage", + "salindex": 2 + } + ] + }, + "Main Telescope": { + "CSC Group 1": [ + { + "name": "Test", + "salindex": 1 + }, + { + "name": "Test", + "salindex": 2 + } + ], + "CSC Group 2": [] + } + }, + "hasRawMode": true + }, + "content": "CSCSummary", + "properties": { + "h": 39, + "i": 1, + "w": 55, + "x": 0, + "y": 0, + "type": "component" + } + }, + "newPanel-2": { + "config": { + "cscs": [ + { + "name": "ATMCS", + "salindex": 0 + }, + { + "name": "ATPtg", + "salindex": 0 + }, + { + "name": "ATDome", + "salindex": 0 + }, + { + "name": "ATDomeTrajectory", + "salindex": 0 + }, + { + "name": "ATAOS", + "salindex": 0 + }, + { + "name": "ATPneumatics", + "salindex": 0 + }, + { + "name": "ATHexapod", + "salindex": 0 + } + ], + "link": "", + "name": "CSC ATTCS", + "title": "CSC Aux Telescope", + "margin": true, + "titleBar": true, + "hasRawMode": false, + "_functionProps": [ + "subscribeToStreamCallback" + ], + "subscribeToStreamCallback": "() => {}" + }, + "content": "CSCGroup", + "properties": { + "h": 21, + "i": 2, + "w": 13, + "x": 56, + "y": 0, + "type": "component" + } + }, + "newPanel-3": { + "config": { + "link": "", + "group": "CSC group", + "title": "CSC group log", + "margin": true, + "cscList": [ + { + "name": "ATMCS", + "salindex": 0 + } + ], + "titleBar": false, + "hasRawMode": false + }, + "content": "CSCGroupLog", + "properties": { + "h": 17, + "i": 3, + "w": 24, + "x": 0, + "y": 39, + "type": "component" + } + }, + "newPanel-4": { + "config": { + "link": "", + "name": "Test", + "title": "CSC expanded", + "margin": true, + "salindex": 1, + "titleBar": false, + "hasRawMode": false, + "_functionProps": [] + }, + "content": "CSCExpanded", + "properties": { + "h": 17, + "i": 4, + "w": 22, + "x": 24, + "y": 39, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "thumbnails/view_39.png" + } + }, + { + "model": "ui_framework.view", + "pk": 40, + "fields": { + "creation_timestamp": "2020-08-19T00:44:16.66Z", + "update_timestamp": "2020-08-19T00:44:16.66Z", + "name": "Random view", + "data": { + "content": { + "newPanel-1": { + "config": { + "link": "", + "title": "Dome", + "margin": true, + "titleBar": true, + "hasRawMode": true + }, + "content": "Dome", + "properties": { + "h": 44, + "i": 1, + "w": 50, + "x": 0, + "y": 0, + "type": "component" + } + }, + "newPanel-2": { + "config": { + "link": "", + "title": "LATISS", + "margin": true, + "titleBar": true, + "hasRawMode": true + }, + "content": "LATISS", + "properties": { + "h": 29, + "i": 2, + "w": 50, + "x": 50, + "y": 0, + "type": "component" + } + }, + "newPanel-3": { + "config": { + "link": "", + "title": "ATMount motors", + "margin": true, + "titleBar": true, + "hasRawMode": true + }, + "content": "MotorTable", + "properties": { + "h": 15, + "i": 3, + "w": 49, + "x": 50, + "y": 29, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "thumbnails/view_40.png" + } + }, + { + "model": "ui_framework.view", + "pk": 41, + "fields": { + "creation_timestamp": "2021-02-11T01:12:04.163855Z", + "update_timestamp": "2021-02-11T07:21:55.504507Z", + "name": "MTQueue", + "data": { + "content": { + "newPanel-1": { + "config": { + "link": "", + "title": "MT Queue", + "margin": true, + "salindex": 1, + "titleBar": true, + "hasRawMode": true + }, + "content": "ScriptQueue", + "properties": { + "h": 38, + "i": 1, + "w": 100, + "x": 0, + "y": 0, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "thumbnails/view_43.png" + } + }, + { + "model": "ui_framework.view", + "pk": 42, + "fields": { + "creation_timestamp": "2021-02-11T06:31:47.681063Z", + "update_timestamp": "2021-10-06T07:45:02.373299Z", + "name": "ATQueue", + "data": { + "content": { + "newPanel-1": { + "config": { + "link": "", + "title": "AT queue", + "margin": true, + "salindex": 2, + "titleBar": true, + "hasRawMode": true + }, + "content": "ScriptQueue", + "properties": { + "h": 47, + "i": 1, + "w": 96, + "x": 0, + "y": 0, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "thumbnails/view_41.png" + } + }, + { + "model": "ui_framework.view", + "pk": 43, + "fields": { + "creation_timestamp": "2021-02-11T07:26:03.945541Z", + "update_timestamp": "2021-12-01T18:19:01.616135Z", + "name": "Summary State", + "data": { + "content": { + "newPanel-1": { + "config": { + "link": "", + "title": "CSC summary", + "margin": true, + "titleBar": true, + "hierarchy": { + "OCS": { + "EAS": [ + { + "name": "WeatherStation", + "salindex": 1 + }, + { + "name": "DIMM", + "salindex": 1 + }, + { + "name": "DIMM", + "salindex": 2 + }, + { + "name": "DSM", + "salindex": 1 + }, + { + "name": "DSM", + "salindex": 2 + } + ], + "Ops": [ + { + "name": "ScriptQueue", + "salindex": 1 + }, + { + "name": "ScriptQueue", + "salindex": 2 + }, + { + "name": "Watcher", + "salindex": 0 + }, + { + "name": "Scheduler", + "salindex": 1 + }, + { + "name": "Scheduler", + "salindex": 2 + }, + { + "name": "OCPS", + "salindex": 1 + }, + { + "name": "OCPS", + "salindex": 2 + } + ] + }, + "Aux Tel": { + "ATCS": [ + { + "name": "ATMCS", + "salindex": 0 + }, + { + "name": "ATPtg", + "salindex": 0 + }, + { + "name": "ATDome", + "salindex": 0 + }, + { + "name": "ATDomeTrajectory", + "salindex": 0 + }, + { + "name": "ATAOS", + "salindex": 0 + }, + { + "name": "ATPneumatics", + "salindex": 0 + }, + { + "name": "ATHexapod", + "salindex": 0 + } + ], + "LATISS": [ + { + "name": "ATCamera", + "salindex": 0 + }, + { + "name": "ATArchiver", + "salindex": 0 + }, + { + "name": "ATHeaderService", + "salindex": 0 + }, + { + "name": "ATSpectrograph", + "salindex": 0 + } + ] + }, + "Main Tel": { + "MTCS": [ + { + "name": "MTMount", + "salindex": 0 + }, + { + "name": "MTPtg", + "salindex": 0 + }, + { + "name": "MTAOS", + "salindex": 0 + }, + { + "name": "MTM1M3", + "salindex": 0 + }, + { + "name": "MTM2", + "salindex": 0 + }, + { + "name": "MTHexapod", + "salindex": 1 + }, + { + "name": "MTHexapod", + "salindex": 2 + }, + { + "name": "MTRotator", + "salindex": 0 + }, + { + "name": "MTDome", + "salindex": 0 + }, + { + "name": "MTDomeTrajectory", + "salindex": 0 + } + ], + "ComCam": [ + { + "name": "CCCamera", + "salindex": 0 + }, + { + "name": "CCArchiver", + "salindex": 0 + }, + { + "name": "CCHeaderService", + "salindex": 0 + } + ] + } + }, + "hasRawMode": true + }, + "content": "CSCSummary", + "properties": { + "h": 46, + "i": 1, + "w": 88, + "x": 0, + "y": 0, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "" + } + }, + { + "model": "ui_framework.view", + "pk": 44, + "fields": { + "creation_timestamp": "2021-03-25T23:08:31.222195Z", + "update_timestamp": "2021-03-25T23:09:14.249164Z", + "name": "M1M3", + "data": { + "content": { + "newPanel-1": { + "config": { + "link": "", + "title": "M1M3", + "margin": true, + "titleBar": true, + "hasRawMode": true + }, + "content": "M1M3", + "properties": { + "h": 32, + "i": 1, + "w": 61, + "x": 0, + "y": 0, + "type": "component" + } + }, + "newPanel-2": { + "config": { + "link": "", + "title": "CableWraps", + "margin": true, + "titleBar": true, + "hasRawMode": true + }, + "content": "CableWraps", + "properties": { + "h": 26, + "i": 2, + "w": 72, + "x": 0, + "y": 32, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "" + } + }, + { + "model": "ui_framework.view", + "pk": 45, + "fields": { + "creation_timestamp": "2021-05-11T16:29:21.459542Z", + "update_timestamp": "2021-05-11T16:29:21.45961Z", + "name": "LSSTCam Image Viewer", + "data": { + "content": { + "newPanel-1": { + "config": { + "url": "http://ccs.lsst.org/FITSInfo/view.html?image=AT_O_20210414_000002&raft=R00&color=grey", + "link": "", + "title": "Embedded view", + "margin": true, + "titleBar": true, + "hasRawMode": false + }, + "content": "EmbeddedView", + "properties": { + "h": 34, + "i": 1, + "w": 76, + "x": 0, + "y": 0, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "" + } + }, + { + "model": "ui_framework.view", + "pk": 46, + "fields": { + "creation_timestamp": "2021-06-23T15:30:57.799908Z", + "update_timestamp": "2021-06-23T18:08:22.118247Z", + "name": "test", + "data": { + "content": { + "newPanel-1": { + "config": { + "link": "", + "name": "ATAOS", + "title": "CSC details", + "margin": false, + "salindex": 0, + "titleBar": false, + "hasRawMode": false, + "hasHeartbeat": true, + "_functionProps": [] + }, + "content": "CSCDetail", + "properties": { + "h": 2, + "i": 1, + "w": 8, + "x": 0, + "y": null, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "" + } + }, + { + "model": "ui_framework.view", + "pk": 47, + "fields": { + "creation_timestamp": "2021-08-26T15:14:20.690173Z", + "update_timestamp": "2021-08-26T15:28:34.082695Z", + "name": "CCW", + "data": { + "content": { + "newPanel-1": { + "config": { + "link": "", + "title": "CableWraps", + "margin": true, + "titleBar": true, + "hasRawMode": true + }, + "content": "CableWraps", + "properties": { + "h": 27, + "i": 1, + "w": 47, + "x": 0, + "y": 0, + "type": "component" + } + }, + "newPanel-2": { + "config": { + "cscs": [ + { + "name": "MTMount", + "salindex": 0 + }, + { + "name": "MTRotator", + "salindex": 0 + } + ], + "link": "", + "name": "CSC group", + "title": "CSC group", + "margin": true, + "titleBar": false, + "hasRawMode": false, + "_functionProps": [ + "subscribeToStreamCallback" + ], + "subscribeToStreamCallback": "() => {}" + }, + "content": "CSCGroup", + "properties": { + "h": 8, + "i": 2, + "w": 47, + "x": 0, + "y": 27, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "" + } + }, + { + "model": "ui_framework.view", + "pk": 48, + "fields": { + "creation_timestamp": "2021-09-09T21:14:29.257159Z", + "update_timestamp": "2021-09-09T21:14:29.257298Z", + "name": "ATCS", + "data": { + "content": { + "newPanel-1": { + "config": { + "link": "", + "title": "TCS Commands", + "margin": true, + "titleBar": true, + "hasRawMode": false, + "scriptQueueIndex": 1 + }, + "content": "TCSCommands", + "properties": { + "h": 35, + "i": 1, + "w": 57, + "x": 0, + "y": null, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "" + } + }, + { + "model": "ui_framework.view", + "pk": 50, + "fields": { + "creation_timestamp": "2021-10-29T22:31:23.261491Z", + "update_timestamp": "2021-10-29T22:44:39.165455Z", + "name": "AT", + "data": { + "content": { + "newPanel-2": { + "config": { + "link": "", + "title": "Dome", + "margin": true, + "controls": true, + "titleBar": true, + "hasRawMode": true + }, + "content": "Dome", + "properties": { + "h": 46, + "i": 2, + "w": 60, + "x": 0, + "y": 19, + "type": "component" + } + }, + "newPanel-3": { + "config": { + "cscs": [ + { + "name": "ATMCS", + "salindex": 0 + }, + { + "name": "ATPtg", + "salindex": 0 + }, + { + "name": "ATDome", + "salindex": 0 + }, + { + "name": "ATDomeTrajectory", + "salindex": 0 + }, + { + "name": "ATAOS", + "salindex": 0 + }, + { + "name": "ATPneumatics", + "salindex": 0 + }, + { + "name": "ATHexapod", + "salindex": 0 + }, + { + "name": "Scheduler", + "salindex": 2 + } + ], + "link": "", + "name": "CSC group", + "title": "CSC group", + "margin": true, + "titleBar": false, + "hasRawMode": false, + "_functionProps": [ + "subscribeToStreamCallback" + ], + "subscribeToStreamCallback": "() => {}" + }, + "content": "CSCGroup", + "properties": { + "h": 19, + "i": 3, + "w": 60, + "x": 0, + "y": 0, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "" + } + } +] diff --git a/manager/ui_framework/fixtures/initial_data_summit.json b/manager/ui_framework/fixtures/initial_data_summit.json new file mode 100644 index 00000000..fd08c300 --- /dev/null +++ b/manager/ui_framework/fixtures/initial_data_summit.json @@ -0,0 +1,2279 @@ +[ + { + "model": "ui_framework.view", + "pk": 30, + "fields": { + "creation_timestamp": "2020-08-19T00:38:07.36Z", + "update_timestamp": "2020-08-19T00:38:07.36Z", + "name": "Dome-Mount test", + "data": { + "content": { + "newPanel-1": { + "config": { + "title": "ScriptQueue", + "margin": true, + "salindex": 1, + "titleBar": true + }, + "content": "ScriptQueue", + "properties": { + "h": 54, + "i": 1, + "w": 56, + "x": 0, + "y": 0, + "type": "component" + } + }, + "newPanel-2": { + "config": { + "link": "", + "name": "Script", + "title": "Script.0 Logs", + "margin": true, + "salindex": 0, + "titleBar": true, + "hasRawMode": false, + "_functionProps": [] + }, + "content": "CSCExpanded", + "properties": { + "h": 45, + "i": 2, + "w": 32, + "x": 56, + "y": 9, + "type": "component" + } + }, + "newPanel-3": { + "config": { + "cscs": [ + { + "name": "ATMCS", + "salindex": 0 + }, + { + "name": "ATDome", + "salindex": 0 + }, + { + "name": "Watcher", + "salindex": 0 + }, + { + "name": "ScriptQueue", + "salindex": 1 + } + ], + "link": "", + "name": "CSC Summary", + "title": "CSC Summary", + "margin": true, + "titleBar": false, + "hasRawMode": false, + "_functionProps": [ + "subscribeToStreamCallback" + ], + "subscribeToStreamCallback": "() => {}" + }, + "content": "CSCGroup", + "properties": { + "h": 9, + "i": 3, + "w": 25, + "x": 56, + "y": 0, + "type": "component" + } + }, + "newPanel-4": { + "config": { + "link": "", + "title": "Dome", + "margin": true, + "titleBar": true, + "hasRawMode": true + }, + "content": "Dome", + "properties": { + "h": 46, + "i": 4, + "w": 49, + "x": 0, + "y": 54, + "type": "component" + } + }, + "newPanel-5": { + "config": { + "link": "", + "title": "AT Lightpath", + "margin": true, + "titleBar": true, + "lightPath": true, + "hasRawMode": true + }, + "content": "LightPath", + "properties": { + "h": 33, + "i": 5, + "w": 20, + "x": 49, + "y": 54, + "type": "component", + "allowOverflow": true + } + }, + "newPanel-6": { + "config": { + "link": "", + "title": "AT summary", + "margin": true, + "titleBar": true, + "hasRawMode": true + }, + "content": "MountSummaryPanel", + "properties": { + "h": 26, + "i": 6, + "w": 19, + "x": 69, + "y": 54, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "thumbnails/view_1.png" + } + }, + { + "model": "ui_framework.view", + "pk": 31, + "fields": { + "creation_timestamp": "2020-08-19T00:38:09.319Z", + "update_timestamp": "2020-08-19T00:38:09.319Z", + "name": "WeatherStation", + "data": { + "content": { + "newPanel-1": { + "config": { + "link": "", + "title": "Weather station component", + "margin": true, + "salindex": 1, + "titleBar": true, + "hasRawMode": false + }, + "content": "WeatherStation", + "properties": { + "h": 57, + "i": 1, + "w": 56, + "x": 0, + "y": 0, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "thumbnails/view_31.png" + } + }, + { + "model": "ui_framework.view", + "pk": 33, + "fields": { + "creation_timestamp": "2020-08-19T00:39:09.619Z", + "update_timestamp": "2020-08-19T00:39:09.619Z", + "name": "Watcher + ObsLogs", + "data": { + "content": { + "newPanel-1": { + "config": { + "link": "", + "title": "Watcher", + "margin": true, + "titleBar": true, + "hasRawMode": true + }, + "content": "Watcher", + "properties": { + "h": 52, + "i": 1, + "w": 50, + "x": 0, + "y": 0, + "type": "component" + } + }, + "newPanel-2": { + "config": { + "link": "", + "title": "Observing log", + "margin": true, + "titleBar": true, + "hasRawMode": true + }, + "content": "ObservingLogMessages", + "properties": { + "h": 52, + "i": 2, + "w": 20, + "x": 50, + "y": 0, + "type": "component" + } + }, + "newPanel-3": { + "config": { + "link": "", + "title": "Observing log input", + "margin": true, + "titleBar": true, + "hasRawMode": true + }, + "content": "ObservingLogInput", + "properties": { + "h": 25, + "i": 3, + "w": 21, + "x": 70, + "y": 0, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "thumbnails/view_33.png" + } + }, + { + "model": "ui_framework.view", + "pk": 34, + "fields": { + "creation_timestamp": "2020-08-19T00:39:44.681Z", + "update_timestamp": "2020-08-19T00:39:44.681Z", + "name": "TimeDisplay", + "data": { + "content": { + "newPanel-1": { + "config": { + "title": "TimeDisplay", + "locale": "en-GB", + "margin": true, + "titleBar": true, + "clocks_layout": [ + [ + { + "name": "Local Time", + "hideDate": false, + "timezone": "local", + "hideAnalog": false, + "hideOffset": false + }, + { + "name": "Sidereal Time", + "hideDate": true, + "timezone": "sidereal-summit", + "hideAnalog": false, + "hideOffset": false + } + ], + [ + [ + { + "name": "La Serena", + "hideDate": false, + "timezone": "America/Santiago", + "hideAnalog": true, + "hideOffset": false + }, + { + "name": "Arizona", + "hideDate": false, + "timezone": "America/Phoenix", + "hideAnalog": true, + "hideOffset": false + }, + { + "name": "Illinois", + "hideDate": false, + "timezone": "America/Chicago", + "hideAnalog": true, + "hideOffset": false + } + ], + [ + { + "name": "Universal Time", + "hideDate": false, + "timezone": "UTC", + "hideAnalog": true, + "hideOffset": false + }, + { + "name": "International Atomic Time", + "hideDate": false, + "timezone": "TAI", + "hideAnalog": true, + "hideOffset": false + }, + { + "name": "Modified Julian Date", + "hideDate": false, + "timezone": "MJD", + "hideAnalog": true, + "hideOffset": false + } + ] + ] + ] + }, + "content": "TimeDisplay", + "properties": { + "h": 16, + "i": 1, + "w": 45, + "x": 0, + "y": 0, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "thumbnails/view_28.png" + } + }, + { + "model": "ui_framework.view", + "pk": 35, + "fields": { + "creation_timestamp": "2020-08-19T00:40:10.493Z", + "update_timestamp": "2020-08-19T00:40:28.975Z", + "name": "Network + Scheduler", + "data": { + "content": { + "newPanel-6": { + "config": { + "url": "https://dashboard.ampath.net/maddash-webui/index.cgi", + "link": "", + "title": "Network component", + "margin": true, + "titleBar": true, + "hasRawMode": false + }, + "content": "Network", + "properties": { + "h": 61, + "i": 6, + "w": 40, + "x": 0, + "y": 0, + "type": "component" + } + }, + "newPanel-7": { + "config": { + "link": "", + "title": "Scheduler", + "margin": true, + "feedKey": "allSky", + "titleBar": true, + "hasRawMode": true + }, + "content": "Scheduler", + "properties": { + "h": 45, + "i": 7, + "w": 52, + "x": 40, + "y": 0, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "thumbnails/view_35.png" + } + }, + { + "model": "ui_framework.view", + "pk": 36, + "fields": { + "creation_timestamp": "2020-08-19T00:40:57.108Z", + "update_timestamp": "2020-08-19T00:40:57.108Z", + "name": "LATISS + Camera", + "data": { + "content": { + "newPanel-1": { + "config": { + "link": "", + "title": "LATISS", + "margin": true, + "titleBar": true, + "hasRawMode": true + }, + "content": "LATISS", + "properties": { + "h": 33, + "i": 1, + "w": 49, + "x": 0, + "y": 12, + "type": "component" + } + }, + "newPanel-2": { + "config": { + "link": "", + "title": "Camera", + "margin": true, + "titleBar": true, + "hasRawMode": true + }, + "content": "Camera", + "properties": { + "h": 12, + "i": 2, + "w": 49, + "x": 0, + "y": 0, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "thumbnails/view_25.png" + } + }, + { + "model": "ui_framework.view", + "pk": 37, + "fields": { + "creation_timestamp": "2020-08-19T00:41:33.17Z", + "update_timestamp": "2020-08-19T00:41:33.17Z", + "name": "HealthStatusSummary", + "data": { + "content": { + "newPanel-1": { + "config": { + "link": "", + "title": "Health status summary", + "margin": true, + "titleBar": true, + "hasRawMode": true, + "topicConfiguration": { + "telemetry-ATDome-0-position": { + "azimuthPosition": "return Math.floor(new Date().getSeconds() / 4) % 5 ;", + "azimuthEncoderPosition": "return Math.floor(new Date().getSeconds() / 4) % 5 ;", + "mainDoorOpeningPercentage": "return Math.floor(new Date().getSeconds() / 4) % 5 ;", + "dropoutDoorOpeningPercentage": "return Math.floor(new Date().getSeconds() / 4) % 5 ;" + }, + "telemetry-ATMCS-0-mount_AzEl_Encoders": { + "cRIO_timestamp": "return Math.floor(new Date().getSeconds() / 4) % 5 ;", + "elevationCalculatedAngle": "return Math.floor(new Date().getSeconds() / 4) % 5 ;" + }, + "telemetry-ATMCS-0-mount_Nasmyth_Encoders": { + "trackId": "return Math.floor(new Date().getSeconds() / 4) % 5 ;", + "nasmyth1Encoder1Raw": "return Math.floor(new Date().getSeconds() / 4) % 5 ;", + "nasmyth1Encoder2Raw": "return Math.floor(new Date().getSeconds() / 4) % 5 ;", + "nasmyth1Encoder3Raw": "return Math.floor(new Date().getSeconds() / 4) % 5 ;", + "nasmyth2Encoder1Raw": "return Math.floor(new Date().getSeconds() / 4) % 5 ;", + "nasmyth2Encoder2Raw": "return Math.floor(new Date().getSeconds() / 4) % 5 ;", + "nasmyth2Encoder3Raw": "return Math.floor(new Date().getSeconds() / 4) % 5 ;", + "nasmyth1CalculatedAngle": "return Math.floor(new Date().getSeconds() / 4) % 5 ;", + "nasmyth2CalculatedAngle": "return Math.floor(new Date().getSeconds() / 4) % 5 ;" + } + } + }, + "content": "HealthStatusSummary", + "properties": { + "h": 35, + "i": 1, + "w": 24, + "x": 0, + "y": 0, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "thumbnails/view_37.png" + } + }, + { + "model": "ui_framework.view", + "pk": 38, + "fields": { + "creation_timestamp": "2020-08-19T00:42:03.101Z", + "update_timestamp": "2020-08-19T00:42:29.834Z", + "name": "Dome & Mount", + "data": { + "content": { + "newPanel-1": { + "config": { + "link": "", + "title": "Dome", + "margin": true, + "titleBar": true, + "hasRawMode": true + }, + "content": "Dome", + "properties": { + "h": 48, + "i": 1, + "w": 44, + "x": 0, + "y": 0, + "type": "component" + } + }, + "newPanel-2": { + "config": { + "link": "", + "title": "ATMount motors", + "margin": true, + "titleBar": true, + "hasRawMode": true + }, + "content": "MotorTable", + "properties": { + "h": 14, + "i": 2, + "w": 55, + "x": 44, + "y": 34, + "type": "component" + } + }, + "newPanel-3": { + "config": { + "link": "", + "title": "AT Lightpath", + "margin": true, + "titleBar": true, + "lightPath": true, + "hasRawMode": true + }, + "content": "LightPath", + "properties": { + "h": 34, + "i": 3, + "w": 20, + "x": 44, + "y": 0, + "type": "component", + "allowOverflow": true + } + }, + "newPanel-4": { + "config": { + "link": "", + "title": "AT summary", + "margin": true, + "titleBar": false, + "hasRawMode": true + }, + "content": "MountSummaryPanel", + "properties": { + "h": 34, + "i": 4, + "w": 15, + "x": 66, + "y": 0, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "thumbnails/view_38.png" + } + }, + { + "model": "ui_framework.view", + "pk": 39, + "fields": { + "creation_timestamp": "2020-08-19T00:42:57.339Z", + "update_timestamp": "2020-08-19T00:42:57.339Z", + "name": "CSCSummary + CSCG", + "data": { + "content": { + "newPanel-1": { + "config": { + "link": "", + "title": "CSC summary", + "margin": true, + "titleBar": true, + "hierarchy": { + "Observatory": { + "Queue": [ + { + "name": "ScriptQueue", + "salindex": 1 + }, + { + "name": "ScriptQueue", + "salindex": 2 + } + ], + "Environment": [ + { + "name": "DIMM", + "salindex": 1 + }, + { + "name": "DIMM", + "salindex": 2 + }, + { + "name": "Environment", + "salindex": 1 + } + ] + }, + "Aux Telescope": { + "ATTCS": [ + { + "name": "ATMCS", + "salindex": 0 + }, + { + "name": "ATPtg", + "salindex": 0 + }, + { + "name": "ATDome", + "salindex": 0 + }, + { + "name": "ATDomeTrajectory", + "salindex": 0 + }, + { + "name": "ATAOS", + "salindex": 0 + }, + { + "name": "ATPneumatics", + "salindex": 0 + }, + { + "name": "ATHexapod", + "salindex": 0 + }, + { + "name": "GenericCamera", + "salindex": 1 + } + ], + "LATISS": [ + { + "name": "ATCamera", + "salindex": 0 + }, + { + "name": "ATArchiver", + "salindex": 0 + }, + { + "name": "ATHeaderService", + "salindex": 0 + }, + { + "name": "ATSpectrograph", + "salindex": 0 + } + ], + "ATCalSys": [ + { + "name": "ATMonochromator", + "salindex": 0 + }, + { + "name": "FiberSpectrograph", + "salindex": 0 + }, + { + "name": "ATWhiteLight", + "salindex": 0 + }, + { + "name": "Electrometer", + "salindex": 1 + }, + { + "name": "Electrometer", + "salindex": 2 + }, + { + "name": "LinearStage", + "salindex": 1 + }, + { + "name": "LinearStage", + "salindex": 2 + } + ] + }, + "Main Telescope": { + "CSC Group 1": [ + { + "name": "Test", + "salindex": 1 + }, + { + "name": "Test", + "salindex": 2 + } + ], + "CSC Group 2": [] + } + }, + "hasRawMode": true + }, + "content": "CSCSummary", + "properties": { + "h": 39, + "i": 1, + "w": 55, + "x": 0, + "y": 0, + "type": "component" + } + }, + "newPanel-2": { + "config": { + "cscs": [ + { + "name": "ATMCS", + "salindex": 0 + }, + { + "name": "ATPtg", + "salindex": 0 + }, + { + "name": "ATDome", + "salindex": 0 + }, + { + "name": "ATDomeTrajectory", + "salindex": 0 + }, + { + "name": "ATAOS", + "salindex": 0 + }, + { + "name": "ATPneumatics", + "salindex": 0 + }, + { + "name": "ATHexapod", + "salindex": 0 + } + ], + "link": "", + "name": "CSC ATTCS", + "title": "CSC Aux Telescope", + "margin": true, + "titleBar": true, + "hasRawMode": false, + "_functionProps": [ + "subscribeToStreamCallback" + ], + "subscribeToStreamCallback": "() => {}" + }, + "content": "CSCGroup", + "properties": { + "h": 21, + "i": 2, + "w": 13, + "x": 56, + "y": 0, + "type": "component" + } + }, + "newPanel-3": { + "config": { + "link": "", + "group": "CSC group", + "title": "CSC group log", + "margin": true, + "cscList": [ + { + "name": "ATMCS", + "salindex": 0 + } + ], + "titleBar": false, + "hasRawMode": false + }, + "content": "CSCGroupLog", + "properties": { + "h": 17, + "i": 3, + "w": 24, + "x": 0, + "y": 39, + "type": "component" + } + }, + "newPanel-4": { + "config": { + "link": "", + "name": "Test", + "title": "CSC expanded", + "margin": true, + "salindex": 1, + "titleBar": false, + "hasRawMode": false, + "_functionProps": [] + }, + "content": "CSCExpanded", + "properties": { + "h": 17, + "i": 4, + "w": 22, + "x": 24, + "y": 39, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "thumbnails/view_39.png" + } + }, + { + "model": "ui_framework.view", + "pk": 40, + "fields": { + "creation_timestamp": "2020-08-19T00:44:16.66Z", + "update_timestamp": "2020-08-19T00:44:16.66Z", + "name": "Random view", + "data": { + "content": { + "newPanel-1": { + "config": { + "link": "", + "title": "Dome", + "margin": true, + "titleBar": true, + "hasRawMode": true + }, + "content": "Dome", + "properties": { + "h": 44, + "i": 1, + "w": 50, + "x": 0, + "y": 0, + "type": "component" + } + }, + "newPanel-2": { + "config": { + "link": "", + "title": "LATISS", + "margin": true, + "titleBar": true, + "hasRawMode": true + }, + "content": "LATISS", + "properties": { + "h": 29, + "i": 2, + "w": 50, + "x": 50, + "y": 0, + "type": "component" + } + }, + "newPanel-3": { + "config": { + "link": "", + "title": "ATMount motors", + "margin": true, + "titleBar": true, + "hasRawMode": true + }, + "content": "MotorTable", + "properties": { + "h": 15, + "i": 3, + "w": 49, + "x": 50, + "y": 29, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "thumbnails/view_40.png" + } + }, + { + "model": "ui_framework.view", + "pk": 41, + "fields": { + "creation_timestamp": "2020-12-18T19:59:46.783718Z", + "update_timestamp": "2021-09-09T03:32:04.806355Z", + "name": "ATQueue", + "data": { + "content": { + "newPanel-1": { + "config": { + "link": "", + "title": "AT Queue", + "margin": true, + "salindex": 2, + "titleBar": true, + "hasRawMode": true + }, + "content": "ScriptQueue", + "properties": { + "h": 52, + "i": 1, + "w": 97, + "x": 0, + "y": 0, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "thumbnails/view_41.png" + } + }, + { + "model": "ui_framework.view", + "pk": 42, + "fields": { + "creation_timestamp": "2020-12-18T21:28:04.894247Z", + "update_timestamp": "2021-12-20T17:05:07.558941Z", + "name": "Watcher", + "data": { + "content": { + "newPanel-1": { + "config": { + "link": "", + "title": "Watcher", + "margin": true, + "titleBar": true, + "hasRawMode": true + }, + "content": "Watcher", + "properties": { + "h": 77, + "i": 1, + "w": 96, + "x": 0, + "y": 11, + "type": "component" + } + }, + "newPanel-2": { + "config": { + "cscs": [ + { + "name": "ScriptQueue", + "salindex": 1 + }, + { + "name": "ScriptQueue", + "salindex": 2 + }, + { + "name": "Watcher", + "salindex": 0 + } + ], + "link": "", + "name": "OCS Summary State", + "title": "OCS Summary State", + "margin": true, + "titleBar": false, + "hasRawMode": false, + "_functionProps": [ + "subscribeToStreamCallback" + ], + "subscribeToStreamCallback": "() => {}" + }, + "content": "CSCGroup", + "properties": { + "h": 11, + "i": 2, + "w": 23, + "x": 0, + "y": 0, + "type": "component" + } + }, + "newPanel-3": { + "config": { + "title": "TimeDisplay", + "locale": "en-GB", + "margin": true, + "titleBar": true, + "clocks_layout": [ + [ + { + "name": "Now", + "hideDate": false, + "timezone": "local", + "hideAnalog": true, + "hideOffset": false + }, + { + "name": "UT", + "hideDate": false, + "timezone": "UTC", + "hideAnalog": true, + "hideOffset": false + }, + { + "name": "MJD", + "hideDate": false, + "timezone": "MJD", + "hideAnalog": true, + "hideOffset": false + }, + { + "name": "LMST", + "hideDate": true, + "timezone": "sidereal-summit", + "hideAnalog": true, + "hideOffset": false + }, + { + "name": "La Serena", + "hideDate": false, + "timezone": "America/Santiago", + "hideAnalog": true, + "hideOffset": false + } + ] + ] + }, + "content": "TimeDisplay", + "properties": { + "h": 11, + "i": 3, + "w": 74, + "x": 23, + "y": 0, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "thumbnails/view_33.png" + } + }, + { + "model": "ui_framework.view", + "pk": 43, + "fields": { + "creation_timestamp": "2020-12-18T21:30:54.759474Z", + "update_timestamp": "2021-10-28T20:18:03.256514Z", + "name": "MTQueue", + "data": { + "content": { + "newPanel-1": { + "config": { + "link": "", + "title": "MTQueue", + "margin": true, + "salindex": 1, + "titleBar": true, + "hasRawMode": true + }, + "content": "ScriptQueue", + "properties": { + "h": 64, + "i": 1, + "w": 97, + "x": 0, + "y": 0, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "thumbnails/view_43.png" + } + }, + { + "model": "ui_framework.view", + "pk": 44, + "fields": { + "creation_timestamp": "2020-12-18T21:32:54.378652Z", + "update_timestamp": "2020-12-18T21:32:54.378683Z", + "name": "Queue", + "data": { + "content": { + "newPanel-1": { + "config": { + "link": "", + "title": "ATQueue", + "margin": true, + "salindex": 2, + "titleBar": true, + "hasRawMode": true + }, + "content": "ScriptQueue", + "properties": { + "h": 39, + "i": 1, + "w": 100, + "x": 0, + "y": 38, + "type": "component" + } + }, + "newPanel-2": { + "config": { + "link": "", + "title": "MTQueue", + "margin": true, + "salindex": 1, + "titleBar": true, + "hasRawMode": true + }, + "content": "ScriptQueue", + "properties": { + "h": 38, + "i": 2, + "w": 100, + "x": 0, + "y": 0, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "thumbnails/view_44.png" + } + }, + { + "model": "ui_framework.view", + "pk": 45, + "fields": { + "creation_timestamp": "2021-03-02T10:09:37.3202Z", + "update_timestamp": "2021-03-02T15:04:43.05362Z", + "name": "AT Tracking Errors", + "data": { + "content": { + "newPanel-1": { + "config": { + "url": "https://lsst.ncsa.illinois.edu/~cslage/latest_mount.png", + "link": "", + "title": "Latest mount tracking", + "margin": true, + "titleBar": true, + "hasRawMode": false + }, + "content": "EmbeddedView", + "properties": { + "h": 35, + "i": 1, + "w": 57, + "x": 0, + "y": null, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "" + } + }, + { + "model": "ui_framework.view", + "pk": 46, + "fields": { + "creation_timestamp": "2021-05-14T18:39:43.647075Z", + "update_timestamp": "2021-06-04T22:02:29.754795Z", + "name": "timeplot (stalder)", + "data": { + "content": { + "newPanel-1": { + "config": { + "link": "", + "title": "Time series", + "margin": true, + "titleBar": false, + "hasRawMode": false + }, + "content": "InteractiveTimeSeries", + "properties": { + "h": 23, + "i": 1, + "w": 67, + "x": 0, + "y": 0, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "" + } + }, + { + "model": "ui_framework.view", + "pk": 47, + "fields": { + "creation_timestamp": "2021-05-25T16:53:25.728376Z", + "update_timestamp": "2021-11-10T17:30:10.976205Z", + "name": "AT-Stop", + "data": { + "content": { + "newPanel-1": { + "config": { + "link": "", + "title": "AT Stop", + "margin": true, + "titleBar": true, + "hasRawMode": false + }, + "content": "CommandPanel", + "properties": { + "h": 15, + "i": 1, + "w": 22, + "x": 0, + "y": 0, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "" + } + }, + { + "model": "ui_framework.view", + "pk": 48, + "fields": { + "creation_timestamp": "2021-07-13T22:20:32.908425Z", + "update_timestamp": "2021-07-13T22:20:32.908487Z", + "name": "Untitled view", + "data": { + "content": { + "newPanel-1": { + "config": { + "title": "Time series plot", + "inputs": { + "Elevation": { + "csc": "ATMCS", + "dash": [ + 4, + 0 + ], + "item": "elevationCalculatedAngle", + "type": "line", + "color": "#ff7bb5", + "shape": "circle", + "topic": "mount_AzEl_Encoders", + "filled": false, + "accessor": "(x) => x[0]", + "category": "telemetry", + "salindex": "0" + }, + "ATDome azimuth": { + "csc": "ATDome", + "dash": [ + 4, + 0 + ], + "item": "azimuthPosition", + "type": "line", + "color": "#00b7ff", + "shape": "square", + "topic": "position", + "filled": true, + "accessor": "(x) => x", + "category": "telemetry", + "salindex": "0" + } + }, + "controls": true, + "titleBar": false, + "hasRawMode": false, + "xAxisTitle": "Time", + "yAxisTitle": "", + "legendPosition": "right" + }, + "content": "VegaTimeSeriesPlot", + "properties": { + "h": 28, + "i": 1, + "w": 71, + "x": 0, + "y": 0, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "" + } + }, + { + "model": "ui_framework.view", + "pk": 49, + "fields": { + "creation_timestamp": "2021-07-28T17:50:26.746474Z", + "update_timestamp": "2021-11-15T16:52:30.182431Z", + "name": "Event Log - P", + "data": { + "content": { + "newPanel-1": { + "config": { + "link": "", + "name": "Test", + "title": "Event log", + "margin": true, + "salindex": 1, + "titleBar": true, + "hasRawMode": true + }, + "content": "EventLog", + "properties": { + "h": 34, + "i": 1, + "w": 90, + "x": 0, + "y": 0, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "" + } + }, + { + "model": "ui_framework.view", + "pk": 50, + "fields": { + "creation_timestamp": "2021-07-28T20:26:36.653449Z", + "update_timestamp": "2021-07-28T20:31:45.782914Z", + "name": "CameraView", + "data": { + "content": { + "newPanel-1": { + "config": { + "url": "http://ccs.lsst.org/RecentImages/auxtel.html", + "link": "", + "title": "Embedded view", + "margin": true, + "titleBar": true, + "hasRawMode": false + }, + "content": "EmbeddedView", + "properties": { + "h": 34, + "i": 1, + "w": 43, + "x": 0, + "y": 0, + "type": "component" + } + }, + "newPanel-2": { + "config": { + "url": "http://ccs.lsst.org/FITSInfo/view.html?image=AT_O_20210728_000005&raft=R00&color=grey", + "link": "", + "title": "Embedded view", + "margin": true, + "titleBar": true, + "hasRawMode": false + }, + "content": "EmbeddedView", + "properties": { + "h": 34, + "i": 2, + "w": 43, + "x": 43, + "y": 0, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "" + } + }, + { + "model": "ui_framework.view", + "pk": 51, + "fields": { + "creation_timestamp": "2021-08-05T16:41:02.104589Z", + "update_timestamp": "2021-09-09T21:33:35.908603Z", + "name": "ASummary State View", + "data": { + "content": { + "newPanel-1": { + "config": { + "link": "", + "title": "CSC summary", + "margin": true, + "titleBar": true, + "hierarchy": { + "Observatory": { + "Environment": [ + { + "name": "DIMM", + "salindex": 1 + }, + { + "name": "DIMM", + "salindex": 2 + }, + { + "name": "WeatherStation", + "salindex": 1 + } + ], + "HigherLevel": [ + { + "name": "ScriptQueue", + "salindex": 1 + }, + { + "name": "ScriptQueue", + "salindex": 2 + }, + { + "name": "Scheduler", + "salindex": 1 + }, + { + "name": "Scheduler", + "salindex": 2 + }, + { + "name": "Watcher", + "salindex": 0 + }, + { + "name": "PMD", + "salindex": 1 + } + ] + }, + "Main Telescope": { + "MTCS": [ + { + "name": "MTMount", + "salindex": 0 + }, + { + "name": "MTPtg", + "salindex": 0 + }, + { + "name": "MTAOS", + "salindex": 0 + }, + { + "name": "MTM1M3", + "salindex": 0 + }, + { + "name": "MTM2", + "salindex": 0 + }, + { + "name": "MTHexapod", + "salindex": 1 + }, + { + "name": "MTHexapod", + "salindex": 2 + }, + { + "name": "MTRotator", + "salindex": 0 + }, + { + "name": "MTDome", + "salindex": 0 + }, + { + "name": "MTDomeTrajectory", + "salindex": 0 + } + ], + "ComCam": [ + { + "name": "CCCamera", + "salindex": 0 + }, + { + "name": "CCArchiver", + "salindex": 0 + }, + { + "name": "CCHeaderService", + "salindex": 0 + } + ] + }, + "Auxiliary Telescope": { + "ATTCS": [ + { + "name": "ATMCS", + "salindex": 0 + }, + { + "name": "ATPtg", + "salindex": 0 + }, + { + "name": "ATDome", + "salindex": 0 + }, + { + "name": "ATDomeTrajectory", + "salindex": 0 + }, + { + "name": "ATAOS", + "salindex": 0 + }, + { + "name": "ATPneumatics", + "salindex": 0 + }, + { + "name": "ATHexapod", + "salindex": 0 + } + ], + "LATISS": [ + { + "name": "ATCamera", + "salindex": 0 + }, + { + "name": "ATArchiver", + "salindex": 0 + }, + { + "name": "ATHeaderService", + "salindex": 0 + }, + { + "name": "ATSpectrograph", + "salindex": 0 + } + ], + "ATCalSys": [ + { + "name": "ATMonochromator", + "salindex": 0 + }, + { + "name": "FiberSpectrograph", + "salindex": 0 + }, + { + "name": "ATWhiteLight", + "salindex": 0 + }, + { + "name": "Electrometer", + "salindex": 1 + }, + { + "name": "Electrometer", + "salindex": 2 + }, + { + "name": "LinearStage", + "salindex": 1 + }, + { + "name": "LinearStage", + "salindex": 2 + } + ] + } + }, + "hasRawMode": true + }, + "content": "CSCSummary", + "properties": { + "h": 54, + "i": 1, + "w": 96, + "x": 0, + "y": 0, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "" + } + }, + { + "model": "ui_framework.view", + "pk": 52, + "fields": { + "creation_timestamp": "2021-08-28T00:10:26.201634Z", + "update_timestamp": "2021-08-28T00:10:41.713834Z", + "name": "bokeh", + "data": { + "content": { + "newPanel-1": { + "config": { + "url": "http://amor02.cp.lsst.org:5006/my_app", + "link": "", + "title": "Embedded view", + "margin": true, + "titleBar": true, + "hasRawMode": false + }, + "content": "EmbeddedView", + "properties": { + "h": 38, + "i": 1, + "w": 37, + "x": 0, + "y": 0, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "" + } + }, + { + "model": "ui_framework.view", + "pk": 53, + "fields": { + "creation_timestamp": "2021-09-08T05:20:37.372637Z", + "update_timestamp": "2021-11-15T16:51:28.731406Z", + "name": "ATDome & Mount - P", + "data": { + "content": { + "newPanel-1": { + "config": { + "link": "", + "title": "AT summary", + "margin": true, + "titleBar": true, + "hasRawMode": true + }, + "content": "MountSummaryPanel", + "properties": { + "h": 32, + "i": 1, + "w": 32, + "x": 63, + "y": 0, + "type": "component" + } + }, + "newPanel-2": { + "config": { + "link": "", + "title": "Dome", + "margin": true, + "controls": true, + "titleBar": true, + "hasRawMode": true + }, + "content": "Dome", + "properties": { + "h": 50, + "i": 2, + "w": 63, + "x": 0, + "y": 0, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "" + } + }, + { + "model": "ui_framework.view", + "pk": 54, + "fields": { + "creation_timestamp": "2021-09-10T07:37:09.602662Z", + "update_timestamp": "2021-11-15T16:51:15.412253Z", + "name": "AT LightPath - P", + "data": { + "content": { + "newPanel-1": { + "config": { + "link": "", + "title": "AT Lightpath", + "margin": true, + "titleBar": true, + "lightPath": true, + "hasRawMode": true + }, + "content": "LightPath", + "properties": { + "h": 33, + "i": 1, + "w": 34, + "x": 0, + "y": 0, + "type": "component", + "allowOverflow": true + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "" + } + }, + { + "model": "ui_framework.view", + "pk": 55, + "fields": { + "creation_timestamp": "2021-10-07T01:12:06.61399Z", + "update_timestamp": "2021-10-07T01:12:24.9079Z", + "name": "LVV-T2086-2", + "data": { + "content": { + "newPanel-1": { + "config": { + "link": "", + "title": "Script queue", + "margin": true, + "salindex": 2, + "titleBar": true, + "hasRawMode": true + }, + "content": "ScriptQueue", + "properties": { + "h": 40, + "i": 1, + "w": 99, + "x": 0, + "y": 0, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "" + } + }, + { + "model": "ui_framework.view", + "pk": 56, + "fields": { + "creation_timestamp": "2021-10-07T03:08:26.4717Z", + "update_timestamp": "2021-10-07T03:08:26.471741Z", + "name": "LVV-T2066", + "data": { + "content": { + "newPanel-1": { + "config": { + "link": "", + "title": "Weather station component", + "margin": true, + "controls": true, + "salindex": 1, + "titleBar": true, + "hasRawMode": false + }, + "content": "WeatherStation", + "properties": { + "h": 84, + "i": 1, + "w": 100, + "x": 0, + "y": 5, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "" + } + }, + { + "model": "ui_framework.view", + "pk": 57, + "fields": { + "creation_timestamp": "2021-10-07T04:01:55.704276Z", + "update_timestamp": "2021-10-07T04:01:55.704338Z", + "name": "LVV-T2067", + "data": { + "content": { + "newPanel-1": { + "config": { + "link": "", + "title": "Observing log input", + "margin": true, + "titleBar": true, + "hasRawMode": true + }, + "content": "ObservingLogInput", + "properties": { + "h": 26, + "i": 1, + "w": 47, + "x": 47, + "y": 0, + "type": "component" + } + }, + "newPanel-2": { + "config": { + "link": "", + "title": "Observing log", + "margin": true, + "titleBar": true, + "hasRawMode": true + }, + "content": "ObservingLogMessages", + "properties": { + "h": 30, + "i": 2, + "w": 46, + "x": 0, + "y": 0, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "" + } + }, + { + "model": "ui_framework.view", + "pk": 58, + "fields": { + "creation_timestamp": "2021-11-18T17:29:07.912202Z", + "update_timestamp": "2021-11-18T18:31:27.026113Z", + "name": "Test CSC Summary", + "data": { + "content": { + "newPanel-1": { + "config": { + "link": "", + "name": "Test", + "title": "CSC details", + "margin": false, + "salindex": 1, + "titleBar": false, + "hasRawMode": false, + "hasHeartbeat": true, + "_functionProps": [] + }, + "content": "CSCDetail", + "properties": { + "h": 10, + "i": 1, + "w": 27, + "x": 0, + "y": 0, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "" + } + }, + { + "model": "ui_framework.view", + "pk": 59, + "fields": { + "creation_timestamp": "2021-12-10T18:00:52.888691Z", + "update_timestamp": "2021-12-10T18:00:52.888756Z", + "name": "CCW", + "data": { + "content": { + "newPanel-1": { + "config": { + "link": "", + "title": "CableWraps", + "margin": true, + "titleBar": true, + "hasRawMode": true + }, + "content": "CableWraps", + "properties": { + "h": 32, + "i": 1, + "w": 61, + "x": 0, + "y": null, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "" + } + }, + { + "model": "ui_framework.view", + "pk": 60, + "fields": { + "creation_timestamp": "2021-12-14T19:49:49.907858Z", + "update_timestamp": "2021-12-14T19:49:49.907903Z", + "name": "LVV-T2067", + "data": { + "content": { + "newPanel-1": { + "config": { + "link": "", + "title": "Observing log input", + "margin": true, + "titleBar": true, + "hasRawMode": true + }, + "content": "ObservingLogInput", + "properties": { + "h": 28, + "i": 1, + "w": 36, + "x": 0, + "y": 0, + "type": "component" + } + }, + "newPanel-2": { + "config": { + "link": "", + "title": "Observing log", + "margin": true, + "titleBar": true, + "hasRawMode": true + }, + "content": "ObservingLogMessages", + "properties": { + "h": 28, + "i": 2, + "w": 36, + "x": 41, + "y": 0, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "" + } + } +] diff --git a/manager/ui_framework/fixtures/initial_data_tucson.json b/manager/ui_framework/fixtures/initial_data_tucson.json new file mode 100644 index 00000000..e41856fe --- /dev/null +++ b/manager/ui_framework/fixtures/initial_data_tucson.json @@ -0,0 +1,1677 @@ +[ + { + "model": "ui_framework.view", + "pk": 30, + "fields": { + "creation_timestamp": "2020-08-19T00:38:07.36Z", + "update_timestamp": "2020-08-19T00:38:07.36Z", + "name": "Dome-Mount test", + "data": { + "content": { + "newPanel-1": { + "config": { + "title": "ScriptQueue", + "margin": true, + "salindex": 1, + "titleBar": true + }, + "content": "ScriptQueue", + "properties": { + "h": 54, + "i": 1, + "w": 56, + "x": 0, + "y": 0, + "type": "component" + } + }, + "newPanel-2": { + "config": { + "link": "", + "name": "Script", + "title": "Script.0 Logs", + "margin": true, + "salindex": 0, + "titleBar": true, + "hasRawMode": false, + "_functionProps": [] + }, + "content": "CSCExpanded", + "properties": { + "h": 45, + "i": 2, + "w": 32, + "x": 56, + "y": 9, + "type": "component" + } + }, + "newPanel-3": { + "config": { + "cscs": [ + { + "name": "ATMCS", + "salindex": 0 + }, + { + "name": "ATDome", + "salindex": 0 + }, + { + "name": "Watcher", + "salindex": 0 + }, + { + "name": "ScriptQueue", + "salindex": 1 + } + ], + "link": "", + "name": "CSC Summary", + "title": "CSC Summary", + "margin": true, + "titleBar": false, + "hasRawMode": false, + "_functionProps": [ + "subscribeToStreamCallback" + ], + "subscribeToStreamCallback": "() => {}" + }, + "content": "CSCGroup", + "properties": { + "h": 9, + "i": 3, + "w": 25, + "x": 56, + "y": 0, + "type": "component" + } + }, + "newPanel-4": { + "config": { + "link": "", + "title": "Dome", + "margin": true, + "titleBar": true, + "hasRawMode": true + }, + "content": "Dome", + "properties": { + "h": 46, + "i": 4, + "w": 49, + "x": 0, + "y": 54, + "type": "component" + } + }, + "newPanel-5": { + "config": { + "link": "", + "title": "AT Lightpath", + "margin": true, + "titleBar": true, + "lightPath": true, + "hasRawMode": true + }, + "content": "LightPath", + "properties": { + "h": 33, + "i": 5, + "w": 20, + "x": 49, + "y": 54, + "type": "component", + "allowOverflow": true + } + }, + "newPanel-6": { + "config": { + "link": "", + "title": "AT summary", + "margin": true, + "titleBar": true, + "hasRawMode": true + }, + "content": "MountSummaryPanel", + "properties": { + "h": 26, + "i": 6, + "w": 19, + "x": 69, + "y": 54, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "thumbnails/view_1.png" + } + }, + { + "model": "ui_framework.view", + "pk": 31, + "fields": { + "creation_timestamp": "2020-08-19T00:38:09.319Z", + "update_timestamp": "2020-08-19T00:38:09.319Z", + "name": "WeatherStation", + "data": { + "content": { + "newPanel-1": { + "config": { + "link": "", + "title": "Weather station component", + "margin": true, + "salindex": 1, + "titleBar": true, + "hasRawMode": false + }, + "content": "WeatherStation", + "properties": { + "h": 57, + "i": 1, + "w": 56, + "x": 0, + "y": 0, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "thumbnails/view_31.png" + } + }, + { + "model": "ui_framework.view", + "pk": 33, + "fields": { + "creation_timestamp": "2020-08-19T00:39:09.619Z", + "update_timestamp": "2020-08-19T00:39:09.619Z", + "name": "Watcher + ObsLogs", + "data": { + "content": { + "newPanel-1": { + "config": { + "link": "", + "title": "Watcher", + "margin": true, + "titleBar": true, + "hasRawMode": true + }, + "content": "Watcher", + "properties": { + "h": 52, + "i": 1, + "w": 50, + "x": 0, + "y": 0, + "type": "component" + } + }, + "newPanel-2": { + "config": { + "link": "", + "title": "Observing log", + "margin": true, + "titleBar": true, + "hasRawMode": true + }, + "content": "ObservingLogMessages", + "properties": { + "h": 52, + "i": 2, + "w": 20, + "x": 50, + "y": 0, + "type": "component" + } + }, + "newPanel-3": { + "config": { + "link": "", + "title": "Observing log input", + "margin": true, + "titleBar": true, + "hasRawMode": true + }, + "content": "ObservingLogInput", + "properties": { + "h": 25, + "i": 3, + "w": 21, + "x": 70, + "y": 0, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "thumbnails/view_32.png" + } + }, + { + "model": "ui_framework.view", + "pk": 34, + "fields": { + "creation_timestamp": "2020-08-19T00:39:44.681Z", + "update_timestamp": "2020-08-19T00:39:44.681Z", + "name": "TimeDisplay", + "data": { + "content": { + "newPanel-1": { + "config": { + "title": "TimeDisplay", + "locale": "en-GB", + "margin": true, + "titleBar": true, + "clocks_layout": [ + [ + { + "name": "Local Time", + "hideDate": false, + "timezone": "local", + "hideAnalog": false, + "hideOffset": false + }, + { + "name": "Sidereal Time", + "hideDate": true, + "timezone": "sidereal-summit", + "hideAnalog": false, + "hideOffset": false + } + ], + [ + [ + { + "name": "La Serena", + "hideDate": false, + "timezone": "America/Santiago", + "hideAnalog": true, + "hideOffset": false + }, + { + "name": "Arizona", + "hideDate": false, + "timezone": "America/Phoenix", + "hideAnalog": true, + "hideOffset": false + }, + { + "name": "Illinois", + "hideDate": false, + "timezone": "America/Chicago", + "hideAnalog": true, + "hideOffset": false + } + ], + [ + { + "name": "Universal Time", + "hideDate": false, + "timezone": "UTC", + "hideAnalog": true, + "hideOffset": false + }, + { + "name": "International Atomic Time", + "hideDate": false, + "timezone": "TAI", + "hideAnalog": true, + "hideOffset": false + }, + { + "name": "Modified Julian Date", + "hideDate": false, + "timezone": "MJD", + "hideAnalog": true, + "hideOffset": false + } + ] + ] + ] + }, + "content": "TimeDisplay", + "properties": { + "h": 16, + "i": 1, + "w": 45, + "x": 0, + "y": 0, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "thumbnails/view_28.png" + } + }, + { + "model": "ui_framework.view", + "pk": 35, + "fields": { + "creation_timestamp": "2020-08-19T00:40:10.493Z", + "update_timestamp": "2020-08-19T00:40:28.975Z", + "name": "Network + Scheduler", + "data": { + "content": { + "newPanel-6": { + "config": { + "url": "https://dashboard.ampath.net/maddash-webui/index.cgi", + "link": "", + "title": "Network component", + "margin": true, + "titleBar": true, + "hasRawMode": false + }, + "content": "Network", + "properties": { + "h": 61, + "i": 6, + "w": 40, + "x": 0, + "y": 0, + "type": "component" + } + }, + "newPanel-7": { + "config": { + "link": "", + "title": "Scheduler", + "margin": true, + "feedKey": "allSky", + "titleBar": true, + "hasRawMode": true + }, + "content": "Scheduler", + "properties": { + "h": 45, + "i": 7, + "w": 52, + "x": 40, + "y": 0, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "thumbnails/view_35.png" + } + }, + { + "model": "ui_framework.view", + "pk": 36, + "fields": { + "creation_timestamp": "2020-08-19T00:40:57.108Z", + "update_timestamp": "2020-08-19T00:40:57.108Z", + "name": "LATISS + Camera", + "data": { + "content": { + "newPanel-1": { + "config": { + "link": "", + "title": "LATISS", + "margin": true, + "titleBar": true, + "hasRawMode": true + }, + "content": "LATISS", + "properties": { + "h": 33, + "i": 1, + "w": 49, + "x": 0, + "y": 12, + "type": "component" + } + }, + "newPanel-2": { + "config": { + "link": "", + "title": "Camera", + "margin": true, + "titleBar": true, + "hasRawMode": true + }, + "content": "Camera", + "properties": { + "h": 12, + "i": 2, + "w": 49, + "x": 0, + "y": 0, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "thumbnails/view_25.png" + } + }, + { + "model": "ui_framework.view", + "pk": 37, + "fields": { + "creation_timestamp": "2020-08-19T00:41:33.17Z", + "update_timestamp": "2020-08-19T00:41:33.17Z", + "name": "HealthStatusSummary", + "data": { + "content": { + "newPanel-1": { + "config": { + "link": "", + "title": "Health status summary", + "margin": true, + "titleBar": true, + "hasRawMode": true, + "topicConfiguration": { + "telemetry-ATDome-0-position": { + "azimuthPosition": "return Math.floor(new Date().getSeconds() / 4) % 5 ;", + "azimuthEncoderPosition": "return Math.floor(new Date().getSeconds() / 4) % 5 ;", + "mainDoorOpeningPercentage": "return Math.floor(new Date().getSeconds() / 4) % 5 ;", + "dropoutDoorOpeningPercentage": "return Math.floor(new Date().getSeconds() / 4) % 5 ;" + }, + "telemetry-ATMCS-0-mount_AzEl_Encoders": { + "cRIO_timestamp": "return Math.floor(new Date().getSeconds() / 4) % 5 ;", + "elevationCalculatedAngle": "return Math.floor(new Date().getSeconds() / 4) % 5 ;" + }, + "telemetry-ATMCS-0-mount_Nasmyth_Encoders": { + "trackId": "return Math.floor(new Date().getSeconds() / 4) % 5 ;", + "nasmyth1Encoder1Raw": "return Math.floor(new Date().getSeconds() / 4) % 5 ;", + "nasmyth1Encoder2Raw": "return Math.floor(new Date().getSeconds() / 4) % 5 ;", + "nasmyth1Encoder3Raw": "return Math.floor(new Date().getSeconds() / 4) % 5 ;", + "nasmyth2Encoder1Raw": "return Math.floor(new Date().getSeconds() / 4) % 5 ;", + "nasmyth2Encoder2Raw": "return Math.floor(new Date().getSeconds() / 4) % 5 ;", + "nasmyth2Encoder3Raw": "return Math.floor(new Date().getSeconds() / 4) % 5 ;", + "nasmyth1CalculatedAngle": "return Math.floor(new Date().getSeconds() / 4) % 5 ;", + "nasmyth2CalculatedAngle": "return Math.floor(new Date().getSeconds() / 4) % 5 ;" + } + } + }, + "content": "HealthStatusSummary", + "properties": { + "h": 35, + "i": 1, + "w": 24, + "x": 0, + "y": 0, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "thumbnails/view_37.png" + } + }, + { + "model": "ui_framework.view", + "pk": 38, + "fields": { + "creation_timestamp": "2020-08-19T00:42:03.101Z", + "update_timestamp": "2020-08-19T00:42:29.834Z", + "name": "Dome & Mount", + "data": { + "content": { + "newPanel-1": { + "config": { + "link": "", + "title": "Dome", + "margin": true, + "titleBar": true, + "hasRawMode": true + }, + "content": "Dome", + "properties": { + "h": 48, + "i": 1, + "w": 44, + "x": 0, + "y": 0, + "type": "component" + } + }, + "newPanel-2": { + "config": { + "link": "", + "title": "ATMount motors", + "margin": true, + "titleBar": true, + "hasRawMode": true + }, + "content": "MotorTable", + "properties": { + "h": 14, + "i": 2, + "w": 55, + "x": 44, + "y": 34, + "type": "component" + } + }, + "newPanel-3": { + "config": { + "link": "", + "title": "AT Lightpath", + "margin": true, + "titleBar": true, + "lightPath": true, + "hasRawMode": true + }, + "content": "LightPath", + "properties": { + "h": 34, + "i": 3, + "w": 20, + "x": 44, + "y": 0, + "type": "component", + "allowOverflow": true + } + }, + "newPanel-4": { + "config": { + "link": "", + "title": "AT summary", + "margin": true, + "titleBar": false, + "hasRawMode": true + }, + "content": "MountSummaryPanel", + "properties": { + "h": 34, + "i": 4, + "w": 15, + "x": 66, + "y": 0, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "thumbnails/view_38.png" + } + }, + { + "model": "ui_framework.view", + "pk": 39, + "fields": { + "creation_timestamp": "2020-08-19T00:42:57.339Z", + "update_timestamp": "2020-08-19T00:42:57.339Z", + "name": "CSCSummary + CSCG", + "data": { + "content": { + "newPanel-1": { + "config": { + "link": "", + "title": "CSC summary", + "margin": true, + "titleBar": true, + "hierarchy": { + "Observatory": { + "Queue": [ + { + "name": "ScriptQueue", + "salindex": 1 + }, + { + "name": "ScriptQueue", + "salindex": 2 + } + ], + "Environment": [ + { + "name": "DIMM", + "salindex": 1 + }, + { + "name": "DIMM", + "salindex": 2 + }, + { + "name": "Environment", + "salindex": 1 + } + ] + }, + "Aux Telescope": { + "ATTCS": [ + { + "name": "ATMCS", + "salindex": 0 + }, + { + "name": "ATPtg", + "salindex": 0 + }, + { + "name": "ATDome", + "salindex": 0 + }, + { + "name": "ATDomeTrajectory", + "salindex": 0 + }, + { + "name": "ATAOS", + "salindex": 0 + }, + { + "name": "ATPneumatics", + "salindex": 0 + }, + { + "name": "ATHexapod", + "salindex": 0 + }, + { + "name": "GenericCamera", + "salindex": 1 + } + ], + "LATISS": [ + { + "name": "ATCamera", + "salindex": 0 + }, + { + "name": "ATArchiver", + "salindex": 0 + }, + { + "name": "ATHeaderService", + "salindex": 0 + }, + { + "name": "ATSpectrograph", + "salindex": 0 + } + ], + "ATCalSys": [ + { + "name": "ATMonochromator", + "salindex": 0 + }, + { + "name": "FiberSpectrograph", + "salindex": 0 + }, + { + "name": "ATWhiteLight", + "salindex": 0 + }, + { + "name": "Electrometer", + "salindex": 1 + }, + { + "name": "Electrometer", + "salindex": 2 + }, + { + "name": "LinearStage", + "salindex": 1 + }, + { + "name": "LinearStage", + "salindex": 2 + } + ] + }, + "Main Telescope": { + "CSC Group 1": [ + { + "name": "Test", + "salindex": 1 + }, + { + "name": "Test", + "salindex": 2 + } + ], + "CSC Group 2": [] + } + }, + "hasRawMode": true + }, + "content": "CSCSummary", + "properties": { + "h": 39, + "i": 1, + "w": 55, + "x": 0, + "y": 0, + "type": "component" + } + }, + "newPanel-2": { + "config": { + "cscs": [ + { + "name": "ATMCS", + "salindex": 0 + }, + { + "name": "ATPtg", + "salindex": 0 + }, + { + "name": "ATDome", + "salindex": 0 + }, + { + "name": "ATDomeTrajectory", + "salindex": 0 + }, + { + "name": "ATAOS", + "salindex": 0 + }, + { + "name": "ATPneumatics", + "salindex": 0 + }, + { + "name": "ATHexapod", + "salindex": 0 + } + ], + "link": "", + "name": "CSC ATTCS", + "title": "CSC Aux Telescope", + "margin": true, + "titleBar": true, + "hasRawMode": false, + "_functionProps": [ + "subscribeToStreamCallback" + ], + "subscribeToStreamCallback": "() => {}" + }, + "content": "CSCGroup", + "properties": { + "h": 21, + "i": 2, + "w": 13, + "x": 56, + "y": 0, + "type": "component" + } + }, + "newPanel-3": { + "config": { + "link": "", + "group": "CSC group", + "title": "CSC group log", + "margin": true, + "cscList": [ + { + "name": "ATMCS", + "salindex": 0 + } + ], + "titleBar": false, + "hasRawMode": false + }, + "content": "CSCGroupLog", + "properties": { + "h": 17, + "i": 3, + "w": 24, + "x": 0, + "y": 39, + "type": "component" + } + }, + "newPanel-4": { + "config": { + "link": "", + "name": "Test", + "title": "CSC expanded", + "margin": true, + "salindex": 1, + "titleBar": false, + "hasRawMode": false, + "_functionProps": [] + }, + "content": "CSCExpanded", + "properties": { + "h": 17, + "i": 4, + "w": 22, + "x": 24, + "y": 39, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "thumbnails/view_39.png" + } + }, + { + "model": "ui_framework.view", + "pk": 40, + "fields": { + "creation_timestamp": "2020-08-19T00:44:16.66Z", + "update_timestamp": "2020-08-19T00:44:16.66Z", + "name": "Random view", + "data": { + "content": { + "newPanel-1": { + "config": { + "link": "", + "title": "Dome", + "margin": true, + "titleBar": true, + "hasRawMode": true + }, + "content": "Dome", + "properties": { + "h": 44, + "i": 1, + "w": 50, + "x": 0, + "y": 0, + "type": "component" + } + }, + "newPanel-2": { + "config": { + "link": "", + "title": "LATISS", + "margin": true, + "titleBar": true, + "hasRawMode": true + }, + "content": "LATISS", + "properties": { + "h": 29, + "i": 2, + "w": 50, + "x": 50, + "y": 0, + "type": "component" + } + }, + "newPanel-3": { + "config": { + "link": "", + "title": "ATMount motors", + "margin": true, + "titleBar": true, + "hasRawMode": true + }, + "content": "MotorTable", + "properties": { + "h": 15, + "i": 3, + "w": 49, + "x": 50, + "y": 29, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "thumbnails/view_40.png" + } + }, + { + "model": "ui_framework.view", + "pk": 41, + "fields": { + "creation_timestamp": "2021-02-11T01:12:04.163855Z", + "update_timestamp": "2021-02-11T07:21:55.504507Z", + "name": "MTQueue", + "data": { + "content": { + "newPanel-1": { + "config": { + "link": "", + "title": "MT Queue", + "margin": true, + "salindex": 1, + "titleBar": true, + "hasRawMode": true + }, + "content": "ScriptQueue", + "properties": { + "h": 38, + "i": 1, + "w": 100, + "x": 0, + "y": 0, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "thumbnails/view_43.png" + } + }, + { + "model": "ui_framework.view", + "pk": 42, + "fields": { + "creation_timestamp": "2021-02-11T06:31:47.681063Z", + "update_timestamp": "2021-10-06T07:45:02.373299Z", + "name": "ATQueue", + "data": { + "content": { + "newPanel-1": { + "config": { + "link": "", + "title": "AT queue", + "margin": true, + "salindex": 2, + "titleBar": true, + "hasRawMode": true + }, + "content": "ScriptQueue", + "properties": { + "h": 47, + "i": 1, + "w": 96, + "x": 0, + "y": 0, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "thumbnails/view_41.png" + } + }, + { + "model": "ui_framework.view", + "pk": 43, + "fields": { + "creation_timestamp": "2021-02-11T07:26:03.945541Z", + "update_timestamp": "2021-12-01T18:19:01.616135Z", + "name": "Summary State", + "data": { + "content": { + "newPanel-1": { + "config": { + "link": "", + "title": "CSC summary", + "margin": true, + "titleBar": true, + "hierarchy": { + "OCS": { + "EAS": [ + { + "name": "WeatherStation", + "salindex": 1 + }, + { + "name": "DIMM", + "salindex": 1 + }, + { + "name": "DIMM", + "salindex": 2 + }, + { + "name": "DSM", + "salindex": 1 + }, + { + "name": "DSM", + "salindex": 2 + } + ], + "Ops": [ + { + "name": "ScriptQueue", + "salindex": 1 + }, + { + "name": "ScriptQueue", + "salindex": 2 + }, + { + "name": "Watcher", + "salindex": 0 + }, + { + "name": "Scheduler", + "salindex": 1 + }, + { + "name": "Scheduler", + "salindex": 2 + }, + { + "name": "OCPS", + "salindex": 1 + }, + { + "name": "OCPS", + "salindex": 2 + } + ] + }, + "Aux Tel": { + "ATCS": [ + { + "name": "ATMCS", + "salindex": 0 + }, + { + "name": "ATPtg", + "salindex": 0 + }, + { + "name": "ATDome", + "salindex": 0 + }, + { + "name": "ATDomeTrajectory", + "salindex": 0 + }, + { + "name": "ATAOS", + "salindex": 0 + }, + { + "name": "ATPneumatics", + "salindex": 0 + }, + { + "name": "ATHexapod", + "salindex": 0 + } + ], + "LATISS": [ + { + "name": "ATCamera", + "salindex": 0 + }, + { + "name": "ATArchiver", + "salindex": 0 + }, + { + "name": "ATHeaderService", + "salindex": 0 + }, + { + "name": "ATSpectrograph", + "salindex": 0 + } + ] + }, + "Main Tel": { + "MTCS": [ + { + "name": "MTMount", + "salindex": 0 + }, + { + "name": "MTPtg", + "salindex": 0 + }, + { + "name": "MTAOS", + "salindex": 0 + }, + { + "name": "MTM1M3", + "salindex": 0 + }, + { + "name": "MTM2", + "salindex": 0 + }, + { + "name": "MTHexapod", + "salindex": 1 + }, + { + "name": "MTHexapod", + "salindex": 2 + }, + { + "name": "MTRotator", + "salindex": 0 + }, + { + "name": "MTDome", + "salindex": 0 + }, + { + "name": "MTDomeTrajectory", + "salindex": 0 + } + ], + "ComCam": [ + { + "name": "CCCamera", + "salindex": 0 + }, + { + "name": "CCArchiver", + "salindex": 0 + }, + { + "name": "CCHeaderService", + "salindex": 0 + } + ] + } + }, + "hasRawMode": true + }, + "content": "CSCSummary", + "properties": { + "h": 46, + "i": 1, + "w": 88, + "x": 0, + "y": 0, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "" + } + }, + { + "model": "ui_framework.view", + "pk": 44, + "fields": { + "creation_timestamp": "2021-03-25T23:08:31.222195Z", + "update_timestamp": "2021-03-25T23:09:14.249164Z", + "name": "M1M3", + "data": { + "content": { + "newPanel-1": { + "config": { + "link": "", + "title": "M1M3", + "margin": true, + "titleBar": true, + "hasRawMode": true + }, + "content": "M1M3", + "properties": { + "h": 32, + "i": 1, + "w": 61, + "x": 0, + "y": 0, + "type": "component" + } + }, + "newPanel-2": { + "config": { + "link": "", + "title": "CableWraps", + "margin": true, + "titleBar": true, + "hasRawMode": true + }, + "content": "CableWraps", + "properties": { + "h": 26, + "i": 2, + "w": 72, + "x": 0, + "y": 32, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "" + } + }, + { + "model": "ui_framework.view", + "pk": 45, + "fields": { + "creation_timestamp": "2021-05-11T16:29:21.459542Z", + "update_timestamp": "2021-05-11T16:29:21.45961Z", + "name": "LSSTCam Image Viewer", + "data": { + "content": { + "newPanel-1": { + "config": { + "url": "http://ccs.lsst.org/FITSInfo/view.html?image=AT_O_20210414_000002&raft=R00&color=grey", + "link": "", + "title": "Embedded view", + "margin": true, + "titleBar": true, + "hasRawMode": false + }, + "content": "EmbeddedView", + "properties": { + "h": 34, + "i": 1, + "w": 76, + "x": 0, + "y": 0, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "" + } + }, + { + "model": "ui_framework.view", + "pk": 46, + "fields": { + "creation_timestamp": "2021-06-23T15:30:57.799908Z", + "update_timestamp": "2021-06-23T18:08:22.118247Z", + "name": "test", + "data": { + "content": { + "newPanel-1": { + "config": { + "link": "", + "name": "ATAOS", + "title": "CSC details", + "margin": false, + "salindex": 0, + "titleBar": false, + "hasRawMode": false, + "hasHeartbeat": true, + "_functionProps": [] + }, + "content": "CSCDetail", + "properties": { + "h": 2, + "i": 1, + "w": 8, + "x": 0, + "y": null, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "" + } + }, + { + "model": "ui_framework.view", + "pk": 47, + "fields": { + "creation_timestamp": "2021-08-26T15:14:20.690173Z", + "update_timestamp": "2021-08-26T15:28:34.082695Z", + "name": "CCW", + "data": { + "content": { + "newPanel-1": { + "config": { + "link": "", + "title": "CableWraps", + "margin": true, + "titleBar": true, + "hasRawMode": true + }, + "content": "CableWraps", + "properties": { + "h": 27, + "i": 1, + "w": 47, + "x": 0, + "y": 0, + "type": "component" + } + }, + "newPanel-2": { + "config": { + "cscs": [ + { + "name": "MTMount", + "salindex": 0 + }, + { + "name": "MTRotator", + "salindex": 0 + } + ], + "link": "", + "name": "CSC group", + "title": "CSC group", + "margin": true, + "titleBar": false, + "hasRawMode": false, + "_functionProps": [ + "subscribeToStreamCallback" + ], + "subscribeToStreamCallback": "() => {}" + }, + "content": "CSCGroup", + "properties": { + "h": 8, + "i": 2, + "w": 47, + "x": 0, + "y": 27, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "" + } + }, + { + "model": "ui_framework.view", + "pk": 48, + "fields": { + "creation_timestamp": "2021-09-09T21:14:29.257159Z", + "update_timestamp": "2021-09-09T21:14:29.257298Z", + "name": "ATCS", + "data": { + "content": { + "newPanel-1": { + "config": { + "link": "", + "title": "TCS Commands", + "margin": true, + "titleBar": true, + "hasRawMode": false, + "scriptQueueIndex": 1 + }, + "content": "TCSCommands", + "properties": { + "h": 35, + "i": 1, + "w": 57, + "x": 0, + "y": null, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "" + } + }, + { + "model": "ui_framework.view", + "pk": 50, + "fields": { + "creation_timestamp": "2021-10-29T22:31:23.261491Z", + "update_timestamp": "2021-10-29T22:44:39.165455Z", + "name": "AT", + "data": { + "content": { + "newPanel-2": { + "config": { + "link": "", + "title": "Dome", + "margin": true, + "controls": true, + "titleBar": true, + "hasRawMode": true + }, + "content": "Dome", + "properties": { + "h": 46, + "i": 2, + "w": 60, + "x": 0, + "y": 19, + "type": "component" + } + }, + "newPanel-3": { + "config": { + "cscs": [ + { + "name": "ATMCS", + "salindex": 0 + }, + { + "name": "ATPtg", + "salindex": 0 + }, + { + "name": "ATDome", + "salindex": 0 + }, + { + "name": "ATDomeTrajectory", + "salindex": 0 + }, + { + "name": "ATAOS", + "salindex": 0 + }, + { + "name": "ATPneumatics", + "salindex": 0 + }, + { + "name": "ATHexapod", + "salindex": 0 + }, + { + "name": "Scheduler", + "salindex": 2 + } + ], + "link": "", + "name": "CSC group", + "title": "CSC group", + "margin": true, + "titleBar": false, + "hasRawMode": false, + "_functionProps": [ + "subscribeToStreamCallback" + ], + "subscribeToStreamCallback": "() => {}" + }, + "content": "CSCGroup", + "properties": { + "h": 19, + "i": 3, + "w": 60, + "x": 0, + "y": 0, + "type": "component" + } + } + }, + "properties": { + "h": 2, + "i": 0, + "w": 100, + "x": 0, + "y": 0, + "cols": 100, + "type": "container", + "allowOverflow": true + } + }, + "thumbnail": "" + } + } +] diff --git a/manager/ui_framework/fixtures/thumbnails/view_31.png b/manager/ui_framework/fixtures/thumbnails/view_31.png new file mode 100644 index 00000000..b1c440d7 Binary files /dev/null and b/manager/ui_framework/fixtures/thumbnails/view_31.png differ diff --git a/manager/ui_framework/fixtures/thumbnails/view_33.png b/manager/ui_framework/fixtures/thumbnails/view_33.png new file mode 100644 index 00000000..f233d0c0 Binary files /dev/null and b/manager/ui_framework/fixtures/thumbnails/view_33.png differ diff --git a/manager/ui_framework/fixtures/thumbnails/view_38.png b/manager/ui_framework/fixtures/thumbnails/view_38.png new file mode 100644 index 00000000..6fa09c07 Binary files /dev/null and b/manager/ui_framework/fixtures/thumbnails/view_38.png differ diff --git a/manager/ui_framework/fixtures/thumbnails/view_41.png b/manager/ui_framework/fixtures/thumbnails/view_41.png new file mode 100644 index 00000000..63558230 Binary files /dev/null and b/manager/ui_framework/fixtures/thumbnails/view_41.png differ diff --git a/manager/ui_framework/fixtures/thumbnails/view_42.png b/manager/ui_framework/fixtures/thumbnails/view_42.png new file mode 100644 index 00000000..bf94d8b4 Binary files /dev/null and b/manager/ui_framework/fixtures/thumbnails/view_42.png differ diff --git a/manager/ui_framework/fixtures/thumbnails/view_43.png b/manager/ui_framework/fixtures/thumbnails/view_43.png new file mode 100644 index 00000000..eaadf5be Binary files /dev/null and b/manager/ui_framework/fixtures/thumbnails/view_43.png differ diff --git a/manager/ui_framework/fixtures/thumbnails/view_44.png b/manager/ui_framework/fixtures/thumbnails/view_44.png new file mode 100644 index 00000000..48fd9e26 Binary files /dev/null and b/manager/ui_framework/fixtures/thumbnails/view_44.png differ