---
# System prepended metadata

title: DeviceOn/BI Portal RD Test scenario 2021/10~2021/12
tags: [DeviceOnBI]

---

# DeviceOn/BI Portal RD Test scenario 2021/10~2021/12
---
###### tags: `DeviceOnBI`
## 2021/12/24
### Tingwei
#### [Fix][copyToMyOrganization & selectTree] Avoid their horizontal scrollbar to cover the last tree item, when the item text is too long, i.g., the org name is too long. And the others.

**Purpose**
1. [Fix][copyToMyOrganization & selectTree] Avoid their horizontal scrollbar to cover the last tree item, when the item text is too long, i.g., the org name is too long. 
2. [Add] Add wrapElScrollbar.js to fine-tune elScrollbar.  A. set `display: none`, when the scrollbar hides. Which avoids the click event block by the transparent div, i.g. the submit button in the sidebar on page Archiving. B. if the horizontal scrollbar shows, add padding-bottom to the .el-scrollbar__view div. 
3. [Fix][organizationManagement] Fine-tune groupBasicInfo.vue long org name UI and the other UI to match the design.

**Test**
1. test 1 & 2
    - [x] copyToMyOrganization -> org name `tingwei-一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十` in root org `tingwei test` -> scroll to the bottom -> check scroll bar and UI
    - [x] add menu -> select org -> org name `tingwei-一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十` in root org `tingwei test` -> scroll to the bottom -> check scroll bar and UI
    - [x] add menu -> select WaterManagement org -> select dashboard URL -> scroll to the bottom -> check scroll bar and UI
2. test 3 with org name `tingwei-一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十`
    - [x] 1366px window -> show '...' behind org name
    - [x] 1920px window
    - [x] time zone font-color
    - [x] created by XXX font-color
    - [x] hover `Child Group` button

## 2021/12/22
### Alice
#### feature/forwarding-auth-search

**Purpose**
1. [fix] fix auth search, sync filter code as pageDashboard

**Test**
1. test for pageForwarding
    - [x] auth search -> input regex string or other string
    - [x] forwarding search -> input regex string or other string

## 2021/12/21
### Alice
#### feature/fix-multilang

**Purpose**
1. [fix][User][Forwarding][Plugin][Notification] multiLanguage add/update/fix
2. [UserGroup][fix] multiLang key fix

**Test**
1. pageUser
    - [x] 用戶名（郵箱）-> 用戶名（信箱）| update
    - [x] No Limit -> 無期限｜add
    - [x] Set expiry -> 設定截止日期｜add
2. pagePlugin
    - [x] add/edit plugin translation fix ｜update
    - [x] Minimum allowed frequency is ${num} minutes. translation ｜add
    - [x] enter URL translation ｜add
    - [x] delete key: url_paramters, add key: url_parameters
    - [x] select json title & desc translation | add
3. pageForwarding
    - [x] Forwarding Rule List -> 轉發規則列表｜add
    - [x] Minimum allowed frequency is ${num} minutes. ｜add
    - [x] select tag description translation ｜add
4. pageNotification
    - [x] recipients_of_the_notification & no_notification_group translation | add
    - [x] createUserGroup desc | fix

### Tingwei 

#### [Fix][Menu][Select Dashboard URL dialog] Search placeholder lang.

**Test**
1. test 1 & 2
    - [x] tw -> add menu -> select dashboard URL dialog -> search placeholder

#### [Update][Menu Dialog][Select dashboard URL dialog] UI and its searching function.

**Purpose**
1. [Update][Menu Dialog][Select dashboard URL dialog] UI and its searching function.
2. [Change] selectGroupTree.vue to selectTree.vue
3. [Fix][Menu Dialog] Org name ellipsis.
4. [Fix][Menu] Highlight disappears after editing saved.

**Test**
1. test 1 & 2
    - [x] add menu -> select org
    - [x] -> search org
    - [x] no dashboard URL -> launch the Select Dashboard URL dialog -> expand the current org folder initially
    - [x] -> no URL is selected -> save button is disabled
    - [x] -> search dashboard URL -> select a URL -> save
    - [x] -> select dashboard -> save
    - [x] -> input a URL which is not in dashboard -> click select dashboard URL button -> select a dashboard URL -> save -> the custom URL would be overwrite
    - [x] -> save menu
    - [x] edit menu -> change org
    - [x] has dashboard URL -> re-select dashboard URL -> expand dashboard org folder initially
    - [x] -> change dashboard URL -> save
    - [x] -> select another dashboard URL -> make sure the dashboard is correct when the dialog just opens
    - [x] -> save menu
3. test 3
    - [x] add menu -> select a long org name org -> check org ellipsis
4. test 4
    - [x] add menu -> save -> check highlight
    - [x] edit menu -> save -> check highlight

## 2021/12/20
### Alice
#### feature/fix-multilang

**Purpose**
1. [fix] multiLang check, fix and add

