Commit Graph

490 Commits

Author SHA1 Message Date
yenda 26b97ddf43
introduce system-tags
Signed-off-by: yenda <eric@status.im>
2019-03-25 16:55:09 +01:00
yenda 5e7186ed52
[fix 5695] remove close icon in add to contacts bar
Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2019-03-21 13:44:00 +01:00
Andrea Maria Piana 25ea0192e5
Fix qr code and bootnode
Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2019-03-21 13:40:45 +01:00
tbenr b1331378d5
fixes #6597
Signed-off-by: Pedro Pombeiro <pombeirp@users.noreply.github.com>
2019-03-06 17:09:58 +01:00
Andrea Maria Piana b26b6ee5e0
Add unpinning of mailservers
Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2019-03-04 14:06:09 +01:00
Andrey Shovkoplyas c491654eec
[#7262] Remove shortcut creation when following universal links inside status
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2019-03-01 17:00:54 +01:00
Andrea Maria Piana edf810444d
Fix concurrent retry-request
Sometimes it happens that the expired signal is received while the
there's a new request in flight.
This happens in cases such as:

1) We send a request (A)
2) We get disconnected from the mailserver
3) We connect to a new mailserver
4) We send a request (B)
5) We receive an expired signal for A

In such cases the request should not be retried or counted as a failure.

Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2019-02-28 15:28:59 +01:00
yenda 6b6847a1ba
[feature] search chats
Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2019-02-26 18:01:25 +01:00
Andrea Maria Piana 6a42580fc2
Remove separate topic from group chats
Currently the separate topic was not used, as it's a bit tricky to
coordinate when multiple devices from different versions are present,
with the partitioned topic, probably this optimisation is not necessary
anymore, so removing this for now.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-02-26 17:18:26 +01:00
Andrea Maria Piana 71654a6829
Confirm pairing messages
Partially addresses https://github.com/status-im/status-react/issues/7513
This commit adds confirmation to pairing messages, which previously were
not confirmed.

Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2019-02-26 17:12:05 +01:00
Andrea Maria Piana 229f5ae108
Dont change mailserver if no network
When we are offline, we don't try to change mailserver, and we don't
show a pop up to the user, as it is not that the mailserver is not
working, we are just offline.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-02-26 15:32:54 +01:00
Andrea Maria Piana c9994b5d0f
Dont override last-clock-value on messages
The denormalized-clock-value was erroneously set to the one of the last
message received. This meant that on chats were the clock-value raced
ahead of the timestamp (#status), a message from the mailserver or a
message from someone with an old clock-value would basically make those
messages be sorted in the past.

The correct behavior is that last-clock-value for a given chat should be
the maximum last clock value ever seen for that chat.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-02-21 13:41:06 +01:00
Andrea Maria Piana 9c6cce7d4d
Allow to send transactions to non-contacts
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-02-18 11:33:39 +01:00
Andrea Maria Piana bddae03ab2
Allow multiple push notifications
We keep tokens synchronized across devices, so that the user can notify
us on any paired device.
Currently we record the installation id associated to the fcm-token even
though is not necessary, but it will be once we send device-to-device
messages, in which case we want to notify only those devices.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-02-14 16:33:50 +01:00
yenda 77b792a37a
[#6850] related refactoring
- remove unecessary subscriptions related to add-contact-bar

Signed-off-by: yenda <eric@status.im>
2019-02-13 12:38:31 +01:00
Andrea Maria Piana 7960fdef85
Publish contact updates periodically
Currently it's very easy for contact details to get out of sync, the
simplest example is:
A & B are contacts.
A changes name.
B receives the updated name.
B re-install the app.
Until A changes name again, B will not see their name, picture and won't
be able to send push notifications.

This PR changes the behavior to publish account informations to contacts
every 24 hrs, to add some redundancy in this cases.

It also publishes a contact code every 12hrs.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-02-12 14:20:45 +01:00
mestorlx 0471d5fd72
Added utility function to test addresses according to EIP55.
Added pop-up message when addres checksum fails in wallet/send/enter recipient address.

Signed-off-by: Julien Eluard <julien.eluard@gmail.com>
2019-02-11 11:06:24 +01:00
kn 6988950ea8
[#6973] Replace react-native-i18n with react-native-languages 2019-02-09 23:27:46 -08:00
Andrea Maria Piana 14e887160a
Dont setup topic as it resets the discovery filter
Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2019-02-08 10:57:21 +01:00
Andrey Shovkoplyas 4c4fb6bbe9
[#5584] Implement Manage permissions screen and option for web3 provider Opt-in access
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2019-02-06 10:38:20 +01:00
Dmitry Novotochinov 1b836bf7ec
[#7006] login with keycard
Signed-off-by: Dmitry Novotochinov <dmitry.novot@gmail.com>
2019-02-06 00:20:07 +03:00
yenda 444c6af319
[refactor] contact model: remove unused fields and add `blocked?`
- dapp related fields are removed since it is not used anymore
- blocked? field is added for futur block user feature
2019-02-05 16:28:50 +01:00
Igor Mandrigin e2f53418f3
Revert "don't auto-generate contact address from whisper pub key"
This reverts commit b3416f5ad5.

Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2019-02-04 16:08:49 +01:00
Andrea Franz b3416f5ad5
don't auto-generate contact address from whisper pub key
Signed-off-by: Andrea Franz <andrea@gravityblast.com>
2019-02-04 13:58:21 +01:00
Roman Volosovskyi fe7c7088db
Use partitioned topic for discovery
Currently we use a single topic for discovery.
This provides the best obscurity at the cost of bandwidth, as a message
sent on the discovery topic will be received by any peer.
This PR changes this behavior and start listening on a partitioned
topic.
Each pk will be hashed to a limited number of topics.

Everytime someone is in a conversation with someone from another topic
they will have to listen as well to avoid loosing obscurity, because we
only forward messages that we also advertise in the bloom filter.

The choice for the number of partitions depends on 2 factors:

1) The expected number of users using the network
2) The average number of contacts each user

Any change to the discovery topic will need to be split across 3
releases, to avoid breaking compatibility:

1) Listen to the new and old topic, publish to the old topic
2) Listen to the new and old topic, publish to the new topic
3) Listen to the new topic, publish to the new topic

