├── LICENSE.md ├── blue-shark ├── LICENSE.md ├── core │ └── .npmignore ├── ui │ ├── icons.reel │ │ ├── icons.css │ │ ├── _icons.css │ │ └── icons.js │ ├── password.reel │ │ ├── password.css │ │ └── _password.css │ ├── field-time.reel │ │ ├── field-time.css │ │ └── _field-time.css │ ├── date.info │ │ └── sample │ │ │ └── ui │ │ │ └── main.reel │ │ │ ├── main.css │ │ │ └── _main.css │ ├── field-duration.reel │ │ ├── _field-duration.css │ │ ├── field-duration.css │ │ └── field-duration.js │ ├── field.info │ │ └── sample │ │ │ └── ui │ │ │ └── main.reel │ │ │ ├── main.css │ │ │ ├── _main.css │ │ │ └── main.js │ ├── icons.info │ │ └── sample │ │ │ └── ui │ │ │ └── main.reel │ │ │ ├── main.css │ │ │ ├── _main.css │ │ │ └── main.js │ ├── modal.info │ │ └── sample │ │ │ └── ui │ │ │ └── main.reel │ │ │ ├── main.css │ │ │ └── _main.css │ ├── panel.info │ │ └── sample │ │ │ └── ui │ │ │ └── main.reel │ │ │ ├── main.css │ │ │ ├── _main.css │ │ │ └── main.js │ ├── tabs.info │ │ └── sample │ │ │ └── ui │ │ │ └── main.reel │ │ │ ├── main.css │ │ │ └── _main.css │ ├── time.info │ │ └── sample │ │ │ └── ui │ │ │ └── main.reel │ │ │ ├── main.css │ │ │ └── _main.css │ ├── button.info │ │ └── sample │ │ │ └── ui │ │ │ └── main.reel │ │ │ ├── main.css │ │ │ ├── _main.css │ │ │ └── main.js │ ├── checkbox.info │ │ └── sample │ │ │ └── ui │ │ │ └── main.reel │ │ │ ├── main.css │ │ │ ├── _main.css │ │ │ └── main.js │ ├── duration.info │ │ └── sample │ │ │ └── ui │ │ │ └── main.reel │ │ │ ├── main.css │ │ │ └── _main.css │ ├── field-date.info │ │ └── sample │ │ │ └── ui │ │ │ └── main.reel │ │ │ ├── main.css │ │ │ ├── _main.css │ │ │ └── main.js │ ├── field-file-input.reel │ │ ├── field-file-input.css │ │ ├── field-file-reader.css │ │ ├── _field-file-input.css │ │ └── field-file-input.js │ ├── field-file-reader.reel │ │ ├── field-file-reader.css │ │ ├── _field-file-reader.css │ │ └── field-file-reader.js │ ├── field-number-unit.reel │ │ ├── field-number-unit.css │ │ ├── _field-number-unit.css │ │ └── field-number-unit.js │ ├── field-text-area.reel │ │ ├── field-text-area.css │ │ └── _field-text-area.css │ ├── field-text.info │ │ └── sample │ │ │ └── ui │ │ │ └── main.reel │ │ │ ├── main.css │ │ │ ├── _main.css │ │ │ └── main.js │ ├── field-time.info │ │ └── sample │ │ │ └── ui │ │ │ └── main.reel │ │ │ ├── main.css │ │ │ ├── _main.css │ │ │ └── main.js │ ├── file-input.info │ │ └── sample │ │ │ └── ui │ │ │ └── main.reel │ │ │ ├── main.css │ │ │ ├── _main.css │ │ │ └── main.js │ ├── password.info │ │ └── sample │ │ │ └── ui │ │ │ └── main.reel │ │ │ ├── _main.css │ │ │ ├── main.css │ │ │ └── main.js │ ├── progress.info │ │ └── sample │ │ │ └── ui │ │ │ └── main.reel │ │ │ ├── main.css │ │ │ └── _main.css │ ├── text-area.info │ │ └── sample │ │ │ └── ui │ │ │ └── main.reel │ │ │ ├── main.css │ │ │ └── _main.css │ ├── text-field.info │ │ └── sample │ │ │ └── ui │ │ │ └── main.reel │ │ │ ├── main.css │ │ │ └── _main.css │ ├── field-checkbox.info │ │ └── sample │ │ │ └── ui │ │ │ └── main.reel │ │ │ ├── main.css │ │ │ ├── _main.css │ │ │ └── main.js │ ├── field-duration.info │ │ └── sample │ │ │ └── ui │ │ │ └── main.reel │ │ │ ├── main.css │ │ │ └── _main.css │ ├── field-password.info │ │ └── sample │ │ │ └── ui │ │ │ └── main.reel │ │ │ ├── main.css │ │ │ ├── _main.css │ │ │ └── main.js │ ├── field-select.info │ │ └── sample │ │ │ └── ui │ │ │ └── main.reel │ │ │ ├── main.css │ │ │ ├── _main.css │ │ │ └── main.js │ ├── field-text-area.info │ │ └── sample │ │ │ └── ui │ │ │ └── main.reel │ │ │ ├── main.css │ │ │ ├── _main.css │ │ │ └── main.js │ ├── file-reader.info │ │ └── sample │ │ │ └── ui │ │ │ └── main.reel │ │ │ ├── main.css │ │ │ ├── _main.css │ │ │ └── main.js │ ├── input-search.info │ │ └── sample │ │ │ └── ui │ │ │ └── main.reel │ │ │ ├── main.css │ │ │ ├── _main.css │ │ │ └── main.js │ ├── loading-message.info │ │ └── sample │ │ │ └── ui │ │ │ └── main.reel │ │ │ ├── main.css │ │ │ └── _main.css │ ├── multiple-select.info │ │ └── sample │ │ │ └── ui │ │ │ └── main.reel │ │ │ ├── main.css │ │ │ └── _main.css │ ├── number-input.info │ │ └── sample │ │ │ └── ui │ │ │ └── main.reel │ │ │ ├── main.css │ │ │ └── _main.css │ ├── scrollable-list.info │ │ └── sample │ │ │ └── ui │ │ │ └── main.reel │ │ │ ├── main.css │ │ │ ├── _main.css │ │ │ └── main.js │ ├── select-filter.info │ │ └── sample │ │ │ └── ui │ │ │ └── main.reel │ │ │ ├── main.css │ │ │ ├── _main.css │ │ │ └── main.js │ ├── select-multiple.info │ │ └── sample │ │ │ └── ui │ │ │ └── main.reel │ │ │ ├── main.css │ │ │ └── _main.css │ ├── select-search.info │ │ └── sample │ │ │ └── ui │ │ │ └── main.reel │ │ │ ├── main.css │ │ │ └── _main.css │ ├── text-input-edit.info │ │ └── sample │ │ │ └── ui │ │ │ └── main.reel │ │ │ ├── main.css │ │ │ ├── _main.css │ │ │ └── main.js │ ├── toggle-switch.info │ │ └── sample │ │ │ └── ui │ │ │ └── main.reel │ │ │ ├── main.css │ │ │ └── _main.css │ ├── confirmation-modal.info │ │ └── sample │ │ │ └── ui │ │ │ └── main.reel │ │ │ ├── main.css │ │ │ └── _main.css │ ├── field-file-reader.info │ │ └── sample │ │ │ └── ui │ │ │ └── main.reel │ │ │ ├── main.css │ │ │ ├── _main.css │ │ │ └── main.js │ ├── field-multiple-select.reel │ │ ├── field-multiple-select.css │ │ └── _field-multiple-select.css │ ├── field-radio-group.info │ │ └── sample │ │ │ └── ui │ │ │ └── main.reel │ │ │ ├── main.css │ │ │ ├── _main.css │ │ │ └── main.js │ ├── field-scrollable-list.reel │ │ ├── field-scrollable-list.css │ │ └── _field-scrollable-list.css │ ├── field-select-multiple.reel │ │ ├── field-select-multiple.css │ │ └── _field-select-multiple.css │ ├── field-text-input.info │ │ └── sample │ │ │ └── ui │ │ │ └── main.reel │ │ │ ├── main.css │ │ │ ├── _main.css │ │ │ └── main.js │ ├── field-toggle-switch.info │ │ └── sample │ │ │ └── ui │ │ │ └── main.reel │ │ │ ├── main.css │ │ │ ├── _main.css │ │ │ └── main.js │ ├── multiple-select-grid.info │ │ └── sample │ │ │ └── ui │ │ │ └── main.reel │ │ │ ├── main.css │ │ │ └── _main.css │ ├── theme.css │ ├── field-multiple-select.info │ │ └── sample │ │ │ └── ui │ │ │ └── main.reel │ │ │ ├── main.css │ │ │ ├── _main.css │ │ │ └── main.js │ ├── field-scrollable-list.info │ │ └── sample │ │ │ └── ui │ │ │ └── main.reel │ │ │ ├── main.css │ │ │ ├── _main.css │ │ │ └── main.js │ ├── field-search.reel │ │ └── field-search.css │ ├── field-select-multiple.info │ │ └── sample │ │ │ └── ui │ │ │ └── main.reel │ │ │ ├── main.css │ │ │ └── _main.css │ ├── radio-button-field-group.info │ │ └── sample │ │ │ └── ui │ │ │ └── main.reel │ │ │ ├── main.css │ │ │ ├── _main.css │ │ │ └── main.js │ ├── tables │ │ ├── table-read-only.info │ │ │ └── sample │ │ │ │ └── ui │ │ │ │ └── main.reel │ │ │ │ ├── _main.css │ │ │ │ └── main.css │ │ └── table-editable.info │ │ │ └── sample │ │ │ └── ui │ │ │ └── table-new-row.reel │ │ │ └── table-new-row.css │ ├── datetime.reel │ │ ├── datetime.css │ │ └── _datetime.css │ ├── field-checkbox.reel │ │ ├── field-checkbox.css │ │ └── _field-checkbox.css │ ├── field-date.reel │ │ ├── field-date.css │ │ ├── _field-date.css │ │ └── field-date.js │ ├── field-search-multiple.reel │ │ └── field-search-multiple.css │ ├── field-select.reel │ │ ├── field-select.css │ │ └── _field-select.css │ ├── scroller.reel │ │ ├── scroller.css │ │ ├── _scroller.css │ │ └── scroller.js │ ├── field-datetime.reel │ │ ├── field-datetime.css │ │ ├── field-datetime.js │ │ └── _field-datetime.css │ ├── field-text-input.reel │ │ ├── field-text-input.css │ │ └── _field-text-input.css │ ├── field-toggle-switch.reel │ │ ├── field-toggle-switch.css │ │ └── _field-toggle-switch.css │ ├── scroller.info │ │ └── sample │ │ │ └── ui │ │ │ └── main.reel │ │ │ ├── main.css │ │ │ ├── _main.css │ │ │ └── main.js │ ├── spinner.reel │ │ └── spinner.js │ ├── spinner.info │ │ └── sample │ │ │ └── ui │ │ │ └── main.reel │ │ │ └── main.js │ ├── duration.reel │ │ ├── _duration.css │ │ └── duration.css │ ├── select.info │ │ └── sample │ │ │ └── ui │ │ │ └── main.reel │ │ │ ├── main.css │ │ │ └── _main.css │ ├── field-radio-group.reel │ │ ├── field-radio-group.css │ │ └── _field-radio-group.css │ ├── field-text.reel │ │ ├── field-text.css │ │ └── field-text.js │ ├── sink.info │ │ └── sample │ │ │ └── ui │ │ │ └── main.reel │ │ │ ├── _main.css │ │ │ ├── main.css │ │ │ └── main.js │ ├── search-multiple.reel │ │ └── search-multiple.css │ ├── text-field.reel │ │ └── _text-field.css │ ├── toggle-switch.reel │ │ └── toggle-switch.js │ ├── select-search.reel │ │ └── select-search-option.reel │ │ │ └── select-search-option.css │ ├── multiple-select.reel │ │ └── multiple-select-option.reel │ │ │ └── multiple-select-option.css │ ├── text-area.reel │ │ ├── _text-area.css │ │ └── text-area.js │ ├── main.reel │ │ └── main.js │ ├── search.info │ │ └── sample │ │ │ └── ui │ │ │ └── main.reel │ │ │ ├── main.js │ │ │ └── _main.css │ ├── color-palette.info │ │ └── sample │ │ │ └── ui │ │ │ └── main.reel │ │ │ └── main.js │ ├── search-multiple.info │ │ └── sample │ │ │ └── ui │ │ │ └── main.reel │ │ │ ├── main.js │ │ │ └── _main.css │ ├── color-swatch.reel │ │ └── color-swatch.css │ ├── loading-message.reel │ │ └── loading-message.js │ └── panel.reel │ │ └── panel.css ├── favicon.ico ├── test │ └── all.js ├── assets │ ├── fonts │ │ ├── icons │ │ │ ├── freenas.ttf │ │ │ └── freenas.woff │ │ └── lato │ │ │ ├── Lato-Light-7244318390cc4d36aac4a613ff42d308.woff2 │ │ │ ├── Lato-Light-90301aa07d780a09812229d6375c3b28.woff │ │ │ ├── Lato-Regular-27bd77b9162d388cb8d4c4217c7c5e2a.woff │ │ │ ├── Lato-Regular-bd03a2cc277bbbc338d464e679fe9942.woff2 │ │ │ ├── Lato-LightItalic-b55e385f24f0f9f724dac935fe292ecf.woff │ │ │ └── Lato-LightItalic-314210a4825a7cc8ca7db893dfd9d283.woff2 │ ├── icons │ │ ├── apple-touch-icon.png │ │ ├── apple-touch-icon-precomposed.png │ │ ├── apple-touch-icon-76x76-precomposed.png │ │ ├── apple-touch-icon-120x120-precomposed.png │ │ └── apple-touch-icon-152x152-precomposed.png │ └── style │ │ └── style.css ├── README.md └── .editorconfig ├── .npmrc ├── serial-console-app ├── LICENSE.md ├── .npmignore ├── ui │ ├── main.reel │ │ └── main.css │ └── version.reel │ │ └── version.css ├── favicon.ico ├── test │ └── all.js ├── assets │ └── icons │ │ ├── apple-touch-icon.png │ │ ├── apple-touch-icon-precomposed.png │ │ ├── apple-touch-icon-76x76-precomposed.png │ │ ├── apple-touch-icon-120x120-precomposed.png │ │ └── apple-touch-icon-152x152-precomposed.png └── core │ └── backend │ └── websocket-response.js ├── ui ├── widgets │ ├── cpu-usage.reel │ │ └── _cpu-usage.css │ ├── arc-demand-data.reel │ │ ├── _arc-demand-data.css │ │ └── arc-demand-data.js │ ├── memory-allocation.reel │ │ ├── _memory-allocation.css │ │ └── memory-allocation.js │ ├── load-average.reel │ │ ├── _load-average.css │ │ └── load-average.js │ ├── network-traffic.reel │ │ └── _network-traffic.css │ └── tasks.reel │ │ └── _tasks.css ├── dashboard │ ├── widgets │ │ └── chart-live.reel │ │ │ └── _chart-live.css │ ├── notifications.reel │ │ └── notification-details.reel │ │ │ ├── alert-notification-details.reel │ │ │ └── _alert-notification-details.css │ │ │ └── task-notification-details.reel │ │ │ ├── _task-notification-details.css │ │ │ └── task-notification-details.js │ └── notifications.info │ │ └── sample │ │ └── ui │ │ └── main.reel │ │ └── main.js ├── controls │ ├── ip-aliases.reel │ │ └── ip-address.reel │ │ │ ├── _ip-address.css │ │ │ └── ip-address.js │ ├── timezone-picker.reel │ │ ├── pin.png │ │ ├── gray-600.png │ │ └── _timezone-picker.css │ ├── grid.reel │ │ ├── _grid.css │ │ ├── grid.js │ │ └── grid-item.reel │ │ │ └── _grid-item.css │ ├── section.reel │ │ └── section-settings.reel │ │ │ └── section-settings.js │ ├── info-box.reel │ │ └── _info-box.css │ ├── button-group.reel │ │ └── button-group.js │ ├── labeled-icon.reel │ │ └── labeled-icon.js │ ├── list.reel │ │ └── _list.css │ ├── topology.reel │ │ └── _topology.css │ └── tree-view.reel │ │ └── child-node.reel │ │ └── child-node.js ├── inspectors │ ├── services-category.reel │ │ ├── _share.css │ │ ├── _services-category.css │ │ └── services-category.js │ ├── rsyncd-module.reel │ │ └── _rsyncd-module.css │ ├── calendar.reel │ │ ├── calendar-widget.reel │ │ │ ├── day-view.reel │ │ │ │ └── _day-view.css │ │ │ ├── week-view.reel │ │ │ │ └── _week-view.css │ │ │ ├── calendar-widget-task.reel │ │ │ │ └── _calendar-widget-task.css │ │ │ ├── calendar-event.reel │ │ │ │ └── _calendar-event.css │ │ │ ├── month-view.reel │ │ │ │ └── _month-view.css │ │ │ ├── calendar-widget-view-month.info │ │ │ │ └── sample │ │ │ │ │ └── ui │ │ │ │ │ └── main.reel │ │ │ │ │ └── main.js │ │ │ └── day-header.reel │ │ │ │ └── _day-header.css │ │ ├── calendar-list.reel │ │ │ └── calendar-list.js │ │ └── task-type-indicator.reel │ │ │ └── task-type-indicator.js │ ├── service.reel │ │ ├── dc-service.reel │ │ │ └── _dc-service.css │ │ ├── afp-service.reel │ │ │ ├── _afp-service.css │ │ │ └── afp-service.js │ │ ├── ftp-service.reel │ │ │ └── _ftp-service.css │ │ ├── ipfs-service.reel │ │ │ ├── _ipfs-service.css │ │ │ └── ipfs-service.js │ │ ├── ldap-service.reel │ │ │ ├── _ldap-service.css │ │ │ └── ldap-service.js │ │ ├── lldp-service.reel │ │ │ ├── _lldp-service.css │ │ │ └── lldp-service.js │ │ ├── nfs-service.reel │ │ │ ├── _nfs-service.css │ │ │ └── nfs-service.js │ │ ├── nis-service.reel │ │ │ ├── _nis-service.css │ │ │ └── nis-service.js │ │ ├── nt4-service.reel │ │ │ ├── _nt4-service.css │ │ │ └── nt4-service.js │ │ ├── scp-service.reel │ │ │ ├── _scp-service.css │ │ │ └── scp-service.js │ │ ├── smb-service.reel │ │ │ └── _smb-service.css │ │ ├── snmp-service.reel │ │ │ └── _snmp-service.css │ │ ├── ups-service.reel │ │ │ └── _ups-service.css │ │ ├── rsyncd-service.reel │ │ │ └── _rsyncd-service.css │ │ ├── smartd-service.reel │ │ │ └── _smartd-service.css │ │ ├── sshd-service.reel │ │ │ └── _sshd-service.css │ │ ├── swift-service.reel │ │ │ ├── _swift-service.css │ │ │ └── swift-service.js │ │ ├── tftpd-service.reel │ │ │ └── _tftpd-service.css │ │ ├── _service.css │ │ ├── dyndns-service.reel │ │ │ └── _dyndns-service.css │ │ ├── gluster-service.reel │ │ │ ├── _gluster-service.css │ │ │ └── gluster-service.js │ │ ├── iscsi-service.reel │ │ │ └── _iscsi-service.css │ │ ├── webdav-service.reel │ │ │ └── _webdav-service.css │ │ ├── domain-controller-service.reel │ │ │ ├── _domain-controller-service.css │ │ │ └── domain-controller-service.js │ │ └── service-overview.reel │ │ │ └── service-overview.js │ ├── static-route.reel │ │ └── _static-route.css │ ├── calendar-task.reel │ │ ├── cron-args.reel │ │ │ ├── _cron-args.css │ │ │ └── cron-args.js │ │ ├── scrub-args.reel │ │ │ └── _scrub-args.css │ │ ├── rsync-args.reel │ │ │ └── _rsync-args.css │ │ ├── smart-args.reel │ │ │ └── _smart-args.css │ │ ├── replication-args.reel │ │ │ └── _replication-args.css │ │ └── snapshot-args.reel │ │ │ └── _snapshot-args.css │ ├── inspector.info │ │ └── sample │ │ │ └── ui │ │ │ └── main.reel │ │ │ └── main.js │ └── static-route.info │ │ └── sample │ │ └── ui │ │ └── main.reel │ │ └── main.js ├── sections │ ├── storage │ │ ├── inspectors │ │ │ ├── overview.reel │ │ │ │ ├── _overview.css │ │ │ │ └── overview.js │ │ │ ├── share.reel │ │ │ │ ├── _share.css │ │ │ │ ├── afp-share.reel │ │ │ │ │ ├── _afp-share.css │ │ │ │ │ └── afp-share.js │ │ │ │ ├── nfs-share.reel │ │ │ │ │ └── _nfs-share.css │ │ │ │ ├── smb-share.reel │ │ │ │ │ ├── _smb-share.css │ │ │ │ │ └── smb-share.js │ │ │ │ ├── webdav-share.reel │ │ │ │ │ ├── _webdav-share.css │ │ │ │ │ └── webdav-share.js │ │ │ │ ├── share-owner.reel │ │ │ │ │ └── _share-owner.css │ │ │ │ └── iscsi-share.reel │ │ │ │ │ └── _iscsi-share.css │ │ │ ├── vmware-snapshot.reel │ │ │ │ └── _vmware-snapshot.css │ │ │ ├── volume-dataset.reel │ │ │ │ ├── _volume-dataset.css │ │ │ │ └── volume-dataset-settings.reel │ │ │ │ │ └── _volume-dataset-settings.css │ │ │ ├── snapshot.reel │ │ │ │ └── _snapshot.css │ │ │ └── replication.reel │ │ │ │ └── _replication.css │ │ └── controls │ │ │ └── volume-dataset-options.reel │ │ │ └── volume-dataset-options.js │ ├── network │ │ ├── inspectors │ │ │ ├── ipmi.reel │ │ │ │ └── _ipmi.css │ │ │ ├── network-interface.reel │ │ │ │ ├── vlan.reel │ │ │ │ │ ├── _vlan.css │ │ │ │ │ └── vlan.js │ │ │ │ ├── lagg.reel │ │ │ │ │ └── _lagg.css │ │ │ │ ├── bridge.reel │ │ │ │ │ ├── _bridge.css │ │ │ │ │ └── bridge.js │ │ │ │ ├── interface.reel │ │ │ │ │ └── _interface.css │ │ │ │ └── _network-interface.css │ │ │ ├── settings.reel │ │ │ │ └── _settings.css │ │ │ ├── network-interface-creator.reel │ │ │ │ └── _network-interface-creator.css │ │ │ └── overview.reel │ │ │ │ └── overview.js │ │ └── controls │ │ │ └── table-routes.reel │ │ │ ├── table-row-route.reel │ │ │ ├── _table-row-route.css │ │ │ └── table-row-route.js │ │ │ └── _table-routes.css │ ├── accounts │ │ └── inspectors │ │ │ ├── group.reel │ │ │ └── _group.css │ │ │ ├── kerberos-realm.reel │ │ │ ├── _kerberos-realm.css │ │ │ └── kerberos-realm.js │ │ │ ├── user.reel │ │ │ └── _user.css │ │ │ ├── directory-services.reel │ │ │ └── directory-service.reel │ │ │ │ └── directory-service.js │ │ │ └── kerberos-keytab.reel │ │ │ └── _kerberos-keytab.css │ ├── vms │ │ └── inspectors │ │ │ ├── vm-snapshot.reel │ │ │ └── _vm-snapshot.css │ │ │ ├── virtual-machine-device.reel │ │ │ ├── virtual-machine-device-volume.reel │ │ │ │ └── _virtual-machine-device-volume.css │ │ │ └── virtual-machine-device-cdrom.reel │ │ │ │ └── virtual-machine-device-cdrom.js │ │ │ └── virtual-machine.reel │ │ │ └── virtual-machine-readme.reel │ │ │ └── _virtual-machine-readme.css │ ├── system │ │ └── inspectors │ │ │ ├── overview.reel │ │ │ └── _overview.css │ │ │ ├── serial-console.reel │ │ │ └── _serial-console.css │ │ │ ├── language-and-region.reel │ │ │ └── _language-and-region.css │ │ │ └── system-section.reel │ │ │ └── _system-section.css │ ├── containers │ │ ├── controls │ │ │ ├── table-volume.reel │ │ │ │ └── table-row-volume.reel │ │ │ │ │ └── _table-row-volume.css │ │ │ └── table-port.reel │ │ │ │ └── table-row-port.reel │ │ │ │ └── table-row-port.js │ │ └── inspectors │ │ │ ├── docker-collection.reel │ │ │ └── docker-collection.js │ │ │ └── docker-logs.reel │ │ │ └── _docker-logs.css │ └── wizard │ │ └── inspectors │ │ ├── mail.reel │ │ ├── _mail.css │ │ └── mail.js │ │ ├── system.reel │ │ └── _system.css │ │ ├── share.reel │ │ ├── _share.css │ │ ├── table-afp.reel │ │ │ └── _table-afp.css │ │ ├── table-nfs.reel │ │ │ └── _table-nfs.css │ │ ├── table-smb.reel │ │ │ └── _table-smb.css │ │ └── table-iscsi.reel │ │ │ └── _table-iscsi.css │ │ ├── directory-services.reel │ │ ├── _directory-services.css │ │ ├── table-nis.reel │ │ │ └── _table-nis.css │ │ └── table-freeipa.reel │ │ │ └── _table-freeipa.css │ │ └── user.reel │ │ └── table-users.reel │ │ └── _table-users.css ├── services │ └── services.reel │ │ └── _services.css ├── icons │ ├── directory.reel │ │ └── _directory.css │ ├── ipmi.reel │ │ ├── _ipmi.css │ │ └── ipmi.js │ ├── user.reel │ │ └── user.js │ ├── group.reel │ │ └── group.js │ ├── volume.reel │ │ └── volume.js │ ├── sharing.reel │ │ └── sharing.js │ ├── nfs-share.reel │ │ └── nfs-share.js │ ├── smb-service.reel │ │ ├── smb-share.js │ │ └── smb-service.js │ ├── smb-share.reel │ │ └── smb-share.js │ ├── network-interface.reel │ │ ├── lagg.reel │ │ │ └── lagg.js │ │ ├── vlan.reel │ │ │ └── vlan.js │ │ ├── bridge.reel │ │ │ └── bridge.js │ │ ├── interface.reel │ │ │ └── interface.js │ │ ├── network-device.js │ │ └── network-interface.js │ ├── nfs-service.reel │ │ └── nfs-service.js │ ├── afp-service.reel │ │ └── afp-service.js │ ├── file.reel │ │ └── file.js │ ├── zvol.reel │ │ └── zvol.js │ ├── certificates │ │ ├── ca.reel │ │ │ └── ca.js │ │ └── certificate.reel │ │ │ └── certificate.js │ └── freenas-icon.reel │ │ └── freenas-icon.js └── main-sidebar │ └── main-navigation.reel │ └── _main-navigation.css ├── assets ├── locales │ ├── en │ │ ├── translation.json │ │ └── help.json │ └── fr │ │ └── help.json └── images │ ├── bg.png │ ├── alt_logo.gif │ ├── ix_logo_text.png │ ├── graph-barChart.jpg │ └── graph-placeholder.jpg ├── Shark.jpg ├── favicon.ico ├── nas_ports └── freenas │ └── freenas-10gui │ └── pkg-descr ├── src ├── constants.js ├── model │ ├── Session.ts │ ├── LoginInfo.ts │ ├── Vm.ts │ ├── Alert.ts │ ├── Debug.ts │ ├── Disk.ts │ ├── Group.ts │ ├── Ipmi.ts │ ├── Peer.ts │ ├── Share.ts │ ├── Task.ts │ ├── User.ts │ ├── BootPool.ts │ ├── Calendar.ts │ ├── Database.ts │ ├── Section.ts │ ├── Service.ts │ ├── SystemUi.ts │ ├── Tunable.ts │ ├── Update.ts │ ├── VmClone.ts │ ├── VmConfig.ts │ ├── VmDevice.ts │ ├── VmVolume.ts │ ├── Directory.ts │ ├── DiskUsage.ts │ ├── DockerHost.ts │ ├── NtpServer.ts │ ├── ServiceDc.ts │ ├── ServiceUps.ts │ ├── SystemTime.ts │ ├── VmSnapshot.ts │ ├── VmTemplate.ts │ ├── AccountSystem.ts │ ├── AlertSettings.ts │ ├── CalendarTask.ts │ ├── DockerConfig.ts │ ├── DockerImage.ts │ ├── DockerNetwork.ts │ ├── KerberosRealm.ts │ ├── NetworkConfig.ts │ ├── NetworkHost.ts │ ├── NetworkRoute.ts │ ├── Permissions.ts │ ├── Replication.ts │ ├── RsyncdModule.ts │ ├── ServiceDyndns.ts │ ├── SupportTicket.ts │ ├── SystemGeneral.ts │ ├── SystemSection.ts │ ├── VmGuestInfo.ts │ ├── VmwareDataset.ts │ ├── AccountCategory.ts │ ├── DockerImagePull.ts │ ├── ImportableDisk.ts │ ├── KerberosKeytab.ts │ ├── SectionSettings.ts │ ├── SshCredentials.ts │ ├── SupportCategory.ts │ ├── SystemAdvanced.ts │ ├── UnixPermissions.ts │ ├── VmwareDatastore.ts │ ├── VolumeImporter.ts │ ├── VolumeSnapshot.ts │ ├── AlertEmitterEmail.ts │ ├── CryptoCertificate.ts │ ├── DirectoryServices.ts │ ├── DockerCollection.ts │ ├── DockerImageReadme.ts │ ├── FreenasCredentials.ts │ ├── ReplicationOptions.ts │ ├── ShareIscsiTarget.ts │ ├── VmwareCredentials.ts │ ├── AmazonS3Credentials.ts │ ├── DockerContainerLogs.ts │ ├── VolumeMediaImporter.ts │ ├── AlertEmitter.ts │ ├── AlertEmitterPushBullet.ts │ ├── CalendarCustomSchedule.ts │ ├── DirectoryserviceConfig.ts │ ├── DockerCollectionImage.ts │ ├── DockerContainerBridge.ts │ ├── DockerContainerCreator.ts │ ├── DockerContainerSection.ts │ ├── EncryptedVolumeActions.ts │ ├── EncryptedVolumeImporter.ts │ ├── VmReadme.ts │ ├── AlertFilter.ts │ ├── VmDatastore.ts │ ├── VolumeVdevRecommendations.ts │ ├── SubmittedTask.ts │ ├── VolumeDatasetPropertyAtime.ts │ ├── VolumeDatasetPropertyDedup.ts │ ├── DetachedVolume.ts │ ├── NetworkInterfaceLaggProperties.ts │ ├── NetworkInterfaceVlanProperties.ts │ ├── EncryptReplicationTransportOption.ts │ ├── NetworkInterface.ts │ ├── NetworkInterfaceBridgeProperties.ts │ ├── VolumeDatasetPropertyCompression.ts │ ├── VolumeDatasetPropertyVolblocksize.ts │ ├── CompressReplicationTransportOption.ts │ ├── ThrottleReplicationTransportOption.ts │ ├── BootEnvironment.ts │ ├── VolumeDatasetPropertyCasesensitivity.ts │ ├── VolumeDatasetPropertyQuota.ts │ ├── ZfsTopology.ts │ ├── VolumeDatasetPropertyRefquota.ts │ ├── VolumeDatasetPropertyReservation.ts │ ├── VolumeDatasetPropertyRefreservation.ts │ ├── enumerations │ │ ├── AclEntryType.ts │ │ ├── VmDeviceUsbDevice.ts │ │ ├── VmDeviceVolumeType.ts │ │ ├── DockerHostState.ts │ │ ├── ServiceUpsMode.ts │ │ ├── AlertType.ts │ │ ├── NetworkRouteType.ts │ │ ├── DockerPortProtocol.ts │ │ ├── TunableType.ts │ │ ├── VmDeviceDiskMode.ts │ │ ├── ShareTypesPermtype.ts │ │ ├── ShareTypesSubtype.ts │ │ ├── RsyncCopyRsyncmode.ts │ │ ├── ShareIscsiBlocksize.ts │ │ ├── VmDatastoreState.ts │ │ ├── ServiceSnmpV3authtype.ts │ │ ├── SnapshotInfoType.ts │ │ ├── BackupCompressionType.ts │ │ ├── VolumeDatasetType.ts │ │ ├── AlertSeverity.ts │ │ ├── DiskEraseMethod.ts │ │ ├── VmDatastoreNfsVersion.ts │ │ ├── MailEncryptionType.ts │ │ ├── RsyncCopyRsyncdirection.ts │ │ ├── PowerChangedOperation.ts │ │ ├── ServiceUpsShutdownmode.ts │ │ └── VmDeviceNicDevice.ts │ └── DockerContainer.ts ├── service │ ├── data-processor │ │ └── data-processor.ts │ └── freenas-service.js ├── reducers │ └── initialize.ts ├── repository │ ├── UserRepository.ts │ └── data-store.ts ├── controller │ └── tree │ │ ├── Entry.ts │ │ └── TreeController.ts ├── backend │ ├── websocket-response.js │ └── websocket-message.js ├── dao │ ├── peer-dao.ts │ ├── section-dao.ts │ ├── tunable-dao.ts │ ├── calendar-dao.ts │ ├── vm-readme-dao.ts │ └── zfs-vdev-dao.ts └── Events.ts ├── rollbar_runtime_config.js ├── core └── model │ ├── models │ ├── alert-class.js │ ├── share-types.js │ ├── backup-providers.js │ ├── disks-allocation.js │ ├── task-args-anonymous.js │ ├── user-attributes-anonymous.js │ ├── zfs-vdev-stats-anonymous.js │ ├── share-client-extra-anonymous.js │ ├── update-info-notes-anonymous.js │ ├── volume-attributes-anonymous.js │ ├── zfs-snapshot-holds-anonymous.js │ ├── neighbor-properties-anonymous.js │ ├── vm-device-usb-config-anonymous.js │ ├── volume-snapshot-holds-anonymous.js │ ├── disk-status-controller-anonymous.js │ ├── smart-info-diagnostics-anonymous.js │ ├── vm-guest-info-interfaces-anonymous.js │ ├── zfs-dataset-properties-anonymous.js │ ├── zfs-snapshot-properties-anonymous.js │ ├── mail-message-extra-headers-anonymous.js │ ├── share-smb-extra-parameters-anonymous.js │ ├── disk-status-multipath-anonymous-members-anonymous.js │ └── docker-container-section.js │ ├── descriptors │ ├── alert-class.mjson │ ├── share-types.mjson │ ├── backup-providers.mjson │ ├── disks-allocation.mjson │ ├── task-args-anonymous.mjson │ ├── zfs-vdev-stats-anonymous.mjson │ ├── update-info-notes-anonymous.mjson │ ├── user-attributes-anonymous.mjson │ ├── neighbor-properties-anonymous.mjson │ ├── share-client-extra-anonymous.mjson │ ├── vm-device-usb-config-anonymous.mjson │ ├── volume-attributes-anonymous.mjson │ ├── zfs-snapshot-holds-anonymous.mjson │ ├── disk-status-controller-anonymous.mjson │ ├── smart-info-diagnostics-anonymous.mjson │ ├── volume-snapshot-holds-anonymous.mjson │ ├── zfs-dataset-properties-anonymous.mjson │ ├── vm-guest-info-interfaces-anonymous.mjson │ ├── zfs-snapshot-properties-anonymous.mjson │ ├── mail-message-extra-headers-anonymous.mjson │ ├── share-smb-extra-parameters-anonymous.mjson │ └── disk-status-multipath-anonymous-members-anonymous.mjson │ ├── custom-descriptors │ ├── scrub.mjson │ ├── account-system.mjson │ ├── docker-image-pull.mjson │ ├── directory-services.mjson │ ├── docker-container-logs.mjson │ ├── calendar-customSchedule.mjson │ ├── docker-container-creator.mjson │ ├── docker-container-section.mjson │ ├── encrypted-volume-actions.mjson │ └── calendar.mjson │ ├── enumerations │ ├── acl-entry-type.js │ ├── docker-host-state.js │ ├── neighbor-type.js │ ├── vm-device-usb-device.js │ ├── docker-port-protocol.js │ ├── network-route-type.js │ ├── rsync-copy-rsyncmode.js │ ├── service-snmp-v3authtype.js │ ├── service-ups-mode.js │ ├── share-types-permtype.js │ ├── share-types-subtype.js │ ├── vm-device-disk-mode.js │ ├── vm-device-volume-type.js │ ├── alert-type.js │ ├── backup-compression-type.js │ ├── tunable-type.js │ ├── vm-datastore-state.js │ ├── mail-encryption-type.js │ ├── rsync-copy-rsyncdirection.js │ ├── share-iscsi-blocksize.js │ ├── snapshot-info-type.js │ ├── vm-datastore-nfs-version.js │ ├── alert-severity.js │ ├── disk-erase-method.js │ ├── docker-volume-host-path-source.js │ ├── network-interface-alias-type.js │ ├── service-snmp-v3privacyprotocol.js │ ├── service-ups-shutdownmode.js │ ├── volume-dataset-type.js │ ├── compress-plugin-level.js │ ├── power-changed-operation.js │ ├── service-state.js │ ├── service-webdav-protocol-items.js │ ├── system-ui-webuiprotocol-items.js │ ├── vm-device-nic-device.js │ ├── volume-dataset-permissionstype.js │ ├── volume-providerspresence.js │ ├── encrypt-plugin-type.js │ ├── service-webdav-authentication.js │ ├── ldap-directory-params-encryption.js │ ├── update-ops-operation.js │ ├── vm-device-disk-target-type.js │ ├── vm-status-state.js │ ├── share-nfs-security-items.js │ ├── share-targettype.js │ ├── update-progress-operation.js │ ├── vm-status-health.js │ ├── vmware-dataset-filter-op.js │ ├── volume-status.js │ ├── rsyncd-module-mode.js │ ├── volume-dataset-property-dedup-value.js │ ├── dataset-type.js │ ├── disk-selftest-type.js │ ├── service-smartd-powermode.js │ ├── share-iscsi-auth-type.js │ ├── vm-config-bootloader.js │ ├── vm-device-nic-mode.js │ ├── volume-property-failmode-value.js │ ├── disk-acousticlevel.js │ ├── volume-property-source.js │ ├── service-smb-loglevel.js │ ├── share-iscsi-rpm.js │ ├── vm-device-type.js │ ├── disks-allocation-type.js │ ├── network-interface-type.js │ ├── simulator-disk-rpm.js │ ├── zfs-vdev-type.js │ ├── zfs-property-source.js │ ├── enclosure-status.js │ ├── zfs-pool-status.js │ ├── acl-entry-tag.js │ ├── crypto-certificate-digestalgorithm.js │ ├── volume-dataset-property-casesensitivity-value.js │ └── service-smb-unixcharset.js │ └── user-interface-descriptors │ ├── account-category-user-interface-descriptor.mjson │ └── docker-container-section-user-interface-descriptor.mjson ├── tests └── e2e │ ├── globals.js │ └── tests │ ├── console │ ├── 99_end.js │ └── 00_section.js │ ├── docker │ └── 99_end.js │ ├── network │ └── 99_end.js │ ├── peering │ └── 99_end.js │ ├── storage │ └── 99_end.js │ ├── system │ └── 99_end.js │ ├── vms │ └── 99_end.js │ ├── accounts │ └── 99_end.js │ ├── calendar │ └── 99_end.js │ └── services │ └── 99_end.js └── .editorconfig /LICENSE.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/LICENSE.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/core/.npmignore: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | legacy-bundling=true 2 | -------------------------------------------------------------------------------- /serial-console-app/LICENSE.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/icons.reel/icons.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/password.reel/password.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ui/widgets/cpu-usage.reel/_cpu-usage.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/field-time.reel/field-time.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/locales/en/translation.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /blue-shark/ui/date.info/sample/ui/main.reel/main.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/field-duration.reel/_field-duration.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/field-duration.reel/field-duration.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/field.info/sample/ui/main.reel/main.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/icons.info/sample/ui/main.reel/main.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/modal.info/sample/ui/main.reel/main.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/panel.info/sample/ui/main.reel/main.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/tabs.info/sample/ui/main.reel/main.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/time.info/sample/ui/main.reel/main.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ui/dashboard/widgets/chart-live.reel/_chart-live.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ui/widgets/arc-demand-data.reel/_arc-demand-data.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/button.info/sample/ui/main.reel/main.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/checkbox.info/sample/ui/main.reel/main.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/duration.info/sample/ui/main.reel/main.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/field-date.info/sample/ui/main.reel/main.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/field-file-input.reel/field-file-input.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/field-file-input.reel/field-file-reader.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/field-file-reader.reel/field-file-reader.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/field-number-unit.reel/field-number-unit.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/field-text-area.reel/field-text-area.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/field-text.info/sample/ui/main.reel/main.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/field-time.info/sample/ui/main.reel/main.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/file-input.info/sample/ui/main.reel/main.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/icons.reel/_icons.css: -------------------------------------------------------------------------------- 1 | .Icons { 2 | 3 | } -------------------------------------------------------------------------------- /blue-shark/ui/password.info/sample/ui/main.reel/_main.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/password.info/sample/ui/main.reel/main.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/progress.info/sample/ui/main.reel/main.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/text-area.info/sample/ui/main.reel/main.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/text-field.info/sample/ui/main.reel/main.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ui/widgets/memory-allocation.reel/_memory-allocation.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/button.info/sample/ui/main.reel/_main.css: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /blue-shark/ui/field-checkbox.info/sample/ui/main.reel/main.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/field-duration.info/sample/ui/main.reel/main.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/field-password.info/sample/ui/main.reel/main.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/field-select.info/sample/ui/main.reel/main.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/field-text-area.info/sample/ui/main.reel/main.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/file-reader.info/sample/ui/main.reel/main.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/input-search.info/sample/ui/main.reel/main.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/loading-message.info/sample/ui/main.reel/main.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/multiple-select.info/sample/ui/main.reel/main.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/number-input.info/sample/ui/main.reel/main.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/password.reel/_password.css: -------------------------------------------------------------------------------- 1 | .Password { 2 | 3 | } -------------------------------------------------------------------------------- /blue-shark/ui/scrollable-list.info/sample/ui/main.reel/main.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/select-filter.info/sample/ui/main.reel/main.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/select-multiple.info/sample/ui/main.reel/main.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/select-search.info/sample/ui/main.reel/main.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/text-input-edit.info/sample/ui/main.reel/main.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/toggle-switch.info/sample/ui/main.reel/main.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ui/controls/ip-aliases.reel/ip-address.reel/_ip-address.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ui/inspectors/services-category.reel/_share.css: -------------------------------------------------------------------------------- 1 | .Share {} 2 | -------------------------------------------------------------------------------- /ui/sections/storage/inspectors/overview.reel/_overview.css: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /ui/services/services.reel/_services.css: -------------------------------------------------------------------------------- 1 | .Services { 2 | 3 | } -------------------------------------------------------------------------------- /Shark.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenas/gui/HEAD/Shark.jpg -------------------------------------------------------------------------------- /blue-shark/ui/confirmation-modal.info/sample/ui/main.reel/main.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/field-file-reader.info/sample/ui/main.reel/main.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/field-multiple-select.reel/field-multiple-select.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/field-radio-group.info/sample/ui/main.reel/main.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/field-scrollable-list.reel/field-scrollable-list.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/field-select-multiple.reel/field-select-multiple.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/field-text-input.info/sample/ui/main.reel/main.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/field-time.reel/_field-time.css: -------------------------------------------------------------------------------- 1 | .FieldTime { 2 | 3 | } -------------------------------------------------------------------------------- /blue-shark/ui/field-toggle-switch.info/sample/ui/main.reel/main.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/multiple-select-grid.info/sample/ui/main.reel/main.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/text-input-edit.info/sample/ui/main.reel/_main.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/theme.css: -------------------------------------------------------------------------------- 1 | :root { 2 | /* --red: #F02; */ 3 | } 4 | -------------------------------------------------------------------------------- /serial-console-app/.npmignore: -------------------------------------------------------------------------------- 1 | .idea 2 | node_modules 3 | .DS_Store -------------------------------------------------------------------------------- /ui/sections/network/inspectors/ipmi.reel/_ipmi.css: -------------------------------------------------------------------------------- 1 | .Ipmi { 2 | 3 | } -------------------------------------------------------------------------------- /ui/sections/storage/inspectors/share.reel/_share.css: -------------------------------------------------------------------------------- 1 | .Share {} 2 | -------------------------------------------------------------------------------- /blue-shark/ui/date.info/sample/ui/main.reel/_main.css: -------------------------------------------------------------------------------- 1 | .Main { 2 | 3 | } -------------------------------------------------------------------------------- /blue-shark/ui/field-multiple-select.info/sample/ui/main.reel/main.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/field-scrollable-list.info/sample/ui/main.reel/main.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/field-search.reel/field-search.css: -------------------------------------------------------------------------------- 1 | .FieldSearch { 2 | 3 | } -------------------------------------------------------------------------------- /blue-shark/ui/field-select-multiple.info/sample/ui/main.reel/main.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/field.info/sample/ui/main.reel/_main.css: -------------------------------------------------------------------------------- 1 | .Main { 2 | 3 | } -------------------------------------------------------------------------------- /blue-shark/ui/icons.info/sample/ui/main.reel/_main.css: -------------------------------------------------------------------------------- 1 | .Main { 2 | 3 | } -------------------------------------------------------------------------------- /blue-shark/ui/modal.info/sample/ui/main.reel/_main.css: -------------------------------------------------------------------------------- 1 | .Main { 2 | 3 | } -------------------------------------------------------------------------------- /blue-shark/ui/panel.info/sample/ui/main.reel/_main.css: -------------------------------------------------------------------------------- 1 | .Main { 2 | 3 | } -------------------------------------------------------------------------------- /blue-shark/ui/radio-button-field-group.info/sample/ui/main.reel/main.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/tables/table-read-only.info/sample/ui/main.reel/_main.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/tables/table-read-only.info/sample/ui/main.reel/main.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/tabs.info/sample/ui/main.reel/_main.css: -------------------------------------------------------------------------------- 1 | .Main { 2 | 3 | } -------------------------------------------------------------------------------- /blue-shark/ui/time.info/sample/ui/main.reel/_main.css: -------------------------------------------------------------------------------- 1 | .Main { 2 | 3 | } -------------------------------------------------------------------------------- /favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenas/gui/HEAD/favicon.ico -------------------------------------------------------------------------------- /blue-shark/ui/checkbox.info/sample/ui/main.reel/_main.css: -------------------------------------------------------------------------------- 1 | .Main { 2 | 3 | } -------------------------------------------------------------------------------- /blue-shark/ui/duration.info/sample/ui/main.reel/_main.css: -------------------------------------------------------------------------------- 1 | .Main { 2 | 3 | } -------------------------------------------------------------------------------- /blue-shark/ui/field-date.info/sample/ui/main.reel/_main.css: -------------------------------------------------------------------------------- 1 | .Main { 2 | 3 | } -------------------------------------------------------------------------------- /blue-shark/ui/field-text.info/sample/ui/main.reel/_main.css: -------------------------------------------------------------------------------- 1 | .Main { 2 | 3 | } -------------------------------------------------------------------------------- /blue-shark/ui/field-time.info/sample/ui/main.reel/_main.css: -------------------------------------------------------------------------------- 1 | .Main { 2 | 3 | } -------------------------------------------------------------------------------- /blue-shark/ui/file-input.info/sample/ui/main.reel/_main.css: -------------------------------------------------------------------------------- 1 | .Main { 2 | 3 | } -------------------------------------------------------------------------------- /blue-shark/ui/file-reader.info/sample/ui/main.reel/_main.css: -------------------------------------------------------------------------------- 1 | .Main { 2 | 3 | } -------------------------------------------------------------------------------- /blue-shark/ui/progress.info/sample/ui/main.reel/_main.css: -------------------------------------------------------------------------------- 1 | .Main { 2 | 3 | } -------------------------------------------------------------------------------- /blue-shark/ui/text-area.info/sample/ui/main.reel/_main.css: -------------------------------------------------------------------------------- 1 | .Main { 2 | 3 | } -------------------------------------------------------------------------------- /blue-shark/ui/text-field.info/sample/ui/main.reel/_main.css: -------------------------------------------------------------------------------- 1 | .Main { 2 | 3 | } -------------------------------------------------------------------------------- /nas_ports/freenas/freenas-10gui/pkg-descr: -------------------------------------------------------------------------------- 1 | User interface for FreeNAS. 2 | 3 | -------------------------------------------------------------------------------- /ui/inspectors/rsyncd-module.reel/_rsyncd-module.css: -------------------------------------------------------------------------------- 1 | .RsyncdModule { 2 | 3 | } -------------------------------------------------------------------------------- /ui/widgets/load-average.reel/_load-average.css: -------------------------------------------------------------------------------- 1 | .LoadAverage { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /blue-shark/ui/field-checkbox.info/sample/ui/main.reel/_main.css: -------------------------------------------------------------------------------- 1 | .Main { 2 | 3 | } -------------------------------------------------------------------------------- /blue-shark/ui/field-duration.info/sample/ui/main.reel/_main.css: -------------------------------------------------------------------------------- 1 | .Main { 2 | 3 | } -------------------------------------------------------------------------------- /blue-shark/ui/field-password.info/sample/ui/main.reel/_main.css: -------------------------------------------------------------------------------- 1 | .Main { 2 | 3 | } -------------------------------------------------------------------------------- /blue-shark/ui/field-select.info/sample/ui/main.reel/_main.css: -------------------------------------------------------------------------------- 1 | .Main { 2 | 3 | } -------------------------------------------------------------------------------- /blue-shark/ui/field-text-area.info/sample/ui/main.reel/_main.css: -------------------------------------------------------------------------------- 1 | .Main { 2 | 3 | } -------------------------------------------------------------------------------- /blue-shark/ui/field-text-area.reel/_field-text-area.css: -------------------------------------------------------------------------------- 1 | .FieldTextArea { 2 | 3 | } -------------------------------------------------------------------------------- /blue-shark/ui/field-text-input.info/sample/ui/main.reel/_main.css: -------------------------------------------------------------------------------- 1 | .Main { 2 | 3 | } -------------------------------------------------------------------------------- /blue-shark/ui/input-search.info/sample/ui/main.reel/_main.css: -------------------------------------------------------------------------------- 1 | .Main { 2 | 3 | } -------------------------------------------------------------------------------- /blue-shark/ui/loading-message.info/sample/ui/main.reel/_main.css: -------------------------------------------------------------------------------- 1 | .Main { 2 | 3 | } -------------------------------------------------------------------------------- /blue-shark/ui/multiple-select.info/sample/ui/main.reel/_main.css: -------------------------------------------------------------------------------- 1 | .Main { 2 | 3 | } -------------------------------------------------------------------------------- /blue-shark/ui/number-input.info/sample/ui/main.reel/_main.css: -------------------------------------------------------------------------------- 1 | .Main { 2 | 3 | } -------------------------------------------------------------------------------- /blue-shark/ui/scrollable-list.info/sample/ui/main.reel/_main.css: -------------------------------------------------------------------------------- 1 | .Main { 2 | 3 | } -------------------------------------------------------------------------------- /blue-shark/ui/select-multiple.info/sample/ui/main.reel/_main.css: -------------------------------------------------------------------------------- 1 | .Main { 2 | 3 | } -------------------------------------------------------------------------------- /blue-shark/ui/select-search.info/sample/ui/main.reel/_main.css: -------------------------------------------------------------------------------- 1 | .Main { 2 | 3 | } -------------------------------------------------------------------------------- /blue-shark/ui/toggle-switch.info/sample/ui/main.reel/_main.css: -------------------------------------------------------------------------------- 1 | .Main { 2 | 3 | } -------------------------------------------------------------------------------- /src/constants.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | DEFAULT_SELECT_STRING: '---' 3 | }; 4 | -------------------------------------------------------------------------------- /ui/inspectors/calendar.reel/calendar-widget.reel/day-view.reel/_day-view.css: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /ui/inspectors/service.reel/dc-service.reel/_dc-service.css: -------------------------------------------------------------------------------- 1 | .DcService { 2 | 3 | } -------------------------------------------------------------------------------- /ui/inspectors/static-route.reel/_static-route.css: -------------------------------------------------------------------------------- 1 | .StaticRoute { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /ui/widgets/network-traffic.reel/_network-traffic.css: -------------------------------------------------------------------------------- 1 | .NetworkTraffic { 2 | } 3 | -------------------------------------------------------------------------------- /assets/images/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenas/gui/HEAD/assets/images/bg.png -------------------------------------------------------------------------------- /blue-shark/ui/confirmation-modal.info/sample/ui/main.reel/_main.css: -------------------------------------------------------------------------------- 1 | .Main { 2 | 3 | } -------------------------------------------------------------------------------- /blue-shark/ui/datetime.reel/datetime.css: -------------------------------------------------------------------------------- 1 | .Datetime>:not(:last-child){margin-bottom:.25em} -------------------------------------------------------------------------------- /blue-shark/ui/field-file-reader.info/sample/ui/main.reel/_main.css: -------------------------------------------------------------------------------- 1 | .Main { 2 | 3 | } -------------------------------------------------------------------------------- /blue-shark/ui/field-multiple-select.info/sample/ui/main.reel/_main.css: -------------------------------------------------------------------------------- 1 | .Main { 2 | 3 | } -------------------------------------------------------------------------------- /blue-shark/ui/field-radio-group.info/sample/ui/main.reel/_main.css: -------------------------------------------------------------------------------- 1 | .Main { 2 | 3 | } -------------------------------------------------------------------------------- /blue-shark/ui/field-scrollable-list.info/sample/ui/main.reel/_main.css: -------------------------------------------------------------------------------- 1 | .Main { 2 | 3 | } -------------------------------------------------------------------------------- /blue-shark/ui/field-select-multiple.info/sample/ui/main.reel/_main.css: -------------------------------------------------------------------------------- 1 | .Main { 2 | 3 | } -------------------------------------------------------------------------------- /blue-shark/ui/field-toggle-switch.info/sample/ui/main.reel/_main.css: -------------------------------------------------------------------------------- 1 | .Main { 2 | 3 | } -------------------------------------------------------------------------------- /blue-shark/ui/multiple-select-grid.info/sample/ui/main.reel/_main.css: -------------------------------------------------------------------------------- 1 | .Main { 2 | 3 | } -------------------------------------------------------------------------------- /blue-shark/ui/select-filter.info/sample/ui/main.reel/_main.css: -------------------------------------------------------------------------------- 1 | .Main { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /ui/inspectors/calendar-task.reel/cron-args.reel/_cron-args.css: -------------------------------------------------------------------------------- 1 | .CronArgs { 2 | 3 | } -------------------------------------------------------------------------------- /ui/inspectors/calendar-task.reel/scrub-args.reel/_scrub-args.css: -------------------------------------------------------------------------------- 1 | .ScrubArgs { 2 | 3 | } -------------------------------------------------------------------------------- /ui/inspectors/calendar.reel/calendar-widget.reel/week-view.reel/_week-view.css: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /ui/inspectors/service.reel/afp-service.reel/_afp-service.css: -------------------------------------------------------------------------------- 1 | .AfpService { 2 | 3 | } -------------------------------------------------------------------------------- /ui/inspectors/service.reel/ftp-service.reel/_ftp-service.css: -------------------------------------------------------------------------------- 1 | .FtpService { 2 | 3 | } -------------------------------------------------------------------------------- /ui/inspectors/service.reel/ipfs-service.reel/_ipfs-service.css: -------------------------------------------------------------------------------- 1 | .IpfsService { 2 | 3 | } -------------------------------------------------------------------------------- /ui/inspectors/service.reel/ldap-service.reel/_ldap-service.css: -------------------------------------------------------------------------------- 1 | .LdapService { 2 | 3 | } -------------------------------------------------------------------------------- /ui/inspectors/service.reel/lldp-service.reel/_lldp-service.css: -------------------------------------------------------------------------------- 1 | .LldpService { 2 | 3 | } -------------------------------------------------------------------------------- /ui/inspectors/service.reel/nfs-service.reel/_nfs-service.css: -------------------------------------------------------------------------------- 1 | .NfsService { 2 | 3 | } -------------------------------------------------------------------------------- /ui/inspectors/service.reel/nis-service.reel/_nis-service.css: -------------------------------------------------------------------------------- 1 | .NisService { 2 | 3 | } -------------------------------------------------------------------------------- /ui/inspectors/service.reel/nt4-service.reel/_nt4-service.css: -------------------------------------------------------------------------------- 1 | .Nt4Service { 2 | 3 | } -------------------------------------------------------------------------------- /ui/inspectors/service.reel/scp-service.reel/_scp-service.css: -------------------------------------------------------------------------------- 1 | .ScpService { 2 | 3 | } -------------------------------------------------------------------------------- /ui/inspectors/service.reel/smb-service.reel/_smb-service.css: -------------------------------------------------------------------------------- 1 | .SmbService { 2 | 3 | } -------------------------------------------------------------------------------- /ui/inspectors/service.reel/snmp-service.reel/_snmp-service.css: -------------------------------------------------------------------------------- 1 | .SnmpService { 2 | 3 | } -------------------------------------------------------------------------------- /ui/inspectors/service.reel/ups-service.reel/_ups-service.css: -------------------------------------------------------------------------------- 1 | .UpsService { 2 | 3 | } -------------------------------------------------------------------------------- /ui/inspectors/services-category.reel/_services-category.css: -------------------------------------------------------------------------------- 1 | .ServicesCategory {} 2 | -------------------------------------------------------------------------------- /ui/sections/accounts/inspectors/group.reel/_group.css: -------------------------------------------------------------------------------- 1 | .Group { min-width: 20em; } 2 | -------------------------------------------------------------------------------- /ui/sections/network/inspectors/network-interface.reel/vlan.reel/_vlan.css: -------------------------------------------------------------------------------- 1 | .Vlan {} 2 | -------------------------------------------------------------------------------- /ui/sections/storage/inspectors/share.reel/afp-share.reel/_afp-share.css: -------------------------------------------------------------------------------- 1 | .AfpShare {} 2 | -------------------------------------------------------------------------------- /blue-shark/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenas/gui/HEAD/blue-shark/favicon.ico -------------------------------------------------------------------------------- /blue-shark/ui/field-checkbox.reel/field-checkbox.css: -------------------------------------------------------------------------------- 1 | .FieldCheckbox .Field{margin-bottom:1em} -------------------------------------------------------------------------------- /blue-shark/ui/field-date.reel/field-date.css: -------------------------------------------------------------------------------- 1 | .FieldDate .disabled input[type=date]{opacity:.5} -------------------------------------------------------------------------------- /blue-shark/ui/field-file-input.reel/_field-file-input.css: -------------------------------------------------------------------------------- 1 | .FieldFileInput { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /blue-shark/ui/field-file-reader.reel/_field-file-reader.css: -------------------------------------------------------------------------------- 1 | .FieldFileReader { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /blue-shark/ui/field-number-unit.reel/_field-number-unit.css: -------------------------------------------------------------------------------- 1 | .FieldNumberUnit { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /blue-shark/ui/radio-button-field-group.info/sample/ui/main.reel/_main.css: -------------------------------------------------------------------------------- 1 | .Main { 2 | 3 | } -------------------------------------------------------------------------------- /blue-shark/ui/tables/table-editable.info/sample/ui/table-new-row.reel/table-new-row.css: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /ui/inspectors/calendar-task.reel/rsync-args.reel/_rsync-args.css: -------------------------------------------------------------------------------- 1 | .RsyncArgs { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /ui/inspectors/calendar-task.reel/smart-args.reel/_smart-args.css: -------------------------------------------------------------------------------- 1 | .SmartArgs { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /ui/inspectors/service.reel/rsyncd-service.reel/_rsyncd-service.css: -------------------------------------------------------------------------------- 1 | .RsyncdService { 2 | 3 | } -------------------------------------------------------------------------------- /ui/inspectors/service.reel/smartd-service.reel/_smartd-service.css: -------------------------------------------------------------------------------- 1 | .SmartdService { 2 | 3 | } -------------------------------------------------------------------------------- /ui/inspectors/service.reel/sshd-service.reel/_sshd-service.css: -------------------------------------------------------------------------------- 1 | .SshdService { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /ui/inspectors/service.reel/swift-service.reel/_swift-service.css: -------------------------------------------------------------------------------- 1 | .SwiftService { 2 | 3 | } -------------------------------------------------------------------------------- /ui/inspectors/service.reel/tftpd-service.reel/_tftpd-service.css: -------------------------------------------------------------------------------- 1 | .TftpService { 2 | 3 | } -------------------------------------------------------------------------------- /ui/sections/storage/inspectors/share.reel/nfs-share.reel/_nfs-share.css: -------------------------------------------------------------------------------- 1 | .NfsShare { 2 | 3 | } -------------------------------------------------------------------------------- /ui/sections/storage/inspectors/share.reel/smb-share.reel/_smb-share.css: -------------------------------------------------------------------------------- 1 | .SmbShare { 2 | 3 | } -------------------------------------------------------------------------------- /blue-shark/ui/field-scrollable-list.reel/_field-scrollable-list.css: -------------------------------------------------------------------------------- 1 | .FieldScrollableList {} 2 | -------------------------------------------------------------------------------- /serial-console-app/ui/main.reel/main.css: -------------------------------------------------------------------------------- 1 | .Main { 2 | display: flex; 3 | flex: 1; 4 | } 5 | -------------------------------------------------------------------------------- /serial-console-app/ui/version.reel/version.css: -------------------------------------------------------------------------------- 1 | .Version { 2 | color:hsl(0,0%,80%); 3 | } 4 | -------------------------------------------------------------------------------- /src/model/Session.ts: -------------------------------------------------------------------------------- 1 | export interface Session { 2 | url: string; 3 | user: any; 4 | } 5 | -------------------------------------------------------------------------------- /ui/inspectors/service.reel/_service.css: -------------------------------------------------------------------------------- 1 | .Service { 2 | min-width: 27rem !important; 3 | } 4 | -------------------------------------------------------------------------------- /ui/inspectors/service.reel/dyndns-service.reel/_dyndns-service.css: -------------------------------------------------------------------------------- 1 | .DynDnsService { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /ui/inspectors/service.reel/gluster-service.reel/_gluster-service.css: -------------------------------------------------------------------------------- 1 | .GlusterService { 2 | 3 | } -------------------------------------------------------------------------------- /ui/inspectors/service.reel/iscsi-service.reel/_iscsi-service.css: -------------------------------------------------------------------------------- 1 | .IscsiService { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /ui/inspectors/service.reel/webdav-service.reel/_webdav-service.css: -------------------------------------------------------------------------------- 1 | .WebdavService { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /ui/sections/accounts/inspectors/kerberos-realm.reel/_kerberos-realm.css: -------------------------------------------------------------------------------- 1 | .KerberosRealm { 2 | 3 | } -------------------------------------------------------------------------------- /ui/sections/network/inspectors/network-interface.reel/lagg.reel/_lagg.css: -------------------------------------------------------------------------------- 1 | .Lagg { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /ui/sections/storage/inspectors/share.reel/webdav-share.reel/_webdav-share.css: -------------------------------------------------------------------------------- 1 | .WebdavShare {} 2 | -------------------------------------------------------------------------------- /ui/widgets/tasks.reel/_tasks.css: -------------------------------------------------------------------------------- 1 | .Tasks { 2 | 3 | & .Widget { min-height: 19em; } 4 | } 5 | -------------------------------------------------------------------------------- /assets/images/alt_logo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenas/gui/HEAD/assets/images/alt_logo.gif -------------------------------------------------------------------------------- /blue-shark/ui/field-multiple-select.reel/_field-multiple-select.css: -------------------------------------------------------------------------------- 1 | .FieldMultipleSelect { 2 | 3 | } -------------------------------------------------------------------------------- /blue-shark/ui/field-search-multiple.reel/field-search-multiple.css: -------------------------------------------------------------------------------- 1 | .FieldSearchMultiple { 2 | 3 | } -------------------------------------------------------------------------------- /blue-shark/ui/field-select-multiple.reel/_field-select-multiple.css: -------------------------------------------------------------------------------- 1 | .FieldSelectMultiple { 2 | 3 | } -------------------------------------------------------------------------------- /blue-shark/ui/field-select.reel/field-select.css: -------------------------------------------------------------------------------- 1 | .FieldSelect .control{min-width:160px;min-width:10rem} -------------------------------------------------------------------------------- /blue-shark/ui/scroller.reel/scroller.css: -------------------------------------------------------------------------------- 1 | .Scroller{-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:auto} -------------------------------------------------------------------------------- /ui/icons/directory.reel/_directory.css: -------------------------------------------------------------------------------- 1 | .Directory { 2 | color: var(--blue-lighten-1); 3 | } 4 | -------------------------------------------------------------------------------- /ui/inspectors/calendar.reel/calendar-widget.reel/calendar-widget-task.reel/_calendar-widget-task.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ui/sections/accounts/inspectors/user.reel/_user.css: -------------------------------------------------------------------------------- 1 | .User { 2 | width: 31rem !important; 3 | } 4 | -------------------------------------------------------------------------------- /ui/sections/network/inspectors/network-interface.reel/bridge.reel/_bridge.css: -------------------------------------------------------------------------------- 1 | .Bridge { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /ui/sections/network/inspectors/network-interface.reel/interface.reel/_interface.css: -------------------------------------------------------------------------------- 1 | .Interface {} 2 | -------------------------------------------------------------------------------- /ui/sections/storage/inspectors/share.reel/share-owner.reel/_share-owner.css: -------------------------------------------------------------------------------- 1 | .ShareOwner { 2 | 3 | } -------------------------------------------------------------------------------- /ui/sections/storage/inspectors/vmware-snapshot.reel/_vmware-snapshot.css: -------------------------------------------------------------------------------- 1 | .VmwareSnapshot { 2 | 3 | } -------------------------------------------------------------------------------- /assets/images/ix_logo_text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenas/gui/HEAD/assets/images/ix_logo_text.png -------------------------------------------------------------------------------- /blue-shark/ui/scroller.reel/_scroller.css: -------------------------------------------------------------------------------- 1 | .Scroller { 2 | flex: 1; 3 | overflow: auto; 4 | } 5 | -------------------------------------------------------------------------------- /serial-console-app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenas/gui/HEAD/serial-console-app/favicon.ico -------------------------------------------------------------------------------- /src/model/LoginInfo.ts: -------------------------------------------------------------------------------- 1 | export interface LoginInfo { 2 | username: string; 3 | url: string; 4 | } 5 | -------------------------------------------------------------------------------- /ui/sections/storage/inspectors/share.reel/iscsi-share.reel/_iscsi-share.css: -------------------------------------------------------------------------------- 1 | .IScsiShare { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /ui/sections/storage/inspectors/volume-dataset.reel/_volume-dataset.css: -------------------------------------------------------------------------------- 1 | .DatasetSettings { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /assets/images/graph-barChart.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenas/gui/HEAD/assets/images/graph-barChart.jpg -------------------------------------------------------------------------------- /blue-shark/ui/datetime.reel/_datetime.css: -------------------------------------------------------------------------------- 1 | .Datetime > :not(:last-child) { 2 | margin-bottom: .25em; 3 | } 4 | -------------------------------------------------------------------------------- /blue-shark/ui/field-datetime.reel/field-datetime.css: -------------------------------------------------------------------------------- 1 | .FieldDatetime .disabled input[type=datetime]{opacity:.5} -------------------------------------------------------------------------------- /blue-shark/ui/field-text-input.reel/field-text-input.css: -------------------------------------------------------------------------------- 1 | .FieldTextInput .control{min-width:160px;min-width:10rem} -------------------------------------------------------------------------------- /blue-shark/ui/field-toggle-switch.reel/field-toggle-switch.css: -------------------------------------------------------------------------------- 1 | .FieldToggleSwitch .ToggleSwitch{margin-top:.2em} -------------------------------------------------------------------------------- /rollbar_runtime_config.js: -------------------------------------------------------------------------------- 1 | window._FREENAS_ENVIRONMENT = 'development'; 2 | window._FREENAS_GIT_SHA = 'master'; -------------------------------------------------------------------------------- /ui/inspectors/calendar-task.reel/replication-args.reel/_replication-args.css: -------------------------------------------------------------------------------- 1 | .ReplicationArgs { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /ui/sections/vms/inspectors/vm-snapshot.reel/_vm-snapshot.css: -------------------------------------------------------------------------------- 1 | .VmSnapshot { min-width: 22rem !important; } 2 | -------------------------------------------------------------------------------- /assets/images/graph-placeholder.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenas/gui/HEAD/assets/images/graph-placeholder.jpg -------------------------------------------------------------------------------- /ui/sections/network/inspectors/settings.reel/_settings.css: -------------------------------------------------------------------------------- 1 | .Network-settings { 2 | min-width: 31rem; 3 | } 4 | -------------------------------------------------------------------------------- /ui/sections/system/inspectors/overview.reel/_overview.css: -------------------------------------------------------------------------------- 1 | .Overview-metrics .Field-title { 2 | flex: 1; 3 | } 4 | -------------------------------------------------------------------------------- /blue-shark/test/all.js: -------------------------------------------------------------------------------- 1 | require("montage-testing").run(require,[ 2 | // Please keep in alphabetical order 3 | 4 | ]); -------------------------------------------------------------------------------- /blue-shark/ui/scroller.info/sample/ui/main.reel/main.css: -------------------------------------------------------------------------------- 1 | .Main .default{height:480px;height:30rem;outline:1px solid red} -------------------------------------------------------------------------------- /ui/dashboard/notifications.reel/notification-details.reel/alert-notification-details.reel/_alert-notification-details.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ui/dashboard/notifications.reel/notification-details.reel/task-notification-details.reel/_task-notification-details.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue-shark/ui/field-select.reel/_field-select.css: -------------------------------------------------------------------------------- 1 | .FieldSelect .control { 2 | min-width: var(--input-min-width); 3 | } 4 | -------------------------------------------------------------------------------- /serial-console-app/test/all.js: -------------------------------------------------------------------------------- 1 | require("montage-testing").run(require,[ 2 | // Please keep in alphabetical order 3 | 4 | ]); -------------------------------------------------------------------------------- /ui/controls/timezone-picker.reel/pin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenas/gui/HEAD/ui/controls/timezone-picker.reel/pin.png -------------------------------------------------------------------------------- /ui/inspectors/service.reel/domain-controller-service.reel/_domain-controller-service.css: -------------------------------------------------------------------------------- 1 | .DomainControllerService { 2 | 3 | } -------------------------------------------------------------------------------- /assets/locales/fr/help.json: -------------------------------------------------------------------------------- 1 | { 2 | "User.uid": "L'identifiant de l'utilisateur doit être compris entre 0 et 4294967295" 3 | } 4 | -------------------------------------------------------------------------------- /blue-shark/assets/fonts/icons/freenas.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenas/gui/HEAD/blue-shark/assets/fonts/icons/freenas.ttf -------------------------------------------------------------------------------- /blue-shark/assets/fonts/icons/freenas.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenas/gui/HEAD/blue-shark/assets/fonts/icons/freenas.woff -------------------------------------------------------------------------------- /core/model/models/alert-class.js: -------------------------------------------------------------------------------- 1 | var Montage = require("montage").Montage; 2 | 3 | exports.AlertClass = Montage.specialize(); 4 | -------------------------------------------------------------------------------- /core/model/models/share-types.js: -------------------------------------------------------------------------------- 1 | var Montage = require("montage").Montage; 2 | 3 | exports.ShareTypes = Montage.specialize(); 4 | -------------------------------------------------------------------------------- /ui/sections/system/inspectors/serial-console.reel/_serial-console.css: -------------------------------------------------------------------------------- 1 | .SerialConsole { 2 | min-width: 27rem !important; 3 | } 4 | -------------------------------------------------------------------------------- /blue-shark/assets/icons/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenas/gui/HEAD/blue-shark/assets/icons/apple-touch-icon.png -------------------------------------------------------------------------------- /blue-shark/ui/field-text-input.reel/_field-text-input.css: -------------------------------------------------------------------------------- 1 | .FieldTextInput .control { 2 | min-width: var(--input-min-width); 3 | } 4 | -------------------------------------------------------------------------------- /src/model/Vm.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class Vm extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /ui/controls/timezone-picker.reel/gray-600.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenas/gui/HEAD/ui/controls/timezone-picker.reel/gray-600.png -------------------------------------------------------------------------------- /core/model/models/backup-providers.js: -------------------------------------------------------------------------------- 1 | var Montage = require("montage").Montage; 2 | 3 | exports.BackupProviders = Montage.specialize(); 4 | -------------------------------------------------------------------------------- /core/model/models/disks-allocation.js: -------------------------------------------------------------------------------- 1 | var Montage = require("montage").Montage; 2 | 3 | exports.DisksAllocation = Montage.specialize(); 4 | -------------------------------------------------------------------------------- /src/model/Alert.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class Alert extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/Debug.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class Debug extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/Disk.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class Disk extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/Group.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class Group extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/Ipmi.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class Ipmi extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/Peer.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class Peer extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/Share.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class Share extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/Task.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class Task extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/User.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class User extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /ui/inspectors/calendar.reel/calendar-widget.reel/calendar-event.reel/_calendar-event.css: -------------------------------------------------------------------------------- 1 | /* FIXME - I don't think that this is used */ 2 | 3 | -------------------------------------------------------------------------------- /core/model/models/task-args-anonymous.js: -------------------------------------------------------------------------------- 1 | var Montage = require("montage").Montage; 2 | 3 | exports.TaskArgsAnonymous = Montage.specialize(); 4 | -------------------------------------------------------------------------------- /src/model/BootPool.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class BootPool extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/Calendar.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class Calendar extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/Database.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class Database extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/Section.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class Section extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/Service.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class Service extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/SystemUi.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class SystemUi extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/Tunable.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class Tunable extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/Update.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class Update extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/VmClone.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class VmClone extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/VmConfig.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class VmConfig extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/VmDevice.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class VmDevice extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/VmVolume.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class VmVolume extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/service/data-processor/data-processor.ts: -------------------------------------------------------------------------------- 1 | export interface DataProcessor { 2 | process(object: Object, ...context: any[]): Object; 3 | } 4 | -------------------------------------------------------------------------------- /ui/controls/timezone-picker.reel/_timezone-picker.css: -------------------------------------------------------------------------------- 1 | .TimezonePicker.is-disabled { 2 | opacity: .5; 3 | pointer-events: none; 4 | } 5 | -------------------------------------------------------------------------------- /ui/sections/network/controls/table-routes.reel/table-row-route.reel/_table-row-route.css: -------------------------------------------------------------------------------- 1 | .TableRowRoute-address { 2 | min-width: 60%; 3 | } 4 | -------------------------------------------------------------------------------- /ui/sections/storage/inspectors/volume-dataset.reel/volume-dataset-settings.reel/_volume-dataset-settings.css: -------------------------------------------------------------------------------- 1 | .VolumeDatasetSettings { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /blue-shark/ui/spinner.reel/spinner.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | exports.Spinner = Component.specialize(); 4 | -------------------------------------------------------------------------------- /serial-console-app/assets/icons/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenas/gui/HEAD/serial-console-app/assets/icons/apple-touch-icon.png -------------------------------------------------------------------------------- /src/model/Directory.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class Directory extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/DiskUsage.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class DiskUsage extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/DockerHost.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class DockerHost extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/NtpServer.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class NtpServer extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/ServiceDc.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class ServiceDc extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/ServiceUps.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class ServiceUps extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/SystemTime.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class SystemTime extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/VmSnapshot.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class VmSnapshot extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/VmTemplate.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class VmTemplate extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /ui/inspectors/calendar-task.reel/snapshot-args.reel/_snapshot-args.css: -------------------------------------------------------------------------------- 1 | .SnapshotArgs .FieldDuration .Duration-count { 2 | max-width: 3em; 3 | } 4 | -------------------------------------------------------------------------------- /ui/sections/network/controls/table-routes.reel/_table-routes.css: -------------------------------------------------------------------------------- 1 | .TableRoutes .TableHeaderLayout-cell:nth-child(2) { 2 | min-width: 60%; 3 | } 4 | -------------------------------------------------------------------------------- /ui/sections/system/inspectors/language-and-region.reel/_language-and-region.css: -------------------------------------------------------------------------------- 1 | .language-and-region { 2 | min-width: 39rem !important; 3 | } 4 | -------------------------------------------------------------------------------- /blue-shark/README.md: -------------------------------------------------------------------------------- 1 | # blue-shark 2 | The Montage-based widget set created for FreeNAS 3 | 4 | `npm install` then `gulp` for editing css 5 | 6 | moretk 7 | -------------------------------------------------------------------------------- /core/model/models/user-attributes-anonymous.js: -------------------------------------------------------------------------------- 1 | var Montage = require("montage").Montage; 2 | 3 | exports.UserAttributesAnonymous = Montage.specialize(); 4 | -------------------------------------------------------------------------------- /core/model/models/zfs-vdev-stats-anonymous.js: -------------------------------------------------------------------------------- 1 | var Montage = require("montage").Montage; 2 | 3 | exports.ZfsVdevStatsAnonymous = Montage.specialize(); 4 | -------------------------------------------------------------------------------- /src/model/AccountSystem.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class AccountSystem extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/AlertSettings.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class AlertSettings extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/CalendarTask.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class CalendarTask extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/DockerConfig.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class DockerConfig extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/DockerImage.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class DockerImage extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/DockerNetwork.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class DockerNetwork extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/KerberosRealm.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class KerberosRealm extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/NetworkConfig.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class NetworkConfig extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/NetworkHost.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class NetworkHost extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/NetworkRoute.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class NetworkRoute extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/Permissions.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class Permissions extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/Replication.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class Replication extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/RsyncdModule.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class RsyncdModule extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/ServiceDyndns.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class ServiceDyndns extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/SupportTicket.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class SupportTicket extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/SystemGeneral.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class SystemGeneral extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/SystemSection.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class SystemSection extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/VmGuestInfo.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class VmGuestInfo extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/VmwareDataset.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class VmwareDataset extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /ui/sections/containers/controls/table-volume.reel/table-row-volume.reel/_table-row-volume.css: -------------------------------------------------------------------------------- 1 | .TableRowVolume .Field-title { 2 | display: none; 3 | } 4 | -------------------------------------------------------------------------------- /ui/sections/network/inspectors/network-interface-creator.reel/_network-interface-creator.css: -------------------------------------------------------------------------------- 1 | .NetworkInterfaceCreator .Inspector-body { margin-top: 0; } 2 | -------------------------------------------------------------------------------- /blue-shark/assets/icons/apple-touch-icon-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenas/gui/HEAD/blue-shark/assets/icons/apple-touch-icon-precomposed.png -------------------------------------------------------------------------------- /core/model/models/share-client-extra-anonymous.js: -------------------------------------------------------------------------------- 1 | var Montage = require("montage").Montage; 2 | 3 | exports.ShareClientExtraAnonymous = Montage.specialize(); 4 | -------------------------------------------------------------------------------- /core/model/models/update-info-notes-anonymous.js: -------------------------------------------------------------------------------- 1 | var Montage = require("montage").Montage; 2 | 3 | exports.UpdateInfoNotesAnonymous = Montage.specialize(); 4 | -------------------------------------------------------------------------------- /core/model/models/volume-attributes-anonymous.js: -------------------------------------------------------------------------------- 1 | var Montage = require("montage").Montage; 2 | 3 | exports.VolumeAttributesAnonymous = Montage.specialize(); 4 | -------------------------------------------------------------------------------- /core/model/models/zfs-snapshot-holds-anonymous.js: -------------------------------------------------------------------------------- 1 | var Montage = require("montage").Montage; 2 | 3 | exports.ZfsSnapshotHoldsAnonymous = Montage.specialize(); 4 | -------------------------------------------------------------------------------- /src/model/AccountCategory.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class AccountCategory extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/DockerImagePull.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class DockerImagePull extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/ImportableDisk.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class ImportableDisk extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/KerberosKeytab.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class KerberosKeytab extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/SectionSettings.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class SectionSettings extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/SshCredentials.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class SshCredentials extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/SupportCategory.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class SupportCategory extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/SystemAdvanced.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class SystemAdvanced extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/UnixPermissions.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class UnixPermissions extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/VmwareDatastore.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class VmwareDatastore extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/VolumeImporter.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class VolumeImporter extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/VolumeSnapshot.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class VolumeSnapshot extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /ui/icons/ipmi.reel/_ipmi.css: -------------------------------------------------------------------------------- 1 | .IpmiIcon svg { 2 | color: var(--grey-2); 3 | } 4 | 5 | .Grid-icon.selected .IpmiIcon svg { color: var(--color-selected); } 6 | -------------------------------------------------------------------------------- /ui/sections/wizard/inspectors/mail.reel/_mail.css: -------------------------------------------------------------------------------- 1 | .Mail-wizard .FoldableSection, 2 | .Mail-wizard .InspectorFooter { 3 | display: none !important; 4 | } 5 | -------------------------------------------------------------------------------- /blue-shark/ui/spinner.info/sample/ui/main.reel/main.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | exports.Main = Component.specialize(); 4 | -------------------------------------------------------------------------------- /core/model/models/neighbor-properties-anonymous.js: -------------------------------------------------------------------------------- 1 | var Montage = require("montage").Montage; 2 | 3 | exports.NeighborPropertiesAnonymous = Montage.specialize(); 4 | -------------------------------------------------------------------------------- /core/model/models/vm-device-usb-config-anonymous.js: -------------------------------------------------------------------------------- 1 | var Montage = require("montage").Montage; 2 | 3 | exports.VmDeviceUsbConfigAnonymous = Montage.specialize(); 4 | -------------------------------------------------------------------------------- /core/model/models/volume-snapshot-holds-anonymous.js: -------------------------------------------------------------------------------- 1 | var Montage = require("montage").Montage; 2 | 3 | exports.VolumeSnapshotHoldsAnonymous = Montage.specialize(); 4 | -------------------------------------------------------------------------------- /src/model/AlertEmitterEmail.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class AlertEmitterEmail extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/CryptoCertificate.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class CryptoCertificate extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/DirectoryServices.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class DirectoryServices extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/DockerCollection.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class DockerCollection extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/DockerImageReadme.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class DockerImageReadme extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/FreenasCredentials.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class FreenasCredentials extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/ReplicationOptions.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class ReplicationOptions extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/ShareIscsiTarget.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class ShareIscsiTarget extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/VmwareCredentials.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class VmwareCredentials extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /ui/inspectors/inspector.info/sample/ui/main.reel/main.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | exports.Main = Component.specialize(); 4 | -------------------------------------------------------------------------------- /blue-shark/assets/icons/apple-touch-icon-76x76-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenas/gui/HEAD/blue-shark/assets/icons/apple-touch-icon-76x76-precomposed.png -------------------------------------------------------------------------------- /blue-shark/ui/duration.reel/_duration.css: -------------------------------------------------------------------------------- 1 | .Duration { display: flex; } 2 | 3 | .Duration-count { margin-right: .5rem; } 4 | 5 | .Duration-unit { min-width: 8rem; } 6 | -------------------------------------------------------------------------------- /blue-shark/ui/field-datetime.reel/field-datetime.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | exports.FieldDatetime = Component.specialize(); 4 | -------------------------------------------------------------------------------- /blue-shark/ui/field-toggle-switch.reel/_field-toggle-switch.css: -------------------------------------------------------------------------------- 1 | /* centering adjustment */ 2 | 3 | .FieldToggleSwitch .ToggleSwitch { 4 | margin-top: 0.2em; 5 | } 6 | -------------------------------------------------------------------------------- /blue-shark/ui/scroller.info/sample/ui/main.reel/_main.css: -------------------------------------------------------------------------------- 1 | .Main { 2 | & .default { 3 | height: 30rem; 4 | outline: 1px solid red; 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /core/model/models/disk-status-controller-anonymous.js: -------------------------------------------------------------------------------- 1 | var Montage = require("montage").Montage; 2 | 3 | exports.DiskStatusControllerAnonymous = Montage.specialize(); 4 | -------------------------------------------------------------------------------- /core/model/models/smart-info-diagnostics-anonymous.js: -------------------------------------------------------------------------------- 1 | var Montage = require("montage").Montage; 2 | 3 | exports.SmartInfoDiagnosticsAnonymous = Montage.specialize(); 4 | -------------------------------------------------------------------------------- /core/model/models/vm-guest-info-interfaces-anonymous.js: -------------------------------------------------------------------------------- 1 | var Montage = require("montage").Montage; 2 | 3 | exports.VmGuestInfoInterfacesAnonymous = Montage.specialize(); 4 | -------------------------------------------------------------------------------- /core/model/models/zfs-dataset-properties-anonymous.js: -------------------------------------------------------------------------------- 1 | var Montage = require("montage").Montage; 2 | 3 | exports.ZfsDatasetPropertiesAnonymous = Montage.specialize(); 4 | -------------------------------------------------------------------------------- /core/model/models/zfs-snapshot-properties-anonymous.js: -------------------------------------------------------------------------------- 1 | var Montage = require("montage").Montage; 2 | 3 | exports.ZfsSnapshotPropertiesAnonymous = Montage.specialize(); 4 | -------------------------------------------------------------------------------- /src/model/AmazonS3Credentials.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class AmazonS3Credentials extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/DockerContainerLogs.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class DockerContainerLogs extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/VolumeMediaImporter.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class VolumeMediaImporter extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /ui/dashboard/notifications.info/sample/ui/main.reel/main.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | exports.Main = Component.specialize(); 4 | -------------------------------------------------------------------------------- /ui/inspectors/static-route.info/sample/ui/main.reel/main.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | exports.Main = Component.specialize(); 4 | -------------------------------------------------------------------------------- /ui/sections/network/inspectors/overview.reel/overview.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | exports.Overview = Component.specialize(); 4 | -------------------------------------------------------------------------------- /ui/sections/storage/inspectors/overview.reel/overview.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | exports.Overview = Component.specialize(); 4 | -------------------------------------------------------------------------------- /ui/sections/vms/inspectors/virtual-machine-device.reel/virtual-machine-device-volume.reel/_virtual-machine-device-volume.css: -------------------------------------------------------------------------------- 1 | .VirtualMachineDeviceVolume { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /ui/sections/wizard/inspectors/system.reel/_system.css: -------------------------------------------------------------------------------- 1 | .System-wizard .AdvancedSection, 2 | .System-wizard .InspectorFooter { 3 | display: none !important; 4 | } 5 | -------------------------------------------------------------------------------- /blue-shark/assets/icons/apple-touch-icon-120x120-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenas/gui/HEAD/blue-shark/assets/icons/apple-touch-icon-120x120-precomposed.png -------------------------------------------------------------------------------- /blue-shark/assets/icons/apple-touch-icon-152x152-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenas/gui/HEAD/blue-shark/assets/icons/apple-touch-icon-152x152-precomposed.png -------------------------------------------------------------------------------- /blue-shark/ui/field-file-input.reel/field-file-input.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | exports.FieldFileInput = Component.specialize(); 4 | -------------------------------------------------------------------------------- /core/model/models/mail-message-extra-headers-anonymous.js: -------------------------------------------------------------------------------- 1 | var Montage = require("montage").Montage; 2 | 3 | exports.MailMessageExtraHeadersAnonymous = Montage.specialize(); 4 | -------------------------------------------------------------------------------- /core/model/models/share-smb-extra-parameters-anonymous.js: -------------------------------------------------------------------------------- 1 | var Montage = require("montage").Montage; 2 | 3 | exports.ShareSmbExtraParametersAnonymous = Montage.specialize(); 4 | -------------------------------------------------------------------------------- /serial-console-app/assets/icons/apple-touch-icon-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenas/gui/HEAD/serial-console-app/assets/icons/apple-touch-icon-precomposed.png -------------------------------------------------------------------------------- /src/model/AlertEmitter.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class AlertEmitter extends AbstractDataObject { 4 | name: string; 5 | } 6 | -------------------------------------------------------------------------------- /src/model/AlertEmitterPushBullet.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class AlertEmitterPushBullet extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/CalendarCustomSchedule.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class CalendarCustomSchedule extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/DirectoryserviceConfig.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class DirectoryserviceConfig extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/DockerCollectionImage.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class DockerCollectionImage extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/DockerContainerBridge.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class DockerContainerBridge extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/DockerContainerCreator.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class DockerContainerCreator extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/DockerContainerSection.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class DockerContainerSection extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/EncryptedVolumeActions.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class EncryptedVolumeActions extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/EncryptedVolumeImporter.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class EncryptedVolumeImporter extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/VmReadme.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class VmReadme extends AbstractDataObject { 4 | public text: string; 5 | } 6 | -------------------------------------------------------------------------------- /tests/e2e/globals.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | waitForConditionTimeout: 10000, 3 | credentials: { 4 | login: 'root', 5 | password: 'meh' 6 | } 7 | }; 8 | -------------------------------------------------------------------------------- /ui/controls/grid.reel/_grid.css: -------------------------------------------------------------------------------- 1 | .Grid-repetition { 2 | /* display: flex; */ 3 | /* flex-wrap: wrap; */ 4 | } 5 | 6 | .GridItem { 7 | display: inline-block; 8 | } 9 | -------------------------------------------------------------------------------- /ui/inspectors/calendar-task.reel/cron-args.reel/cron-args.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | exports.CronArgs = Component.specialize(); 4 | -------------------------------------------------------------------------------- /ui/sections/storage/inspectors/snapshot.reel/_snapshot.css: -------------------------------------------------------------------------------- 1 | .Snapshot { 2 | min-width: 20em; 3 | } 4 | 5 | .Snapshot .TextField.Duration-count { 6 | max-width: 3em; 7 | } -------------------------------------------------------------------------------- /blue-shark/ui/field-file-reader.reel/field-file-reader.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | exports.FieldFileReader = Component.specialize(); 4 | -------------------------------------------------------------------------------- /blue-shark/ui/field-number-unit.reel/field-number-unit.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | exports.FieldNumberUnit = Component.specialize(); 4 | -------------------------------------------------------------------------------- /src/model/AlertFilter.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class AlertFilter extends AbstractDataObject { 4 | parameters: any; 5 | } 6 | -------------------------------------------------------------------------------- /src/model/VmDatastore.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class VmDatastore extends AbstractDataObject { 4 | public type: string; 5 | } 6 | -------------------------------------------------------------------------------- /src/model/VolumeVdevRecommendations.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class VolumeVdevRecommendations extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /ui/inspectors/calendar.reel/calendar-list.reel/calendar-list.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | exports.CalendarList = Component.specialize(); 4 | -------------------------------------------------------------------------------- /ui/inspectors/services-category.reel/services-category.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | exports.ServicesCategory = Component.specialize(); 4 | -------------------------------------------------------------------------------- /blue-shark/ui/field-date.reel/_field-date.css: -------------------------------------------------------------------------------- 1 | .FieldDate { 2 | 3 | } 4 | 5 | /* disabled state on input */ 6 | .FieldDate .disabled input[type="date"] { 7 | opacity: .5; 8 | } 9 | -------------------------------------------------------------------------------- /blue-shark/ui/select.info/sample/ui/main.reel/main.css: -------------------------------------------------------------------------------- 1 | .scrollView-container{display:-webkit-box;display:-ms-flexbox;display:flex;position:relative;min-width:15em;outline:1px solid red} -------------------------------------------------------------------------------- /core/model/descriptors/alert-class.mjson: -------------------------------------------------------------------------------- 1 | { 2 | "root": { 3 | "prototype": "core/model/model-descriptor", 4 | "properties": { 5 | "name": "AlertClass" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /core/model/descriptors/share-types.mjson: -------------------------------------------------------------------------------- 1 | { 2 | "root": { 3 | "prototype": "core/model/model-descriptor", 4 | "properties": { 5 | "name": "ShareTypes" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /serial-console-app/assets/icons/apple-touch-icon-76x76-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenas/gui/HEAD/serial-console-app/assets/icons/apple-touch-icon-76x76-precomposed.png -------------------------------------------------------------------------------- /src/model/SubmittedTask.ts: -------------------------------------------------------------------------------- 1 | export class SubmittedTask { 2 | public constructor( 3 | public taskId: number, 4 | public taskPromise: Promise 5 | ) {} 6 | } 7 | -------------------------------------------------------------------------------- /src/model/VolumeDatasetPropertyAtime.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class VolumeDatasetPropertyAtime extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/VolumeDatasetPropertyDedup.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class VolumeDatasetPropertyDedup extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /ui/controls/ip-aliases.reel/ip-address.reel/ip-address.js: -------------------------------------------------------------------------------- 1 | var Component = require('montage/ui/component').Component; 2 | 3 | exports.IpAddress = Component.specialize({ 4 | 5 | }); 6 | -------------------------------------------------------------------------------- /ui/controls/section.reel/section-settings.reel/section-settings.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | exports.SectionSettings = Component.specialize(); 4 | -------------------------------------------------------------------------------- /ui/inspectors/calendar.reel/calendar-widget.reel/month-view.reel/_month-view.css: -------------------------------------------------------------------------------- 1 | .MonthView > table { 2 | height: 100%; 3 | table-layout: fixed; 4 | margin-bottom: 0; 5 | } 6 | -------------------------------------------------------------------------------- /ui/sections/network/inspectors/network-interface.reel/_network-interface.css: -------------------------------------------------------------------------------- 1 | .NetworkInterface { 2 | min-width: 42rem !important; 3 | } 4 | 5 | .NetworkInterfaceIcon { flex: 1; } 6 | -------------------------------------------------------------------------------- /blue-shark/ui/field-checkbox.reel/_field-checkbox.css: -------------------------------------------------------------------------------- 1 | .FieldCheckbox .Field { 2 | margin-bottom: 1em; 3 | } 4 | 5 | .FieldCheckbox .Checkbox { 6 | /* margin-top: 0.3em; */ 7 | } 8 | -------------------------------------------------------------------------------- /core/model/custom-descriptors/scrub.mjson: -------------------------------------------------------------------------------- 1 | { 2 | "root": { 3 | "prototype": "core/model/model-descriptor", 4 | "properties": { 5 | "name": "Scrub" 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /serial-console-app/assets/icons/apple-touch-icon-120x120-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenas/gui/HEAD/serial-console-app/assets/icons/apple-touch-icon-120x120-precomposed.png -------------------------------------------------------------------------------- /serial-console-app/assets/icons/apple-touch-icon-152x152-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenas/gui/HEAD/serial-console-app/assets/icons/apple-touch-icon-152x152-precomposed.png -------------------------------------------------------------------------------- /src/model/DetachedVolume.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class DetachedVolume extends AbstractDataObject { 4 | public name: string; 5 | } 6 | -------------------------------------------------------------------------------- /src/model/NetworkInterfaceLaggProperties.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class NetworkInterfaceLaggProperties extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/NetworkInterfaceVlanProperties.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class NetworkInterfaceVlanProperties extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /tests/e2e/tests/console/99_end.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '99 - End of test': function(browser) { 3 | browser 4 | .pause(250) 5 | .end(); 6 | } 7 | }; 8 | -------------------------------------------------------------------------------- /tests/e2e/tests/docker/99_end.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '99 - End of test': function(browser) { 3 | browser 4 | .pause(250) 5 | .end(); 6 | } 7 | }; 8 | -------------------------------------------------------------------------------- /tests/e2e/tests/network/99_end.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '99 - End of test': function(browser) { 3 | browser 4 | .pause(250) 5 | .end(); 6 | } 7 | }; 8 | -------------------------------------------------------------------------------- /tests/e2e/tests/peering/99_end.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '99 - End of test': function(browser) { 3 | browser 4 | .pause(250) 5 | .end(); 6 | } 7 | }; 8 | -------------------------------------------------------------------------------- /tests/e2e/tests/storage/99_end.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '99 - End of test': function(browser) { 3 | browser 4 | .pause(250) 5 | .end(); 6 | } 7 | }; 8 | -------------------------------------------------------------------------------- /tests/e2e/tests/system/99_end.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '99 - End of test': function(browser) { 3 | browser 4 | .pause(250) 5 | .end(); 6 | } 7 | }; 8 | -------------------------------------------------------------------------------- /tests/e2e/tests/vms/99_end.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '99 - End of test': function(browser) { 3 | browser 4 | .pause(250) 5 | .end(); 6 | } 7 | }; 8 | -------------------------------------------------------------------------------- /blue-shark/ui/field-radio-group.reel/field-radio-group.css: -------------------------------------------------------------------------------- 1 | .FieldRadioGroup .RadioButtonFieldGroup{margin-top:-.2em}.FieldRadioGroup.FieldRadioGroup--block .RadioButtonFieldGroup{margin-top:.35em} -------------------------------------------------------------------------------- /core/model/descriptors/backup-providers.mjson: -------------------------------------------------------------------------------- 1 | { 2 | "root": { 3 | "prototype": "core/model/model-descriptor", 4 | "properties": { 5 | "name": "BackupProviders" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /core/model/descriptors/disks-allocation.mjson: -------------------------------------------------------------------------------- 1 | { 2 | "root": { 3 | "prototype": "core/model/model-descriptor", 4 | "properties": { 5 | "name": "DisksAllocation" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /core/model/enumerations/acl-entry-type.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.AclEntryType = new Enum().initWithMembersAndValues(["ALLOW","DENY"], ["ALLOW","DENY"]); 4 | -------------------------------------------------------------------------------- /core/model/enumerations/docker-host-state.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.DockerHostState = new Enum().initWithMembersAndValues(["DOWN","UP"], ["DOWN","UP"]); 4 | -------------------------------------------------------------------------------- /core/model/enumerations/neighbor-type.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.NeighborType = new Enum().initWithMembersAndValues(["freenas","ssh"], ["freenas","ssh"]); 4 | -------------------------------------------------------------------------------- /core/model/enumerations/vm-device-usb-device.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.VmDeviceUsbDevice = new Enum().initWithMembersAndValues(["tablet"], ["tablet"]); 4 | -------------------------------------------------------------------------------- /src/model/EncryptReplicationTransportOption.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class EncryptReplicationTransportOption extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/NetworkInterface.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class NetworkInterface extends AbstractDataObject { 4 | public dhcp: boolean; 5 | } 6 | -------------------------------------------------------------------------------- /src/model/NetworkInterfaceBridgeProperties.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class NetworkInterfaceBridgeProperties extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/VolumeDatasetPropertyCompression.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class VolumeDatasetPropertyCompression extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/VolumeDatasetPropertyVolblocksize.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class VolumeDatasetPropertyVolblocksize extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /tests/e2e/tests/accounts/99_end.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '99 - End of test': function(browser) { 3 | browser 4 | .pause(250) 5 | .end(); 6 | } 7 | }; 8 | -------------------------------------------------------------------------------- /tests/e2e/tests/calendar/99_end.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '99 - End of test': ''+function(browser) { 3 | browser 4 | .pause(250) 5 | .end(); 6 | } 7 | }; 8 | -------------------------------------------------------------------------------- /tests/e2e/tests/services/99_end.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '99 - End of test': function(browser) { 3 | browser 4 | .pause(250) 5 | .end(); 6 | } 7 | }; 8 | -------------------------------------------------------------------------------- /ui/icons/ipmi.reel/ipmi.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | /** 4 | * @class Ipmi 5 | * @extends Component 6 | */ 7 | exports.Ipmi = Component.specialize(); 8 | -------------------------------------------------------------------------------- /ui/icons/user.reel/user.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | /** 4 | * @class User 5 | * @extends Component 6 | */ 7 | exports.User = Component.specialize(); 8 | -------------------------------------------------------------------------------- /blue-shark/assets/fonts/lato/Lato-Light-7244318390cc4d36aac4a613ff42d308.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenas/gui/HEAD/blue-shark/assets/fonts/lato/Lato-Light-7244318390cc4d36aac4a613ff42d308.woff2 -------------------------------------------------------------------------------- /blue-shark/assets/fonts/lato/Lato-Light-90301aa07d780a09812229d6375c3b28.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenas/gui/HEAD/blue-shark/assets/fonts/lato/Lato-Light-90301aa07d780a09812229d6375c3b28.woff -------------------------------------------------------------------------------- /blue-shark/ui/duration.reel/duration.css: -------------------------------------------------------------------------------- 1 | .Duration{display:-webkit-box;display:-ms-flexbox;display:flex}.Duration-count{margin-right:8px;margin-right:.5rem}.Duration-unit{min-width:128px;min-width:8rem} -------------------------------------------------------------------------------- /blue-shark/ui/field-text.reel/field-text.css: -------------------------------------------------------------------------------- 1 | .FieldText .Field{min-height:auto}.FieldText .Field-title{padding-top:0}.FieldText .control{color:#fff;max-width:320px;max-width:20rem;word-wrap:break-word} -------------------------------------------------------------------------------- /blue-shark/ui/sink.info/sample/ui/main.reel/_main.css: -------------------------------------------------------------------------------- 1 | .Main {} 2 | 3 | .scrollContainer { 4 | display: flex; 5 | flex-direction: column; 6 | height: 300px; 7 | width: 300px; 8 | } 9 | -------------------------------------------------------------------------------- /core/model/descriptors/task-args-anonymous.mjson: -------------------------------------------------------------------------------- 1 | { 2 | "root": { 3 | "prototype": "core/model/model-descriptor", 4 | "properties": { 5 | "name": "TaskArgsAnonymous" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /core/model/enumerations/docker-port-protocol.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.DockerPortProtocol = new Enum().initWithMembersAndValues(["TCP","UDP"], ["TCP","UDP"]); 4 | -------------------------------------------------------------------------------- /core/model/models/disk-status-multipath-anonymous-members-anonymous.js: -------------------------------------------------------------------------------- 1 | var Montage = require("montage").Montage; 2 | 3 | exports.DiskStatusMultipathAnonymousMembersAnonymous = Montage.specialize(); 4 | -------------------------------------------------------------------------------- /src/model/CompressReplicationTransportOption.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class CompressReplicationTransportOption extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /src/model/ThrottleReplicationTransportOption.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class ThrottleReplicationTransportOption extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /ui/controls/grid.reel/grid.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | /** 4 | * @class Grid 5 | * @extends Component 6 | */ 7 | exports.Grid = Component.specialize(); 8 | -------------------------------------------------------------------------------- /ui/controls/info-box.reel/_info-box.css: -------------------------------------------------------------------------------- 1 | .InfoBox { 2 | background-color: var(--primary--8); 3 | /* color: var(--white); */ 4 | } 5 | 6 | .InfoBox-title { 7 | margin-top: .5rem; 8 | } 9 | -------------------------------------------------------------------------------- /ui/icons/group.reel/group.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | /** 4 | * @class Group 5 | * @extends Component 6 | */ 7 | exports.Group = Component.specialize(); 8 | -------------------------------------------------------------------------------- /ui/inspectors/calendar.reel/task-type-indicator.reel/task-type-indicator.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | exports.TaskTypeIndicator = Component.specialize(); 4 | -------------------------------------------------------------------------------- /ui/sections/wizard/inspectors/share.reel/_share.css: -------------------------------------------------------------------------------- 1 | .Share-wizard .FoldableSection, 2 | .Share-wizard .InspectorFooter, 3 | .Share-wizard .FoldableSection { 4 | display: none !important; 5 | } 6 | -------------------------------------------------------------------------------- /blue-shark/assets/fonts/lato/Lato-Regular-27bd77b9162d388cb8d4c4217c7c5e2a.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenas/gui/HEAD/blue-shark/assets/fonts/lato/Lato-Regular-27bd77b9162d388cb8d4c4217c7c5e2a.woff -------------------------------------------------------------------------------- /blue-shark/assets/fonts/lato/Lato-Regular-bd03a2cc277bbbc338d464e679fe9942.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenas/gui/HEAD/blue-shark/assets/fonts/lato/Lato-Regular-bd03a2cc277bbbc338d464e679fe9942.woff2 -------------------------------------------------------------------------------- /blue-shark/ui/field-datetime.reel/_field-datetime.css: -------------------------------------------------------------------------------- 1 | .FieldDatetime { 2 | 3 | } 4 | 5 | /* disabled state on input */ 6 | .FieldDatetime .disabled input[type="datetime"] { 7 | opacity: .5; 8 | } 9 | -------------------------------------------------------------------------------- /core/model/custom-descriptors/account-system.mjson: -------------------------------------------------------------------------------- 1 | { 2 | "root": { 3 | "prototype": "core/model/model-descriptor", 4 | "properties": { 5 | "name": "AccountSystem" 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /core/model/enumerations/network-route-type.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.NetworkRouteType = new Enum().initWithMembersAndValues(["INET","INET6"], ["INET","INET6"]); 4 | -------------------------------------------------------------------------------- /core/model/enumerations/rsync-copy-rsyncmode.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.RsyncCopyRsyncmode = new Enum().initWithMembersAndValues(["MODULE","SSH"], ["MODULE","SSH"]); 4 | -------------------------------------------------------------------------------- /core/model/enumerations/service-snmp-v3authtype.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.ServiceSnmpV3authtype = new Enum().initWithMembersAndValues(["MD5","SHA"], ["MD5","SHA"]); 4 | -------------------------------------------------------------------------------- /core/model/enumerations/service-ups-mode.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.ServiceUpsMode = new Enum().initWithMembersAndValues(["MASTER","SLAVE"], ["MASTER","SLAVE"]); 4 | -------------------------------------------------------------------------------- /core/model/enumerations/share-types-permtype.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.ShareTypesPermtype = new Enum().initWithMembersAndValues(["ACL","PERM"], ["ACL","PERM"]); 4 | -------------------------------------------------------------------------------- /core/model/enumerations/share-types-subtype.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.ShareTypesSubtype = new Enum().initWithMembersAndValues(["BLOCK","FILE"], ["BLOCK","FILE"]); 4 | -------------------------------------------------------------------------------- /core/model/enumerations/vm-device-disk-mode.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.VmDeviceDiskMode = new Enum().initWithMembersAndValues(["AHCI","VIRTIO"], ["AHCI","VIRTIO"]); 4 | -------------------------------------------------------------------------------- /core/model/enumerations/vm-device-volume-type.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.VmDeviceVolumeType = new Enum().initWithMembersAndValues(["NFS","VT9P"], ["NFS","VT9P"]); 4 | -------------------------------------------------------------------------------- /src/model/BootEnvironment.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class BootEnvironment extends AbstractDataObject { 4 | keep: boolean; 5 | name: string; 6 | } 7 | -------------------------------------------------------------------------------- /src/model/VolumeDatasetPropertyCasesensitivity.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | 3 | export class VolumeDatasetPropertyCasesensitivity extends AbstractDataObject { 4 | } 5 | -------------------------------------------------------------------------------- /ui/icons/volume.reel/volume.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | /** 4 | * @class Volume 5 | * @extends Component 6 | */ 7 | exports.Volume = Component.specialize(); 8 | -------------------------------------------------------------------------------- /ui/sections/containers/controls/table-port.reel/table-row-port.reel/table-row-port.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | exports.TableRowPort = Component.specialize(); 4 | -------------------------------------------------------------------------------- /ui/sections/network/controls/table-routes.reel/table-row-route.reel/table-row-route.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | exports.TableRowRoute = Component.specialize(); 4 | -------------------------------------------------------------------------------- /ui/sections/wizard/inspectors/directory-services.reel/_directory-services.css: -------------------------------------------------------------------------------- 1 | .DirectoryServices-wizard .FoldableSection, 2 | .DirectoryServices-wizard .InspectorFooter { 3 | display: none; 4 | } 5 | -------------------------------------------------------------------------------- /blue-shark/assets/fonts/lato/Lato-LightItalic-b55e385f24f0f9f724dac935fe292ecf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenas/gui/HEAD/blue-shark/assets/fonts/lato/Lato-LightItalic-b55e385f24f0f9f724dac935fe292ecf.woff -------------------------------------------------------------------------------- /core/model/custom-descriptors/docker-image-pull.mjson: -------------------------------------------------------------------------------- 1 | { 2 | "root": { 3 | "prototype": "core/model/model-descriptor", 4 | "properties": { 5 | "name": "DockerImagePull" 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /core/model/descriptors/zfs-vdev-stats-anonymous.mjson: -------------------------------------------------------------------------------- 1 | { 2 | "root": { 3 | "prototype": "core/model/model-descriptor", 4 | "properties": { 5 | "name": "ZfsVdevStatsAnonymous" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /core/model/enumerations/alert-type.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.AlertType = new Enum().initWithMembersAndValues(["DISK","SYSTEM","VOLUME"], ["DISK","SYSTEM","VOLUME"]); 4 | -------------------------------------------------------------------------------- /core/model/enumerations/backup-compression-type.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.BackupCompressionType = new Enum().initWithMembersAndValues(["GZIP","NONE"], ["GZIP","NONE"]); 4 | -------------------------------------------------------------------------------- /core/model/enumerations/tunable-type.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.TunableType = new Enum().initWithMembersAndValues(["LOADER","RC","SYSCTL"], ["LOADER","RC","SYSCTL"]); 4 | -------------------------------------------------------------------------------- /core/model/enumerations/vm-datastore-state.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.VmDatastoreState = new Enum().initWithMembersAndValues(["OFFLINE","ONLINE"], ["OFFLINE","ONLINE"]); 4 | -------------------------------------------------------------------------------- /ui/icons/sharing.reel/sharing.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | /** 4 | * @class Sharing 5 | * @extends Component 6 | */ 7 | exports.Sharing = Component.specialize(); 8 | -------------------------------------------------------------------------------- /ui/sections/storage/controls/volume-dataset-options.reel/volume-dataset-options.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | exports.VolumeDatasetOptions = Component.specialize(); 4 | -------------------------------------------------------------------------------- /ui/sections/storage/inspectors/replication.reel/_replication.css: -------------------------------------------------------------------------------- 1 | .Replication .Inspector-optionalButtons { 2 | 3 | & button { 4 | display: block; 5 | margin-right: .5em; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /blue-shark/assets/fonts/lato/Lato-LightItalic-314210a4825a7cc8ca7db893dfd9d283.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenas/gui/HEAD/blue-shark/assets/fonts/lato/Lato-LightItalic-314210a4825a7cc8ca7db893dfd9d283.woff2 -------------------------------------------------------------------------------- /blue-shark/ui/search-multiple.reel/search-multiple.css: -------------------------------------------------------------------------------- 1 | .SearchMultiple { 2 | 3 | } 4 | 5 | .SearchMultiple .MultipleSelect-title, 6 | .SearchMultiple .MultipleSelect-input-controls { 7 | display: none; 8 | } 9 | -------------------------------------------------------------------------------- /core/model/custom-descriptors/directory-services.mjson: -------------------------------------------------------------------------------- 1 | { 2 | "root": { 3 | "prototype": "core/model/model-descriptor", 4 | "properties": { 5 | "name": "DirectoryServices" 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /core/model/descriptors/update-info-notes-anonymous.mjson: -------------------------------------------------------------------------------- 1 | { 2 | "root": { 3 | "prototype": "core/model/model-descriptor", 4 | "properties": { 5 | "name": "UpdateInfoNotesAnonymous" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /core/model/descriptors/user-attributes-anonymous.mjson: -------------------------------------------------------------------------------- 1 | { 2 | "root": { 3 | "prototype": "core/model/model-descriptor", 4 | "properties": { 5 | "name": "UserAttributesAnonymous" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /core/model/enumerations/mail-encryption-type.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.MailEncryptionType = new Enum().initWithMembersAndValues(["PLAIN","SSL","TLS"], ["PLAIN","SSL","TLS"]); 4 | -------------------------------------------------------------------------------- /core/model/enumerations/rsync-copy-rsyncdirection.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.RsyncCopyRsyncdirection = new Enum().initWithMembersAndValues(["PULL","PUSH"], ["PULL","PUSH"]); 4 | -------------------------------------------------------------------------------- /core/model/enumerations/share-iscsi-blocksize.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.ShareIscsiBlocksize = new Enum().initWithMembersAndValues([1024,2048,4096,512], [1024,2048,4096,512]); 4 | -------------------------------------------------------------------------------- /core/model/enumerations/snapshot-info-type.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.SnapshotInfoType = new Enum().initWithMembersAndValues(["FILESYSTEM","VOLUME"], ["FILESYSTEM","VOLUME"]); 4 | -------------------------------------------------------------------------------- /core/model/enumerations/vm-datastore-nfs-version.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.VmDatastoreNfsVersion = new Enum().initWithMembersAndValues(["NFSV3","NFSV4"], ["NFSV3","NFSV4"]); 4 | -------------------------------------------------------------------------------- /src/model/VolumeDatasetPropertyQuota.ts: -------------------------------------------------------------------------------- 1 | import {VolumeDatasetProperty} from './VolumeDatasetProperty'; 2 | 3 | export class VolumeDatasetPropertyQuota extends VolumeDatasetProperty { 4 | parsed: number; 5 | } 6 | -------------------------------------------------------------------------------- /ui/icons/nfs-share.reel/nfs-share.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | /** 4 | * @class NfsShare 5 | * @extends Component 6 | */ 7 | exports.NfsShare = Component.specialize(); 8 | -------------------------------------------------------------------------------- /ui/icons/smb-service.reel/smb-share.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | /** 4 | * @class SmbShare 5 | * @extends Component 6 | */ 7 | exports.SmbShare = Component.specialize(); 8 | -------------------------------------------------------------------------------- /ui/icons/smb-share.reel/smb-share.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | /** 4 | * @class SmbShare 5 | * @extends Component 6 | */ 7 | exports.SmbShare = Component.specialize(); 8 | -------------------------------------------------------------------------------- /blue-shark/ui/text-field.reel/_text-field.css: -------------------------------------------------------------------------------- 1 | .TextField { 2 | 3 | @apply --input-field; 4 | 5 | line-height: 2rem; 6 | height: 2rem; 7 | padding: 0 .25rem .1rem .5rem; 8 | 9 | } 10 | 11 | -------------------------------------------------------------------------------- /blue-shark/ui/toggle-switch.reel/toggle-switch.js: -------------------------------------------------------------------------------- 1 | var AbstractToggleSwitch = require("montage/ui/base/abstract-toggle-switch").AbstractToggleSwitch; 2 | 3 | exports.ToggleSwitch = AbstractToggleSwitch.specialize(); 4 | -------------------------------------------------------------------------------- /core/model/custom-descriptors/docker-container-logs.mjson: -------------------------------------------------------------------------------- 1 | { 2 | "root": { 3 | "prototype": "core/model/model-descriptor", 4 | "properties": { 5 | "name": "DockerContainerLogs" 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /core/model/descriptors/neighbor-properties-anonymous.mjson: -------------------------------------------------------------------------------- 1 | { 2 | "root": { 3 | "prototype": "core/model/model-descriptor", 4 | "properties": { 5 | "name": "NeighborPropertiesAnonymous" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /core/model/descriptors/share-client-extra-anonymous.mjson: -------------------------------------------------------------------------------- 1 | { 2 | "root": { 3 | "prototype": "core/model/model-descriptor", 4 | "properties": { 5 | "name": "ShareClientExtraAnonymous" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /core/model/descriptors/vm-device-usb-config-anonymous.mjson: -------------------------------------------------------------------------------- 1 | { 2 | "root": { 3 | "prototype": "core/model/model-descriptor", 4 | "properties": { 5 | "name": "VmDeviceUsbConfigAnonymous" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /core/model/descriptors/volume-attributes-anonymous.mjson: -------------------------------------------------------------------------------- 1 | { 2 | "root": { 3 | "prototype": "core/model/model-descriptor", 4 | "properties": { 5 | "name": "VolumeAttributesAnonymous" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /core/model/descriptors/zfs-snapshot-holds-anonymous.mjson: -------------------------------------------------------------------------------- 1 | { 2 | "root": { 3 | "prototype": "core/model/model-descriptor", 4 | "properties": { 5 | "name": "ZfsSnapshotHoldsAnonymous" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /core/model/enumerations/alert-severity.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.AlertSeverity = new Enum().initWithMembersAndValues(["CRITICAL","INFO","WARNING"], ["CRITICAL","INFO","WARNING"]); 4 | -------------------------------------------------------------------------------- /core/model/enumerations/disk-erase-method.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.DiskEraseMethod = new Enum().initWithMembersAndValues(["QUICK","RANDOM","ZEROS"], ["QUICK","RANDOM","ZEROS"]); 4 | -------------------------------------------------------------------------------- /core/model/enumerations/docker-volume-host-path-source.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.DockerVolumeHostPathSource = new Enum().initWithMembersAndValues(["HOST","VM"], ["HOST","VM"]); 4 | -------------------------------------------------------------------------------- /core/model/enumerations/network-interface-alias-type.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.NetworkInterfaceAliasType = new Enum().initWithMembersAndValues(["INET","INET6"], ["INET","INET6"]); 4 | -------------------------------------------------------------------------------- /core/model/enumerations/service-snmp-v3privacyprotocol.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.ServiceSnmpV3privacyprotocol = new Enum().initWithMembersAndValues(["AES","DES"], ["AES","DES"]); 4 | -------------------------------------------------------------------------------- /core/model/enumerations/service-ups-shutdownmode.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.ServiceUpsShutdownmode = new Enum().initWithMembersAndValues(["BATT","LOWBATT"], ["BATT","LOWBATT"]); 4 | -------------------------------------------------------------------------------- /core/model/enumerations/volume-dataset-type.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.VolumeDatasetType = new Enum().initWithMembersAndValues(["FILESYSTEM","VOLUME"], ["FILESYSTEM","VOLUME"]); 4 | -------------------------------------------------------------------------------- /src/model/ZfsTopology.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | import {ZfsVdev} from './ZfsVdev'; 3 | 4 | export class ZfsTopology extends AbstractDataObject { 5 | data: Array; 6 | } 7 | -------------------------------------------------------------------------------- /ui/icons/network-interface.reel/lagg.reel/lagg.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | /** 4 | * @class Lagg 5 | * @extends Component 6 | */ 7 | exports.Lagg = Component.specialize(); 8 | -------------------------------------------------------------------------------- /ui/icons/network-interface.reel/vlan.reel/vlan.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | /** 4 | * @class Vlan 5 | * @extends Component 6 | */ 7 | exports.Vlan = Component.specialize(); 8 | -------------------------------------------------------------------------------- /ui/icons/nfs-service.reel/nfs-service.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | /** 4 | * @class NfsShare 5 | * @extends Component 6 | */ 7 | exports.NfsService = Component.specialize(); 8 | -------------------------------------------------------------------------------- /ui/icons/smb-service.reel/smb-service.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | /** 4 | * @class SmbShare 5 | * @extends Component 6 | */ 7 | exports.SmbService = Component.specialize(); 8 | -------------------------------------------------------------------------------- /ui/inspectors/calendar.reel/calendar-widget.reel/calendar-widget-view-month.info/sample/ui/main.reel/main.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | exports.Main = Component.specialize({}); 4 | -------------------------------------------------------------------------------- /ui/sections/wizard/inspectors/share.reel/table-afp.reel/_table-afp.css: -------------------------------------------------------------------------------- 1 | .TableAfp .Table-cells > div:nth-child(2), 2 | .TableAfp .TableHeaderLayout-row .TableHeaderLayout-cell:nth-child(2) { 3 | max-width: 8em; 4 | } 5 | -------------------------------------------------------------------------------- /ui/sections/wizard/inspectors/share.reel/table-nfs.reel/_table-nfs.css: -------------------------------------------------------------------------------- 1 | .TableNfs .Table-cells > div:nth-child(2), 2 | .TableNfs .TableHeaderLayout-row .TableHeaderLayout-cell:nth-child(2) { 3 | max-width: 8em; 4 | } 5 | -------------------------------------------------------------------------------- /ui/sections/wizard/inspectors/share.reel/table-smb.reel/_table-smb.css: -------------------------------------------------------------------------------- 1 | .TableSmb .Table-cells > div:nth-child(2), 2 | .TableSmb .TableHeaderLayout-row .TableHeaderLayout-cell:nth-child(2) { 3 | max-width: 8em; 4 | } 5 | -------------------------------------------------------------------------------- /blue-shark/ui/scroller.info/sample/ui/main.reel/main.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | /** 4 | * @class Main 5 | * @extends Component 6 | */ 7 | exports.Main = Component.specialize(); 8 | -------------------------------------------------------------------------------- /core/model/custom-descriptors/calendar-customSchedule.mjson: -------------------------------------------------------------------------------- 1 | { 2 | "root": { 3 | "prototype": "core/model/model-descriptor", 4 | "properties": { 5 | "name": "CalendarCustomSchedule" 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /core/model/custom-descriptors/docker-container-creator.mjson: -------------------------------------------------------------------------------- 1 | { 2 | "root": { 3 | "prototype": "core/model/model-descriptor", 4 | "properties": { 5 | "name": "DockerContainerCreator" 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /core/model/custom-descriptors/docker-container-section.mjson: -------------------------------------------------------------------------------- 1 | { 2 | "root": { 3 | "prototype": "core/model/model-descriptor", 4 | "properties": { 5 | "name": "DockerContainerSection" 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /core/model/custom-descriptors/encrypted-volume-actions.mjson: -------------------------------------------------------------------------------- 1 | { 2 | "root": { 3 | "prototype": "core/model/model-descriptor", 4 | "properties": { 5 | "name": "EncryptedVolumeActions" 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /core/model/descriptors/disk-status-controller-anonymous.mjson: -------------------------------------------------------------------------------- 1 | { 2 | "root": { 3 | "prototype": "core/model/model-descriptor", 4 | "properties": { 5 | "name": "DiskStatusControllerAnonymous" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /core/model/descriptors/smart-info-diagnostics-anonymous.mjson: -------------------------------------------------------------------------------- 1 | { 2 | "root": { 3 | "prototype": "core/model/model-descriptor", 4 | "properties": { 5 | "name": "SmartInfoDiagnosticsAnonymous" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /core/model/descriptors/volume-snapshot-holds-anonymous.mjson: -------------------------------------------------------------------------------- 1 | { 2 | "root": { 3 | "prototype": "core/model/model-descriptor", 4 | "properties": { 5 | "name": "VolumeSnapshotHoldsAnonymous" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /core/model/descriptors/zfs-dataset-properties-anonymous.mjson: -------------------------------------------------------------------------------- 1 | { 2 | "root": { 3 | "prototype": "core/model/model-descriptor", 4 | "properties": { 5 | "name": "ZfsDatasetPropertiesAnonymous" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /core/model/enumerations/compress-plugin-level.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.CompressPluginLevel = new Enum().initWithMembersAndValues(["BEST","DEFAULT","FAST"], ["BEST","DEFAULT","FAST"]); 4 | -------------------------------------------------------------------------------- /core/model/enumerations/power-changed-operation.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.PowerChangedOperation = new Enum().initWithMembersAndValues(["REBOOT","SHUTDOWN"], ["REBOOT","SHUTDOWN"]); 4 | -------------------------------------------------------------------------------- /core/model/enumerations/service-state.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.ServiceState = new Enum().initWithMembersAndValues(["RUNNING","STOPPED","UNKNOWN"], ["RUNNING","STOPPED","UNKNOWN"]); 4 | -------------------------------------------------------------------------------- /core/model/enumerations/service-webdav-protocol-items.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.ServiceWebdavProtocolItems = new Enum().initWithMembersAndValues(["HTTP","HTTPS"], ["HTTP","HTTPS"]); 4 | -------------------------------------------------------------------------------- /core/model/enumerations/system-ui-webuiprotocol-items.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.SystemUiWebuiprotocolItems = new Enum().initWithMembersAndValues(["HTTP","HTTPS"], ["HTTP","HTTPS"]); 4 | -------------------------------------------------------------------------------- /core/model/enumerations/vm-device-nic-device.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.VmDeviceNicDevice = new Enum().initWithMembersAndValues(["E1000","NE2K","VIRTIO"], ["E1000","NE2K","VIRTIO"]); 4 | -------------------------------------------------------------------------------- /core/model/enumerations/volume-dataset-permissionstype.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.VolumeDatasetPermissionstype = new Enum().initWithMembersAndValues(["ACL","PERM"], ["ACL","PERM"]); 4 | -------------------------------------------------------------------------------- /core/model/enumerations/volume-providerspresence.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.VolumeProviderspresence = new Enum().initWithMembersAndValues(["ALL","NONE","PART"], ["ALL","NONE","PART"]); 4 | -------------------------------------------------------------------------------- /src/reducers/initialize.ts: -------------------------------------------------------------------------------- 1 | import * as Immutable from 'immutable'; 2 | 3 | export function initialize(state, action) { 4 | if (action.type === '@@INIT') { 5 | return Immutable.Map(); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/repository/UserRepository.ts: -------------------------------------------------------------------------------- 1 | import {AbstractModelRepository} from './abstract-model-repository'; 2 | import {User} from '../model/User'; 3 | export class UserRepository extends AbstractModelRepository { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /ui/icons/afp-service.reel/afp-service.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | /** 4 | * @class AfpService 5 | * @extends Component 6 | */ 7 | exports.AfpService = Component.specialize(); 8 | -------------------------------------------------------------------------------- /core/model/descriptors/vm-guest-info-interfaces-anonymous.mjson: -------------------------------------------------------------------------------- 1 | { 2 | "root": { 3 | "prototype": "core/model/model-descriptor", 4 | "properties": { 5 | "name": "VmGuestInfoInterfacesAnonymous" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /core/model/descriptors/zfs-snapshot-properties-anonymous.mjson: -------------------------------------------------------------------------------- 1 | { 2 | "root": { 3 | "prototype": "core/model/model-descriptor", 4 | "properties": { 5 | "name": "ZfsSnapshotPropertiesAnonymous" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /core/model/enumerations/encrypt-plugin-type.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.EncryptPluginType = new Enum().initWithMembersAndValues(["AES128","AES192","AES256"], ["AES128","AES192","AES256"]); 4 | -------------------------------------------------------------------------------- /core/model/enumerations/service-webdav-authentication.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.ServiceWebdavAuthentication = new Enum().initWithMembersAndValues(["BASIC","DIGEST"], ["BASIC","DIGEST"]); 4 | -------------------------------------------------------------------------------- /src/model/VolumeDatasetPropertyRefquota.ts: -------------------------------------------------------------------------------- 1 | import {VolumeDatasetProperty} from './VolumeDatasetProperty'; 2 | 3 | export class VolumeDatasetPropertyRefquota extends VolumeDatasetProperty { 4 | public parsed: number; 5 | } 6 | -------------------------------------------------------------------------------- /ui/controls/button-group.reel/button-group.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | /** 4 | * @class ButtonGroup 5 | * @extends Component 6 | */ 7 | exports.ButtonGroup = Component.specialize(); 8 | -------------------------------------------------------------------------------- /ui/controls/labeled-icon.reel/labeled-icon.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | /** 4 | * @class LabeledIcon 5 | * @extends Component 6 | */ 7 | exports.LabeledIcon = Component.specialize(); 8 | -------------------------------------------------------------------------------- /ui/controls/list.reel/_list.css: -------------------------------------------------------------------------------- 1 | .List-item + .List-item > * { 2 | border-top-color: transparent; 3 | } 4 | 5 | .ListItem .dummy { 6 | position: absolute; 7 | margin: -1000px; 8 | z-index: -1000; 9 | } 10 | -------------------------------------------------------------------------------- /ui/icons/network-interface.reel/bridge.reel/bridge.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | /** 4 | * @class Bridge 5 | * @extends Component 6 | */ 7 | exports.Bridge = Component.specialize(); 8 | -------------------------------------------------------------------------------- /ui/sections/wizard/inspectors/share.reel/table-iscsi.reel/_table-iscsi.css: -------------------------------------------------------------------------------- 1 | .TableIscsi .Table-cells > div:nth-child(2), 2 | .TableIscsi .TableHeaderLayout-row .TableHeaderLayout-cell:nth-child(2) { 3 | max-width: 12em; 4 | } 5 | -------------------------------------------------------------------------------- /ui/sections/wizard/inspectors/user.reel/table-users.reel/_table-users.css: -------------------------------------------------------------------------------- 1 | .TableUsers .Table-cells > div:nth-child(3), 2 | .TableUsers .TableHeaderLayout-row .TableHeaderLayout-cell:nth-child(3) { 3 | max-width: 12em; 4 | } 5 | -------------------------------------------------------------------------------- /ui/widgets/load-average.reel/load-average.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | /** 4 | * @class LoadAverage 5 | * @extends Component 6 | */ 7 | exports.LoadAverage = Component.specialize(); 8 | -------------------------------------------------------------------------------- /blue-shark/ui/scrollable-list.info/sample/ui/main.reel/main.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | /** 4 | * @class Main 5 | * @extends Component 6 | */ 7 | exports.Main = Component.specialize(); 8 | -------------------------------------------------------------------------------- /blue-shark/ui/select-search.reel/select-search-option.reel/select-search-option.css: -------------------------------------------------------------------------------- 1 | .SelectSearchOption{cursor:pointer;padding:.25em .5em .35em;font-family:lato;font-weight:200}.SelectSearchOption.selected{background:#2089d3;color:#fff} -------------------------------------------------------------------------------- /core/model/descriptors/mail-message-extra-headers-anonymous.mjson: -------------------------------------------------------------------------------- 1 | { 2 | "root": { 3 | "prototype": "core/model/model-descriptor", 4 | "properties": { 5 | "name": "MailMessageExtraHeadersAnonymous" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /core/model/descriptors/share-smb-extra-parameters-anonymous.mjson: -------------------------------------------------------------------------------- 1 | { 2 | "root": { 3 | "prototype": "core/model/model-descriptor", 4 | "properties": { 5 | "name": "ShareSmbExtraParametersAnonymous" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /core/model/enumerations/ldap-directory-params-encryption.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.LdapDirectoryParamsEncryption = new Enum().initWithMembersAndValues(["OFF","SSL","TLS"], ["OFF","SSL","TLS"]); 4 | -------------------------------------------------------------------------------- /core/model/enumerations/update-ops-operation.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.UpdateOpsOperation = new Enum().initWithMembersAndValues(["delete","install","upgrade"], ["delete","install","upgrade"]); 4 | -------------------------------------------------------------------------------- /core/model/enumerations/vm-device-disk-target-type.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.VmDeviceDiskTargetType = new Enum().initWithMembersAndValues(["FILE","BLOCK", "DISK"], ["FILE","BLOCK", "DISK"]); 4 | -------------------------------------------------------------------------------- /core/model/enumerations/vm-status-state.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.VmStatusState = new Enum().initWithMembersAndValues(["BOOTLOADER","RUNNING","STOPPED"], ["BOOTLOADER","RUNNING","STOPPED"]); 4 | -------------------------------------------------------------------------------- /src/model/VolumeDatasetPropertyReservation.ts: -------------------------------------------------------------------------------- 1 | import {VolumeDatasetProperty} from './VolumeDatasetProperty'; 2 | 3 | export class VolumeDatasetPropertyReservation extends VolumeDatasetProperty { 4 | public parsed: number; 5 | } 6 | -------------------------------------------------------------------------------- /src/service/freenas-service.js: -------------------------------------------------------------------------------- 1 | var FakeMontageDataService = require("core/service/fake-montage-data-service").FakeMontageDataService; 2 | 3 | exports.FreeNASService = { 4 | instance: FakeMontageDataService.getInstance() 5 | }; 6 | -------------------------------------------------------------------------------- /ui/sections/containers/inspectors/docker-collection.reel/docker-collection.js: -------------------------------------------------------------------------------- 1 | var AbstractInspector = require("ui/abstract/abstract-inspector").AbstractInspector; 2 | 3 | exports.DockerCollection = AbstractInspector.specialize(); 4 | -------------------------------------------------------------------------------- /ui/sections/storage/inspectors/share.reel/afp-share.reel/afp-share.js: -------------------------------------------------------------------------------- 1 | var AbstractShareInspector = require("../abstract-share-inspector").AbstractShareInspector; 2 | 3 | 4 | exports.AfpShare = AbstractShareInspector.specialize(); 5 | -------------------------------------------------------------------------------- /ui/sections/wizard/inspectors/directory-services.reel/table-nis.reel/_table-nis.css: -------------------------------------------------------------------------------- 1 | .TableNis .Table-cells > div:nth-child(1), 2 | .TableNis .TableHeaderLayout-row .TableHeaderLayout-cell:nth-child(1) { 3 | max-width: 12em; 4 | } 5 | -------------------------------------------------------------------------------- /blue-shark/ui/field-scrollable-list.info/sample/ui/main.reel/main.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | /** 4 | * @class Main 5 | * @extends Component 6 | */ 7 | exports.Main = Component.specialize(); 8 | -------------------------------------------------------------------------------- /blue-shark/ui/radio-button-field-group.info/sample/ui/main.reel/main.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | /** 4 | * @class Main 5 | * @extends Component 6 | */ 7 | exports.Main = Component.specialize(); 8 | -------------------------------------------------------------------------------- /core/model/enumerations/share-nfs-security-items.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.ShareNfsSecurityItems = new Enum().initWithMembersAndValues(["krb5","krb5i","krb5p","sys"], ["krb5","krb5i","krb5p","sys"]); 4 | -------------------------------------------------------------------------------- /core/model/enumerations/share-targettype.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.ShareTargettype = new Enum().initWithMembersAndValues(["DATASET","DIRECTORY","FILE","ZVOL"], ["DATASET","DIRECTORY","FILE","ZVOL"]); 4 | -------------------------------------------------------------------------------- /core/model/enumerations/update-progress-operation.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.UpdateProgressOperation = new Enum().initWithMembersAndValues(["DOWNLOADING","INSTALLING"], ["DOWNLOADING","INSTALLING"]); 4 | -------------------------------------------------------------------------------- /core/model/enumerations/vm-status-health.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.VmStatusHealth = new Enum().initWithMembersAndValues(["DEAD","DYING","HEALTHY","UNKNOWN"], ["DEAD","DYING","HEALTHY","UNKNOWN"]); 4 | -------------------------------------------------------------------------------- /core/model/enumerations/vmware-dataset-filter-op.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.VmwareDatasetFilterOp = new Enum().initWithMembersAndValues(["EXCLUDE","INCLUDE","NONE"], ["EXCLUDE","INCLUDE","NONE"]); 4 | -------------------------------------------------------------------------------- /core/model/enumerations/volume-status.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.VolumeStatus = new Enum().initWithMembersAndValues(["LOCKED","ONLINE","UNAVAIL","UNKNOWN"], ["LOCKED","ONLINE","UNAVAIL","UNKNOWN"]); 4 | -------------------------------------------------------------------------------- /src/controller/tree/Entry.ts: -------------------------------------------------------------------------------- 1 | export interface Entry { 2 | name: string; 3 | path: string; 4 | children: Array; 5 | type?: string; 6 | volume?: any; 7 | parent?: Entry; 8 | original?: any; 9 | } 10 | -------------------------------------------------------------------------------- /src/model/VolumeDatasetPropertyRefreservation.ts: -------------------------------------------------------------------------------- 1 | import {VolumeDatasetProperty} from './VolumeDatasetProperty'; 2 | 3 | export class VolumeDatasetPropertyRefreservation extends VolumeDatasetProperty { 4 | public parsed: number; 5 | } 6 | -------------------------------------------------------------------------------- /src/model/enumerations/AclEntryType.ts: -------------------------------------------------------------------------------- 1 | const AclEntryType = { 2 | ALLOW: 'ALLOW' as 'ALLOW', 3 | DENY: 'DENY' as 'DENY' 4 | }; 5 | type AclEntryType = (typeof AclEntryType)[keyof typeof AclEntryType]; 6 | export {AclEntryType}; 7 | -------------------------------------------------------------------------------- /src/model/enumerations/VmDeviceUsbDevice.ts: -------------------------------------------------------------------------------- 1 | const VmDeviceUsbDevice = { 2 | tablet: 'tablet' as 'tablet' 3 | }; 4 | type VmDeviceUsbDevice = (typeof VmDeviceUsbDevice)[keyof typeof VmDeviceUsbDevice]; 5 | export {VmDeviceUsbDevice}; 6 | -------------------------------------------------------------------------------- /src/model/enumerations/VmDeviceVolumeType.ts: -------------------------------------------------------------------------------- 1 | const VmDeviceVolumeType = { 2 | VT9P: 'VT9P' as 'VT9P' 3 | }; 4 | type VmDeviceVolumeType = (typeof VmDeviceVolumeType)[keyof typeof VmDeviceVolumeType]; 5 | export {VmDeviceVolumeType}; 6 | -------------------------------------------------------------------------------- /src/repository/data-store.ts: -------------------------------------------------------------------------------- 1 | import { createStore } from 'redux'; 2 | 3 | export class DataStore { 4 | private store; 5 | 6 | public constructor() { 7 | this.store = createStore(function() {}); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /ui/icons/network-interface.reel/interface.reel/interface.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | /** 4 | * @class Interface 5 | * @extends Component 6 | */ 7 | exports.Interface = Component.specialize(); 8 | -------------------------------------------------------------------------------- /ui/icons/network-interface.reel/network-device.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | /** 4 | * @class NetworkDevice 5 | * @extends Component 6 | */ 7 | exports.NetworkDevice = Component.specialize(); 8 | -------------------------------------------------------------------------------- /ui/inspectors/service.reel/afp-service.reel/afp-service.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | /** 4 | * @class AfpService 5 | * @extends Component 6 | */ 7 | exports.AfpService = Component.specialize(); 8 | -------------------------------------------------------------------------------- /ui/inspectors/service.reel/nfs-service.reel/nfs-service.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | /** 4 | * @class NfsService 5 | * @extends Component 6 | */ 7 | exports.NfsService = Component.specialize(); 8 | -------------------------------------------------------------------------------- /ui/inspectors/service.reel/nis-service.reel/nis-service.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | /** 4 | * @class NisService 5 | * @extends Component 6 | */ 7 | exports.NisService = Component.specialize(); 8 | -------------------------------------------------------------------------------- /ui/inspectors/service.reel/nt4-service.reel/nt4-service.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | /** 4 | * @class Nt4Service 5 | * @extends Component 6 | */ 7 | exports.Nt4Service = Component.specialize(); 8 | -------------------------------------------------------------------------------- /ui/inspectors/service.reel/scp-service.reel/scp-service.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | /** 4 | * @class ScpService 5 | * @extends Component 6 | */ 7 | exports.ScpService = Component.specialize(); 8 | -------------------------------------------------------------------------------- /ui/sections/network/inspectors/network-interface.reel/vlan.reel/vlan.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | /** 4 | * @class Vlan 5 | * @extends Component 6 | */ 7 | exports.Vlan = Component.specialize(); 8 | -------------------------------------------------------------------------------- /ui/sections/storage/inspectors/share.reel/webdav-share.reel/webdav-share.js: -------------------------------------------------------------------------------- 1 | var AbstractShareInspector = require("../abstract-share-inspector").AbstractShareInspector; 2 | 3 | exports.WebdavShare = AbstractShareInspector.specialize(); 4 | -------------------------------------------------------------------------------- /ui/widgets/arc-demand-data.reel/arc-demand-data.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | /** 4 | * @class ArcDemandData 5 | * @extends Component 6 | */ 7 | exports.ArcDemandData = Component.specialize(); 8 | -------------------------------------------------------------------------------- /blue-shark/ui/multiple-select.reel/multiple-select-option.reel/multiple-select-option.css: -------------------------------------------------------------------------------- 1 | .MultipleSelectOption{cursor:pointer;padding:.25em .5em .35em;font-family:lato;font-weight:200}.MultipleSelectOption.selected{background:#2089d3;color:#fff} -------------------------------------------------------------------------------- /blue-shark/ui/text-area.reel/_text-area.css: -------------------------------------------------------------------------------- 1 | .TextArea { 2 | @apply --input-field; 3 | font-size: 100%; 4 | height: 5em; 5 | padding: 0.25em .5em; 6 | resize: vertical; 7 | -webkit-tap-highlight-color: transparent; 8 | } 9 | -------------------------------------------------------------------------------- /core/model/enumerations/rsyncd-module-mode.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.RsyncdModuleMode = new Enum().initWithMembersAndValues(["READONLY","READWRITE","WRITEONLY"], ["READONLY","READWRITE","WRITEONLY"]); 4 | -------------------------------------------------------------------------------- /core/model/enumerations/volume-dataset-property-dedup-value.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.VolumeDatasetPropertyDedupValue = new Enum().initWithMembersAndValues(["off","on","verify"], ["off","on","verify"]); 4 | -------------------------------------------------------------------------------- /src/backend/websocket-response.js: -------------------------------------------------------------------------------- 1 | exports.WebSocketResponse = function WebSocketResponse (rawResponse) { 2 | this.data = rawResponse.args; 3 | this.timestamp = !isNaN(rawResponse.timestamp) ? rawResponse.timestamp * 1000 : 0; 4 | }; 5 | -------------------------------------------------------------------------------- /src/model/enumerations/DockerHostState.ts: -------------------------------------------------------------------------------- 1 | const DockerHostState = { 2 | UP: 'UP' as 'UP', 3 | DOWN: 'DOWN' as 'DOWN' 4 | }; 5 | type DockerHostState = (typeof DockerHostState)[keyof typeof DockerHostState]; 6 | export {DockerHostState}; 7 | -------------------------------------------------------------------------------- /ui/icons/network-interface.reel/network-interface.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | /** 4 | * @class NetworkInterface 5 | * @extends Component 6 | */ 7 | exports.NetworkInterface = Component.specialize(); 8 | -------------------------------------------------------------------------------- /ui/inspectors/service.reel/ipfs-service.reel/ipfs-service.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | /** 4 | * @class IpfsService 5 | * @extends Component 6 | */ 7 | exports.IpfsService = Component.specialize(); 8 | -------------------------------------------------------------------------------- /ui/inspectors/service.reel/ldap-service.reel/ldap-service.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | /** 4 | * @class LdapService 5 | * @extends Component 6 | */ 7 | exports.LdapService = Component.specialize(); 8 | -------------------------------------------------------------------------------- /ui/inspectors/service.reel/lldp-service.reel/lldp-service.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | /** 4 | * @class LldpService 5 | * @extends Component 6 | */ 7 | exports.LldpService = Component.specialize(); 8 | -------------------------------------------------------------------------------- /blue-shark/ui/sink.info/sample/ui/main.reel/main.css: -------------------------------------------------------------------------------- 1 | .scrollContainer{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;height:300px;width:300px} -------------------------------------------------------------------------------- /core/model/custom-descriptors/calendar.mjson: -------------------------------------------------------------------------------- 1 | { 2 | "root": { 3 | "prototype": "core/model/model-descriptor", 4 | "properties": { 5 | "name": "Calendar", 6 | "propertyBlueprints": [ 7 | ] 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /core/model/enumerations/dataset-type.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.DatasetType = new Enum().initWithMembersAndValues(["BOOKMARK","FILESYSTEM","SNAPSHOT","VOLUME"], ["BOOKMARK","FILESYSTEM","SNAPSHOT","VOLUME"]); 4 | -------------------------------------------------------------------------------- /core/model/enumerations/disk-selftest-type.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.DiskSelftestType = new Enum().initWithMembersAndValues(["CONVEYANCE","LONG","OFFLINE","SHORT"], ["CONVEYANCE","LONG","OFFLINE","SHORT"]); 4 | -------------------------------------------------------------------------------- /core/model/enumerations/service-smartd-powermode.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.ServiceSmartdPowermode = new Enum().initWithMembersAndValues(["IDLE","NEVER","SLEEP","STANDBY"], ["IDLE","NEVER","SLEEP","STANDBY"]); 4 | -------------------------------------------------------------------------------- /core/model/enumerations/share-iscsi-auth-type.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.ShareIscsiAuthType = new Enum().initWithMembersAndValues(["CHAP","CHAP_MUTUAL","DENY","NONE"], ["CHAP","CHAP_MUTUAL","DENY","NONE"]); 4 | -------------------------------------------------------------------------------- /core/model/enumerations/vm-config-bootloader.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.VmConfigBootloader = new Enum().initWithMembersAndValues(["BHYVELOAD","GRUB","UEFI","UEFI_CSM"], ["BHYVELOAD","GRUB","UEFI","UEFI_CSM"]); 4 | -------------------------------------------------------------------------------- /core/model/enumerations/vm-device-nic-mode.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.VmDeviceNicMode = new Enum().initWithMembersAndValues(["BRIDGED","HOSTONLY","MANAGEMENT","NAT"], ["BRIDGED","HOSTONLY","MANAGEMENT","NAT"]); 4 | -------------------------------------------------------------------------------- /core/model/enumerations/volume-property-failmode-value.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.VolumePropertyFailmodeValue = new Enum().initWithMembersAndValues(["continue","panic","wait"], ["continue","panic","wait"]); 4 | -------------------------------------------------------------------------------- /ui/icons/file.reel/file.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @module ui/file.reel 3 | */ 4 | var Component = require("montage/ui/component").Component; 5 | 6 | /** 7 | * @class File 8 | * @extends Component 9 | */ 10 | exports.File = Component.specialize(); 11 | -------------------------------------------------------------------------------- /ui/icons/zvol.reel/zvol.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @module ui/zvol.reel 3 | */ 4 | var Component = require("montage/ui/component").Component; 5 | 6 | /** 7 | * @class Zvol 8 | * @extends Component 9 | */ 10 | exports.Zvol = Component.specialize(); 11 | -------------------------------------------------------------------------------- /ui/inspectors/service.reel/swift-service.reel/swift-service.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | /** 4 | * @class SwiftService 5 | * @extends Component 6 | */ 7 | exports.SwiftService = Component.specialize(); 8 | -------------------------------------------------------------------------------- /ui/sections/network/inspectors/network-interface.reel/bridge.reel/bridge.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | /** 4 | * @class Bridge 5 | * @extends Component 6 | */ 7 | exports.Bridge = Component.specialize(); 8 | -------------------------------------------------------------------------------- /ui/sections/wizard/inspectors/directory-services.reel/table-freeipa.reel/_table-freeipa.css: -------------------------------------------------------------------------------- 1 | .TableFreeipa .Table-cells > div:nth-child(1), 2 | .TableFreeipa .TableHeaderLayout-row .TableHeaderLayout-cell:nth-child(1) { 3 | max-width: 8em; 4 | } 5 | -------------------------------------------------------------------------------- /ui/widgets/memory-allocation.reel/memory-allocation.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | /** 4 | * @class MemoryAllocation 5 | * @extends Component 6 | */ 7 | exports.MemoryAllocation = Component.specialize(); 8 | -------------------------------------------------------------------------------- /blue-shark/ui/main.reel/main.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @module ui/main.reel 3 | */ 4 | var Component = require("montage/ui/component").Component; 5 | 6 | /** 7 | * @class Main 8 | * @extends Component 9 | */ 10 | exports.Main = Component.specialize(); 11 | -------------------------------------------------------------------------------- /blue-shark/ui/text-area.reel/text-area.js: -------------------------------------------------------------------------------- 1 | var AbstractTextArea = require("montage/ui/base/abstract-text-area").AbstractTextArea; 2 | 3 | exports.TextArea = AbstractTextArea.specialize({ 4 | hasTemplate: { 5 | value: true 6 | } 7 | }); 8 | -------------------------------------------------------------------------------- /core/model/enumerations/disk-acousticlevel.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.DiskAcousticlevel = new Enum().initWithMembersAndValues(["DISABLED","MAXIMUM","MEDIUM","MINIMUM"], ["DISABLED","MAXIMUM","MEDIUM","MINIMUM"]); 4 | -------------------------------------------------------------------------------- /core/model/enumerations/volume-property-source.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.VolumePropertySource = new Enum().initWithMembersAndValues(["DEFAULT","INHERITED","LOCAL","NONE"], ["DEFAULT","INHERITED","LOCAL","NONE"]); 4 | -------------------------------------------------------------------------------- /src/controller/tree/TreeController.ts: -------------------------------------------------------------------------------- 1 | import {Entry} from './Entry'; 2 | export interface TreeController { 3 | entry: Entry; 4 | type: string; 5 | parent: Entry; 6 | root: string; 7 | 8 | open(selectedPath?: string); 9 | } 10 | -------------------------------------------------------------------------------- /src/model/enumerations/ServiceUpsMode.ts: -------------------------------------------------------------------------------- 1 | const ServiceUpsMode = { 2 | MASTER: 'MASTER' as 'MASTER', 3 | SLAVE: 'SLAVE' as 'SLAVE' 4 | }; 5 | type ServiceUpsMode = (typeof ServiceUpsMode)[keyof typeof ServiceUpsMode]; 6 | export {ServiceUpsMode}; 7 | -------------------------------------------------------------------------------- /ui/icons/certificates/ca.reel/ca.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @module ui/ca.reel 3 | */ 4 | var Component = require("montage/ui/component").Component; 5 | 6 | /** 7 | * @class Ca 8 | * @extends Component 9 | */ 10 | exports.Ca = Component.specialize(); 11 | -------------------------------------------------------------------------------- /ui/inspectors/calendar.reel/calendar-widget.reel/day-header.reel/_day-header.css: -------------------------------------------------------------------------------- 1 | .DayHeader.is-today { 2 | background: var(--primary); 3 | } 4 | 5 | .DayHeader:not(:last-child) { 6 | border-right: 1px solid var(--calendar-line--strong); 7 | } 8 | -------------------------------------------------------------------------------- /ui/inspectors/service.reel/gluster-service.reel/gluster-service.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | /** 4 | * @class GlusterService 5 | * @extends Component 6 | */ 7 | exports.GlusterService = Component.specialize(); 8 | -------------------------------------------------------------------------------- /ui/sections/accounts/inspectors/directory-services.reel/directory-service.reel/directory-service.js: -------------------------------------------------------------------------------- 1 | var AbstractInspector = require("ui/abstract/abstract-inspector").AbstractInspector; 2 | 3 | exports.DirectoryService = AbstractInspector.specialize(); 4 | -------------------------------------------------------------------------------- /ui/sections/accounts/inspectors/kerberos-keytab.reel/_kerberos-keytab.css: -------------------------------------------------------------------------------- 1 | .KerberosKeytab-entries .Table-row > div:nth-child(1), 2 | .KerberosKeytab-entries .TableHeaderLayout-row .TableHeaderLayout-cell:nth-child(1) { 3 | max-width: 4.5em; 4 | } 5 | -------------------------------------------------------------------------------- /assets/locales/en/help.json: -------------------------------------------------------------------------------- 1 | { 2 | "User.uid": "User ID must be between 0 and 4294967295", 3 | "Group.uid": "Group ID must be between 0 and 4294967295", 4 | "Storage.importMedia.mediaFsType": "Leave field empty to autodetect filesystem type" 5 | } 6 | -------------------------------------------------------------------------------- /blue-shark/ui/icons.reel/icons.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @module ui/icons.reel 3 | */ 4 | var Component = require("montage/ui/component").Component; 5 | 6 | /** 7 | * @class Icons 8 | * @extends Component 9 | */ 10 | exports.Icons = Component.specialize(); 11 | -------------------------------------------------------------------------------- /core/model/descriptors/disk-status-multipath-anonymous-members-anonymous.mjson: -------------------------------------------------------------------------------- 1 | { 2 | "root": { 3 | "prototype": "core/model/model-descriptor", 4 | "properties": { 5 | "name": "DiskStatusMultipathAnonymousMembersAnonymous" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /core/model/enumerations/service-smb-loglevel.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.ServiceSmbLoglevel = new Enum().initWithMembersAndValues(["DEBUG","FULL","MINIMUM","NONE","NORMAL"], ["DEBUG","FULL","MINIMUM","NONE","NORMAL"]); 4 | -------------------------------------------------------------------------------- /core/model/enumerations/share-iscsi-rpm.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.ShareIscsiRpm = new Enum().initWithMembersAndValues(["10000","15000","5400","7200","SSD","UNKNOWN"], ["10000","15000","5400","7200","SSD","UNKNOWN"]); 4 | -------------------------------------------------------------------------------- /core/model/enumerations/vm-device-type.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.VmDeviceType = new Enum().initWithMembersAndValues(["CDROM","DISK","GRAPHICS","NIC","USB","VOLUME"], ["CDROM","DISK","GRAPHICS","NIC","USB","VOLUME"]); 4 | -------------------------------------------------------------------------------- /src/model/enumerations/AlertType.ts: -------------------------------------------------------------------------------- 1 | const AlertType = { 2 | SYSTEM: 'SYSTEM' as 'SYSTEM', 3 | VOLUME: 'VOLUME' as 'VOLUME', 4 | DISK: 'DISK' as 'DISK' 5 | }; 6 | type AlertType = (typeof AlertType)[keyof typeof AlertType]; 7 | export {AlertType}; 8 | -------------------------------------------------------------------------------- /src/model/enumerations/NetworkRouteType.ts: -------------------------------------------------------------------------------- 1 | const NetworkRouteType = { 2 | INET: 'INET' as 'INET', 3 | INET6: 'INET6' as 'INET6' 4 | }; 5 | type NetworkRouteType = (typeof NetworkRouteType)[keyof typeof NetworkRouteType]; 6 | export {NetworkRouteType}; 7 | -------------------------------------------------------------------------------- /ui/controls/topology.reel/_topology.css: -------------------------------------------------------------------------------- 1 | .Topology { 2 | border-bottom: 1px solid var(--primary--4); 3 | 4 | /* log & cache */ 5 | & .flex-row > * { 6 | flex: 1; 7 | } 8 | } 9 | 10 | .Topology .Inspector-body { margin: 0; } 11 | -------------------------------------------------------------------------------- /ui/sections/vms/inspectors/virtual-machine.reel/virtual-machine-readme.reel/_virtual-machine-readme.css: -------------------------------------------------------------------------------- 1 | .VirtualMachineReadme { 2 | min-width: 20em !Important; 3 | 4 | & textarea { 5 | flex: 1; 6 | max-height: 100%; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /core/model/enumerations/disks-allocation-type.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.DisksAllocationType = new Enum().initWithMembersAndValues(["BOOT","EXPORTED_VOLUME","ISCSI","VOLUME"], ["BOOT","EXPORTED_VOLUME","ISCSI","VOLUME"]); 4 | -------------------------------------------------------------------------------- /core/model/enumerations/network-interface-type.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.NetworkInterfaceType = new Enum().initWithMembersAndValues(["BRIDGE","ETHER","LAGG","LOOPBACK","VLAN"], ["BRIDGE","ETHER","LAGG","LOOPBACK","VLAN"]); 4 | -------------------------------------------------------------------------------- /core/model/enumerations/simulator-disk-rpm.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.SimulatorDiskRpm = new Enum().initWithMembersAndValues(["10000","15000","5400","7200","SSD","UNKNOWN"], ["10000","15000","5400","7200","SSD","UNKNOWN"]); 4 | -------------------------------------------------------------------------------- /core/model/enumerations/zfs-vdev-type.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.ZfsVdevType = new Enum().initWithMembersAndValues(["disk","file","mirror","raidz1","raidz2","raidz3"], ["disk","file","mirror","raidz1","raidz2","raidz3"]); 4 | -------------------------------------------------------------------------------- /serial-console-app/core/backend/websocket-response.js: -------------------------------------------------------------------------------- 1 | exports.WebSocketResponse = function WebSocketResponse (rawResponse) { 2 | this.data = rawResponse.args; 3 | this.timestamp = !isNaN(rawResponse.timestamp) ? rawResponse.timestamp * 1000 : 0; 4 | }; 5 | -------------------------------------------------------------------------------- /src/model/enumerations/DockerPortProtocol.ts: -------------------------------------------------------------------------------- 1 | const DockerPortProtocol = { 2 | TCP: 'TCP' as 'TCP', 3 | UDP: 'UDP' as 'UDP' 4 | }; 5 | type DockerPortProtocol = (typeof DockerPortProtocol)[keyof typeof DockerPortProtocol]; 6 | export {DockerPortProtocol}; 7 | -------------------------------------------------------------------------------- /src/model/enumerations/TunableType.ts: -------------------------------------------------------------------------------- 1 | const TunableType = { 2 | LOADER: 'LOADER' as 'LOADER', 3 | RC: 'RC' as 'RC', 4 | SYSCTL: 'SYSCTL' as 'SYSCTL' 5 | }; 6 | type TunableType = (typeof TunableType)[keyof typeof TunableType]; 7 | export {TunableType}; 8 | -------------------------------------------------------------------------------- /src/model/enumerations/VmDeviceDiskMode.ts: -------------------------------------------------------------------------------- 1 | const VmDeviceDiskMode = { 2 | AHCI: 'AHCI' as 'AHCI', 3 | VIRTIO: 'VIRTIO' as 'VIRTIO' 4 | }; 5 | type VmDeviceDiskMode = (typeof VmDeviceDiskMode)[keyof typeof VmDeviceDiskMode]; 6 | export {VmDeviceDiskMode}; 7 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # http://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | indent_style = space 6 | indent_size = 4 7 | charset = utf-8 8 | trim_trailing_whitespace = true 9 | insert_final_newline = true 10 | 11 | [*.md] 12 | trim_trailing_whitespace = false 13 | -------------------------------------------------------------------------------- /core/model/enumerations/zfs-property-source.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.ZfsPropertySource = new Enum().initWithMembersAndValues(["DEFAULT","INHERITED","LOCAL","NONE","RECEIVED"], ["DEFAULT","INHERITED","LOCAL","NONE","RECEIVED"]); 4 | -------------------------------------------------------------------------------- /src/model/enumerations/ShareTypesPermtype.ts: -------------------------------------------------------------------------------- 1 | const ShareTypesPermtype = { 2 | PERM: 'PERM' as 'PERM', 3 | ACL: 'ACL' as 'ACL' 4 | }; 5 | type ShareTypesPermtype = (typeof ShareTypesPermtype)[keyof typeof ShareTypesPermtype]; 6 | export {ShareTypesPermtype}; 7 | -------------------------------------------------------------------------------- /src/model/enumerations/ShareTypesSubtype.ts: -------------------------------------------------------------------------------- 1 | const ShareTypesSubtype = { 2 | FILE: 'FILE' as 'FILE', 3 | BLOCK: 'BLOCK' as 'BLOCK' 4 | }; 5 | type ShareTypesSubtype = (typeof ShareTypesSubtype)[keyof typeof ShareTypesSubtype]; 6 | export {ShareTypesSubtype}; 7 | -------------------------------------------------------------------------------- /blue-shark/ui/scroller.reel/scroller.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @module ui/scroller.reel 3 | */ 4 | var Component = require("montage/ui/component").Component; 5 | 6 | /** 7 | * @class Scroller 8 | * @extends Component 9 | */ 10 | exports.Scroller = Component.specialize(); 11 | -------------------------------------------------------------------------------- /blue-shark/ui/sink.info/sample/ui/main.reel/main.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @module ui/main.reel 3 | */ 4 | var Component = require("montage/ui/component").Component; 5 | 6 | /** 7 | * @class Main 8 | * @extends Component 9 | */ 10 | exports.Main = Component.specialize(); 11 | -------------------------------------------------------------------------------- /src/dao/peer-dao.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDao} from './abstract-dao';import {Model} from '../model'; 2 | import {Peer} from '../model/Peer'; 3 | 4 | export class PeerDao extends AbstractDao { 5 | public constructor() { 6 | super(Model.Peer); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/model/enumerations/RsyncCopyRsyncmode.ts: -------------------------------------------------------------------------------- 1 | const RsyncCopyRsyncmode = { 2 | MODULE: 'MODULE' as 'MODULE', 3 | SSH: 'SSH' as 'SSH' 4 | }; 5 | type RsyncCopyRsyncmode = (typeof RsyncCopyRsyncmode)[keyof typeof RsyncCopyRsyncmode]; 6 | export {RsyncCopyRsyncmode}; 7 | -------------------------------------------------------------------------------- /src/model/enumerations/ShareIscsiBlocksize.ts: -------------------------------------------------------------------------------- 1 | const ShareIscsiBlocksize = { 2 | 512: '512' as '512', 3 | 4096: '4096' as '4096' 4 | }; 5 | type ShareIscsiBlocksize = (typeof ShareIscsiBlocksize)[keyof typeof ShareIscsiBlocksize]; 6 | export {ShareIscsiBlocksize}; 7 | -------------------------------------------------------------------------------- /src/model/enumerations/VmDatastoreState.ts: -------------------------------------------------------------------------------- 1 | const VmDatastoreState = { 2 | ONLINE: 'ONLINE' as 'ONLINE', 3 | OFFLINE: 'OFFLINE' as 'OFFLINE' 4 | }; 5 | type VmDatastoreState = (typeof VmDatastoreState)[keyof typeof VmDatastoreState]; 6 | export {VmDatastoreState}; 7 | -------------------------------------------------------------------------------- /ui/sections/wizard/inspectors/mail.reel/mail.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @module ui/mail.reel 3 | */ 4 | var Component = require("montage/ui/component").Component; 5 | 6 | /** 7 | * @class Mail 8 | * @extends Component 9 | */ 10 | exports.Mail = Component.specialize(); 11 | -------------------------------------------------------------------------------- /blue-shark/.editorconfig: -------------------------------------------------------------------------------- 1 | # http://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | indent_style = space 6 | indent_size = 4 7 | charset = utf-8 8 | trim_trailing_whitespace = true 9 | insert_final_newline = true 10 | 11 | [*.md] 12 | trim_trailing_whitespace = false 13 | -------------------------------------------------------------------------------- /blue-shark/ui/button.info/sample/ui/main.reel/main.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @module ui/main.reel 3 | */ 4 | var Component = require("montage/ui/component").Component; 5 | 6 | /** 7 | * @class Main 8 | * @extends Component 9 | */ 10 | exports.Main = Component.specialize(); 11 | -------------------------------------------------------------------------------- /blue-shark/ui/checkbox.info/sample/ui/main.reel/main.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @module ui/main.reel 3 | */ 4 | var Component = require("montage/ui/component").Component; 5 | 6 | /** 7 | * @class Main 8 | * @extends Component 9 | */ 10 | exports.Main = Component.specialize(); 11 | -------------------------------------------------------------------------------- /blue-shark/ui/field.info/sample/ui/main.reel/main.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @module ui/main.reel 3 | */ 4 | var Component = require("montage/ui/component").Component; 5 | 6 | /** 7 | * @class Main 8 | * @extends Component 9 | */ 10 | exports.Main = Component.specialize(); 11 | -------------------------------------------------------------------------------- /blue-shark/ui/icons.info/sample/ui/main.reel/main.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @module ui/main.reel 3 | */ 4 | var Component = require("montage/ui/component").Component; 5 | 6 | /** 7 | * @class Main 8 | * @extends Component 9 | */ 10 | exports.Main = Component.specialize(); 11 | -------------------------------------------------------------------------------- /blue-shark/ui/panel.info/sample/ui/main.reel/main.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @module ui/main.reel 3 | */ 4 | var Component = require("montage/ui/component").Component; 5 | 6 | /** 7 | * @class Main 8 | * @extends Component 9 | */ 10 | exports.Main = Component.specialize(); 11 | -------------------------------------------------------------------------------- /blue-shark/ui/search.info/sample/ui/main.reel/main.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @module ui/main.reel 3 | */ 4 | var Component = require("montage/ui/component").Component; 5 | 6 | /** 7 | * @class Main 8 | * @extends Component 9 | */ 10 | exports.Main = Component.specialize(); 11 | -------------------------------------------------------------------------------- /core/model/enumerations/enclosure-status.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.EnclosureStatus = new Enum().initWithMembersAndValues(["CRITICAL","INFO","INVOP","NONCRITICAL","OK","UNRECOV"], ["CRITICAL","INFO","INVOP","NONCRITICAL","OK","UNRECOV"]); 4 | -------------------------------------------------------------------------------- /ui/sections/containers/inspectors/docker-logs.reel/_docker-logs.css: -------------------------------------------------------------------------------- 1 | .DockerLogs { 2 | 3 | & .Inspector-body { 4 | flex: 1 !important; 5 | display: flex !important; 6 | } 7 | } 8 | 9 | .DockerLogs .Console { 10 | min-width: 40rem; 11 | } 12 | -------------------------------------------------------------------------------- /blue-shark/ui/color-palette.info/sample/ui/main.reel/main.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @module ui/main.reel 3 | */ 4 | var Component = require("montage/ui/component").Component; 5 | 6 | /** 7 | * @class Main 8 | * @extends Component 9 | */ 10 | exports.Main = Component.specialize(); 11 | -------------------------------------------------------------------------------- /blue-shark/ui/field-checkbox.info/sample/ui/main.reel/main.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @module ui/main.reel 3 | */ 4 | var Component = require("montage/ui/component").Component; 5 | 6 | /** 7 | * @class Main 8 | * @extends Component 9 | */ 10 | exports.Main = Component.specialize(); 11 | -------------------------------------------------------------------------------- /blue-shark/ui/field-date.info/sample/ui/main.reel/main.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @module ui/main.reel 3 | */ 4 | var Component = require("montage/ui/component").Component; 5 | 6 | /** 7 | * @class Main 8 | * @extends Component 9 | */ 10 | exports.Main = Component.specialize(); 11 | -------------------------------------------------------------------------------- /blue-shark/ui/field-date.reel/field-date.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @module ui/field-date.reel 3 | */ 4 | var Component = require("montage/ui/component").Component; 5 | 6 | /** 7 | * @class FieldDate 8 | * @extends Component 9 | */ 10 | exports.FieldDate = Component.specialize(); 11 | -------------------------------------------------------------------------------- /blue-shark/ui/field-password.info/sample/ui/main.reel/main.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @module ui/main.reel 3 | */ 4 | var Component = require("montage/ui/component").Component; 5 | 6 | /** 7 | * @class Main 8 | * @extends Component 9 | */ 10 | exports.Main = Component.specialize(); 11 | -------------------------------------------------------------------------------- /blue-shark/ui/field-radio-group.reel/_field-radio-group.css: -------------------------------------------------------------------------------- 1 | .FieldRadioGroup { 2 | 3 | & .RadioButtonFieldGroup { 4 | margin-top: -.2em; 5 | } 6 | 7 | &.FieldRadioGroup--block .RadioButtonFieldGroup { 8 | margin-top: 0.35em; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /blue-shark/ui/field-select.info/sample/ui/main.reel/main.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @module ui/main.reel 3 | */ 4 | var Component = require("montage/ui/component").Component; 5 | 6 | /** 7 | * @class Main 8 | * @extends Component 9 | */ 10 | exports.Main = Component.specialize(); 11 | -------------------------------------------------------------------------------- /blue-shark/ui/field-text.info/sample/ui/main.reel/main.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @module ui/main.reel 3 | */ 4 | var Component = require("montage/ui/component").Component; 5 | 6 | /** 7 | * @class Main 8 | * @extends Component 9 | */ 10 | exports.Main = Component.specialize(); 11 | -------------------------------------------------------------------------------- /blue-shark/ui/field-text.reel/field-text.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @module ui/field-text.reel 3 | */ 4 | var Component = require("montage/ui/component").Component; 5 | 6 | /** 7 | * @class FieldText 8 | * @extends Component 9 | */ 10 | exports.FieldText = Component.specialize(); 11 | -------------------------------------------------------------------------------- /blue-shark/ui/field-time.info/sample/ui/main.reel/main.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @module ui/main.reel 3 | */ 4 | var Component = require("montage/ui/component").Component; 5 | 6 | /** 7 | * @class Main 8 | * @extends Component 9 | */ 10 | exports.Main = Component.specialize(); 11 | -------------------------------------------------------------------------------- /blue-shark/ui/file-input.info/sample/ui/main.reel/main.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @module ui/main.reel 3 | */ 4 | var Component = require("montage/ui/component").Component; 5 | 6 | /** 7 | * @class Main 8 | * @extends Component 9 | */ 10 | exports.Main = Component.specialize(); 11 | -------------------------------------------------------------------------------- /blue-shark/ui/file-reader.info/sample/ui/main.reel/main.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @module ui/main.reel 3 | */ 4 | var Component = require("montage/ui/component").Component; 5 | 6 | /** 7 | * @class Main 8 | * @extends Component 9 | */ 10 | exports.Main = Component.specialize(); 11 | -------------------------------------------------------------------------------- /blue-shark/ui/input-search.info/sample/ui/main.reel/main.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @module ui/main.reel 3 | */ 4 | var Component = require("montage/ui/component").Component; 5 | 6 | /** 7 | * @class Main 8 | * @extends Component 9 | */ 10 | exports.Main = Component.specialize(); 11 | -------------------------------------------------------------------------------- /blue-shark/ui/select-filter.info/sample/ui/main.reel/main.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @module ui/main.reel 3 | */ 4 | var Component = require("montage/ui/component").Component; 5 | 6 | /** 7 | * @class Main 8 | * @extends Component 9 | */ 10 | exports.Main = Component.specialize(); 11 | -------------------------------------------------------------------------------- /core/model/enumerations/zfs-pool-status.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.ZfsPoolStatus = new Enum().initWithMembersAndValues(["DEGRADED","FAULTED","OFFLINE","ONLINE","REMOVED","UNAVAIL"], ["DEGRADED","FAULTED","OFFLINE","ONLINE","REMOVED","UNAVAIL"]); 4 | -------------------------------------------------------------------------------- /src/model/enumerations/ServiceSnmpV3authtype.ts: -------------------------------------------------------------------------------- 1 | const ServiceSnmpV3authtype = { 2 | MD5: 'MD5' as 'MD5', 3 | SHA: 'SHA' as 'SHA' 4 | }; 5 | type ServiceSnmpV3authtype = (typeof ServiceSnmpV3authtype)[keyof typeof ServiceSnmpV3authtype]; 6 | export {ServiceSnmpV3authtype}; 7 | -------------------------------------------------------------------------------- /src/model/enumerations/SnapshotInfoType.ts: -------------------------------------------------------------------------------- 1 | const SnapshotInfoType = { 2 | FILESYSTEM: 'FILESYSTEM' as 'FILESYSTEM', 3 | VOLUME: 'VOLUME' as 'VOLUME' 4 | }; 5 | type SnapshotInfoType = (typeof SnapshotInfoType)[keyof typeof SnapshotInfoType]; 6 | export {SnapshotInfoType}; 7 | -------------------------------------------------------------------------------- /ui/dashboard/notifications.reel/notification-details.reel/task-notification-details.reel/task-notification-details.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | exports.TaskNotificationDetails = Component.specialize(/** @lends TaskNotificationDetails# */); 4 | -------------------------------------------------------------------------------- /ui/sections/system/inspectors/system-section.reel/_system-section.css: -------------------------------------------------------------------------------- 1 | .SystemSection-substitution { 2 | flex: 1; 3 | @apply --flex-column; 4 | } 5 | 6 | .SystemSection-substitution > div:first-child { 7 | display: flex; 8 | @apply --flex-column; 9 | } 10 | 11 | -------------------------------------------------------------------------------- /ui/sections/vms/inspectors/virtual-machine-device.reel/virtual-machine-device-cdrom.reel/virtual-machine-device-cdrom.js: -------------------------------------------------------------------------------- 1 | var AbstractInspector = require("ui/abstract/abstract-inspector").AbstractInspector; 2 | 3 | exports.VirtualMachineDeviceCdrom = AbstractInspector.specialize(); 4 | -------------------------------------------------------------------------------- /blue-shark/ui/field-file-reader.info/sample/ui/main.reel/main.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @module ui/main.reel 3 | */ 4 | var Component = require("montage/ui/component").Component; 5 | 6 | /** 7 | * @class Main 8 | * @extends Component 9 | */ 10 | exports.Main = Component.specialize(); 11 | -------------------------------------------------------------------------------- /blue-shark/ui/field-radio-group.info/sample/ui/main.reel/main.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @module ui/main.reel 3 | */ 4 | var Component = require("montage/ui/component").Component; 5 | 6 | /** 7 | * @class Main 8 | * @extends Component 9 | */ 10 | exports.Main = Component.specialize(); 11 | -------------------------------------------------------------------------------- /blue-shark/ui/field-text-area.info/sample/ui/main.reel/main.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @module ui/main.reel 3 | */ 4 | var Component = require("montage/ui/component").Component; 5 | 6 | /** 7 | * @class Main 8 | * @extends Component 9 | */ 10 | exports.Main = Component.specialize(); 11 | -------------------------------------------------------------------------------- /blue-shark/ui/field-text-input.info/sample/ui/main.reel/main.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @module ui/main.reel 3 | */ 4 | var Component = require("montage/ui/component").Component; 5 | 6 | /** 7 | * @class Main 8 | * @extends Component 9 | */ 10 | exports.Main = Component.specialize(); 11 | -------------------------------------------------------------------------------- /blue-shark/ui/field-toggle-switch.info/sample/ui/main.reel/main.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @module ui/main.reel 3 | */ 4 | var Component = require("montage/ui/component").Component; 5 | 6 | /** 7 | * @class Main 8 | * @extends Component 9 | */ 10 | exports.Main = Component.specialize(); 11 | -------------------------------------------------------------------------------- /blue-shark/ui/search-multiple.info/sample/ui/main.reel/main.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @module ui/main.reel 3 | */ 4 | var Component = require("montage/ui/component").Component; 5 | 6 | /** 7 | * @class Main 8 | * @extends Component 9 | */ 10 | exports.Main = Component.specialize(); 11 | -------------------------------------------------------------------------------- /blue-shark/ui/text-input-edit.info/sample/ui/main.reel/main.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @module ui/main.reel 3 | */ 4 | var Component = require("montage/ui/component").Component; 5 | 6 | /** 7 | * @class Main 8 | * @extends Component 9 | */ 10 | exports.Main = Component.specialize(); 11 | -------------------------------------------------------------------------------- /core/model/enumerations/acl-entry-tag.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.AclEntryTag = new Enum().initWithMembersAndValues(["EVERYONE","GROUP","GROUP_OBJ","MASK","OTHER","USER","USER_OBJ"], ["EVERYONE","GROUP","GROUP_OBJ","MASK","OTHER","USER","USER_OBJ"]); 4 | -------------------------------------------------------------------------------- /core/model/enumerations/crypto-certificate-digestalgorithm.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.CryptoCertificateDigestalgorithm = new Enum().initWithMembersAndValues(["SHA1","SHA224","SHA256","SHA384","SHA512"], ["SHA1","SHA224","SHA256","SHA384","SHA512"]); 4 | -------------------------------------------------------------------------------- /src/Events.ts: -------------------------------------------------------------------------------- 1 | const Events = { 2 | userLoggedIn: 'userLoggedIn' as 'userLoggedIn', 3 | sessionOpened: 'sessionOpened' as 'sessionOpened', 4 | hashChange: 'hashChange' as 'hashChange' 5 | }; 6 | 7 | type Events = (typeof Events)[keyof typeof Events]; 8 | export { Events }; 9 | -------------------------------------------------------------------------------- /src/dao/section-dao.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDao} from './abstract-dao'; 2 | import {Section} from '../model/Section'; 3 | 4 | export class SectionDao extends AbstractDao
{ 5 | 6 | public constructor() { 7 | super(Section.getClassName()); 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/dao/tunable-dao.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDao} from './abstract-dao';import {Model} from '../model'; 2 | import {Tunable} from '../model/Tunable'; 3 | 4 | export class TunableDao extends AbstractDao { 5 | public constructor() { 6 | super(Model.Tunable); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/model/enumerations/BackupCompressionType.ts: -------------------------------------------------------------------------------- 1 | const BackupCompressionType = { 2 | NONE: 'NONE' as 'NONE', 3 | GZIP: 'GZIP' as 'GZIP' 4 | }; 5 | type BackupCompressionType = (typeof BackupCompressionType)[keyof typeof BackupCompressionType]; 6 | export {BackupCompressionType}; 7 | -------------------------------------------------------------------------------- /src/model/enumerations/VolumeDatasetType.ts: -------------------------------------------------------------------------------- 1 | const VolumeDatasetType = { 2 | FILESYSTEM: 'FILESYSTEM' as 'FILESYSTEM', 3 | VOLUME: 'VOLUME' as 'VOLUME' 4 | }; 5 | type VolumeDatasetType = (typeof VolumeDatasetType)[keyof typeof VolumeDatasetType]; 6 | export {VolumeDatasetType}; 7 | -------------------------------------------------------------------------------- /tests/e2e/tests/console/00_section.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | 'Console': function(browser) { 3 | browser 4 | .press('div.MainNavigationItem-console') 5 | .waitForElementVisible('div.Console-terminal', 5000) 6 | .pause(250); 7 | } 8 | }; 9 | -------------------------------------------------------------------------------- /ui/controls/tree-view.reel/child-node.reel/child-node.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @module ui/node.reel 3 | */ 4 | var Component = require("montage/ui/component").Component; 5 | 6 | /** 7 | * @class ChildNode 8 | * @extends Component 9 | */ 10 | exports.ChildNode = Component.specialize(); 11 | -------------------------------------------------------------------------------- /ui/icons/freenas-icon.reel/freenas-icon.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @module ui/freenas-icon.reel 3 | */ 4 | var Component = require("montage/ui/component").Component; 5 | 6 | /** 7 | * @class FreenasIcon 8 | * @extends Component 9 | */ 10 | exports.FreenasIcon = Component.specialize(); 11 | -------------------------------------------------------------------------------- /ui/inspectors/service.reel/service-overview.reel/service-overview.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | /** 4 | * @class ServiceOverview 5 | * @extends Component 6 | */ 7 | exports.ServiceOverview = Component.specialize(/** @lends ServiceOverview# */); 8 | -------------------------------------------------------------------------------- /ui/sections/accounts/inspectors/kerberos-realm.reel/kerberos-realm.js: -------------------------------------------------------------------------------- 1 | var AbstractInspector = require("ui/abstract/abstract-inspector").AbstractInspector; 2 | 3 | /** 4 | * @class KerberosRealm 5 | * @extends Component 6 | */ 7 | exports.KerberosRealm = AbstractInspector.specialize(); 8 | -------------------------------------------------------------------------------- /blue-shark/ui/field-multiple-select.info/sample/ui/main.reel/main.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @module ui/main.reel 3 | */ 4 | var Component = require("montage/ui/component").Component; 5 | 6 | /** 7 | * @class Main 8 | * @extends Component 9 | */ 10 | exports.Main = Component.specialize(); 11 | -------------------------------------------------------------------------------- /blue-shark/ui/search.info/sample/ui/main.reel/_main.css: -------------------------------------------------------------------------------- 1 | /* Setup code */ 2 | 3 | body, 4 | html { 5 | height: 100%; 6 | } 7 | 8 | body { 9 | display: flex; 10 | flex-direction: column; 11 | } 12 | 13 | .Main { 14 | flex: 1; 15 | @apply --flex-column; 16 | } 17 | -------------------------------------------------------------------------------- /blue-shark/ui/select.info/sample/ui/main.reel/_main.css: -------------------------------------------------------------------------------- 1 | .Main { 2 | 3 | } 4 | 5 | h3 { 6 | /* margin-bottom: 20em; */ 7 | } 8 | 9 | .scrollView-container { 10 | display: flex; 11 | position: relative; 12 | min-width: 15em; 13 | outline: 1px solid red; 14 | } 15 | -------------------------------------------------------------------------------- /core/model/enumerations/volume-dataset-property-casesensitivity-value.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.VolumeDatasetPropertyCasesensitivityValue = new Enum().initWithMembersAndValues(["insensitive","mixed","sensitive"], ["insensitive","mixed","sensitive"]); 4 | -------------------------------------------------------------------------------- /core/model/user-interface-descriptors/account-category-user-interface-descriptor.mjson: -------------------------------------------------------------------------------- 1 | { 2 | "root": { 3 | "prototype": "montage/core/meta/user-interface-descriptor", 4 | "properties": { 5 | "collectionNameExpression": "'Accounts'" 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/dao/calendar-dao.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDao} from './abstract-dao';import {Model} from '../model'; 2 | import {Calendar} from '../model/Calendar'; 3 | 4 | export class CalendarDao extends AbstractDao { 5 | public constructor() { 6 | super(Model.Calendar); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/model/enumerations/AlertSeverity.ts: -------------------------------------------------------------------------------- 1 | const AlertSeverity = { 2 | CRITICAL: 'CRITICAL' as 'CRITICAL', 3 | WARNING: 'WARNING' as 'WARNING', 4 | INFO: 'INFO' as 'INFO' 5 | }; 6 | type AlertSeverity = (typeof AlertSeverity)[keyof typeof AlertSeverity]; 7 | export {AlertSeverity}; 8 | -------------------------------------------------------------------------------- /src/model/enumerations/DiskEraseMethod.ts: -------------------------------------------------------------------------------- 1 | const DiskEraseMethod = { 2 | QUICK: 'QUICK' as 'QUICK', 3 | ZEROS: 'ZEROS' as 'ZEROS', 4 | RANDOM: 'RANDOM' as 'RANDOM' 5 | }; 6 | type DiskEraseMethod = (typeof DiskEraseMethod)[keyof typeof DiskEraseMethod]; 7 | export {DiskEraseMethod}; 8 | -------------------------------------------------------------------------------- /src/model/enumerations/VmDatastoreNfsVersion.ts: -------------------------------------------------------------------------------- 1 | const VmDatastoreNfsVersion = { 2 | NFSV3: 'NFSV3' as 'NFSV3', 3 | NFSV4: 'NFSV4' as 'NFSV4' 4 | }; 5 | type VmDatastoreNfsVersion = (typeof VmDatastoreNfsVersion)[keyof typeof VmDatastoreNfsVersion]; 6 | export {VmDatastoreNfsVersion}; 7 | -------------------------------------------------------------------------------- /ui/inspectors/service.reel/domain-controller-service.reel/domain-controller-service.js: -------------------------------------------------------------------------------- 1 | var Component = require("montage/ui/component").Component; 2 | 3 | /** 4 | * @class DomainControllerService 5 | * @extends Component 6 | */ 7 | exports.DomainControllerService = Component.specialize(); 8 | -------------------------------------------------------------------------------- /ui/main-sidebar/main-navigation.reel/_main-navigation.css: -------------------------------------------------------------------------------- 1 | .MainNavigation { 2 | display: flex; 3 | flex-direction: column; 4 | } 5 | 6 | .MainNavigation-repetition { 7 | min-height: 25rem; 8 | flex: 1; 9 | display: flex; 10 | flex-direction: column; 11 | } 12 | -------------------------------------------------------------------------------- /blue-shark/ui/color-swatch.reel/color-swatch.css: -------------------------------------------------------------------------------- 1 | .ColorSwatch{font-size:.9em;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.ColorSwatch,.ColorSwatch-property{display:-webkit-box;display:-ms-flexbox;display:flex}.ColorSwatch-color{height:40px;height:2.5rem;width:160px;width:10rem} -------------------------------------------------------------------------------- /blue-shark/ui/search-multiple.info/sample/ui/main.reel/_main.css: -------------------------------------------------------------------------------- 1 | /* Setup code */ 2 | 3 | body, 4 | html { 5 | height: 100%; 6 | } 7 | 8 | body { 9 | display: flex; 10 | flex-direction: column; 11 | } 12 | 13 | .Main { 14 | flex: 1; 15 | @apply --flex-column; 16 | } 17 | -------------------------------------------------------------------------------- /core/model/user-interface-descriptors/docker-container-section-user-interface-descriptor.mjson: -------------------------------------------------------------------------------- 1 | { 2 | "root": { 3 | "prototype": "montage/core/meta/user-interface-descriptor", 4 | "properties": { 5 | "collectionNameExpression": "'Docker'" 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/dao/vm-readme-dao.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDao} from './abstract-dao';import {Model} from '../model'; 2 | import {VmReadme} from '../model/VmReadme'; 3 | 4 | export class VmReadmeDao extends AbstractDao { 5 | public constructor() { 6 | super(Model.VmReadme); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/model/enumerations/MailEncryptionType.ts: -------------------------------------------------------------------------------- 1 | const MailEncryptionType = { 2 | PLAIN: 'PLAIN' as 'PLAIN', 3 | TLS: 'TLS' as 'TLS', 4 | SSL: 'SSL' as 'SSL' 5 | }; 6 | type MailEncryptionType = (typeof MailEncryptionType)[keyof typeof MailEncryptionType]; 7 | export {MailEncryptionType}; 8 | -------------------------------------------------------------------------------- /src/model/enumerations/RsyncCopyRsyncdirection.ts: -------------------------------------------------------------------------------- 1 | const RsyncCopyRsyncdirection = { 2 | PUSH: 'PUSH' as 'PUSH', 3 | PULL: 'PULL' as 'PULL' 4 | }; 5 | type RsyncCopyRsyncdirection = (typeof RsyncCopyRsyncdirection)[keyof typeof RsyncCopyRsyncdirection]; 6 | export {RsyncCopyRsyncdirection}; 7 | -------------------------------------------------------------------------------- /ui/icons/certificates/certificate.reel/certificate.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @module ui/certificate.reel 3 | */ 4 | var Component = require("montage/ui/component").Component; 5 | 6 | /** 7 | * @class Certificate 8 | * @extends Component 9 | */ 10 | exports.Certificate = Component.specialize(); 11 | -------------------------------------------------------------------------------- /blue-shark/ui/field-duration.reel/field-duration.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @module ui/field-duration.reel 3 | */ 4 | var Component = require("montage/ui/component").Component; 5 | 6 | /** 7 | * @class FieldDuration 8 | * @extends Component 9 | */ 10 | exports.FieldDuration = Component.specialize(); 11 | -------------------------------------------------------------------------------- /blue-shark/ui/password.info/sample/ui/main.reel/main.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @module ui/main.reel 3 | */ 4 | var Component = require("montage/ui/component").Component; 5 | 6 | /** 7 | * @class Main 8 | * @extends Component 9 | */ 10 | exports.Main = Component.specialize(/** @lends Main# */ {}); 11 | -------------------------------------------------------------------------------- /core/model/enumerations/service-smb-unixcharset.js: -------------------------------------------------------------------------------- 1 | var Enum = require("montage/core/enum").Enum; 2 | 3 | exports.ServiceSmbUnixcharset = new Enum().initWithMembersAndValues(["ASCII","EUC-JP","UTF-8","gb2312","iso-8859-1","iso-8859-15"], ["ASCII","EUC-JP","UTF-8","gb2312","iso-8859-1","iso-8859-15"]); 4 | -------------------------------------------------------------------------------- /core/model/models/docker-container-section.js: -------------------------------------------------------------------------------- 1 | var Montage = require("montage").Montage; 2 | 3 | exports.DockerContainerSection = Montage.specialize(null, { 4 | userInterfaceDescriptor: { 5 | value: { 6 | nameExpression: "'Containers'" 7 | } 8 | } 9 | }); 10 | -------------------------------------------------------------------------------- /src/backend/websocket-message.js: -------------------------------------------------------------------------------- 1 | var WebSocketMessage = exports.WebSocketMessage = function WebSocketMessage (namespace, name, args) { 2 | this.namespace = namespace; 3 | this.name = name; 4 | this.args = args; 5 | this.id = null; 6 | }; 7 | 8 | WebSocketMessage.prototype.id = null; 9 | -------------------------------------------------------------------------------- /src/dao/zfs-vdev-dao.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDao} from './abstract-dao'; 2 | import {Model} from '../model'; 3 | import {ZfsVdev} from '../model/ZfsVdev'; 4 | 5 | export class ZfsVdevDao extends AbstractDao { 6 | public constructor() { 7 | super(Model.ZfsVdev); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/model/DockerContainer.ts: -------------------------------------------------------------------------------- 1 | import {AbstractDataObject} from './AbstractDataObject'; 2 | import {DockerContainerBridge} from './DockerContainerBridge'; 3 | 4 | export class DockerContainer extends AbstractDataObject { 5 | primary_network_mode: string; 6 | bridge: DockerContainerBridge; 7 | } 8 | -------------------------------------------------------------------------------- /src/model/enumerations/PowerChangedOperation.ts: -------------------------------------------------------------------------------- 1 | const PowerChangedOperation = { 2 | SHUTDOWN: 'SHUTDOWN' as 'SHUTDOWN', 3 | REBOOT: 'REBOOT' as 'REBOOT' 4 | }; 5 | type PowerChangedOperation = (typeof PowerChangedOperation)[keyof typeof PowerChangedOperation]; 6 | export {PowerChangedOperation}; 7 | -------------------------------------------------------------------------------- /src/model/enumerations/ServiceUpsShutdownmode.ts: -------------------------------------------------------------------------------- 1 | const ServiceUpsShutdownmode = { 2 | LOWBATT: 'LOWBATT' as 'LOWBATT', 3 | BATT: 'BATT' as 'BATT' 4 | }; 5 | type ServiceUpsShutdownmode = (typeof ServiceUpsShutdownmode)[keyof typeof ServiceUpsShutdownmode]; 6 | export {ServiceUpsShutdownmode}; 7 | -------------------------------------------------------------------------------- /src/model/enumerations/VmDeviceNicDevice.ts: -------------------------------------------------------------------------------- 1 | const VmDeviceNicDevice = { 2 | VIRTIO: 'VIRTIO' as 'VIRTIO', 3 | E1000: 'E1000' as 'E1000', 4 | NE2K: 'NE2K' as 'NE2K' 5 | }; 6 | type VmDeviceNicDevice = (typeof VmDeviceNicDevice)[keyof typeof VmDeviceNicDevice]; 7 | export {VmDeviceNicDevice}; 8 | -------------------------------------------------------------------------------- /ui/sections/storage/inspectors/share.reel/smb-share.reel/smb-share.js: -------------------------------------------------------------------------------- 1 | var AbstractShareInspector = require("../abstract-share-inspector").AbstractShareInspector; 2 | 3 | /** 4 | * @class SmbShare 5 | * @extends AbstractShareInspector 6 | */ 7 | exports.SmbShare = AbstractShareInspector.specialize(); 8 | -------------------------------------------------------------------------------- /blue-shark/assets/style/style.css: -------------------------------------------------------------------------------- 1 | .container > h1 { 2 | background-color: #000; 3 | color: #fff; 4 | margin: -1rem; 5 | padding: 1rem; 6 | } 7 | 8 | .container > h2 { 9 | color: #E0E5E5; 10 | margin-top: 2rem; 11 | } 12 | 13 | .container { 14 | margin: 1rem; 15 | } 16 | -------------------------------------------------------------------------------- /blue-shark/ui/loading-message.reel/loading-message.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @module ui/loading-message.reel 3 | */ 4 | var Component = require("montage/ui/component").Component; 5 | 6 | /** 7 | * @class LoadingMessage 8 | * @extends Component 9 | */ 10 | exports.LoadingMessage = Component.specialize(); 11 | -------------------------------------------------------------------------------- /blue-shark/ui/panel.reel/panel.css: -------------------------------------------------------------------------------- 1 | .Panel{width:100%;position:relative;border:1px solid #2089d3;background-color:rgba(32,137,211,.05);padding:1em;border-radius:4px}.Panel.is-warning{border-color:#d95b1b;background-color:rgba(217,91,27,.05)}.Panel.is-error{border-color:#cf324f;background-color:rgba(207,50,79,.05)} -------------------------------------------------------------------------------- /ui/controls/grid.reel/grid-item.reel/_grid-item.css: -------------------------------------------------------------------------------- 1 | .Grid-icon { 2 | box-sizing: content-box; 3 | cursor: pointer; 4 | padding: .25em; 5 | } 6 | 7 | /* selected state */ 8 | 9 | .LabeledIcon-title { 10 | 11 | @nest .selected & { 12 | color: var(--white); 13 | } 14 | } 15 | --------------------------------------------------------------------------------