**Test**
1. test
   - [x] check plugin & forwarding page authen tab show "No 'A'uthentications, yet." when no authen
   - [x] check forwarding page show "No 'F'orwardings, yet." when no forwarding
   - [x] edit org -> notification -> WeChat -> check is enter userid not WeChat ID


## 2021/12/16
### Alice
#### feature/fix-existing-targets

**Purpose**
1. [Wizard][World Map][fix] the first targets is assigned [] when new from existing

**Test**
1. test for wizard, check world map targets
    - [x] new from existing
    - [x] new from blank
    - [x] new from template
    - [x] edit template
    - [x] edit designer

## 2021/12/15
### Alice
#### feature/notification-bug-fix

**Purpose**
1. [pageNotification][fix] 1. tab margin bottom & border bottom fix, 2. length properties undefined

**Test**
1. test for pageNotification
    - [x] change to the org that is no user groups & notification groups -> check the tab bottom border & bottom margin
    - [x] change to the org that has user groups & notification groups -> check the tab group bottom border
    - [x] check develop console no length properties of undefined

## 2021/12/14
### Tingwei 

#### [Add][bi-table.scss] Highlight table style, etc.

**Purpose**
1. [Add][bi-table.scss] Highlight table style 
2. [Add][slotParameterToolbar] findPage() 
3. [Update][pageDevice] Navigate to the highlight page in these conditions, add/edit "EdgeLink/SCADA", copy to my organization.
4. [Update][Forwarding] The Auth table and The Forwarding table support highlight. 
5. [Update][authList.vue] Support highlight.
6. [Fix][Forwarding Auth] The default sorting method is localeCompare, but when change page and click the header key, the sorting method is not localeCompare. 
7. [Fix][slotParameterToolbar] After this branch merged develop, when search, the page does not reset to the first page.

**Test**
1. test Devices
    - [x] click more button -> check the highlight style 
    - [x] add EdgeLink -> check the highlight style and navigating to the highlight item page
    - [x] edit EdgeLink -> change name -> check the highlight style and navigating to the highlight item page
    - [x] delete EdgeLink -> check whether the highlight style disappears and whether stays in the current page
    - [x] copy to my organization
2. test forwarding auth table
    - [x] click row -> check the highlight style 
    - [x] add -> check the highlight style and navigating to the highlight item page
    - [x] edit -> change name -> check the highlight style and navigating to the highlight item page
    - [x] delete -> check whether the highlight style disappears and whether stays in the current page
3. test forwarding rule table
    - [x] click row -> check the highlight style 
    - [x] add -> check the highlight style and navigating to the highlight item page
    - [x] edit -> change name -> check the highlight style and navigating to the highlight item page
    - [x] delete -> check whether the highlight style disappears and whether stays in the current page
3. test forwarding auth table sorting
    - [x] change page -> check sorting
    - [x] click the table header key -> check sorting


## 2021/12/10
### Tingwei 

#### [Add]package-lock.json && support command "npm ci" to restore project.

**Purpose**
1. [Add]package-lock.json && support command "npm ci" to restore project.

**Test**
1. test from jenkins
    - [x] update portal-wise-mplus.Dockerfile in K8S project -> build on jenkins

## 2021/12/07
### Tingwei 

#### [Add][Menu] Support Marquee and Alarm, etc.

**Purpose**
1. [Add][Menu] Support Marquee and Alarm. 
2. [Add][Menu] menu list adds uid 
3. [Add][form.scss] support `<el-switch>` tag in `.el-form-item--switch`
4. [Add][switch.scss] support `.el-switch.el-switch--bi`
5. [Change][Menu Management] Sort by "orgName, name, asc"

**Test**
1. Dashboard, deploy on develop
- [x] add menu -> turn on alarm and marquee -> preview in grafana
- [x] edit old menu -> turn on alarm and marquee -> preview in grafana
- [x] edit a menu, its alarm refresh is 2m -> alarm does not change -> save -> preview in grafana, refresh is 2m
- [x] edit a menu -> hide alarm and marquee -> save -> preview in grafana
- [x] only turn off ja Marquee and Alarm -> save -> edit the menu on BI -> check whether Marquee and Alarm hide on ja lang -> do not change Marquee and Alarm -> save -> check on grafana
- [x] on not first lang tab -> Alarm and Marquee are disabled
- [x] deploy on develop to test AlarmUrl -> add menu on develop portal -> turn on Alarm and Marquee -> save -> check in grafana
2. test adding uid
- [x] add menu -> add a menu page and a folder with a child folder and some child pages in menu tree -> save -> check uid in grafana
- [x] edit old version menu -> save -> check uid in grafana
3. test menu management cards sort
- [x] Sort by "orgName, name, asc"

## 2021/12/06
### Tingwei 

#### [Change] Make sure the default Rows Per Page is 50. Make sure to sort by "name and ascending". Make sure to scroll to top.