This is step 1.
2019-02-01 14:40:54 +02:00
Andrea Maria Piana 89725d693a
Add pairing docs link, disable pfs toggle in release
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-01-31 07:49:37 +01:00
Andrea Maria Piana 13b04f17eb
Enable pairing & contact recovery
This PR enables pairing outside of dev-mode and contact-recovery, which
is useful in the case a new device is added or re-installed.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-01-29 18:25:25 +01:00
Andrea Maria Piana 52ae2c2bfe
Style header group-chats
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-01-29 10:31:59 +01:00
Roman Volosovskyi 9daef17f11
Stop sending seen messages
Currently, these messages are not used and should be properly revisited
later. It only generates extra traffic on discovery topic.
2019-01-25 09:23:00 +02:00
Pedro Pombeiro d3f1b37c12
Use new status-go and rename NotifyUsers
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-01-24 15:41:32 +01:00
Andrea Maria Piana 2b2c44c9a5
Add device name to pairing
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-01-24 11:29:24 +01:00
Julien Eluard a825175aea
Fixed incorrect parameters provided to Command#yield-control
Signed-off-by: Julien Eluard <julien.eluard@gmail.com>
Signed-off-by: Pedro Pombeiro <pombeirp@users.noreply.github.com>
2019-01-23 19:35:50 +01:00
Dmitry Novotochinov cee18d23b8
[#7132] add keycard settings
Signed-off-by: Dmitry Novotochinov <dmitry.novot@gmail.com>
2019-01-23 20:11:23 +03:00
Igor Mandrigin 94022523a1
Use new Infura API.
As per announcement, we need to switch our Infura project IDs.

> As previously announced, accessing Infura will begin requiring a Project ID generated from the new Infura Dashboard. If you are using Infura and have not yet migrated your project, please take the time to do so now. The first milestone in this transition will be activated next week on January 23, 2019 at 20:00 UTC.

https://blog.infura.io/infura-dashboard-transition-update-c670945a922a

The new project is created with ID `f315575765b14720b32382a61a89341a`
and the API keys are updated.

Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2019-01-22 12:34:16 +01:00
Pedro Pombeiro 5a69b4198e
Update PNs to use data-only messaging, and only encode/decode data values. Fixes #6772
Fix navigation to chat when PN is tapped while signed off. Fixes #3488

Anonymize PN pubkeys. Part of #6772
2019-01-17 19:23:55 +02:00
Igor Mandrigin 4af2073388
Revert "Fixed incorrect parameters provided to Command#yield-control"
This reverts commit ac1de8c690.

Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2019-01-17 15:15:43 +01:00
Julien Eluard ac1de8c690
Fixed incorrect parameters provided to Command#yield-control
Signed-off-by: Julien Eluard <julien.eluard@gmail.com>
2019-01-17 12:46:27 +01:00
Roman Volosovskyi 664cbf6bbe
Sign-in flow docs and tests 2019-01-15 17:00:58 +02:00
Igor Mandrigin e8de37f5ef
Report messages as "processed" to status-go only after they were successfully stored in the DB.
Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2019-01-14 19:12:26 +01:00
Andrea Maria Piana b56fd2e29f
Show popup when device is not targeted.
When someone is sending a pfs message to us but did not include our own
device, a pop up is shown propmting the user to connect with the user.

The reason for receiving messages that are not targeting our devices are
various:

1) The account was just recovered (which means it is a new installation
id)
2) More than 3 devices are in use (we only keep max 3 devices in sync)
3) The sender has used an old bundle which does not include the current
device

Eventually we will reduce the likelihood of this scenario happening, but
we can't dismiss it completely.

It's only enabled when PFS is enabled.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-01-09 09:36:36 +01:00
Andrea Maria Piana 3e761c3b85
Extend message hash confirmation for group chats
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2019-01-08 13:59:30 +01:00
Andrea Maria Piana e8069f523d
Move group chats to their own topic
This commit moves group chats to their own topic, based on the randomly
generated chat-id. It falls back on the discovery topic for those peers
who we can't fingerprint the version, for backward compatibility.
2019-01-08 13:58:41 +01:00
Andrea Maria Piana 881691fbc3
Add joining of group chats
Members will now have to explicitly join a group chat to start receiving
messages from it.

