| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133 |
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
| /* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict";
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
var React = require("react");
var react_1 = require("react");
var ReactDOM = require("react-dom");
var react_redux_1 = require("react-redux");
var Global = require("./dashboard/global.js");
var widgetGrid_ui_js_1 = require("./widgets/widgetGrid.ui.js");
var layouts_ui_js_1 = require("./layouts/layouts.ui.js");
var widgetConfigDialog_ui_js_1 = require("./widgets/widgetConfigDialog.ui.js");
var dashboardMenuEntry_ui_js_1 = require("./dashboard/dashboardMenuEntry.ui.js");
var importExportDialog_ui_js_1 = require("./dashboard/importExportDialog.ui.js");
var datasourceConfigDialog_ui_js_1 = require("./datasource/datasourceConfigDialog.ui.js");
var datasourceNavItem_ui_js_1 = require("./datasource/datasourceNavItem.ui.js");
var widgetsNavItem_ui_js_1 = require("./widgets/widgetsNavItem.ui.js");
var pluginNavItem_ui_1 = require("./pluginApi/pluginNavItem.ui");
var pluginsDialog_ui_1 = require("./pluginApi/pluginsDialog.ui");
var Persistence = require("./persistence");
var datasourceFrames_ui_1 = require("./datasource/datasourceFrames.ui");
var Layout = (function (_super) {
__extends(Layout, _super);
function Layout(props) {
_super.call(this, props);
this.state = { hover: false };
}
Layout.prototype.onReadOnlyModeKeyPress = function (e) {
//console.log("key pressed", event.keyCode);
var intKey = (window.event) ? e.which : e.keyCode;
if (intKey === 27) {
this.props.setReadOnly(!this.props.isReadOnly);
}
};
Layout.prototype.componentDidMount = function () {
if (this.props.devMode) {
this.onReadOnlyModeKeyPress = this.onReadOnlyModeKeyPress.bind(this);
ReactDOM.findDOMNode(this)
.offsetParent
.addEventListener('keydown', this.onReadOnlyModeKeyPress);
}
};
Layout.prototype.render = function () {
var _this = this;
var props = this.props;
var devMode = props.devMode;
var showMenu = props.devMode && (!props.isReadOnly || this.state.hover);
return React.createElement("div", {className: "slds-grid slds-wrap", onKeyUp: function (event) { return _this.onReadOnlyModeKeyPress(event); }},
devMode ? React.createElement("div", null,
React.createElement(widgetConfigDialog_ui_js_1.default, null),
React.createElement(importExportDialog_ui_js_1.default, null),
React.createElement(datasourceConfigDialog_ui_js_1.default, null),
React.createElement(pluginsDialog_ui_1.default, null))
: null,
devMode ? React.createElement("div", {className: showMenu ? "menu-trigger" : "menu-trigger", onMouseOver: function () { _this.setState({ hover: true }); }, onMouseEnter: function () { _this.setState({ hover: true }); }})
: null,
devMode ?
React.createElement("div", {className: "slds-size--1-of-1 slds-context-bar" + (showMenu ? " topnav--visible" : " topnav--hidden"), onMouseOver: function () { _this.setState({ hover: true }); }, onMouseLeave: function () { _this.setState({ hover: false }); }},
React.createElement("div", {className: "slds-context-bar__primary slds-context-bar__item--divider-right"},
React.createElement("div", {className: "slds-context-bar__item slds-context-bar__dropdown-trigger slds-dropdown-trigger slds-dropdown-trigger--click slds-no-hover"},
React.createElement("span", {className: "slds-context-bar__label-action slds-context-bar__app-name"},
React.createElement("span", {className: "slds-truncate"},
React.createElement("a", {href: this.props.config.title.url}, this.props.config.title.text)
)
)
)
),
React.createElement("div", {className: "slds-context-bar__secondary", role: "navigation"},
React.createElement("ul", {className: "slds-grid"},
React.createElement(dashboardMenuEntry_ui_js_1.default, null),
React.createElement(pluginNavItem_ui_1.default, null),
React.createElement(widgetsNavItem_ui_js_1.default, null),
React.createElement(datasourceNavItem_ui_js_1.default, null),
React.createElement(layouts_ui_js_1.default, null),
React.createElement("div", {className: "slds-context-bar__vertical-divider"}),
React.createElement("li", {className: "slds-context-bar__item"},
React.createElement("a", {href: "javascript:void(0);", onClick: function () { return Persistence.clearData(); }, className: "slds-context-bar__label-action", title: "Reset Everything!"},
React.createElement("span", {className: "slds-truncate"}, "Reset Everything!")
)
),
React.createElement("li", {className: "slds-context-bar__item"},
React.createElement("div", {className: "slds-context-bar__icon-action", onClick: function () { return props.setReadOnly(!props.isReadOnly); }},
React.createElement("svg", {"aria-hidden": "true", className: "slds-icon slds-icon--small slds-icon-text-default"},
React.createElement("use", {xlinkHref: "assets/icons/utility-sprite/svg/symbols.svg#" + (props.isReadOnly ? "lock" : "unlock")})
),
React.createElement("span", {className: "slds-assistive-text"}, "Lock / Unlock"))
))
),
React.createElement("div", {className: "slds-context-bar__tertiary"},
React.createElement("ul", {className: "slds-grid slds-grid--vertical-align-center"},
props.config.auth && props.config.auth.username ?
React.createElement("div", {className: "slds-m-right--small"}, props.config.auth.username)
: null,
props.config.auth && props.config.auth.logoutUrl ?
React.createElement("a", {className: "slds-button slds-button--neutral", href: props.config.auth.logoutUrl},
React.createElement("svg", {"aria-hidden": "true", className: "slds-button__icon slds-button__icon--left"},
React.createElement("use", {xlinkHref: "assets/icons/utility-sprite/svg/symbols.svg#logout"})
),
"Logout")
: null,
React.createElement("div", {className: "slds-context-bar__vertical-divider"}),
React.createElement("span", {className: "slds-truncate slds-m-left--small"},
"v",
this.props.config.version))
))
: null,
React.createElement("div", {className: "slds-size--1-of-1"},
React.createElement(widgetGrid_ui_js_1.default, null)
),
React.createElement(datasourceFrames_ui_1.default, null));
};
return Layout;
}(react_1.Component));
exports.Layout = Layout;
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = react_redux_1.connect(function (state) {
return {
isReadOnly: state.global.isReadOnly,
devMode: state.config.devMode,
config: state.config
};
}, function (dispatch) {
return {
setReadOnly: function (isReadOnly) { return dispatch(Global.setReadOnly(isReadOnly)); }
};
})(Layout);
|