**Purpose**
1. [Change] Make sure the default Rows Per Page is 50. Make sure to sort by "name and ascending". Change in below, Archiving, Forwarding, Profile Parameter List, alarm code, select alarm code dialog, alarm complex, formula, select code source dialog of formula, create from device(profile, only the left list & the middle list), world map templates manage list, world map select templates, worldmap map select group (navData), menu select group (navData), menu select dashboard URL dialog.
2. [Update][slotParameterTable] Support scrollToTopDom & scrollToTopOffset 
3. [Fix][slotParameterToolbar] Fix the vertical position of the clear search input button in the old version.
4. [Fix][Forwarding & Plugin] Fine-tune the tab style. Make sure the style is the same as Zeplin.
5. [Change] When searching, navigating page..., scroll to the top in below pages, select code source dialog, select alarm code dialog, create from device of profile, profile detail dialog.
6. [Fix][Devices][Dependent Resources]Click tag name on the table header, but the sorting does not change
7. Merge develop to this branch

**Test**
1. Archiving object list
- [x] default 50
- [x] sort by name asc initially
2. Archiving parameter list
- [x] default 50
- [x] sort by name asc initially
3. Forwarding auth list
- [x] default 50
- [x] sort by name asc initially
4. Forwarding rule list
- [x] default 50
- [x] sort by name asc initially
5. profile -> edit profile dialog -> parameter list
- [x] default 50
- [x] sort by name asc initially
6. profile -> preview detail -> parameter list
- [x] default 50
- [x] sort by name asc initially
- [x] next page -> scroll to content top
- [x] last page -> scroll to content top
- [x] prev page -> scroll to content top
- [x] first page -> scroll to content top
- [x] change Rows Per Page -> scroll to content top
7. profile -> alarm complex rules
- [x] default 50
- [x] sort by name asc initially
8. profile -> alarm code rules
- [x] default 50
- [x] sort by alarm code asc initially
9. profile -> select alarm code dialog -> list
- [x] default 50
- [x] sort by code asc initially
- [x] next page -> scroll to content top
- [x] last page -> scroll to content top
- [x] prev page -> scroll to content top
- [x] first page -> scroll to content top
- [x] change Rows Per Page -> scroll to content top
10. profile -> Formula
- [x] default 50
- [x] sort by name asc initially
11. profile -> formula -> select code source
- [x] default 50
- [x] sort by name asc initially
- [x] next page -> scroll to content top
- [x] last page -> scroll to content top
- [x] prev page -> scroll to content top
- [x] first page -> scroll to content top
- [x] change Rows Per Page -> scroll to content top
12. object -> formula -> select code source
- [x] default 50
- [x] sort by name asc initially
- [x] next page -> scroll to content top
- [x] last page -> scroll to content top
- [x] prev page -> scroll to content top
- [x] first page -> scroll to content top
- [x] change Rows Per Page -> scroll to content top
13. profile -> create from device
- [x] default 50
- [x] sort by name asc initially
- [x] left list search -> scroll to top
- [x] center list front-end search -> scroll to top
- [x] center list back-end search -> scroll to top
- [x] center list back-end next page -> scroll to content top
- [x] center list back-end last page -> scroll to content top
- [x] center list back-end prev page -> scroll to content top
- [x] center list back-end first page -> scroll to content top
- [x] right list search -> scroll to top
14. world map
- [x] manage template -> check sort
- [x] select template -> My Templates -> check sort
- [x] select group -> check deep sort
15. group list of nav
- [x] check deep sort
- [x] account -> change language -> check deep sort
16. menu -> select group
- [x] check deep sort
17. menu -> select dashboard URL dialog
- [x] check sort
18. purpose 3 - check the X button vertical position 
- [x] profile detail dialog -> input some search keyword -> check the X button vertical position 
19. purpose 4 - fix forwarding & plugin tab style
- [x] forwarding -> check the tab style 
- [x] plugin -> check the tab style
20. purpose 6
- [x] devices -> Dependent Resources -> click tab name of the table header -> check whether the sorting changes

## 2021/12/02
### Tingwei 

#### [Add][Forwarding & Archiving & Dashboard & Menu List of Page Dashboard]When searching, navigating page..., scroll to the position we defined. If the group info div does not scroll and hide,  the scroll position will not change.

**Purpose**
1. [Add][Forwarding & Archiving & Dashboard & Menu List of Page Dashboard] When searching, navigating page..., scroll to the position we defined. If the group info div does not scroll and hide,  the scroll position will not change.
2. [change][slotParameterToolBar] Support scrollToTopOffset. If dom.scrollTop < this.scrollToTopOffset, the scrolling position will not change.