Messages are still sent to users who have not joined for backward
compatibility.
Group updates are unaffected.
2019-01-08 13:58:40 +01:00
tbenr 469556a04b
Fixes #6594
Signed-off-by: Julien Eluard <julien.eluard@gmail.com>
2019-01-07 14:33:38 +01:00
Vitaliy Vlasov c8e5fd6a9c
Add desktop keyboard shortcuts
Signed-off-by: Vitaliy Vlasov <siphiuel@gmail.com>
2019-01-04 00:30:19 +02:00
Roman Volosovskyi 15747558fa
[#7179] Fix command message preview in the list of chats
The bug was introduced in #7055.

`message-type` was stored and used instead of `content-type` which
caused incorrect displaying of the last message preview if the one was a
command.
2018-12-27 16:35:45 +02:00
Roman Volosovskyi 768da1a5f0
[slow sign in] Fetch generic password only once
Previously it was fetched each time when any realm db was opened,
but it should happen only once. Saves up to 300ms on sign in.
2018-12-27 12:37:29 +02:00
Roman Volosovskyi e3cc50c7d7
[slow sign in] Adding symkeys and filters in batch
This commit changes the way how keys are restored:
1. batch of `ssh.addSymKey` requests for all sym keys is sent at once
2. `:status-im.transport.core/sym-keys-added` event is dispatched with
   results of all successful `ssh.addSymKey` calls
3. filter is created via `ssh.newMessageFilter`
4. `:shh.callback/filters-added` event is dispatched with all added
   filters as a parameter
5. profit

In ideal case only 2 `re-frame` events are dispatched.
2018-12-27 11:49:50 +02:00
Andrea Maria Piana 5f910a0bec
Sync public chats
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-12-24 14:35:17 +01:00
Roman Volosovskyi 9a9cd0d8d0
[slow sign in] Denormalize last-clock-value
In order to get `:last-clock-value` one extra query was executed for
each chat during initialization.

Implementation:
- `:last-clock-value` field was added to `chat` entity
- this field is updated when the message is sent/received
- extra query was removed
2018-12-24 14:18:42 +02:00
Julien Eluard 5db9aa9ac7
Reintroduced broken PR #7092 with fix
Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2018-12-21 14:55:32 +01:00
Dmitry Novotochinov 962c49e345
add keycard installation
Signed-off-by: Dmitry Novotochinov <dmitry.novot@gmail.com>
2018-12-20 15:43:37 +03:00
Roman Volosovskyi c440b7a3a7
[slow sign in] Denorlmalize last message
The last messages of the chats are necessary to properly show the chat
list, which is shown right after signing in. Before this commit, the
last message was retrieved as one of 20 last messages fetched for each
chat.

Implementation:
- `:last-message-content` and `:last-message-type` fields were added to
  `chat` entity
- both fields are updated when messages are received/sent
- loading of the last 20 messages for each chat was removed as
  initialization step
2018-12-17 13:29:10 +02:00
Roman Volosovskyi 07e8f6908d
[#6952] Fix odd app behavior after quick logout
This commit changes the way how/when the node is started/stopped:
1. `node` is not started on the app startup
2. When the user presses "Sign in" button the node is started
   with user specific configs (`InstallationID`, custom bootnodes, etc),
   and only after that `Login` call is performed.
3. When the user creates a new account, at first the node is started
   with default params (the same as would be used when user signs into
   the app after account creation whithout changing any setting), then
   `CreateAccount` call happens, then `Login`.
4. When the user restores their account, the flow is the same as `3`
   but with `RecoverAccount` instead of `CreateAccount`
5. When the user logs out the node is stopped. That's it.
2018-12-17 13:27:17 +02:00
Andrea Maria Piana d760f1696c
Add mailservers confirmations & use peer count for online status
We now check that we are only connected to some `peers` instead of using `NetInfo` from `react-native`.

This is because it has been reported to be quite flaky at times, not reporting online status after sleeping, and for privacy concerns (on ios it pings `apple.com`, on desktop `google.com`).

Adds a new banner `Wallet Offline` and change `Connecting to peers` to  `Chat offline`.

A message will be marked as `Sent` only if it made it to the mailserver you are connected to, which will increase the guarantees that we can make about a message (if you see it as sent, it has reached at least a mailserver), this has the consequence that:

- If you are not connected to any mailserver or the mailserver is non responsive/down, and you send a message, it will be marked as `Not sent`, although it might have been actually made it in the network.

Probably this is something that we would like to communicate to the user through UX (i.e. tick if made it to at least a peer, double tick if it made to a mailserver )

Currently I have only enabled this feature in nightlies & devs, I would give it a run and see how we feel about it.
2018-12-12 19:53:01 +01:00
Rob Culliton 88d3e78454
change 9+ to actual count of unread messages
unread-messages-count fn, based off Maciej's comment on #6749

adding test, some difficulty running the test suite locally via clj

actually use the new functionality for displaying on desktop

first pass at updated styling for unread count chat icons

styling pass 2: finer attention to detail for the purple/blue icons

a bit more padding bloat to accomodate for the number 1, which occurs
frequently :)

remove counter from "home" icon on desktop

Signed-off-by: Vitaliy Vlasov <siphiuel@gmail.com>
2018-12-12 15:55:13 +02:00
Igor Mandrigin afc368b1b0
Upgrade status-go to 0.17.6-beta (Constantinople).
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-12-10 12:59:44 +01:00
Roman Volosovskyi b6e515618b
[#6956] upgradable `message-id`
Implementation:
1. `transport.utils/message-id` function is called only in three places now
   and accepts `from` and  `raw_payload` as parameters.
   ID is calculated as `sha3(from + raw_payload)`.
2. This means that for wrapped private group chat message
   the raw payload of `GroupMembershipUpdate` is used.
2018-12-05 11:22:43 +02:00
Andrea Maria Piana dfbc27c5d7
Allow admin to leave chat
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-12-04 10:17:50 +01:00
Vitaliy Vlasov dc4841f041
Add react-native-desktop-menu native module
Signed-off-by: Vitaliy Vlasov <siphiuel@gmail.com>
2018-12-01 02:03:06 +02:00
Andrea Maria Piana 5795ca8d1a
Enable group chats
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-11-30 11:12:34 +01:00
Julien Eluard e3e75e0498
[Fixes #6874] Added transaction-receipt, schedule and balance events
Signed-off-by: Julien Eluard <julien.eluard@gmail.com>
2018-11-29 23:09:45 +01:00
Andrea Maria Piana 08291a8396
Keep username/photo-path synced across devices
We add syncing of account fields in pairing messages (only photo-path &
name for now). Also a sync message is sent each time we send a
contact-update, to keep other devices in sync. The change is compatible
with previous clients as it's just an accretion of transit.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-11-29 11:37:14 +01:00
tbenr 2d5c4e3892
fixes #6601
Signed-off-by: Julien Eluard <julien.eluard@gmail.com>
2018-11-25 21:02:58 +01:00
Roman Volosovskyi 5d5847e4b9
[slow sign in] Add unviewed messages counter to chat entity.
Before we fetched ALL user-statuses with `status=received` (which means that
a message hasn't been seen), iterated them, grouped by chat and then stored
`message-ids` of these `user-statuses` in chat's `:unviewed-messages` key.

This commit introduces :unviewed-messages-count field in chat entity.
That means that there is no need to iterate `user-statuses` in order to count
a total number of unviewed messages, it is always stored along with chat.
In the rest of it, the difference is only that chat's db record should be
updated each time when unviewed messages are seen.
2018-11-23 17:08:48 +02:00
Andrey Shovkoplyas 5dd345fe49
[#6643] Allow chat command suggestions to select parameter
Signed-off-by: Julien Eluard <julien.eluard@gmail.com>
2018-11-22 15:57:39 +01:00
Bruce Hauman a5c5e1831f
better protect transaction history polling from errors
Go blocks parse try catch blocks and turn them into event
dispatches. This captures the original intent of the code to catch
errors and terminate the current async worker execution.

Signed-off-by: yenda <eric@status.im>
2018-11-21 17:25:36 +01:00
Julien Eluard ee4cafbbe3
[Fixes #6784] Fixed some ABI codec issues
Signed-off-by: Julien Eluard <julien.eluard@gmail.com>
2018-11-21 11:12:19 +01:00
Goran Jovic 72e7ae2fff
feature #6509 - validating token config against their contracts; moved token info from compile time list to app-db; fixed any discrepancies in existing info
Signed-off-by: Goran Jovic <goranjovic@gmail.com>
2018-11-20 17:18:08 +01:00
yenda 1ba7feb439
[refactor] move contact.subs and utils.contacts to contact.db
functions defined in subs need to be reusable and testable independently
from re-frame framework. they are moved into db namespace for that purpose

Signed-off-by: yenda <eric@status.im>
2018-11-19 14:30:25 +01:00
yenda 77e9aea755
[refactor] move chat.subs fns to chat.db
Signed-off-by: yenda <eric@status.im>
2018-11-19 12:30:58 +01:00
Bruce Hauman 1716643c46
[#5749] transaction history fixes
Signed-off-by: Goran Jovic <goranjovic@gmail.com>
2018-11-16 10:03:54 +01:00
Andrea Maria Piana 1104becfba
Enable syncing of contacts & style pairing section
Everytime a contact request is sent/confirmed a sync message is also
sent to other devices so the contact is kept in sync.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-11-14 13:21:14 +01:00
Eric Dvorsak 548162f733
[refactor] remove current-public-key 2018-11-09 11:16:27 +01:00
Eric Dvorsak f8f499d9b0
[refactor] rename whisper-id and whisper-identity to public-key 2018-11-09 11:16:27 +01:00
Eric Dvorsak a6da75f8e9
[refactor] remove email field in account 2018-11-09 11:16:27 +01:00
Eric Dvorsak 4804d11b0f
[refactor] remove jail-loaded? and jail-loaded-events 2018-11-09 11:16:23 +01:00
yenda a3b2bc1b87
[fix #3913] do not logout when changing mailserver
- do not logout and remove previous mailserver
from peers when changing mailserver
- rename wnode mailserver
- move transport.inbox to mailserver.core
- fix all subs and db keys

Signed-off-by: yenda <eric@status.im>
2018-11-07 17:10:18 +01:00
Dmitry Novotochinov 737d44931f
[#4433] update mac os dock badge label on new messages
Signed-off-by: Dmitry Novotochinov <dmitry.novot@gmail.com>
2018-11-07 18:18:35 +03:00
Andrea Maria Piana 693eae9cf9
Send your own messages
Adds a `chat-id` field in `content` map.

The reason it has been added to the map instead of augmenting transit is
that it would simplify the calculation of `message-id`, which in this
case is consistent for both old & new clients.

`chat-id` also represents the `chat-id` with respect of the sender, as
in 1-to-1 chats that is asymmetric.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-11-06 21:19:50 +01:00
janherich ff97345f07
Plug-in new text parsing engine 2018-11-06 19:59:24 +01:00
Andrea Maria Piana 7aa597517e
Add system messages to group chats
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-11-05 14:54:43 +01:00
Andrea Maria Piana 073dddcee0
Add pairing
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-10-27 20:43:53 +02:00
Andrey Shovkoplyas f8ef431373
[extensions] ethereum call decode params
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2018-10-25 09:22:29 +02:00
yenda e020f19da0
[fix 6500] search doesn't find name for contact that added user
- chat name is not updated with contact name
- when a contact adds the user and is added back by user, the name
of the chat is still the random name of the contact
- in active-chats subscriptions, replace the name of the chat by the current
name of the contact
2018-10-24 18:18:50 +02:00
Goran Jovic 3da2cd9b9e
feature #6250 - added xdai and poa sidechains
Signed-off-by: Goran Jovic <goranjovic@gmail.com>
2018-10-24 10:00:04 +02:00
yenda 82c3997f07
[desktop] Add search feature for chat list
Signed-off-by: yenda <eric@status.im>
2018-10-23 17:27:27 +02:00
yenda 6b1c6c7d0a
[fix 6410] error when fetching history on certain accounts
- 1-1 chats don't have a topic anymore because they only use the
discovery topic so topic is nil for these chat
- this was causing an error when initializing whisper because the app
was trying to start a filter for each of the chat including the 1-1 with
no topic
- we now filter the transport/chats to only recover sym-key and start filter
for those with a topic
2018-10-22 19:10:34 +02:00
Andrea Maria Piana 9629983f7f
Remove instabug 2018-10-19 09:18:22 +03:00
Roman Volosovskyi 4c426d9c2b
remove the rest of testfairy's mentions from the project 2018-10-18 20:54:59 +03:00
Aleksandr Pantiukhov 76a724a2e7
[#6228]: API: requesting to connect to a node that is not available crashes the application
Signed-off-by: Aleksandr Pantiukhov <alwxndr@gmail.com>
2018-10-18 16:43:42 +02:00
Dmitry Novotochinov 248e60e1d3
[#5038] desktop deep links
Add support for status-im://chat/public/status type of links

Signed-off-by: Dmitry Novotochinov <dmitry.novot@gmail.com>
2018-10-18 16:02:14 +03:00
janherich acd05e2687
Implementation of text content parsing 2018-10-16 23:13:11 +02:00
yenda 660bd2d1bd
request 7 days of history
- fetch 7 days of history when joining a chat
- make 7 24h requests to request 7 days because mailservers
ignores requests for a timespan > 24h
- make requests sequentially to avoid timeouts
- change mailserver after 3 timeouts on a request

Signed-off-by: yenda <eric@status.im>
2018-10-15 17:18:59 +02:00
Igor Mandrigin 1c4cca1004
Don't start a node while the node is already being started.
Restart it instead, so that we are sure which config is there.

Signed-off-by: yenda <eric@status.im>
2018-10-15 16:43:30 +02:00
Julien Eluard 5eeda7aa0b
Fixes #6275
Signed-off-by: Julien Eluard <julien.eluard@gmail.com>
2018-10-15 15:34:47 +02:00
yenda 1a2fcdfe3a
refactor contact models
- move models.contact and models.contacts to contact.core
- add tags field to contact and chat

Signed-off-by: yenda <eric@status.im>
2018-10-15 11:57:48 +02:00
yenda efdd76b364
refactor inbox
Signed-off-by: yenda <eric@status.im>
2018-10-11 14:47:04 +02:00
Andrea Maria Piana 84151ea996
Ignore messages with too high clock-value and prevent stored messages to pollute the database
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-10-09 14:34:29 +02:00
Andrea Maria Piana 78b6d67d79
Allow to edit group membership
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-10-09 10:40:13 +02:00
Andrey Shovkoplyas 1b6d51ff11
implemented functionality to request user action from dapps
fixed qr code js api

Signed-off-by: Goran Jovic <goranjovic@gmail.com>
2018-10-04 15:25:18 +02:00
Andrey Shovkoplyas a1d0dcc0ec
introduced new status js api according latest web3 opt-in api 2018-10-02 22:12:46 +02:00
yenda f6a50b2799
[fix 6051] log error during connexion and pass cofx
Signed-off-by: yenda <eric@status.im>
2018-10-02 14:11:05 +02:00
Andrea Maria Piana 165f1a46c7
Propagate signed membership information
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-10-02 12:06:28 +02:00
janherich 44fbe62773
Chat replies + refactoring 2018-09-28 16:15:47 +02:00
yenda f37276a648
[fix 6012] can't open dapps from deeplinks
Signed-off-by: yenda <eric@status.im>
2018-09-28 09:44:48 +02:00
Eric Dvorsak 21cc106ed3
cljs implementation of abi-spec
Signed-off-by: yenda <eric@status.im>
2018-09-26 21:58:14 +02:00
Andrea Maria Piana 0c48d09c71
Add back group chats messages
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-09-26 20:58:03 +02:00
yenda 4bd5d986b0
remove merge-fx macro
Signed-off-by: yenda <eric@status.im>
2018-09-25 15:18:44 +02:00
yenda ed2abf9101
introduce fx/defn macro and fx/merge function
intended to deprecate `handlers-macro/merge-fx`

Signed-off-by: yenda <eric@status.im>
2018-09-25 04:17:19 +02:00
Andrea Maria Piana df51731fca
Add pfs flag, installation id and nobackup data directory
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-09-24 17:47:02 +02:00
Dmitry Novotochinov 41347ae5e0
[#5898] add HW setup screens
Signed-off-by: Dmitry Novotochinov <dmitry.novot@gmail.com>
2018-09-24 16:43:01 +03:00
yenda 8459fef358
Refactor browser and permissions
- move db and models ns to browser module
- remove browser navigation/preload-data
- rewrite dapp-permission logic and move code to permissions ns
- rewrite all browser events according to guidelines and move them to
`status-im.events` ns
- rewrite tests for browser and permissions
2018-09-24 12:08:34 +02:00
yenda 1ddb09b249
Remove misleading wrap-call-once! fn
Signed-off-by: yenda <eric@status.im>
2018-09-23 17:09:07 +02:00
lokalise-bot f1dd24e3b4
Lokalise: update of translations/ko.json
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2018-09-21 07:03:27 -04:00
yenda b71005d2fa
replace all register-event-db by fx and remove trim-v interceptor
Signed-off-by: yenda <eric@status.im>
2018-09-20 13:37:31 +02:00
janherich 8913dee762
Chat refactoring
Move chat views to ui.screens
2018-09-20 13:27:43 +02:00
lokalise-bot 0658cdbdfa
Lokalise: update of polish translations
enable polish translation

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2018-09-20 07:03:24 -04:00
Dmitry Novotochinov 60cb0eb36c
[#5825] add hardwallet auth method and connect screens
* add react-native-nfc-manager to detect NFC support
* add "Choose auth method" screen https://www.figma.com/file/UfQjpWl1hmRchHIyY3Wvu2nW/Hardwallet-light-flows?node-id=259%3A29
* add "Hardwallet connect" screen https://www.figma.com/file/UfQjpWl1hmRchHIyY3Wvu2nW/Hardwallet-light-flows?node-id=258%3A594

Signed-off-by: Dmitry Novotochinov <dmitry.novot@gmail.com>
2018-09-20 12:30:47 +03:00
yenda 7dbc8a7f39
[fix 5814] fix custom network
Signed-off-by: yenda <eric@status.im>
2018-09-19 13:13:30 +02:00
Eric Dvorsak d5fcc0b003
[FIX 5813] connect to custom mailserver button fix
Signed-off-by: yenda <eric@status.im>
2018-09-18 17:37:42 +02:00
Roman Volosovskyi 6438a1387b
[#4866] intagrate react-navigation 2018-09-18 14:21:32 +03:00
janherich 031088b856
Fix unit tests 2018-09-17 12:51:57 +02:00
janherich 988a1ca2e2
Prices handling in commands impl 2018-09-12 17:39:02 +02:00
Dmitry Novotochinov ca149062ad
[#5593] Disallow decimal wei value for gas price
Signed-off-by: Dmitry Novotochinov <dmitry.novot@gmail.com>
2018-09-11 20:10:01 +03:00
Eric Dvorsak 8dc9af8917
refactoring of events into status-im.events
Signed-off-by: Eric Dvorsak <eric@dvorsak.fr>
2018-09-11 15:09:54 +02:00
Dmitry Novotochinov eb4f34da22
[fix #5063] calculate fiat amount on recipient side
Signed-off-by: Dmitry Novotochinov <dmitry.novot@gmail.com>
2018-09-07 18:01:47 +03:00
Eric Dvorsak 80aa0e9286
[feature #5213] allow user to select fleet in settings
- get wnodes from resources/config/fleets.json which is taken from
fleets.status.im
- store wnodes by fleet and not by network since they are always the same
- reset wnodes settings during migration
- add option in developper menu to select fleet
- mailservers are now presented by their real name

Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2018-09-07 15:33:29 +02:00
janherich 252d09ee05
Fix the bug and remove requests 2018-09-06 18:24:17 +03:00
Eric Dvorsak 8eb5047d7a
[fix #4819] update react-native to 0.56
Fix figwheel-bridge path in clj-rn.conf.edn
update SplashScreen
update ios to 9.0
updated Podfile.lock
downgrade cocoapods to 1.5.2
update package-lock.json
update pod repo when installing
update appcompat to v27

Signed-off-by: Dmitry Novotochinov <dmitry.novot@gmail.com>
2018-09-05 21:27:46 +03:00
Aleksandr Pantiukhov b283ffe4af
[#5315]: Status development tools: HTTP debugging, updated react-native-http-bridge
Signed-off-by: Aleksandr Pantiukhov <alwxndr@gmail.com>
2018-09-05 15:01:53 +02:00
Dmitry Novotochinov 19590c8e54
[fix #5303] Improve amount validation for /send and /request commands
Signed-off-by: Dmitry Novotochinov <dmitry.novot@gmail.com>
2018-09-04 12:53:49 +03:00
Eric Dvorsak 02191f0380
[fix 5715] make generate-sym-key-from-password mergeable
Signed-off-by: Eric Dvorsak <eric@dvorsak.fr>
2018-09-03 19:05:53 +02:00
Eric Dvorsak 3513adb7ca
[feature #5422] universal links scannable via QR code scanner
Signed-off-by: Eric Dvorsak <eric@dvorsak.fr>
2018-09-03 17:14:31 +02:00
Goran Jovic c35a651f15
bug #5542 - fixed errors when no currency selected - using usd as default throughout the app
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2018-09-03 11:48:48 +03:00
Julien Eluard ae976e205f
Added extensions loading panel
Signed-off-by: Julien Eluard <julien.eluard@gmail.com>
2018-08-31 16:41:58 +02:00
Eric Dvorsak 728831c9c2
remove unused flags
reorganize config flags
remove offline-inbox-enabled? flag
remove universal-links-enabled flag
remove add-custom-mailservers-enabled? flag
remove spam-button-detection-enabled? flag
remove flags from config files

Signed-off-by: Eric Dvorsak <eric@dvorsak.fr>
2018-08-29 16:30:05 +02:00
Eric Dvorsak bb339dc39b
refactor login flow
simplified flow:

- event `:ui/login` is dispatched
- node is initialized with user config or default config
- `node.started` signal is received, applying `:login` fx
- `:callback/login` event is dispatched, account is changed
in datastore, web-data is cleared
- `:init/initialize-account` event is dispatched

replace event dispatches by function composition

fix bug in universal links where url to be processed after login
was never removed

Signed-off-by: Eric Dvorsak <eric@dvorsak.fr>
2018-08-28 14:46:33 +02:00
Eric Dvorsak dacfe97a58
refactor events and fns to dedicated namespaces
- move init events and fns to dedicated namespace
- move web3 events and fns to dedicated namespaces
- move signal events and fns to dedicated namespace
- move notifications events and fns to dedicated namespace
- cosmetic fixes
- remove print statements
- fix formating
- remove unused imports
2018-08-28 14:44:55 +02:00
Eric Dvorsak 002f3e73d1
refactor :initialize-account into single event
fix tests for :initialize-account refactoring
fix destructuring typo
2018-08-28 14:44:55 +02:00
Igor Mandrigin 02545cc3d0
Implement "Save Password" for iOS.
Update react-native-keychain to 3.0.0 release.

Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2018-08-27 17:09:55 +02:00
Eric Dvorsak 67a86f57e9
[fix #5612 #5613] improve contact code validation
- fix contact code validation for universal links
- go to profile when following universal link pointing to
user own contact code
- fix contact code validation for add contact field

spec for validating public-key has been changed to a
regexp that only accept valid normalized public-key

Signed-off-by: Eric Dvorsak <eric@dvorsak.fr>
2018-08-24 15:35:08 +02:00
Goran Jovic d46eec0bc8
bug #4476 - fixes reoccurrence of recovery phrase in logs
Signed-off-by: Goran Jovic <goranjovic@gmail.com>
2018-08-24 10:51:27 +02:00
Goran Jovic 2b89d1e25c
feature #5310 - improved validation in account recovery screen; also bug #5353
Signed-off-by: Goran Jovic <goranjovic@gmail.com>
2018-08-23 13:09:15 +02:00
Andrey Shovkoplyas 42abd16e9a
[#5260] Implement web3 provider Opt-in access
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2018-08-22 11:31:54 +03:00
Andrey Shovkoplyas a0e7dc65c4
moved wallet transactions ns
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2018-08-21 17:35:13 +03:00
Andrey Shovkoplyas 3e7c059b59
wallet refactoring
Signed-off-by: Goran Jovic <goranjovic@gmail.com>
2018-08-18 07:28:43 +02:00
Eric Dvorsak 1769bfb695
fix tests 2018-08-13 16:17:08 +02:00
Julien Eluard 9bbea373f3
WIP 2018-08-13 16:17:08 +02:00
Dmitry Novotochinov a4541c8af3
[#3352] Improve new message notifications
* Set custom sound
* Tap on notification opens chat
* Show message notifications when app in foreground

Signed-off-by: Dmitry Novotochinov <dmitry.novot@gmail.com>
2018-08-10 13:48:37 +03:00
Goran Jovic c216a378e4
refactor - extracted all model functions from accounts events
Signed-off-by: Goran Jovic <goranjovic@gmail.com>
2018-08-07 11:14:18 +02:00
Goran Jovic ef2d0fd4d0
added SPANK token, #5387 fixed issue with token contract address case sensitivity
Signed-off-by: Goran Jovic <goranjovic@gmail.com>
2018-08-06 16:08:51 +02:00
Andrey Shovkoplyas d834b6e37d
[#4380] Improve browser security warning
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2018-07-31 11:34:08 +03:00
tbenr 0f2af863e7
Fixes #4558
Signed-off-by: Julien Eluard <julien.eluard@gmail.com>
2018-07-31 09:27:51 +02:00
janherich 9b990a8038
Delete obsolete code
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2018-07-24 15:16:24 +03:00
Kenneth Tilton 48cc45ec6f
[Fix #3604] ui, screens, browser, events: deduplicate browser history hence chat elements 2018-07-24 12:20:07 +03:00
Goran Jovic a5d5ed3596
bug #5171 - fixed incorrect amount validation in wallet request
Signed-off-by: Goran Jovic <goranjovic@gmail.com>
2018-07-23 15:23:21 +02:00
janherich 76a509ed22
Cljs commands 2018-07-23 12:23:10 +02:00
Dmitry Novotochinov 2d6fdc0ecc
[#5138 #4851 #4865] automatic periodic tx state updates
Fetch transactions state from etherscan every 15 seconds
if there are any unconfirmed transactions

Signed-off-by: Dmitry Novotochinov <dmitry.novot@gmail.com>
2018-07-20 12:14:21 +03:00
Andrey Shovkoplyas 61374add53
Introduce extended DApp API [#5042]
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2018-07-19 19:47:17 +03:00
Andrey Shovkoplyas e4e6c71600
Allow to connect to any node for dev mode [#4817]
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2018-07-19 12:09:04 +03:00
Roman Volosovskyi bb7d31a357
[#5169] Remove Mixpanel 2018-07-18 06:57:16 +03:00
Andrea Maria Piana 3754e1dbae
[Fixes #5130] Select mailserver round-robin on connection failure
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-07-17 08:49:24 +02:00
janherich 6a342fd3a0
Full implementation of the `/reauest` command + tests 2018-07-16 15:10:21 +02:00
janherich 03598d47c2
Complete implementation of the `/send` command + tests 2018-07-16 08:53:24 +02:00
Andrea Maria Piana f8c9bec383
[Fixes #5127] Move files to no-backup directory & hash accounts
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-07-13 10:06:36 +02:00
Andrey Shovkoplyas a644075310
No browsing history kept on iOS [#5078]
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2018-07-12 15:04:31 +03:00
Dmitry Novotochinov bf9a291a09
[#4073] Fix parse-url regexp
To not identify string like "test...test..." as an URL

Signed-off-by: Dmitry Novotochinov <dmitry.novot@gmail.com>
2018-07-12 12:50:23 +03:00
Dmitry Novotochinov 867488ae3c
[#4301] Move message timestamp to the left for right-to-left languages
Signed-off-by: Dmitry Novotochinov <dmitry.novot@gmail.com>
2018-07-12 12:39:30 +03:00
Andrea Maria Piana f36d5d64cc
[Fixes #4944] Enable universal/deep links
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-07-12 11:33:23 +02:00
Andrea Maria Piana a2ee06bc9d
[Fixes #4998 ] Handle decryption failures in realm
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-07-11 17:29:56 +02:00
janherich b6a68e79c7
Cljs commands proposal 2018-07-11 09:43:45 +02:00
janherich be0143a575
Fix clearing unread counter 2018-07-10 10:05:37 +02:00
pacamara 5e3f65eac8
Fixes #3639 Persist browser history
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2018-07-06 13:23:53 +03:00
Andrey Shovkoplyas ee317c4aeb
Wrong number of collectibles in the list and they are mixed up [#4904]
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2018-07-03 18:31:18 +03:00
Andrea Maria Piana b34744133b
[fixes #4745] Don't query mailserver on restored account
When creating a new account / recovery we don't poll the mailserver anymore for historic messages, which solves the immediate issue of fetching only received messages

Handle messages sent from a different device in public chat / restore history. The message will be added, shown correctly as sent by the user, and the status will be set as sent ( need to check for seen race condition, as messages will now be added twice). This means that multidevice should now work for public chats.

Move contact updates to discovery topic. This is necessary as there is a pre-existing bug whereby contact updates would not work anymore after wallet recovery, as the code relies on the initial contact request being stored on the mailserver, which we cannot guarantee (we only pull 7 days of data). Not pulling history anymore exacerbate the problems but does not introduce it.
To make sure that contact updates will work after wallet recovery, we also need to consider a ContactUpdate in the same way we consider a ContactRequest (the other peer has no idea that the user has recovered the wallet). This does not change any behaviour in terms of obscurity/security as ContactRequest are automatically processed (in both case the contact will be set as pending?, not as accepted)
At this stage ContactRequest, ContactRequestConfirmed, ContactUpdate have all the same logic, i.e. update the contact information, leave the pending flag alone.

Only 1 day of history is fetched for newly joined chats, if catching up 7 days is the cap as before.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-07-03 17:21:59 +02:00
Andrea Maria Piana 42509e8fb6
Dont query mailserver when from is greater than to
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-07-02 12:21:43 +02:00
cammellos c4c5c19a77
[Part of #4944] add deep/universal link ios and use status-im://
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-06-29 14:54:05 +02:00
Andrea Maria Piana a7fc05fcd3
Add support for browse dapps
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-06-28 14:18:07 +02:00
Andrea Maria Piana b17d9bab37
Add universal links for android
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-06-27 22:45:57 +02:00
Andrea Maria Piana ef0fa75ad4
Handle empty/invalid keys
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-06-19 20:15:16 +02:00
Andrea Maria Piana a313557694
Cap maximum number of days requested to mailserver
Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2018-06-19 20:13:19 +02:00
Dmitry Novotochinov 00c5c630f4
Prevent send button spamming in public chats 2018-06-19 11:35:02 +03:00
Andrea Maria Piana 5a08383bde
Check minimum amount
Use string for inputs

validate gas is not 0

Handle signed/unsigned transactions
2018-06-15 18:32:26 +03:00
janherich be113ab8a4
Unit tests for mark seen functionality 2018-06-15 13:57:59 +02:00
Andrea Maria Piana 2d54c3e2cc
Select random ms until users explicitictly choose one
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-06-14 15:02:15 +02:00
Andrea Maria Piana 34174cd539
Validate rpc-url when creating a custom network
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-06-13 13:42:00 +02:00
Andrea Maria Piana c66c457bbb
Default to value if key is nil
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-06-13 13:39:04 +02:00
janherich 535ae6b481
Fix messages from multiple chats problem 2018-06-11 18:30:10 +02:00
janherich 0ad15a79d6
Ensure valid timestamp for all messages 2018-06-11 17:44:01 +02:00
janherich 4ba78de407
Faster seen marking
Signed-off-by: Julien Eluard <julien.eluard@gmail.com>
2018-06-11 12:16:42 +02:00
Julien Eluard 952b01e9e1
[#1228] Only enable Next button when passphrase is valid
Signed-off-by: Julien Eluard <julien.eluard@gmail.com>
2018-06-11 11:56:03 +02:00
Andrea Maria Piana 00cd7c8578
Dont show add-to-contacts if dapp
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-06-08 15:07:02 +02:00
Andrea Maria Piana 608c64e88d
Dont run receive-whisper-messages if the user is logged out
This handles a bug whereby we'd run receive-whisper-messages
when the user is logged out.

I could not replicate locally, but a few issues are apparent from
just inspecting the code:

1) there are some race-conditions on logout as we don't wait for all
the filters to be removed. Changing this behaviour is non trivial and
not sure if we can actually handle this completely
(status-go-has-a-message->remove-filter->logout->status-go-deliver-message).
2) no error handling is made in receive-whisper-messages.

This PR defensively handles both cases.

Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-06-07 14:16:35 +02:00
Andrea Maria Piana fc5cd95b9c
Add border to profile picture & style chat icon
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-06-07 13:50:35 +02:00
Andrea Maria Piana 75d1c04412
Allow for different password on different mailservers
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-06-04 14:28:43 +02:00
Andrea Maria Piana 49592f3a50
Allow editing/deleting custom bootnodes
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-06-01 18:28:10 +02:00
Andrea Maria Piana 9058c54933
Allow scanning qr codes for custom bootnodes
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-06-01 13:57:21 +02:00
Andrea Maria Piana 7ef3a5a5da
Delete mailservers
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-06-01 11:23:05 +02:00
Andrea Maria Piana 1e4311d4cb
Allow editing existing mailservers
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-05-30 21:42:54 +02:00