The purpose of this component is to hold the dirty permissions edited my the user.
This is a functional component used to create/edit/delete permissions. The edited permissions are detached from the backend.
- reduce the duplication by moving the controllers (1 per type) to the
toplevel stores
- make sure the internal properties stay in sync between save/load now
that we have just 1 common controller
- fix navigating to the Hidden section from the toast
- finish impl of hiding the token from FirstTokenReceivedPopup
Motivation:
ChannelsSelectionModel.qml is freezing the app when used with a live channel that's being edited because on each channel change the selection model is re-created.
The fix for this is to use the LeftJoinModel to unify the channels selection (a light model containing only keys) and the full channels model containing the channels data. On top of this, the SortFilterProxyModel is added to decorate the model with the roles expected in the UI. Another improvement is by replacing the ExpressionRole with the FastExpressionRole.
turns out the model from the comminitiesModule doesn't contain the
members; use the sectionModel (as in all other places) instead which
already has the correct info
additionally, fix the InviteFriendsToCommunityPopup display, it appeared
empty all the time
Fixes#12967
- update the CollectiblesView.qml view and delegates according to the
latest design
- add CollectiblesView to Storybook
- add new section for Community Collectibles
- (re)use the community badge with tooltip and link action to take the
user to the respective community
- add Community Collectibles info icon + popup
- create context menu for token delegates with actions
(Send/Receive/Manage tokens/Hide)
- add confirmation popups when hiding a single or all community tokens
- emit a toast bubble after hiding the token(s)
- fix eliding the community name inside ManageTokensCommunityTag
- some smaller fixes/cleanups
Fixes#12519
This commit adds a fetch messages option in the chat.
If clicked it will re-fetch messages for that chat for 1 month.
It's disabled in production since that's not something we want to go
live with, but it's very helpful for dogfooding/debugging while message
reliability has still some issues.
- It adds link to the corresponding tokens model in `EditCommunityTokenView`.
- It adds validation for `name` and `symbol`.
- It updates `storybook accordingly.`
Closes#12365
- display a customized floating bubble to save/apply the settings
- display a toast message on Apply with an action to jump to Wallet main
page
- add home/end/pgup/pgdown keyboard shortcuts to StatusScrollView to be
able to navigate more easily in long list views
- some smaller fixes and cleanups in wallet and settings related views
Fixes https://github.com/status-im/status-desktop/issues/12762
This is a first step to globalize how toasts are treated in the qml layer:
- Created `ToastsManager.qml` class to deal with all app toasts generation.
- Started moving community transfer ownership related toasts to the new manager class.
- Some small cleanup in `AppMain.qml`
Nim backend:
- Created new api method to deal with extended / action toasts.
- Updated needed model / item with new needed roles.
Closes of #12175
Setting signer logic and computing fees.
AC messages for different transfer ownership states.
Declining ownership logic.
Added `CommunityTokensStore.qml` stub.
Removed deprecated property.
Issue #11964
* feat(Communities): Introduce pending states for kick, ban and unban actions
Close#11795
* feat(Communities): Show bannedMembers pending states on the UI
* feat(Communities:) make kick, ban and unban methods async
* feat(Communities): add signal about community membership status change
* fix(Communities): move membership managment to to the appropriate model
* chore: review fixes
- Button from community column.
- Button from community overview.
- Updated storybook pages (settings overview related) according to new components requirements.
Part of #12174
which can disable or launch editting of the shard index for a given
community
- integrate it into community settings
- add a dedicated storybook page and make it also available from
EditSettingsPanelPage
Needed for https://github.com/status-im/status-desktop/issues/12197
which can configure and enable the shard index for a given community
- integrate it into community settings
- add a dedicated storybook page and make it also available from
EditSettingsPanelPage
Needed for https://github.com/status-im/status-desktop/issues/12197
- Updated `CollectibleDetailsView` to show owner and tMaster token collectible types with the correct design.
- Updated `CollectiblesView` to show owner and tMaster token collectible types with the correct design.
- Modified send footer option if collectible selected is an owner token.
- Added logic to wallet rootstore to handle selected collectible data.
- Reverted changes on property selectAccount in sendModal
Closes#12172
It opens information popups when community owner token is still not created:
- From Overview / Transfer ownership button
- From Overview / How to move control node button
- Added support into storybook
Closes#12173
- Applied new design to transfer ownership popup.
- Added support in storybook.
- Added navigation to transfer ownership popup from community settings / owner token footer.
- Added navigation to transfer ownership popup from community settings / overview.
- Linked wallet send modal to the transactions popup with the needed pre-populated data.
Closes#12171
- Mint Owner token / TokenMaster token form: Changed text description for network field.
- Mint asset / collectible: Lock network. It should be the same network than the owner token one.
- Mint asset / collectible: Additional simplification / clean-up of description field.
- Added network model helper file.
Fixes#11989
Added filter in collectibles airdrop's list:
- TMaster token will be shown ONLY if user is the community owner.
- Owner token is always hidden.
Fixes#12089
* feat(Communities): Refactor token holder list item to separate file
Close#11858
* feat(Communities): Use contact details for community member info
* feat(Communities): reuse StatusMemberListItem for member token holder
* Review fixes
Co-authored-by: Michał Iskierko <61889657+endulab@users.noreply.github.com>
---------
Co-authored-by: Michał Iskierko <61889657+endulab@users.noreply.github.com>
Fixes: #11480
* hook up join popup to permission model
* fix chats not being put in the permission model
* make it work with channel permissions as well
---------
Co-authored-by: Jonathan Rainville <rainville.jonathan@gmail.com>
The actions are disabled by default. The proper visibility can be set when the backend implementation is done.
+ Fix one issue where the button tooltip was triggered when the pending state button is not visible
Also fix other smaller issues found in this panel:
- display correct user name (not just `model.displayName`)
- do not display tooltips for invisible buttons
- vertically center the action buttons
- use `SearchBox` for consistency
Fixes#11848
* feat(CommunityTokens): proposal of CommunityCollectibleOwner
Close#11143
* feat(Communities): implement viewProfile from token holders list
* fix: re-request community token owners after a contact get removed from a community
Changes in the Permissions design:
1. If the collectible is unique the amount input is disabled. 1 is auto-selected
2. Show `Max. 1` for unique tokens and empty string for other tokens
Changes in the Airdrop design:
1. Show `Max. 1` for unique tokens
- It adds proxy of wallet accounts only in a single place (wallet root store) and pass the tuned model through the rest of views.
- It updates `storybook` accordingly.
Closes#11829
Fixes#11817
Instead of getting revealed accounts from the community description (it's no longer available), uses the new `getRevealedAccountsForAllMembers` API. Uses it async so that we do not slow the start process. The model is updated correctly when we finish loading them.
- It adds info panel when control node is offline.
- It modifies UI texts when control node is offline.
- It updates storybook updating permissions model and allowing permission state changes.
NOTE: Only UI, no backend. There is 1 expected integration point: permissions model item `permissionState` role.
Closes#11769
This commit includes the following changes:
1. Request from backend the messages count in a specific interval as opposed to all messages timestamps in that interval.
2. Update the chart end date before refreshing the data
3. Fix metrics type parsing in community service
4. Fix a bug where the new incoming data was not processed by ChartJs without a hover event on the chart. The fix here is to manually request paint() on model changes.d
Issues found and not handled here:
1. On large communities the backend request can take 3 minutes to complete
2. CPU usage can easily go to 100% when switching chart tabs on large communities. All the requests are processed by the backend.
It seems that for `macOS`, `ParentChange` trigger was not correctly set if using specific `when` condition on desktop app (working properly on storybook). Setting it always to `true`, it does the trick and reparents footer component as expected.
Fixes#11742
* feat(Community): Community messaging statistics chart
Close 11152
- Use se `collectCommunityMessageMetrics` for messaging statistics chart
in community overview
* feat(Community): Transfer community metrics with dto objects
* feat: impl simple string-based model for community metrics
* fix(Community): Review fixes and fix for changing community when chat is open
* Update src/app/modules/main/chat_section/controller.nim
Co-authored-by: Jonathan Rainville <rainville.jonathan@gmail.com>
---------
Co-authored-by: Jonathan Rainville <rainville.jonathan@gmail.com>
- In case of `Owner` and `TMaster` token deployment failed, a `Retry` button must be shown in minted tokens pages and it will navigate to the `Edit page` the same way it's done by using `Retry` button inside the item selected.
- Updated storybook accordingly.
Closes#11613
Restrict the character set to basically 7-bit ASCII plus some punctuation
in community/chat/profile related popups in order to:
- reduce the risk of impersonation (UTF-8 characters might look the same
despite being a different codepoint)
- narrow down the set of characters in order to keep the new share URL
format short
Closes#11307
- Added `buttonEnabled` property to `StatusInfoBoxPanel` so it can be set from outside.
- Fixed airdrop button enable condition in minting flow. It is enabled when minting state is completed and if the token properties are infinite supply or there are still remaining tokens to be airdropped.
- Updated storybook accordingly.
Fixes#11496
Fixes#11532
Hooks the Airdrop views to the new airdropAddress model property so that the fee calculation and the airdrop transaction can use a valid address.
Also: refactor(communities), moved request to join funcs to communities module
This is needed because we can now request to join from the Import popup
Closes#11242
- remove padding and use margins so that the listview can span the whole
width while having the scrollbar neatly next to it
- make the section header both inline and floatable (which makes it
always visible, even when scrolled away)
- fix the special search results "section" to behave the same way
- sort the results by category and name
- expose the `allTokensMode` for easy testing with storybook
Closes#10201
1. Fix an issue where importing a community using private key triggers the import finished event without updating the community data if the community is already imported with public key
2. Show toast messages on importCommunity and privateKeyRemoved events
3. Group community import toast messages handlers and move them from ContactsColumnView to AppMain. IMO these toast messages handlers should not be dependent on ContactsColumnView.
This change corrects legacy naming that was causing confusion.
Community invites are no longer sent to users. Instead, the community is
just shared. If a user is interested in joining this shared commmunity,
they must submit a request to join.
- display an info box when in wallet testnet mode with a CTA to disable
it (functionality enabled for production builds only)
- the CTA can be tested/seen via OverviewSettingsPanelPage storybook page
Closes#11468
- Added `storybook` support to change minted tokens model with Owner and TMaster tokens.
- Added new properties into the `tokenModel` model.
- Extended `CollectiblesView` to allow Owner and TMaster tokens representation.
- Updated `MintedTokensView` in order to display Owner and TMaster tokens.
- Added logic to `enable/disable` MINT and AIRDROP token depending on the owner / tmaster tokens deploy state.
- Added temp buttons in MINT and AIRDROP pages that keeps enabled the flows although owner and tmaster backend is not ready.
- Extended navigation from outsite to minting section, depending on user profile and owner and tmaster states.
- Hide footer options in case of owner token item visualized.
- Added retry flow.
Closes#11299
- close the first popup before opening another
- fix `SignTokenTransactionsPopup` title (it would display "Burn
undefined tokens")
- remove duplicate close() calls
- `destroyOnClose: false` is the default
Fixes#11498
Modify the PermissionUtils a bit to return an array of `[key, channelName]`
instead of just the keys and use it to display the channel names in the
permissions overview panel
(I could have used `QVariantMap` or `QJSonObject` here but those are
always sorted by `key`, so had to resort to using a plain vector/array)
Fixes#11584
Adding the export control node popup. The popup is behind an authentication wall.
1. Create ExportControlNodePopup qml
2. Add the popup in storybook
3. Create authentication flow with qml callback to open the popup after authentication
4. Add the popup open action in Global.qml
- It creates a generic `TokenInfoPanel` that will be reused in different mint token views.
- It creates new `EditOwnerTokenView` and storybook page support.
- It adds new `EditOwnerTokenView` into the minting flow, linking sign transaction flow and adding needed method to the store to do the deployment.
Closes#11296
Fixes#11514
The problem was that we were not handling the error from request to join correctly.
Then I added an event that sends a signal to the QML to show a toast about an error. I don't show the actual error to the user because usually it's not super helpful. It will be in the logs.
The status-go change makes it so that we don't save the request to join if the permission check failed.
- Added start panel in tokens welcome page.
- Added start panel in airdrop welcome page.
- Updated e2e tests according to new requirements.
Closes#11284
1. Adding OverviewSettingsFooter.qml according to design
2. Adding the footer to storybook
3. Add the footer in the overview page
4. Remove the squish tests for the old footer
The same components are used to display data from rootStore.assetsModel,
rootStore.collectiblesModel (permissions) and
root.community.communityTokens (airdrops). The models have different
roles and need adjustments before passing to ui components.
Closes: #11309
Additionally:
- stack components directly define content of the left list
- fixed navigation from Permissions section to minting
- various code style fixes
Closes: #11179
- It creates specific token artwork panel for owner token and token master token representation.
- It adds support to new component in storybook.
Closes#11294
Fixes#11272
The problem was that we didn't handle the cancelation (checking with password was empty).
Now we do and we send the signal to cancel when it's the case.
permissions
This commit fixes a bug that admins are not able to do any permission
actions (editing/deleting). The issue was that there was a check for
those CTAs only to be visible if the logged-in user is the owner of the
community, not an admin.
Closes#11092
- header buttions/title/subtitle simplified
- no need to use states
- no need to use internal `d` object to pass data between pages
- permissions list scroll position preserved when navigation back from
other views
- storybook: allow "back" navigation to cover whole flow in sb
- fix some regressions in permissions-related pages
improved
- management of header simplified, no states needed
- no need to use StackViewStates helper
- no need to use internal `d` object as a proxy to pass data between
pages
- StackView used as a base class
- clipping problems fixed (#11285)
- scrolling problems fixed (#11289)
- all flows working from the storybook
- header management simplified
Closes: #11285Closes: #11298
Welcome info is a placeholder when list of tokens is empty. For that
reason is hander to keep in MintedTokensView instead of in MintedTokensSettingsPanel
and maintain additional state for that.