**Test**
1. Dashboard
- [x] search -> scroll to content top
- [x] change Sort by -> scroll to content top
- [x] next page -> scroll to content top
- [x] last page -> scroll to content top
- [x] prev page -> scroll to content top
- [x] first page -> scroll to content top
- [x] change Rows Per Page -> scroll to content top
- [x] the group info div does not hide -> search -> the scroll position does not change
2. Menu list of page Dashboard
- [x] search -> scroll to content top
- [x] change Sort by -> scroll to content top
- [x] change Availability -> scroll to content top
- [x] next page -> scroll to content top
- [x] last page -> scroll to content top
- [x] prev page -> scroll to content top
- [x] first page -> scroll to content top
- [x] change Rows Per Page -> scroll to content top
- [x] the group info div does not hide -> search -> the scroll position does not change
3. Forwarding Auth list
- [x] search -> scroll to content top
- [x] change Auth mode -> scroll to content top
- [x] next page -> scroll to content top
- [x] last page -> scroll to content top
- [x] prev page -> scroll to content top
- [x] first page -> scroll to content top
- [x] change Rows Per Page -> scroll to content top
- [x] the group info div does not hide -> search -> the scroll position does not change
4. Forwarding Rule list
- [x] search -> scroll to content top
- [x] change Forwarding Type -> scroll to content top
- [x] next page -> scroll to content top
- [x] last page -> scroll to content top
- [x] prev page -> scroll to content top
- [x] first page -> scroll to content top
- [x] change Rows Per Page -> scroll to content top
- [x] the group info div does not hide -> search -> the scroll position does not change
5. Archiving object list
- [x] search -> scroll to top
- [x] next page -> scroll to top
- [x] last page -> scroll to top
- [x] prev page -> scroll to top
- [x] first page -> scroll to top
- [x] change Rows Per Page -> scroll to top
6. Archiving Sidebar Parameter list
- [x] search -> scroll to top
- [x] change type -> scroll to top
- [x] next page -> scroll to top
- [x] last page -> scroll to top
- [x] prev page -> scroll to top
- [x] first page -> scroll to top
- [x] change Rows Per Page -> scroll to top


## 2021/11/26
### Tingwei 

#### [Update][slotParameterToolBar] Run scrollToTop() when some events trigger, i.g., search, navigate, change numberOnePage, reset. All you need to do is propping scrollToTopDom, etc.

**Purpose**
1. [Update][slotParameterToolBar] Run scrollToTop() when some events trigger, i.g., search, navigate, change numberOnePage, reset. All you need to do is propping scrollToTopDom. 
2. [Update][slotParameterToolBar] add scrollToTop 
3. [Update][slotParameterToolBar] The updateFilter function add param, isScrollToTop. 
4. [deviceList & bindObjectResource & tagInfoListBI] Prop scrollToTopDom to support scrollToTop(). 
5. [deviceList & bindObjectResource] default order by Name and Ascending. 
6. [deviceList & bindObjectResource] default order by Name and Ascending.  
7. [deviceList & bindObjectResource & tagInfoListBI] Default Rows Per Page 50.

**Test**
1. Devices
- [x] default Rows Per Page 50
- [x] default orderby name and ascending
- [x] search -> scroll to top
- [x] change Device Status Filter -> scroll to top
- [x] change Model Filter -> scroll to top
- [x] change Group Filter -> scroll to top
- [x] next page -> scroll to top
- [x] last page -> scroll to top
- [x] prev page -> scroll to top
- [x] first page -> scroll to top
- [x] change Rows Per Page -> scroll to top
2. Tags table on the side bar of Devices page
- [x] default Rows Per Page 50
- [x] default orderby name and ascending
- [x] search & submit -> scroll to top
- Clicking the Refresh Button does not need to trigger scrollToTop(), because the user may only want to chech a tag value updating in the current position
- [x] next page -> scroll to top
- [x] last page -> scroll to top
- [x] prev page -> scroll to top
- [x] first page -> scroll to top
- [x] change Rows Per Page -> scroll to top
2. Dependent Resources table on the side bar of Devices page
- [x] default Rows Per Page 50
- [x] default orderby name and ascending
- [x] search -> scroll to top
- [x] next page -> scroll to top
- [x] last page -> scroll to top
- [x] prev page -> scroll to top
- [x] first page -> scroll to top
- [x] change Rows Per Page -> scroll to top


## 2021/11/25
### Tingwei 

#### [Change]White Header UI

**Purpose**
1. [Change][Header] White Header UI 
2. [Change][Header] Fine-tune setting dropdown content line-height
3. Delete unused Icon
4. [Change]Update Guide and page Quick Start with new Header UI.

**Test**
1. check header UI on below pages 
- [x] Home -> Header
- [x] -> setting dropdown -> Help
- [x] Organization Management -> Header
- [x] -> Account Image button
- [x] Sign up -> Header
- [x] -> setting dropdown -> language
- [x] chrome iPhone X devtool -> login -> Mobile Device List -> Header
- [x] -> setting dropdown -> language
2. check the Guide animation & the Quick Start Page
- [x] go to http://localhost:8080/#/index/organizationManagement?orgId=16&orgManageEditType=pageObject&testGuide=1 -> check the Guide Animation
- [x] Quick Start Page -> check new guiding images


