First commit
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
|
||||
import groups from '/user/group/user.group.permission.js';
|
||||
|
||||
import gridViewColumn from '/elements/gridView/gridView.header.row.column.js';
|
||||
|
||||
|
||||
export default class userListHeaderActions extends gridViewColumn {
|
||||
|
||||
text = "Actions";
|
||||
|
||||
enableDELETE() {
|
||||
|
||||
this.show();
|
||||
|
||||
}
|
||||
|
||||
disableDELETE() {
|
||||
|
||||
this.hide();
|
||||
|
||||
}
|
||||
|
||||
permission() {
|
||||
|
||||
this.allow( groups.admin, "DELETE" );
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
18
application/user/userList/header/user.userList.header.js
Normal file
18
application/user/userList/header/user.userList.header.js
Normal file
@@ -0,0 +1,18 @@
|
||||
|
||||
|
||||
import user from '/user/user.js';
|
||||
|
||||
import username from './user.userList.header.username.js';
|
||||
|
||||
import actions from './user.userList.header.actions.js';
|
||||
|
||||
import gridViewRow from '/elements/gridView/gridView.header.row.js';
|
||||
|
||||
|
||||
export default class userListHeader extends user, gridViewRow {
|
||||
|
||||
username = new username();
|
||||
|
||||
actions = new actions();
|
||||
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
|
||||
|
||||
import gridViewColumn from '/elements/gridView/gridView.header.row.column.js';
|
||||
|
||||
|
||||
export default class userListHeaderUsername extends gridViewColumn{
|
||||
|
||||
text = "Username";
|
||||
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
|
||||
import button from "/elements/button.js";
|
||||
|
||||
import groups from '/user/group/user.group.permission.js';
|
||||
|
||||
export default class deleteButton extends button {
|
||||
|
||||
text = "Delete";
|
||||
|
||||
propegateEvent = false;
|
||||
|
||||
|
||||
async click() {
|
||||
|
||||
var sure = confirm("Are you sure you want to delete this item");
|
||||
|
||||
if( sure ) {
|
||||
|
||||
await this.parent.parent.delete();
|
||||
|
||||
this.parent.parent.remove();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
permission() {
|
||||
|
||||
this.allow( groups.admin, "DELETE" );
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
23
application/user/userList/item/user.userList.item.actions.js
Normal file
23
application/user/userList/item/user.userList.item.actions.js
Normal file
@@ -0,0 +1,23 @@
|
||||
|
||||
import gridViewColumn from '/elements/gridView/gridView.body.row.column.js';
|
||||
|
||||
import deleteButton from "./user.userList.item.actions.deleteButton.js"
|
||||
|
||||
|
||||
export default class userListItemActions extends gridViewColumn, gridViewColumn{
|
||||
|
||||
useCustomElement = false;
|
||||
|
||||
padding = 20;
|
||||
|
||||
display = "table-cell";
|
||||
|
||||
layers = 1;
|
||||
|
||||
paddingLeft = 30;
|
||||
|
||||
borderRadius;
|
||||
|
||||
deleteButton = new deleteButton();
|
||||
|
||||
}
|
||||
96
application/user/userList/item/user.userList.item.js
Normal file
96
application/user/userList/item/user.userList.item.js
Normal file
@@ -0,0 +1,96 @@
|
||||
import user from '/user/user.js';
|
||||
|
||||
import username from './user.userList.item.username.js';
|
||||
|
||||
import actions from './user.userList.item.actions.js';
|
||||
|
||||
import groups from '/user/group/user.group.permission.js';
|
||||
|
||||
import gridViewRow from '/elements/gridView/gridView.body.row.js';
|
||||
|
||||
|
||||
|
||||
export default class userListItem extends user, gridViewRow {
|
||||
|
||||
username = new username();
|
||||
|
||||
actions = new actions();
|
||||
|
||||
cursor = "pointer";
|
||||
|
||||
background;
|
||||
|
||||
#ifdef MACOS
|
||||
|
||||
fontSize = 14;
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef DARK
|
||||
|
||||
mouseHoverColor = "#363333";
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef LIGHT
|
||||
|
||||
mouseHoverColor = "rgb(255 255 255 / 95%)";
|
||||
|
||||
#endif
|
||||
|
||||
async click() {
|
||||
|
||||
this.stateMachine.composeState( "User", this.id );
|
||||
|
||||
await this.loadPage( this.id );
|
||||
|
||||
}
|
||||
|
||||
state async loadPage( id ) {
|
||||
|
||||
var rightSide = this.parents("rightSide");
|
||||
|
||||
rightSide.hideChildren();
|
||||
|
||||
var editUser = rightSide.editUser;
|
||||
|
||||
editUser.id = this.id;
|
||||
|
||||
editUser.show();
|
||||
|
||||
await editUser.sync();
|
||||
|
||||
}
|
||||
|
||||
mouseover() {
|
||||
|
||||
this.background = this.mouseHoverColor;
|
||||
|
||||
}
|
||||
|
||||
mouseleave() {
|
||||
|
||||
this.background = "none";
|
||||
|
||||
}
|
||||
|
||||
enableDELETE() {
|
||||
|
||||
this.actions.show();
|
||||
|
||||
}
|
||||
|
||||
disableDELETE() {
|
||||
|
||||
this.actions.hide();
|
||||
|
||||
}
|
||||
|
||||
permission() {
|
||||
|
||||
this.allow( groups.admin, "DELETE" );
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
|
||||
|
||||
import userName from '/user/user.username.js';
|
||||
|
||||
import gridViewColumn from '/elements/gridView/gridView.body.row.column.js';
|
||||
|
||||
|
||||
export default class userListItemTitle extends userName, gridViewColumn{
|
||||
|
||||
|
||||
|
||||
}
|
||||
31
application/user/userList/search.js
Normal file
31
application/user/userList/search.js
Normal file
@@ -0,0 +1,31 @@
|
||||
|
||||
import input from "/elements/input.js";
|
||||
|
||||
|
||||
|
||||
|
||||
export default class searchBar extends input {
|
||||
|
||||
placeholder = "Search."
|
||||
|
||||
placeholderColor = "#8e8e8e"
|
||||
|
||||
webkitTextFillColor = "none";
|
||||
|
||||
async keyup( event ) {
|
||||
|
||||
this.value = this.customElement.value;
|
||||
|
||||
var value = this.value;
|
||||
|
||||
console.log("search input", value);
|
||||
|
||||
var newsItems = this.parent.userTable.body;
|
||||
|
||||
newsItems.value = value;
|
||||
|
||||
newsItems.sync();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
24
application/user/userList/user.userList.page.js
Normal file
24
application/user/userList/user.userList.page.js
Normal file
@@ -0,0 +1,24 @@
|
||||
|
||||
import header from '/elements/header.js';
|
||||
|
||||
import userTable from './user.userList.table.js';
|
||||
|
||||
import search from './search.js';
|
||||
|
||||
import page from '/elements/page.js';
|
||||
|
||||
|
||||
|
||||
export default class editPage extends page {
|
||||
|
||||
header = new header("Users");
|
||||
|
||||
search = new search();
|
||||
|
||||
userTable = new userTable();
|
||||
|
||||
|
||||
flexDirection = "column"
|
||||
|
||||
|
||||
}
|
||||
50
application/user/userList/user.userList.table.body.js
Normal file
50
application/user/userList/user.userList.table.body.js
Normal file
@@ -0,0 +1,50 @@
|
||||
|
||||
|
||||
import renderCollection from '/unify/renderCollection.js';
|
||||
|
||||
import groups from '/user/group/user.group.permission.js';
|
||||
|
||||
import gridViewBody from '/elements/gridView/gridView.body.js';
|
||||
|
||||
import OR from '/unify/sql/OR.js';
|
||||
|
||||
import AND from '/unify/sql/AND.js';
|
||||
|
||||
import LIKE from '/unify/sql/LIKE.js';
|
||||
|
||||
|
||||
export default class userListTableBody extends renderCollection, gridViewBody {
|
||||
|
||||
debug = true;
|
||||
|
||||
|
||||
|
||||
async create() {
|
||||
|
||||
await this.sync();
|
||||
|
||||
}
|
||||
|
||||
preprocess( object ) {
|
||||
|
||||
var filter = object.getFilter();
|
||||
|
||||
filter.search = LIKE( filter.username, this.value );
|
||||
|
||||
//filter.search = OR( LIKE( filter.title, this.value ), LIKE( filter.body, this.value ) );
|
||||
|
||||
filter.direction = "desc";
|
||||
|
||||
}
|
||||
|
||||
permission() {
|
||||
|
||||
this.allow( groups.visitor, "READ" );
|
||||
|
||||
this.allow( groups.member, "READ" );
|
||||
|
||||
this.allow( groups.admin, "READ" );
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
13
application/user/userList/user.userList.table.header.js
Normal file
13
application/user/userList/user.userList.table.header.js
Normal file
@@ -0,0 +1,13 @@
|
||||
|
||||
import userListHeaderRow from "./header/user.userList.header.js";
|
||||
|
||||
import document from '/unify/document.js';
|
||||
|
||||
import gridViewHeader from '/elements/gridView/gridView.header.js';
|
||||
|
||||
|
||||
export default class userListTableHeader extends gridViewHeader {
|
||||
|
||||
userListHeaderRow = new userListHeaderRow();
|
||||
|
||||
}
|
||||
23
application/user/userList/user.userList.table.js
Normal file
23
application/user/userList/user.userList.table.js
Normal file
@@ -0,0 +1,23 @@
|
||||
|
||||
|
||||
import userListTableHeader from "./user.userList.table.header.js";
|
||||
|
||||
import userListTableBody from "./user.userList.table.body.js";
|
||||
|
||||
import collection from '/unify/collection.js';
|
||||
|
||||
import userListItem from '../userList/item/user.userList.item.js';
|
||||
|
||||
import user from '/user/user.js';
|
||||
|
||||
import gridView from '/elements/gridView/gridView.js';
|
||||
|
||||
|
||||
|
||||
export default class userListTable extends gridView{
|
||||
|
||||
header = new userListTableHeader();
|
||||
|
||||
body = new userListTableBody( userListItem, new collection( user ) );
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user