Đây là các thống nhất cơ bản để phát triển một trang WebAdmin
-
hiển thị danh sách đối tượng mà users được phép xem, filter theo groupId (từ current UserId)
-
filter (search) actions theo 1 số fields của đối tượng
-
Các loại hành động (quick actions) trên trang danh sách
- tạo mới 1 đối tượng
- hành động sau khi lựa chọn 1 hoặc nhiều đối tượng, ví dụ Selected Delete, Selected Approve
- từng đối tượng trong danh sách có 1 hành động mặc định là Edit
- hiện ra sau khi users bấm vào Create hoặc Edit
- hiển thị dưới dạng popup trong trang và dùng để tạo mới hoặc điều chỉnh các trường thông tin
- Một số hành động (actions) thay đổi trạng thái của 1 đối tượng
Confirm | Approve | Delete | ...- có thể bổ sung trường lưu Lý Do cho hành động này
listItemschứa danh sách hiện tại, binding với giao diệnfiltersbinding với phần Filter | Search của trangselectedItemdùng để binding với trang Chi tiết sau khi Create hoặc EditselectedListdùng để binding ẩn hiện và xử lý hành động Selected Delete, ...
mặc định ban đầu
filters = null,listItems = []
GetAll tương ứng cho trường hợp lần đầu truy cập vào trang
-
Cập nhật giá trị của filters
getAll: áp dụng giá trị mặc định củafilter = null- khi User chọn 1 trường để filter, cập nhật giá trị của trường đó của filters
- ngay cả khi search, thì cũng cập nhật giá trị vào trường
textcủa filters
-
Dùng chung 1 xử lý
- gom trong 1 function GetAll(filters), hoặc GetObjects() , với Objects là Users, Groups, Documents, ...
- gọi API
/object?filter="value_of_filters", với token dính kèm ở Header Request. Trên server nhận biến filters, nhớ bổ sung thêm trườnguserId,page=0mặc định và tiến hành filters như bình thường
-
ghi đè vào biến
listItems -
Phần còn lại là binding của Aurelia
mặc định biến
selectedItem = null
-
Cập nhật
selectedItem- Trường hợp Create, update
selectedItem = new ItemModel()vớistatus = new - Trường hợp Edit, khi chọn 1 item, cập nhật selectedItem = thatItem
- Trường hợp Create, update
-
call Details Popup , binding với selectedItem
- tùy theo trạng thái mà hiển thị button text phù hợp
-
bấm "Create | Update", tùy theo trạng thái mà sẽ thực hiện tương ứng
POST /objectsPUT /objects/{objId}
-
Khi users chọn 1 item, thực hiện 2 hành động
- selectedItem = item_da_chon (dùng cho phần Edit)
- selectedList.add(item_da_chon)
-
Các actions tương ứng sẽ chuyển trạng thái từ "Invisiable" thành "Clickable"
- Selected Delete, ...