## 2021/11/19
### Tingwei
#### [Add][SSO] Add tabs( Portal or Dashboard ) to login to Dashboard. If the default Dashboard URL is not defined, navigate to Dashboard domain URL.

**Purpose**
1. [Add][SSO] Add tabs( Portal or Dashboard ) to login to Dashboard. If the default Dashboard URL is not defined, navigate to Dashboard domain URL.
2. [Fix] If the login error response is not 401, 403, or "Not Found", show the error message by notification. Fix UI leaking out from the card div when the response is HTML, i.g., 502.

**Test**
1. test 1 by deploying App on develop space
- [x] Portal tab -> login to DeviceOn/BI
- [x] Dashboard tab -> no default dashboard URL -> login to dashboard domain URL
- [x] Dashboard tab -> default dashboard URL exists -> login to default dashboard URL
2. test 2
- [x] Disconnect -> login -> message shows by notification

## 2021/11/16
### Tingwei
#### [Fix][Device] Loading does not hide when there is no devices.

**Purpose**
1. [Fix][Device] Loading does not hide when there is no devices.

**Test**
1. 
- [x] visit by no devices account -> check loading

## 2021/11/15
### Tingwei
#### [Fix][Menu Dialog] Org name validation, etc.

**Purpose**
1. [Fix][Menu Dialog] Org name validation 
2. [Change][Menu Dialog] If form invalid, reject to change tab.

**Test**
1. 
- [x] add menu -> no org -> reject to save
- [x] add menu -> no menu name -> reject to save
- [x] add menu -> invalid form -> reject to change lang
- [x] add menu -> invalid form -> reject to change to "Menu Contents"
- [x] add menu -> invalid form -> save -> cancel -> add menu again -> no error style
- [x] edit menu -> duplicate name -> check duplicate name api -> reject to save

#### [Fix][Archiving] Object name of the sidebar disappears after submit(), etc.

**Purpose**
1. [Fix][Archiving] Object name of the sidebar disappears after submit() 
2. [Change][Archiving]Recording Rate dropdown max-height: 80vh


**Test**
1. 
- [x] click an object -> change Recording Rate -> submit -> check Object of the sidebar
- [x] check Recording Rate dropdown height

## 2021/11/15
### Tingwei
#### [Fix][Organization Management][Org. path] Click duplicate name org path, navigate to the wrong org, always navigate to the first same name org found.

**Purpose**
1. [Fix][Organization Management][Org. path] Click duplicate name org path, navigate to the wrong org, always navigate to the first same name org found. 
2. [Change][Organization Management][Org. path] Fine-tune its UI the same as the Zeplin. 
3. [Add] Integrate parsing store.state.rootGroupToSelectedGroupMenuArray function to single.parseRootGroupToSelectedGroupMenuArray from three files.

**Test**
1. 
- [x] click "**tingwei-test**" in WaterManagement / **tingwei-test** / air port
- [x] current org path can not be clicked
- [x] Delete Folder Icon from Org. Path
- [x] Login by an account that has a child org., but does not have its root org, i.g., Neihu -> visit Neihu -> to check whether the path is Neihu.

## 2021/11/15
### Tingwei
#### [menu] Support child org

**Purpose**
1. [menu] new api for api-portal 
2. [getRoleList] Parse AuthData when getRoleList 
3. [getRoleList] Save getRoleList Promise. Prevent multiple request. 
4. [menu] Editable permission determines by BI roleList and authData.
5. [Add][Dashboard & Menu] Is-editable icon ( pencil or eye ) in card 
6. [Update][Card] cardSubTitlePostfix \<slot\>, deviced, change some key 
7. [Add][Menu] Add Select Group Dialog to select or move org./group . If in edit mode, filter the same dashboardOrgId org./groups. For moving org./group, some srpframes even are not BI language, we need to save them to api-portal DB, but we don't change any configJS or logoImg 
8. [Add][SelectGroupTree] SelectGroupTree component. 
9. [Fix][previous commit] encodeURIComponent srpName when GET srpframe by srpName. encodeURIComponent name when Delete srpframe 
10. [Fix][Menu][previous commit] Get Object list only when Dashboard authData.create  and Object authData.view are true.
11. [Change][Menu management] Hide category filter list
12. [Fix] selectGroupTree always shows folder icon. 
13. [Change][Menu]Menu in organization disable select org. Menu management can change org. \
14. [Fix] Uneditable in root org., child org is uneditable.


