From 991a950a4258d69b77eede3ec41f04e1887f4f88 Mon Sep 17 00:00:00 2001 From: Pierre Date: Thu, 12 Apr 2018 16:17:41 +0200 Subject: [PATCH] Created settings page --- assets/css/pages/settings/main.css | 11 ++++ assets/js/common/functionsSchema.js | 20 ++++++ assets/js/components/menuBar/authenticated.js | 14 ++++ assets/js/pages/settings/main.js | 39 +++++++++++ assets/js/pages/settings/navigationPane.js | 65 +++++++++++++++++++ assets/js/pagesList.js | 9 +++ system/config/dev.config.php | 7 ++ 7 files changed, 165 insertions(+) create mode 100644 assets/css/pages/settings/main.css create mode 100644 assets/js/pages/settings/main.js create mode 100644 assets/js/pages/settings/navigationPane.js diff --git a/assets/css/pages/settings/main.css b/assets/css/pages/settings/main.css new file mode 100644 index 00000000..6d129207 --- /dev/null +++ b/assets/css/pages/settings/main.css @@ -0,0 +1,11 @@ +/** + * Main settings styleesheet + * + * @author Pierre HUBERT + */ + +.settings-page-container { + max-width: 1000px; + margin: auto; + margin-top: 10px; +} \ No newline at end of file diff --git a/assets/js/common/functionsSchema.js b/assets/js/common/functionsSchema.js index 2d8554e3..fe8b30e7 100644 --- a/assets/js/common/functionsSchema.js +++ b/assets/js/common/functionsSchema.js @@ -1057,6 +1057,26 @@ var ComunicWeb = { }, + /** + * User settings page + */ + settings: { + + /** + * Main script + */ + main: { + //TODO : implement + }, + + /** + * Navigation pane + */ + navigationPane: { + //TODO : implement + }, + }, + /** * Login controller */ diff --git a/assets/js/components/menuBar/authenticated.js b/assets/js/components/menuBar/authenticated.js index 7dbc40c3..e0faa057 100644 --- a/assets/js/components/menuBar/authenticated.js +++ b/assets/js/components/menuBar/authenticated.js @@ -75,6 +75,20 @@ ComunicWeb.components.menuBar.authenticated = { dropdownContent.className = "dropdown-menu" dropdownContent.setAttribute("role", "menu"); + //Add settings link + var settingsButton = createElem2({ + appendTo: dropdownContent, + type: "li" + }); + var settingsLink = createElem2({ + appendTo: settingsButton, + type: "a", + innerHTML: "Settings" + }); + settingsButton.onclick = function(){ + openPage("settings"); + }; + //Add logout link var logoutButton = createElem("li", dropdownContent); var logoutButtonLink = createElem("a", logoutButton); diff --git a/assets/js/pages/settings/main.js b/assets/js/pages/settings/main.js new file mode 100644 index 00000000..f97f7bbc --- /dev/null +++ b/assets/js/pages/settings/main.js @@ -0,0 +1,39 @@ +/** + * User settings main script file + * + * @author Pierre HUBERT + */ + +ComunicWeb.pages.settings.main = { + + /** + * Open settings page + * + * @param {object} args Optionnal arguments + * @param {HTMLElement} target The target for the page + */ + open: function(args, target){ + + //Settings page is organized like an array with two columns + //Left column : settings sections menu + //Rigth column : current settings section + + //Create a row + var row = createElem2({ + appendTo: target, + type: "div", + class: "row settings-page-container" + }); + + //Left area + var leftArea = createElem2({ + appendTo: row, + type: "div", + class: "col-md-3" + }); + + //Display left navigation pane + ComunicWeb.pages.settings.navigationPane.display(leftArea); + }, + +} \ No newline at end of file diff --git a/assets/js/pages/settings/navigationPane.js b/assets/js/pages/settings/navigationPane.js new file mode 100644 index 00000000..bee3cd1c --- /dev/null +++ b/assets/js/pages/settings/navigationPane.js @@ -0,0 +1,65 @@ +/** + * Settings navigation pane + * + * @author Pierre HUBERT + */ + +ComunicWeb.pages.settings.navigationPane = { + + /** + * Display the settings navigation pane + * + * @param {HTMLElement} target The target for the navigation pane + */ + display: function(target){ + + //Create a box + var navigationBox = createElem2({ + appendTo: target, + type: "div", + class: "box box-solid" + }); + + //Set box header + var boxHeader = createElem2({ + appendTo: navigationBox, + type: "div", + class: "box-header with-border", + + }); + + //Set box title + createElem2({ + appendTo: boxHeader, + type: "h3", + class: "box-title", + innerHTML: "Sections" + }); + + //Create box body + var boxBody = createElem2({ + appendTo: navigationBox, + type: "div", + class: "box-body no-padding" + }); + + //Display the list of sections + var elemList = createElem2({ + appendTo: boxBody, + type: "ul", + class: "nav nav-pills nav-stacked" + }); + + //General account information + var sectionGeneral = createElem2({ + appendTo: elemList, + type: "li", + }); + var sectionGeneralLink = createElem2({ + appendTo: sectionGeneral, + type: "a", + innerHTML: " General" + }); + } + +} \ No newline at end of file diff --git a/assets/js/pagesList.js b/assets/js/pagesList.js index 3da3bb84..c0e50979 100644 --- a/assets/js/pagesList.js +++ b/assets/js/pagesList.js @@ -41,6 +41,15 @@ ComunicWeb.pagesList = { disableMenus: false }, + /** + * User settings page + */ + settings: { + pageTitle: "Settings", + methodHandler: "ComunicWeb.pages.settings.main.open", + disableMenus: false + }, + /** * Login page */ diff --git a/system/config/dev.config.php b/system/config/dev.config.php index 96a2bcca..81d6764d 100644 --- a/system/config/dev.config.php +++ b/system/config/dev.config.php @@ -167,6 +167,9 @@ class Dev { //Latest post page stylesheet "css/pages/latestPosts/main.css", + //User account page + "css/pages/settings/main.css", + //Create account page "css/pages/createAccount.css", ); @@ -315,6 +318,10 @@ class Dev { //Latest posts page "js/pages/latestPosts/main.js", + //User settings page + "js/pages/settings/main.js", + "js/pages/settings/navigationPane.js", + //Login page "js/pages/login.js",