Feat: Dogs page.
This commit is contained in:
@@ -66,6 +66,7 @@ export default class API {
|
||||
*/
|
||||
|
||||
// User
|
||||
// user
|
||||
static async loginUser() {
|
||||
let callback = {};
|
||||
callback[flagCallback] = DOM.getHashPageCurrent();
|
||||
@@ -76,7 +77,15 @@ export default class API {
|
||||
dataRequest[flagFormFilters] = DOM.convertForm2JSON(formFilters);
|
||||
dataRequest[flagUser] = users;
|
||||
dataRequest[flagComment] = comment;
|
||||
return await API.request(hashSaveDogUser, 'POST', dataRequest);
|
||||
return await API.request(hashSaveUserUser, 'POST', dataRequest);
|
||||
}
|
||||
// company
|
||||
static async saveCompanies(companies, formFilters, comment) {
|
||||
let dataRequest = {};
|
||||
dataRequest[flagFormFilters] = DOM.convertForm2JSON(formFilters);
|
||||
dataRequest[flagCompany] = companies;
|
||||
dataRequest[flagComment] = comment;
|
||||
return await API.request(hashSaveDogCompany, 'POST', dataRequest);
|
||||
}
|
||||
|
||||
|
||||
|
||||
77
static/js/pages/dog/dogs.js
Normal file
77
static/js/pages/dog/dogs.js
Normal file
@@ -0,0 +1,77 @@
|
||||
|
||||
import API from "../../api.js";
|
||||
import BusinessObjects from "../../lib/business_objects/business_objects.js";
|
||||
import DOM from "../../dom.js";
|
||||
import Events from "../../lib/events.js";
|
||||
import TableBasePage from "../base_table.js";
|
||||
import Utils from "../../lib/utils.js";
|
||||
import Validation from "../../lib/validation.js";
|
||||
import DogTableMixinPage from "./mixin_table.js";
|
||||
|
||||
export default class PageDogDogs extends TableBasePage {
|
||||
static hash = hashPageDogDogs;
|
||||
static attrIdRowObject = attrIdDog;
|
||||
callSaveTableContent = API.saveDogs;
|
||||
|
||||
constructor(router) {
|
||||
super(router);
|
||||
this.dogMixin = new DogTableMixinPage(this);
|
||||
}
|
||||
|
||||
initialize() {
|
||||
this.sharedInitialize();
|
||||
}
|
||||
|
||||
hookupFilters() {
|
||||
this.sharedHookupFilters();
|
||||
this.hookupFilterActive();
|
||||
}
|
||||
|
||||
loadRowTable(rowJson) {
|
||||
if (rowJson == null) return;
|
||||
if (_verbose) { Utils.consoleLogIfNotProductionEnvironment("applying data row: ", rowJson); }
|
||||
}
|
||||
getJsonRow(row) {
|
||||
if (row == null) return;
|
||||
let inputName = row.querySelector('td.' + flagName + ' .' + flagName);
|
||||
let inputAppearance = row.querySelector('td.' + flagAppearance + ' .' + flagAppearance);
|
||||
let inputMassKg = row.querySelector('td.' + flagMassKg + ' .' + flagMassKg);
|
||||
let buttonActive = row.querySelector('td.' + flagActive + ' .' + flagActive);
|
||||
|
||||
let jsonRow = {};
|
||||
jsonRow[attrIdDog] = row.getAttribute(attrIdDog);
|
||||
jsonRow[flagName] = DOM.getElementAttributeValueCurrent(inputName);
|
||||
jsonRow[flagAppearance] = DOM.getElementAttributeValueCurrent(inputAppearance);
|
||||
jsonRow[flagMassKg] = DOM.getElementAttributeValueCurrent(inputMassKg);
|
||||
jsonRow[flagActive] = buttonActive.classList.contains(flagDelete);
|
||||
|
||||
console.log("jsonRow");
|
||||
console.log(jsonRow);
|
||||
|
||||
return jsonRow;
|
||||
}
|
||||
initialiseRowNew(tbody, row) {
|
||||
}
|
||||
postInitialiseRowNewCallback(tbody) {
|
||||
}
|
||||
|
||||
hookupTableMain() {
|
||||
super.hookupTableMain();
|
||||
this.hookupFieldsNameTable();
|
||||
this.hookupFieldsAppearance();
|
||||
this.hookupFieldsMassKg();
|
||||
this.hookupFieldsNotesTable();
|
||||
this.hookupFieldsActive();
|
||||
}
|
||||
hookupFieldsAppearance() {
|
||||
this.hookupChangeHandlerTableCells(flagAppearance);
|
||||
}
|
||||
hookupFieldsMassKg() {
|
||||
this.hookupChangeHandlerTableCells(flagMassKg);
|
||||
}
|
||||
|
||||
leave() {
|
||||
super.leave();
|
||||
}
|
||||
}
|
||||
|
||||
18
static/js/pages/user/company.js
Normal file
18
static/js/pages/user/company.js
Normal file
@@ -0,0 +1,18 @@
|
||||
|
||||
import BasePage from "../base.js";
|
||||
|
||||
export default class PageUserCompany extends BasePage {
|
||||
static hash = hashPageUserCompany;
|
||||
|
||||
constructor(router) {
|
||||
super(router);
|
||||
}
|
||||
|
||||
initialize() {
|
||||
this.sharedInitialize();
|
||||
}
|
||||
|
||||
leave() {
|
||||
super.leave();
|
||||
}
|
||||
}
|
||||
@@ -1,15 +1,86 @@
|
||||
|
||||
import BasePage from "../base.js";
|
||||
import API from "../../api.js";
|
||||
import DogTableMixinPage from "../dog/mixin_table.js";
|
||||
import DOM from "../../dom.js";
|
||||
import TableBasePage from "../base_table.js";
|
||||
|
||||
export default class PageUser extends BasePage {
|
||||
export default class PageUser extends TableBasePage {
|
||||
static hash = hashPageUserAccount;
|
||||
static attrIdRowObject = attrIdUser;
|
||||
callSaveTableContent = API.saveUsers;
|
||||
|
||||
constructor(router) {
|
||||
super(router);
|
||||
this.dogMixin = new DogTableMixinPage(this);
|
||||
}
|
||||
|
||||
initialize() {
|
||||
this.sharedInitialize();
|
||||
this.hookupTableMain();
|
||||
}
|
||||
|
||||
|
||||
hookupFilters() {
|
||||
}
|
||||
|
||||
loadRowTable(rowJson) {
|
||||
if (rowJson == null) return;
|
||||
if (_verbose) { Utils.consoleLogIfNotProductionEnvironment("applying data row: ", rowJson); }
|
||||
}
|
||||
getTableRecords(dirtyOnly = false) {
|
||||
dirtyOnly = true;
|
||||
let container = document.querySelector('.' + flagCard + '.' + flagUser);
|
||||
return [this.getJsonRow(container)];
|
||||
}
|
||||
getJsonRow(container) {
|
||||
console.log("getJsonRow: ", container);
|
||||
if (container == null) return;
|
||||
let inputFirstname = container.querySelector(' #' + flagFirstname);
|
||||
let inputSurname = container.querySelector(' #' + flagSurname);
|
||||
let inputEmail = container.querySelector(' #' + flagEmail);
|
||||
let divRole = container.querySelector('.' + flagRole);
|
||||
|
||||
let idUser = container.getAttribute(attrIdUser);
|
||||
|
||||
let jsonRow = {
|
||||
[attrIdUserAuth0]: null
|
||||
, [flagEmail]: null
|
||||
, [flagIsEmailVerified]: null
|
||||
, [attrIdCompany]: company[attrIdCompany]
|
||||
, [flagIsSuperUser]: null
|
||||
, [flagCanAdminDog]: null
|
||||
, [flagCanAdminUser]: null
|
||||
, [flagCompany]: null
|
||||
, [flagRole]: null
|
||||
};
|
||||
|
||||
jsonRow[attrIdUser] = idUser;
|
||||
jsonRow[attrIdRole] = DOM.getElementAttributeValueCurrent(divRole);
|
||||
jsonRow[flagFirstname] = DOM.getElementAttributeValueCurrent(inputFirstname);
|
||||
jsonRow[flagSurname] = DOM.getElementAttributeValueCurrent(inputSurname);
|
||||
jsonRow[flagEmail] = DOM.getElementAttributeValueCurrent(inputEmail);
|
||||
return jsonRow;
|
||||
}
|
||||
|
||||
initialiseRowNew(tbody, row) {
|
||||
}
|
||||
postInitialiseRowNewCallback(tbody) {
|
||||
}
|
||||
|
||||
hookupTableMain() {
|
||||
super.hookupTableMain();
|
||||
this.hookupFieldsFirstname();
|
||||
this.hookupFieldsSurname();
|
||||
this.hookupFieldsEmail();
|
||||
}
|
||||
hookupFieldsFirstname() {
|
||||
this.hookupChangeHandlerTableCells('.' + flagCard + '.' + flagUser + ' #' + flagFirstname);
|
||||
}
|
||||
hookupFieldsSurname() {
|
||||
this.hookupChangeHandlerTableCells('.' + flagCard + '.' + flagUser + ' #' + flagSurname);
|
||||
}
|
||||
hookupFieldsEmail() {
|
||||
this.hookupChangeHandlerTableCells('.' + flagCard + '.' + flagUser + ' #' + flagEmail);
|
||||
}
|
||||
|
||||
leave() {
|
||||
|
||||
@@ -11,7 +11,7 @@ import PageDogHome from './pages/dog/home.js';
|
||||
import PageDogCommandCategories from './pages/dog/command_categories.js';
|
||||
import PageDogCommands from './pages/dog/commands.js';
|
||||
import PageDogDogCommandLinks from './pages/dog/dog_command_links.js';
|
||||
// import PageDogDogs from './pages/dog/dogs.js';
|
||||
import PageDogDogs from './pages/dog/dogs.js';
|
||||
import PageDogLocations from './pages/dog/locations.js';
|
||||
import PageDogButtonIcons from './pages/dog/button_icons.js';
|
||||
import PageDogCommandButtonLinks from './pages/dog/command_button_links.js';
|
||||
@@ -29,6 +29,7 @@ import PageRetentionSchedule from './pages/legal/retention_schedule.js';
|
||||
// import PageUserLogout from './pages/user/logout.js';
|
||||
import PageUser from './pages/user/user.js';
|
||||
import PageUsers from './pages/user/users.js';
|
||||
import PageUserCompany from './pages/user/company.js';
|
||||
|
||||
import API from './api.js';
|
||||
import DOM from './dom.js';
|
||||
@@ -50,7 +51,7 @@ export default class Router {
|
||||
this.pages[hashPageDogCommandCategories] = { name: 'PageDogCommands', module: PageDogCommandCategories };
|
||||
this.pages[hashPageDogCommands] = { name: 'PageDogCommands', module: PageDogCommands };
|
||||
this.pages[hashPageDogDogCommandLinks] = { name: 'PageDogDogCommandLinks', module: PageDogDogCommandLinks };
|
||||
// this.pages[hashPageDogDogs] = { name: 'PageDogDogs', module: PageDogDogs };
|
||||
this.pages[hashPageDogDogs] = { name: 'PageDogDogs', module: PageDogDogs };
|
||||
this.pages[hashPageDogLocations] = { name: 'PageDogLocations', module: PageDogLocations };
|
||||
this.pages[hashPageDogButtonIcons] = { name: 'PageDogButtonIcons', module: PageDogButtonIcons };
|
||||
this.pages[hashPageDogCommandButtonLinks] = { name: 'PageDogCommandButtonLinks', module: PageDogCommandButtonLinks };
|
||||
@@ -67,6 +68,7 @@ export default class Router {
|
||||
// this.pages[hashPageUserLogout] = { name: 'PageUserLogout', module: PageUserLogout }; // pathModule: './pages/user/logout.js' };
|
||||
this.pages[hashPageUserAccount] = { name: 'PageUser', module: PageUser };
|
||||
this.pages[hashPageUserAccounts] = { name: 'PageUsers', module: PageUsers };
|
||||
this.pages[hashPageUserCompany] = { name: 'PageUserCompany', module: PageUserCompany };
|
||||
// Routes
|
||||
this.routes = {};
|
||||
// Core
|
||||
@@ -80,7 +82,7 @@ export default class Router {
|
||||
this.routes[hashPageDogCommandCategories] = (isPopState = false) => this.navigateToHash(hashPageDogCommandCategories, isPopState);
|
||||
this.routes[hashPageDogCommands] = (isPopState = false) => this.navigateToHash(hashPageDogCommands, isPopState);
|
||||
this.routes[hashPageDogDogCommandLinks] = (isPopState = false) => this.navigateToHash(hashPageDogDogCommandLinks, isPopState);
|
||||
// this.routes[hashPageDogDogs] = (isPopState = false) => this.navigateToHash(hashPageDogDogs, isPopState);
|
||||
this.routes[hashPageDogDogs] = (isPopState = false) => this.navigateToHash(hashPageDogDogs, isPopState);
|
||||
this.routes[hashPageDogLocations] = (isPopState = false) => this.navigateToHash(hashPageDogLocations, isPopState);
|
||||
this.routes[hashPageDogButtonIcons] = (isPopState = false) => this.navigateToHash(hashPageDogButtonIcons, isPopState);
|
||||
this.routes[hashPageDogCommandButtonLinks] = (isPopState = false) => this.navigateToHash(hashPageDogCommandButtonLinks, isPopState);
|
||||
@@ -97,6 +99,7 @@ export default class Router {
|
||||
// this.routes[hashPageUserLogout] = (isPopState = false) => this.navigateToHash(hashPageUserLogout, isPopState);
|
||||
this.routes[hashPageUserAccount] = (isPopState = false) => this.navigateToHash(hashPageUserAccount, isPopState);
|
||||
this.routes[hashPageUserAccounts] = (isPopState = false) => this.navigateToHash(hashPageUserAccounts, isPopState);
|
||||
this.routes[hashPageUserCompany] = (isPopState = false) => this.navigateToHash(hashPageUserCompany, isPopState);
|
||||
this.initialize();
|
||||
}
|
||||
loadPage(hashPage, isPopState = false) {
|
||||
|
||||
Reference in New Issue
Block a user