**Test**
1. test child org in organization management
- [x] add menu in child org
- [x] edit menu and change org
- [x] rename menu
- [x] delete menu
- [x] created on Grafana -> the root org -> get the menu in BI
- [x] add BI unsupported lang to a srpframe on Grafana -> edit the menu on BI -> change org -> save
- [x] delete menu on Grafana -> get menu list
2. test child org in menu management
- [x] add menu to child org
- [x] edit menu -> only can change in the same dashboardOrg -> change org and save
- [x] rename menu
- [x] delete menu
- [x] created on Grafana -> get the menu in BI
- [x] add BI unsupported lang to a srpframe on Grafana -> edit the menu on BI -> change org -> save
- [x] delete menu on Grafana -> get menu list
3. test is-editable icon ( pencil or eye ) in card and special role (View Dashboard role)
- [x] auth is editable org -> dashboard pencil icon ->  has edit & delete in the dropdown
- [x] auth is editable org -> menu pencil icon -> has edit & delete in the dropdown
- [x] auth is uneditable (View Dashboard role) org -> dashboard eye icon -> no edit & delete in the dropdown
- [x] auth is uneditable org (View Dashboard role) -> menu eye icon -> no edit & delete in the dropdown
4. test role case
- [x] View Dashboard role in the root org but in child org role is admin -> menu is uneditable in child org
- [x] no role in root org but in child org the role is admin -> menu is uneditable in child org
5. check bug kevin found on previous version
- [x] account has no menu in all org -> menu management -> whether the menu is creatable
- [x] account has no menu in all org -> any org, its role is Admin -> whether the menu is creatable

## 2021/11/08
### Alice
#### feature/default-list-number-change

**Purpose**
1. [change] change the default  number of page list  to 50

**Test**
1. test for pages
    - [x] PageObject
    - [x] PageEvent
    - [x] pageNotification
    - [x] pagePlugin
    - [x] pageForwarding
    - [x] pageArchiving
    - [x] pageUsers

## 2021/11/03
### Alice
#### feature/fix-datatable-simple-img

**Purpose**
1. [wizard][fix] add key for simple image identification

**Test**
1. test for blank
    - [x] add datatable panel
    - [x] add object monitor panel
    - [x] edit all of three item
    - [x] check the  simple image is correct
    - [x] save
    - [x] re-edit this dashboard
2. test for template 
   - for 2.1
       - [x] add template 2.1 Object Monitoring
       - [x] edit all of three item
       - [x] check the  simple image is correct
       - [x] save
       - [x] re-edit and check
   - for 2.3 
       - [x] 2.3 Maintenance Statistics
       - [x] edit all of three item
       - [x] check the  simple image is correct
       - [x] save
       - [x] re-edit and check
3. test for existing
    - [x] add from existing
    - [x] select the dashboard that added from blank/added from template
    - [x] edit all of three item (datatable panel & object monitor panel)
    - [x] save
    - [x] re-edit this


## 2021/11/02
### Alice
#### feature/wizard-json-fix

**Purpose**
1. [wizard][fix] compatible onlyShowOrg variable and fix dropdown switch variable with show type
2. [wizard][fix] fix the default variable when template is load

**Test**
1. test for blank
    - [x] add switch panel -> check type is 'show_org_hierarchy_only' -> save
    - [x] edit & preview that just save -> check type correct
    - [x] edit radio/switch (wizard & grafana) -> save -> edit check
2. test for template
    - [x] add different template -> check level & level switch is correct
    - [x] edit & preview existing template dashboard -> compare the options on both sides
    - [x] save edit -> check switch change in grafana
3. test for existing
    - [x] add with existing -> check after loading -> save
    - [x] edit in grafana -> edit with wizard 

## 2021/10/28
### Tingwei
#### [Fix][Profile & Menu] "Cannot read properties of undefined (reading '$el')" causes loading does not hide when save

**Purpose**
1. [Fix][Profile & Menu] "Cannot read properties of undefined (reading '$el')" causes loading does not hide when save
2. [cancelTokenHandler.js] update comment.

**Test**
1. test 1
    - [x] add and save profile
    - [x] add and save menu in menu management
    - [x] add and save menu in menu of Org. mgt.

## 2021/10/26
### Alice
#### feature/wizard-json-fix

**Purpose**
1. [Wizard][fix] unknown panel i18n duplicate wrong
2. [Wizard][add] unknown panel icon
3. [Wizard][change] show unknown panel type & hide is use switch radio

**Test**
1. test for Wizard
    -[x] follow nick test step in grfana  -> edit with wizard -> save -> preview
    -[x] check unknown panel show the '?' icon
    -[x] show the unknown panel type
    -[x] active panel (no supports type) -> check if is use switch radio hide
    
## 2021/10/25
### Tingwei
#### [Update][Menu] If an org failed to GET api/frame, the other orgs continue their function.

**Purpose**
1. [Update][Menu] If an org failed to GET api/frame, the other orgs work fine. 
2. [Update][Menu] If user's role is Editor in Grafana, menu is editable. 
3. [Update][Dashboard && Menu] Disable add button if account's role is Viewer in all orgs of menu management or the current org of the page dashboard.

**Test**
1. test 1
    - [x] set a `debugger` behind get api/frame in dashboard.js line 78 or set break point in `webpack://src/store/modules/dashboard.js?xxx` Chrome Sources/ -> go to menu management -> when browser stop at the debugger, delete the account from an org in Grafana -> continue browser -> check error notification
    - [x] -> check whether the other orgs work fine
    - [x] -> add menu -> whether the error org is not in Org. Name options 
