Skip to content
Snippets Groups Projects
Commit da5b3fdc authored by Piotr Gawron's avatar Piotr Gawron
Browse files

login dialog is lazy initialized

parent 0e9a42a1
No related branches found
No related tags found
2 merge requests!115Resolve "admin panel should use API",!114Resolve "admin panel should use API"
......@@ -6,8 +6,7 @@
</component>
<component name="ChangeListManager">
<list default="true" id="c119f0dd-fdda-4d02-a51e-86bc6ef7e50c" name="Default" comment="">
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/js/gui/leftPanel/PublicationListDialog.js" afterPath="$PROJECT_DIR$/src/main/js/gui/leftPanel/PublicationListDialog.js" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/js/map/CustomMap.js" afterPath="$PROJECT_DIR$/src/main/js/map/CustomMap.js" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/js/gui/LoginDialog.js" afterPath="$PROJECT_DIR$/src/main/js/gui/LoginDialog.js" />
</list>
<ignored path="$PROJECT_DIR$/.tmp/" />
<ignored path="$PROJECT_DIR$/temp/" />
......@@ -21,11 +20,41 @@
</component>
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file leaf-file-name="PublicationListDialog.js" pinned="false" current-in-tab="true">
<file leaf-file-name="PublicationListDialog.js" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/js/gui/leftPanel/PublicationListDialog.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="48">
<caret line="119" column="7" lean-forward="false" selection-start-line="119" selection-start-column="7" selection-end-line="119" selection-end-column="7" />
<state relative-caret-position="65">
<caret line="6" column="47" lean-forward="false" selection-start-line="6" selection-start-column="47" selection-end-line="6" selection-end-column="47" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="AbstractGuiElement.js" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/js/gui/AbstractGuiElement.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="306">
<caret line="18" column="6" lean-forward="false" selection-start-line="18" selection-start-column="6" selection-end-line="18" selection-end-column="6" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="LoginDialog.js" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/main/js/gui/LoginDialog.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="438">
<caret line="101" column="5" lean-forward="true" selection-start-line="101" selection-start-column="5" selection-end-line="101" selection-end-column="5" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="ObjectWithListeners.js" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/js/ObjectWithListeners.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="170">
<caret line="10" column="9" lean-forward="false" selection-start-line="10" selection-start-column="9" selection-end-line="10" selection-end-column="9" />
<folding />
</state>
</provider>
......@@ -131,7 +160,6 @@
<option value="$PROJECT_DIR$/src/main/js/gui/AddOverlayDialog.js" />
<option value="$PROJECT_DIR$/src/test/js/GuiConnector-mock.js" />
<option value="$PROJECT_DIR$/src/main/js/gui/Header.js" />
<option value="$PROJECT_DIR$/src/main/js/gui/LoginDialog.js" />
<option value="$PROJECT_DIR$/src/main/js/gui/leftPanel/ChemicalPanel.js" />
<option value="$PROJECT_DIR$/src/main/js/gui/leftPanel/DrugPanel.js" />
<option value="$PROJECT_DIR$/src/main/js/gui/leftPanel/MiRnaPanel.js" />
......@@ -165,6 +193,7 @@
<option value="$PROJECT_DIR$/src/test/js/GuiConnector-test.js" />
<option value="$PROJECT_DIR$/src/main/js/map/CustomMap.js" />
<option value="$PROJECT_DIR$/src/main/js/gui/leftPanel/PublicationListDialog.js" />
<option value="$PROJECT_DIR$/src/main/js/gui/LoginDialog.js" />
</list>
</option>
</component>
......@@ -222,54 +251,6 @@
<item name="coverage" type="462c0819:PsiDirectoryNode" />
<item name="lcov-report" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="frontend-js" type="b2602c69:ProjectViewProjectNode" />
<item name="frontend-js" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="frontend-js" type="b2602c69:ProjectViewProjectNode" />
<item name="frontend-js" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="frontend-js" type="b2602c69:ProjectViewProjectNode" />
<item name="frontend-js" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="js" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="frontend-js" type="b2602c69:ProjectViewProjectNode" />
<item name="frontend-js" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="js" type="462c0819:PsiDirectoryNode" />
<item name="gui" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="frontend-js" type="b2602c69:ProjectViewProjectNode" />
<item name="frontend-js" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="js" type="462c0819:PsiDirectoryNode" />
<item name="gui" type="462c0819:PsiDirectoryNode" />
<item name="leftPanel" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="frontend-js" type="b2602c69:ProjectViewProjectNode" />
<item name="frontend-js" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="test" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="frontend-js" type="b2602c69:ProjectViewProjectNode" />
<item name="frontend-js" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="test" type="462c0819:PsiDirectoryNode" />
<item name="js" type="462c0819:PsiDirectoryNode" />
</path>
</expand>
<select />
</subPane>
......@@ -280,7 +261,7 @@
</component>
<component name="PropertiesComponent">
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="last_opened_file_path" value="$PROJECT_DIR$" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/isolate-000000000032F7A0-v8.log" />
<property name="nodejs_interpreter_path" value="C:/Program Files/nodejs/node" />
<property name="HbShouldOpenHtmlAsHb" value="" />
<property name="nodejs.mocha.mocha_node_package_dir" value="$PROJECT_DIR$/node_modules/mocha" />
......@@ -424,7 +405,7 @@
<workItem from="1503501472332" duration="132000" />
<workItem from="1503501772627" duration="21000" />
<workItem from="1503502231792" duration="5017000" />
<workItem from="1503560609163" duration="15230000" />
<workItem from="1503560609163" duration="15860000" />
</task>
<servers />
</component>
......@@ -461,22 +442,21 @@
</history-entry>
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="20400000" />
<option name="totallyTimeSpent" value="21030000" />
</component>
<component name="ToolWindowManager">
<frame x="-8" y="-8" width="1936" height="1176" extended-state="6" />
<editor active="true" />
<layout>
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.5679475" sideWeight="0.33802083" order="7" side_tool="true" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.33833176" sideWeight="0.49791667" order="10" side_tool="false" content_ui="tabs" x="-170" y="502" width="1920" height="493" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33833176" sideWeight="0.49791667" order="10" side_tool="false" content_ui="tabs" x="-170" y="502" width="1920" height="493" />
<window_info id="npm" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.18020834" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="Inspection Results" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3298969" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="V8 CPU Profiling" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.34489223" sideWeight="0.66197914" order="0" side_tool="false" content_ui="tabs" />
<window_info id="V8 CPU Profiling" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.34489223" sideWeight="0.66197914" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="true" content_ui="tabs" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
......@@ -499,14 +479,6 @@
<watches-manager />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/src/main/js/gui/leftPanel/SubmapPanel.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2397">
<caret line="141" column="11" lean-forward="false" selection-start-line="141" selection-start-column="11" selection-end-line="141" selection-end-column="11" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/js/gui/leftPanel/ProjectInfoPanel.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="6086">
......@@ -539,14 +511,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/js/ObjectWithListeners.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="208">
<caret line="93" column="3" lean-forward="false" selection-start-line="93" selection-start-column="3" selection-end-line="93" selection-end-column="3" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/js/gui/Header.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="412">
......@@ -559,14 +523,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/js/gui/LoginDialog.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="303">
<caret line="118" column="40" lean-forward="false" selection-start-line="118" selection-start-column="33" selection-end-line="118" selection-end-column="40" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/js/gui/leftPanel/AbstractDbPanel.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
......@@ -934,10 +890,34 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/js/ObjectWithListeners.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="170">
<caret line="10" column="9" lean-forward="false" selection-start-line="10" selection-start-column="9" selection-end-line="10" selection-end-column="9" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/js/gui/AbstractGuiElement.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="306">
<caret line="18" column="6" lean-forward="false" selection-start-line="18" selection-start-column="6" selection-end-line="18" selection-end-column="6" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/js/gui/leftPanel/PublicationListDialog.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="48">
<caret line="119" column="7" lean-forward="false" selection-start-line="119" selection-start-column="7" selection-end-line="119" selection-end-column="7" />
<state relative-caret-position="65">
<caret line="6" column="47" lean-forward="false" selection-start-line="6" selection-start-column="47" selection-end-line="6" selection-end-column="47" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/js/gui/LoginDialog.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="438">
<caret line="101" column="5" lean-forward="true" selection-start-line="101" selection-start-column="5" selection-end-line="101" selection-end-column="5" />
<folding />
</state>
</provider>
......
......@@ -11,29 +11,25 @@ var Functions = require('../functions');
var logger = require('../logger');
function LoginDialog(params) {
AbstractGuiElement.call(this, params);
var self = this;
self._createLoginTab();
$(self.getElement()).dialog({
autoOpen: false,
resizable: false,
AbstractGuiElement.call(this, params);
var self = this;
self._createLoginTab();
var loginButton = self.getControlElement(PanelControlElementType.USER_TAB_LOGIN_BUTTON);
loginButton.onclick = function () {
var login = self.getControlElement(PanelControlElementType.USER_TAB_LOGIN_INPUT_TEXT).value;
var password = self.getControlElement(PanelControlElementType.USER_TAB_PASSOWRD_INPUT_TEXT).value;
return ServerConnector.login(login, password).then(function () {
window.location.reload(false);
}).then(null, function (error) {
if (error instanceof InvalidCredentialsError) {
GuiConnector.alert("invalid credentials");
} else {
GuiConnector.alert(error);
}
});
var loginButton = self.getControlElement(PanelControlElementType.USER_TAB_LOGIN_BUTTON);
loginButton.onclick = function () {
var login = self.getControlElement(PanelControlElementType.USER_TAB_LOGIN_INPUT_TEXT).value;
var password = self.getControlElement(PanelControlElementType.USER_TAB_PASSOWRD_INPUT_TEXT).value;
return ServerConnector.login(login, password).then(function () {
window.location.reload(false);
}).then(null, function (error) {
if (error instanceof InvalidCredentialsError) {
GuiConnector.alert("invalid credentials");
} else {
GuiConnector.alert(error);
}
});
};
};
}
......@@ -41,82 +37,93 @@ LoginDialog.prototype = Object.create(AbstractGuiElement.prototype);
LoginDialog.prototype.constructor = LoginDialog;
LoginDialog.prototype.createTableRow = function (elements) {
var row = Functions.createElement({
type: "div",
style: "display: table-row;"
var row = Functions.createElement({
type: "div",
style: "display: table-row;"
});
for (var i = 0; i < elements.length; i++) {
var cell = Functions.createElement({
type: "div",
style: "display: table-cell;"
});
for (var i = 0; i < elements.length; i++) {
var cell = Functions.createElement({
type: "div",
style: "display: table-cell;"
});
cell.appendChild(elements[i]);
row.appendChild(cell);
}
return row;
cell.appendChild(elements[i]);
row.appendChild(cell);
}
return row;
};
LoginDialog.prototype._createLoginTab = function () {
var self = this;
var authorizationFormTab = Functions.createElement({
type: "div",
style: "width:100%;display: table;border-spacing: 10px;"
});
this.getElement().appendChild(authorizationFormTab);
var loginLabel = Functions.createElement({
type: "div",
content: "LOGIN:"
});
var loginInput = Functions.createElement({
type: "input",
inputType: "text",
style: "width:100%",
name: "loginText"
});
this.setControlElement(PanelControlElementType.USER_TAB_LOGIN_INPUT_TEXT, loginInput);
authorizationFormTab.appendChild(self.createTableRow([loginLabel, loginInput]));
var passwordLabel = Functions.createElement({
type: "div",
content: "PASSWORD:"
});
var passwordInput = Functions.createElement({
type: "input",
inputType: "password",
style: "width:100%",
name: "passwordText"
});
this.setControlElement(PanelControlElementType.USER_TAB_PASSOWRD_INPUT_TEXT, passwordInput);
authorizationFormTab.appendChild(self.createTableRow([passwordLabel, passwordInput]));
var centerTag = Functions.createElement({
type: "center"
});
this.getElement().appendChild(centerTag);
var loginButton = Functions.createElement({
type: "button",
name: "loginButton",
content: "LOGIN"
});
centerTag.appendChild(loginButton);
this.setControlElement(PanelControlElementType.USER_TAB_LOGIN_BUTTON, loginButton);
var self = this;
var authorizationFormTab = Functions.createElement({
type: "div",
style: "width:100%;display: table;border-spacing: 10px;"
});
this.getElement().appendChild(authorizationFormTab);
var loginLabel = Functions.createElement({
type: "div",
content: "LOGIN:"
});
var loginInput = Functions.createElement({
type: "input",
inputType: "text",
style: "width:100%",
name: "loginText"
});
this.setControlElement(PanelControlElementType.USER_TAB_LOGIN_INPUT_TEXT, loginInput);
authorizationFormTab.appendChild(self.createTableRow([loginLabel, loginInput]));
var passwordLabel = Functions.createElement({
type: "div",
content: "PASSWORD:"
});
var passwordInput = Functions.createElement({
type: "input",
inputType: "password",
style: "width:100%",
name: "passwordText"
});
this.setControlElement(PanelControlElementType.USER_TAB_PASSOWRD_INPUT_TEXT, passwordInput);
authorizationFormTab.appendChild(self.createTableRow([passwordLabel, passwordInput]));
var centerTag = Functions.createElement({
type: "center"
});
this.getElement().appendChild(centerTag);
var loginButton = Functions.createElement({
type: "button",
name: "loginButton",
content: "LOGIN"
});
centerTag.appendChild(loginButton);
this.setControlElement(PanelControlElementType.USER_TAB_LOGIN_BUTTON, loginButton);
};
LoginDialog.prototype.open = function () {
var self = this;
$(self.getElement()).dialog('option', 'title', 'AUTHORIZATION FORM');
$(self.getElement()).dialog("open");
var self = this;
var div = self.getElement();
if (!$(div).hasClass("ui-dialog-content")) {
$(div).dialog({
autoOpen: false,
resizable: false,
});
}
$(div).dialog('option', 'title', 'AUTHORIZATION FORM');
$(div).dialog("open");
};
LoginDialog.prototype.destroy = function () {
$(this.getElement()).dialog("destroy");
var self = this;
if ($(self.getElement()).hasClass("ui-dialog-content")) {
$(self.getElement()).dialog("destroy");
}
};
module.exports = LoginDialog;
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment