No description
Find a file
Chris Duarte e17eb6c237 PLT-5709 Global error handler (#187)
* WIP Global error handler

Adding components
Adding actions

* Add general errors where errors are caught

* Filter out non displayable errors

* Initial setup to email errors

* Add current user/team to error email

* Fix a few lints

* Ensure errors are cleared when reporting a problem

* Add clear all and internationalization

* Fix trailing comma issue

* fix lints

* Use Formatted Text component

* Move error list out of channel

* Add mobile prefix to i18n id for connection error

* Set shouldRender to true in RightMenuDrawerItem.defaultProps

* Update component name for RightMenuDrawerItem

* Clean up propTypes in RightMenuDrawerItem

* Clean up styles in RightMenuDrawerItem

* Use selector to filter displayable errors

* Clarify code for constructing wrapper style in ErrorList

* Avoid indenting email body for error report

* Remove extraneous params from errors actions

* Rename action type for logging errors

* Rename action for logging errors

* Set shouldRender to true in RightMenuDrawerItem.defaultProps

* Make logged errors displayable by default

* Don't log error when websocket connection is closed

* Hide button to dismiss all errors if ShowErrorsList isn't enabled

* Display only last error in alert bar when ShowErrorsList is disabled

* Add error logging where missing in actions

* Always show button to report problem

* Only include errors in report problem email if any have been logged

* Clarify subject of report problem email

* Set ShowErrorsList to false in default config.json

* Remove unused component + translation for connection errors

* Capture entire error object not just message

* Display fallback if error.message is blank

* Log errors in login actions

* Fix construction of errors email body
2017-03-12 14:42:02 -03:00
android Enable SAML authentication (#325) 2017-03-09 14:07:18 -03:00
app PLT-5709 Global error handler (#187) 2017-03-12 14:42:02 -03:00
assets/base PLT-5709 Global error handler (#187) 2017-03-12 14:42:02 -03:00
fastlane update fastlane (#334) 2017-03-08 14:15:13 -03:00
ios Enable SAML authentication (#325) 2017-03-09 14:07:18 -03:00
scripts Add ability to post messages (#158) 2017-01-13 10:40:00 -03:00
service PLT-5709 Global error handler (#187) 2017-03-12 14:42:02 -03:00
test Enable SAML authentication (#325) 2017-03-09 14:07:18 -03:00
.babelrc Added whitelabeling support using assets/override (#156) 2017-01-05 16:32:24 -03:00
.buckconfig Initial commit 2016-10-04 14:10:44 -04:00
.editorconfig Changed .editorconfig to include a trailing newline on files (#21) 2016-10-17 13:56:28 -04:00
.eslintrc.json Updated ESLint rules (#304) 2017-02-27 17:39:39 -03:00
.flowconfig Updated react-native projects 2016-10-07 11:49:31 -04:00
.gitattributes Fastlane for Android and ios (#165) 2017-01-19 09:35:40 -05:00
.gitignore Fastlane for Android and ios (#165) 2017-01-19 09:35:40 -05:00
.npmrc Add functionality for fetching + selecting teams & channels (#17) 2016-10-17 15:47:47 -04:00
.watchmanconfig Initial commit 2016-10-04 14:10:44 -04:00
CHANGELOG.md Create CHANGELOG.md (#327) 2017-03-09 14:06:50 -03:00
CONTRIBUTING.md Proposed changes to contributor guidelines (#44) 2016-10-19 13:33:44 -07:00
index.android.js project folder structure (#107) 2016-12-09 10:34:17 -05:00
index.ios.js project folder structure (#107) 2016-12-09 10:34:17 -05:00
ISSUE_TEMPLATE.md Update PR template and Issue template (#335) 2017-03-08 13:46:31 -03:00
LICENSE.txt Adding Apache 2.0 license 2016-10-11 09:14:00 -07:00
Makefile PLT-5679 Connect iOS to plain http servers (#316) 2017-03-01 11:12:57 -05:00
NOTICE.txt Adding Patent Grant info for react library in NOTICE.txt (#331) 2017-03-09 14:05:54 -03:00
package.json Enable SAML authentication (#325) 2017-03-09 14:07:18 -03:00
PULL_REQUEST_TEMPLATE.md Update PR template and Issue template (#335) 2017-03-08 13:46:31 -03:00
README.md Add new beta test links to ReadMe (#310) 2017-02-28 12:14:49 -03:00
rn-cli.config.js project folder structure (#107) 2016-12-09 10:34:17 -05:00

Mattermost Mobile (unreleased)

Supported Server Versions: Master (no released versions are currently supported)

This is an unreleased project for replacing the Mattermost iOS and Android apps with new mobile apps using React Native and Redux. The project is not yet stable, and the instructions are for internal use currently (i.e. probably out-of-date until we stablize).

We'll post updates to our Forums and Twitter when we're ready to bring in more community contributors.

Our early roadmap was discussed on the Mattermost forums in October 2016 and we'll have more updates as the project evolves. Priorities are shifting so please only use the dates in the post as a highly approximate guide.

Mattermost is an open source Slack-alternative used by thousands of companies around the world in 11 languages. Learn more at https://mattermost.com.

How to Contribute

Testing

The apps are currently under development with a beta release planned for March. We cut a new build every Monday, so people can test it out and see what's new.

If you would like to help with testing the apps, you can:

  1. Sign up for our team site
  2. Join the Native Mobile Apps channel to see what's new
  3. Sign up to be a beta tester
  1. Install the Mattermost 2017 (Beta) app
  1. Check the Native Mobile Apps channel or search for #rnchangelog for an outline of the latest changes (example here)
  2. File any bugs you find by posting in the Native Mobile Apps channel with:
  • Device information
  • Repro steps
  • Observed behavior (including screenshot / video when possible)
  • Expected behavior

Contribute Code

We're not quite ready to accept external contributions yet - when things are ready, issues with a [Help Wanted] title will be posted in the GitHub Issues section.

Installing Dependencies

Follow the React Native Getting Started Guide for detailed instructions on setting up your local machine for development.

Detailed configuration:

Mac

  • General requirements

    • XCode 8.1
    • Install watchman $ brew install watchman
  • Clone repository and configure:

    $ git clone git@github.com:mattermost/mattermost-mobile.git
    $ cd mattermost-mobile
    $ npm install
    $ npm install -g react-native-cli
    
  • Run application

    $ make run
    
  • Stop the packager server

    $ make stop
    

Linux:

  • General requiriments:

    • JDK 7 or greater
    • Android SDK
    • Virtualbox
    • An Android emulator: Genymotion or Android emulator. If using genymotion ensure that it uses existing adb tools (Settings: "Use custom Android SDK Tools")
    • Install watchman (do this globally):
      $ git clone https://github.com/facebook/watchman.git
      $ cd watchman
      $ git checkout master
      $ ./autogen.sh
      $ ./configure make
      $ sudo make install
      
      Configure your kernel to accept a lot of file watches, using a command like:
      $ sudo sysctl -w fs.inotify.max_user_watches=1048576
      
  • Clone repository and configure:

    $ git clone git@github.com:mattermost/mattermost-mobile.git
    $ cd mattermost-mobile
    $ npm install
    $ npm install -g react-native-cli
    
    • Add or edit file src/config/config.secret.json and add the url to the Mattermost server that you will use to develop: { "DefaultServerUrl": "https://pre-release.mattermost.com" }

      To use a local Mattermost server you will need to configure the "DefaultServerUrl" depending on the emulator you will use:

  • Run application

    • Start emulator
    • Start react packager: $ react-native start
    • Run in emulator: $ react-native run-android