2. test 2
- [x] change an account's role is is Editor in Grafana -> in BI, visit Menu Management -> check whether the srpframe of the org can be edited
3. test 3 in condition an account's role is viewer in all orgs
- [x] visit Menu Management -> check whether Add Menu button is disabled
- [x] visit dashboard of organization management which account's role is Viewer in Grafana -> check whether Add dashboard button, Edit button in card dropdowns and Delete button in card dropdowns are disabled
- [x] -> check whether Add Menu button, Edit button in card dropdowns and Delete button in card dropdowns are disabled
- [x] change org from Admin org to Viewer org -> check whether add buttons are disabled

## 2021/10/22
### Alice
#### feature/targets-key-check

**Purpose**
1. [SRPDashboard][fix] double check targets key of panel

**Test**
1. test for SRPDashboard
    - [x] add dashboard and Text panel in Grafana -> edit with wizard -> check save is ok
    - [x] delete all graph panel targets -> edit with wizard -> check save is ok

## 2021/10/21
### Alice
#### feature/worldmap-marker-and-maptype

**Purpose**
1. [SRPDashboard][change] world map add map type and marker type select
2. [SRPDashboard][change] add default marker type and map type for old world map json
3. [SRPDashboard][change] change management button position
4. [SRPDashboard][change] world map default with Vue.set & select change

**Test**
1. test for designer
    - [x] add world map -> check default map type & marker type -> save -> preview
    - [x] edit dashboard -> edit map type & marker type -> save -> preview -> check they are changed
    - [x] edit dashboard's map type & marker type in grafana -> eidt with SRPDashboard -> check map type & marker type are loaded correctly
2. test for template
    - [x] add water 1.1 -> check default map type & marker type ->save -> preview
    - [x] edit old 1.1 dashboard -> check default map type & marker type was filled
3. test for from existing
    - [x] add a existing dashboard that with world map -> check default map type & marker type ->save -> preview
    - [x] edit -> check and change map type & marker type -> save -> preview

## 2021/10/20
### Tingwei
#### [Upgrade][Menu] Menu in page dashboard, etc.

**Purpose**
1. [Add][Menu in page dashboard] Menu in page dashboard, etc.
2. [Add][Util Component] Add biToolBarSortComponent.vue and use it in page dashboard.
3. [Upgrade][Util Component] searchCheckboxDropdown.vue extend isAtLeastOneCHecked and use it in page dashboard/menu/Availabilaty.
4. [Upgrade][Page Dashboard] Get dashboard and srpframe by lazy loading. And cancel them when beforeDestroy.
5. [Upgrade] cancelTokenHandler.js for handling cancel request. Setup it in main.js and axios/xxx.
6. [Change][Menu Management] change Add Icon
7. [Fix][Menu Management] new grafana lang keys cause uploaded image invisible
8. [Change][Page Dashboard] Set default Number Per Page to 50
9. [Change][ProfileCard] Remove el-scrollbar. menuManagement.vue & profileManagement.0.51.vue wrap el-scrollbar.

**Test**
1. test 1 ~ 2,8
    - [x] page dashboard -> check new UI in mac
    - [x] page dashboard -> check new UI in windows
    - [x] page dashboard -> check toolbar fixed at top when scroll
    - [x] in menu tab -> sort
    - [x] in menu tab -> avaibility
    - [x] in menu tab -> search
    - [x] in menu tab -> change page
    - [x] in menu tab -> change Cards per page
    - [x] in menu tab -> add a menu
    - [x] in menu tab -> edit a menu
    - [x] in menu tab -> delete a menu
    - [x] in not root org -> no menu tab
    - [x] in dashboard tab -> sort
    - [x] in dashboard tab -> search
    - [x] in dashboard tab -> add a dashboard
    - [x] in dashboard tab -> edit a dashboard
    - [x] in dashboard tab -> delete a dashboard
    - [x] in menu management -> change category
    - [x] in menu management -> search
    - [x] in menu management -> add a menu
    - [x] in menu management -> edit a menu
    - [x] in menu management -> delete a menu
2. test 3, make sure searchCheckboxDropdown.vue works fine on another page
    - [x] Page Device -> Model filter change
3. test 4 ~ 5 in slow 3G
    - [x] Page Object -> Page Dashboard -> before API finishs, go back to Page Object -> check whether request canceled
    - [x] Page Object GET work fine 
    - [x] Page Event GET work fine
    - [x] Page Notification GET work fine
    - [x] Page Plugin GET work fine
    - [x] Page Forwarding GET work fine
    - [x] Page Archiving GET work fine
    - [x] Page User GET work fine
    - [x] Page User Management GET work fine
    - [x] Page Profile Management GET work fine
    - [x] Page Devices GET work fine
    - [x] Page Advanced Setting GET work fine
    - [x] /index/systemSetting/devtool GET work fine
    - [x] Page Advanced Setting GET work fine
    - [x] Signup one account success
