### Test cases
chicken: https://otable.geekup.io/projects/3054/settings
pig: https://otable.geekup.io/projects/3020/settings
### Theme
+ Role
- [x] Chicken bị disable không add, delete hay edit inline tên theme được
+ Create
- [x] Create, ấn nút add theme, hiện thêm dòng để nhập tên theme, nút add bị disable
+ ##### Create negative case
- [x] Nếu không nhập gì hoặc chỉ nhập khoảng trắng mà ấn ra ngoài thì dòng tạo theme inline thì dòng tạo vẫn ở đó, không gửi request đi
- [x] Nếu nhập mới kí tự thì cột action đổi icon check, lưu thì gửi request đi
- [x] Đã lưu thì nút add enable lại
- [x] xoá dòng tạo không nhập tên hoặc nhập khoảng trắng này thì không cần confirm
+ ##### Create positive case
- [x] Nhập kí tự vào rồi lưu lại
- [x] Có thông báo success
- [x] Bên Epics trong cột select link theme có thêm theme mới tạo
- [x] Bên Backlogs trong cột select link theme có thêm theme mới tạo
- [ ] Bên milestone, form edit milestone có thêm theme mới tạo trong list link theme
+ Update
- [x] Ấn vô tên theme để sửa tên inline, ấn ra ngoài lưu lại
- [x] Nếu không thay đổi gì, ấn ra ngoài giữ nguyên data
- [x] Nếu có thay đổi thì icon action đổi qua save, ấn vô icon, ấn enter hay bấm ra ngoài để lưu
- [x] Nếu xoá hết tên bấm ra ngoài thì revert lại tên (không được để trống tên theme)
+ Delete
- [x] Xoá theme có đang có cần popup confirm, nếu mới chỉ ấn tạo, chưa nhập hoặc nhập khoẳng trắng thì xoá không cần confirm
- [x] Xoá theme thì bảng epic bên cạnh không select được theme đã xoá
- [x] Xoá theme thì bảng epic bên cạnh có epic nào link với theme, update theo, không còn link với theme đã xoá
- [x] Xoá theme thì bảng backlog có backlog nào link với theme, update theo, không còn link với theme đã xoá
### Epic
+ Role
- [x] Chicken bị disable không add, delete, edit inline tên epic hay select theme được
+ Create
- [x] Ấn nút Add, hiện thêm dòng để nhập tên epic, nút add bị disable
- [x] Nếu không nhập gì hoặc chỉ nhập khoảng trắng mà ấn ra ngoài thì dòng tạo theme inline thì dòng tạo vẫn ở đó, không gửi request đi, ấn thùng rác delete không cần confirm
- [x] Nếu nhập mới kí tự thì cột action đổi icon check, có thể lưu để gửi request đi, nhận thông báo success
- [x] Đã lưu thì nút add enable lại
- [ ] Bên milestone, form edit milestone có thêm epic mới tạo trong list link epic
+ Update
- [x] Ấn vô tên epic sửa được tên inline
- [x] Nếu không thay đổi gì, ấn ra ngoài giữ nguyên data
- [ ] Nếu có thay đổi thì icon action đổi qua save, ấn vô icon, ấn enter hay bấm ra ngoài để lưu
- [ ] Nếu xoá hết tên bấm ra ngoài thì revert lại tên (không được để trống tên epic)
- [x] Select link theme, data bên themes cũng update theo
- [ ] Bên milestone, form edit milestone trong list link theme, tên và burnt của epic cũng được update theo
- [x] Select link theme, chọn dòng trắng đầu tiên trong select list, epic đó sẽ unlink theme
+ Delete
- [x] Xoá epic có đang có cần popup confirm, nếu mới chỉ ấn tạo, chưa nhập hoặc nhập khoẳng trắng thì xoá không cần confirm
- [x] Xoá epic, data backlog update theo, data bên themes cũng update theo
### Project backlog
+ Role
- [x] Chicken bị disable không add, import, delete, edit inline tên backlog, thấy dòng trắng để add backlog, select theme được
- [x] Chicken vẫn có thể click vào ô point để popup update form nhưng không update được
- [ ] nếu không có theme id hay theme id sai mà đã có có epic linked với theme thì epic về null, set theo theme xuống (https://otable.geekup.io/projects/3396/detail)
+ Create
+ Form
- [x] Create trong form không nhập tên backlog không submit được
- [x] Ấn nút Add, name required, nhập tên save xong table hiện thêm 1 draft backlog như đã tạo
- [x] Create bằng form sau khi ấn nút Add, name required, nhập tên, point và priority save xong table hiện thêm 1 backlog undone như đã tạo
+ Inline
- [x] Luôn có một dòng trắng cho pig member
- [ ] Create backlog bằng inline input, input xong, lưu bằng cách ấn icon check, ấn enter hoặc ấn ra ngoài
- [x] Chỉ input priority vào ô trắng, tạo backlog fail
- [ ] Input priority vào ô trắng, input name, tạo thành backlog mới có tên vào priority đã nhập
+ Update
+ Form (click vào ô point hoặc icon edit)
- [x] Backlog Done và undone đã vô iteration disable ô point và priority
- [ ] Backlog Done disable nút add task, nhưng vẫn update được task name và estimate hours và xoá tasks, nếu task nào đã logwork thì disable không cho xoá, nhưng vẫn update task name và estimate hours được
- [x] Backlog draft và undone cho edit hết
- [x] Edit được name, name required
- [x] Thêm task, thêm point cho task, ấn save ra ngoài, backlog trên table update theo form, coi tên epic của backlog đó, qua theme epic coi epic đó update theo
- [x] Nếu chưa có theme, select list hiện hết hết epic
- [x] Nếu có epic rồi, select theme xong epic set trống, select tiếp epic thì list select chỉ ra các epic đã link với theme
+ Inline
- [x] Nếu chưa có theme, list select epic hiện hết epic đang có
- [x] Nếu chưa có theme, chọn epic chưa link với theme, theme vẫn rỗng
- [x] Nếu chưa có theme, chọn epic link với theme thì tự set theme link với epic đã chọn
- [x] Nếu có epic rồi, select theme xong epic rỗng, select tiếp epic thì list select chỉ ra các epic đã link với theme
- [x] Update được tên của tất cả các backlog
- [x] Update được priority của undone và draft backlog
- [ ] Nếu backlog có point và priority có thể select select iteration để plan vô future iteration
- [ ] Click vào ô point popup update backlog form
- [ ] Bên milestone, form edit milestone có thêm backlog mới tạo trong list link backlog
+ Click 3 chấm hiện more actions
+ Click edit popup update backlog form
+ Break item
- [x] Chỉ break được các item chưa có worklog
- [x] Click break item popup break item form
- [x] Nhập số backlog muốn break ấn submit, các backlog được chia point theo số point của backlog ban đầu xuất hiện dưới table với tên được đặt theo backlog ban đầu và thêm số, backlog done thì backlog duplidate cũng done luôn
- [x] Có thông báo success
+ Duplicate item
- [x] Chỉ duplicate được backlog không có task
- [x] Click duplicate item popup break item form
- [x] Backlog đã chọn được duplidate, thông tin tưởng tự nhưng tên được thêm số để phân biệt
- [x] Có thông báo success
+ Delete
- [x] Chỉ xoá được backlog không có worklog
- [ ] Backlog Done nhưng không có worklog vẫn xoá được
- [x] Delete backlog, backlog mất khỏi table backlog
- [ ] bên theme epic update theo
+ Search
- [x] Search theo tên PBI
- [x] result là các backlog có tên chứa kí tự đã nhập
- [x] Search khi đang sort hoặc filter thì kết quả trả theo list đang sort hoặc filter
- [ ] Đang search, xoá backlog, bỏ search backlog đã xoá không còn trong list
+ Sort
- [x] Có thể sort hết các cột chứa thông tin, trừ cột action
- [x] Bấm lần đầu sort từ nhỏ tới lớn, lần 2 từ lớn tới nhỏ, lần 3 tắt, có tooltip hướng dẫn
- [x] Đang sort, search backlog, search result vẫn sort theo đã chọn
+ Filter
- [x] Có thể filter các cột theme, epic, status, iteration
- [ ] Khi filter cột này, result filter của cột này là input để filter các
- [ ] Filter backlog undone, xoá backlog trong result đã filter, reset filter trả lại list mới không còn backlog đã xoá
- [x] Filter backlog theo theme, tạo backlog bằng form create, gán theme theo theme đang filter, filter result đang hiện có thêm backlog mới tạo
- [x] Filter backlog, duplicate hay break backlog nào trong filter result sẽ hiện tiếp trong filter result list này
+ Import backlog
- [ ] Import backlog, backlog list mới import vào, vẫn có dòng trống để tạo inline
- [ ] Nếu backlog import có điền tên theme hay epic sẵn, khi import thành công, tự động tạo những theme hay epic như đã điền trong template, qua theme epic sẽ thấy theme hay epic này đã tạo, theme epic tự tạo theo backlog import có point hay số link backlog, link epic hiển thị đúng
+ Export backlog
- [ ] Export theo project backlog, download file xlsx có data như hiện trên PBI table
- [ ] Export theo worklog ra file xlsx có data worklog