4. test 6~7
    - [x] in menu management -> check add icon
    - [x] in menu management -> add menu -> uploaded image -> save -> check the image
5. test 9
    - [x] in menu management -> check el-scrollbar
    - [x] in profile management -> check el-scrollbar

### Alice
#### feature/recRate-rule-change-and-verify

**Purpose**
[UploadProfile][change] 
1. remove the second option
2. update excel (guide & template)
3. Verify the legality of the recRate

**Test**
1. Set Object -> add parameter(constant, primitive, calculation) -> check recording rate was removed option that above 60 (type String keep 0 & 1)
2. pageArchiving -> select object name -> edit right pop-up -> check recording rate was removed option that above 60 (type String keep 'By Source')
3. upload legality excel(recRate is 15) -> pop up error list dialog -> show the error cell and rule

#### feature/fix-wrong-comment

**Purpose**
[Profile][fix] wrong comment

**Test**
1. Test for Profile Management
    - [x] check "No Object Profile, yet." and "You can configure and showcase your object profiles here!" is normally

## 2021/10/05
### Tingwei
#### [Upgrade][Menu] Theme, etc.

**Purpose**
1. [Upgrade][Menu] Theme
2. [Upgrade][Menu] Separate sys JSON with the other languages JSON
3. [Upgrade][Menu] Title Preview width 600 px refers from Grafana max-width CSS
4. [Update] Delete unused image.
5. [Update] Correct the folder name, from hedaer_preview to header_preview
6. [Update] Delete unused .preview-block CSS in src/components/popupdialog/dashboardPanel/panels/ene_worldmapcard_panel/cardItemListTree.vue. The CSS will import images which are used in menu, but in ene_worldmapcard_panel SRPDashboard, it is unused.

**Test**
1. test 1~2, 4~5
    - [x] add menu -> save -> click "Visit Site"
    - [x] edit menu -> change theme -> click "Visit Site"
    - [x] old version menu (no theme.style key in Json) -> click "Visit Site" -> no theme in Query String
    - [x] edit old version menu (no theme.style key in Json) -> default theme is Gray -> change theme -> save -> click "Visit Site"
    - [x] create a srpframe from Grafana -> add an "italiano" lang -> in BI, click "Visit Site"
    - [x] -> the menu created from Grafana -> change theme -> change some fields -> save -> click "Visit Site"
    - [x] -> check whether the "italiano" lang srpframe did not change
2. test 3
    - [x] edit menu -> input Long menu title -> check preview
4. test 6
    - [x] edit ene_worldmapcard_panel SRPDashboard -> add item -> check the card item in Tree

## 2021/10/07
### Alice
#### feature/renew-cache

**Purpose**
1. [Change] renew org and parameter cache

**Test**
1. test for select parameter in forwarding dialog 
    - [x] click object tab -> add a object & parameter -> save -> change to forwarding tab -> add forwarding rule -> add URL Parameters -> select parameter -> save -> save
    - [x] change to object tab -> edit -> add parameter -> change to forwarding tab -> edit -> edit parameter tag -> check parameter was added
    - [x] cancel edit parameter tag -> edit it again -> check it cache
    - [x] change to object tab -> add a object -> change to forwarding tab -> edit -> edit parameter tag -> check object was added

## 2021/10/05
### Tingwei
#### [Fix] Handle new Grafana lang key, etc.

**Purpose**
1. [Fix] Handle new Grafana lang key.
2. [Fix][Menu] Wrong sync menu dialog language
3. [Fix][Menu] Wrong no menu tree item description language

**Test**
1. only old lang key in this srpframe
    - [x] menu management -> visit site by old key
    - [x] -> edit -> save -> check whether update old key to new key with the same id
    - [x] -> menu management -> visit site by new key
2. both old lang key and new lang key in this srpframe (add new lang key from Grafana)
    - [x] menu management -> visit site by new key
    - [x] -> edit -> save -> check whether new key data update & old key data does not change and does not delete 
3. test wrong language
    - [x] click Sync -> check whether sync dialog use default lang 
    - [x] edit a no menu tree item SRPframe -> check whether no menu tree item description use tab lang

## 2021/10/04
### Tingwei
#### [Fix][SRPDashboard] Can't edit a data source if the user deleted the data source binding object.

**Purpose**
1. **[Fix][SRPDashboard] Can't edit a data source if the user deleted the data source binding object.

**Test**
1. edit a srpdashboard in which we deleted its data source binding object before
    - [x] Dadicated Parameter & Object panel -> the data source which losts its binding object shows Unknown Data Source -> edit the item -> update item again
    - [x] Fixed Parameter Only panel -> the data source which losts its binding object does not show Unknown Data Source -> edit the item -> update item again
    - [x] World Map panel -> the data source which losts its binding object does not show Unknown Data Source -> edit the item -> update item again
