├── .arcconfig ├── .gitignore ├── .gitmodules ├── .jscsrc ├── .jshintrc ├── CONTRIBUTING.md ├── LICENSE.md ├── Procfile ├── README.md ├── arclib ├── __phutil_library_init__.php └── __phutil_library_map__.php ├── bower.json ├── coffeelint.json ├── gulpfile.js ├── karma.conf.js ├── package.json ├── public ├── css │ ├── angular-animation.css │ ├── baobab-dark.less │ ├── baobab-light.less │ ├── baobab.less │ ├── dropzone.css │ └── mixins.less ├── fonts │ ├── glyphicons-halflings-regular.eot │ ├── glyphicons-halflings-regular.svg │ ├── glyphicons-halflings-regular.ttf │ └── glyphicons-halflings-regular.woff ├── img │ ├── favicon.png │ ├── tab_archive@2x.png │ ├── tab_drafts@2x.png │ ├── tab_inbox@2x.png │ ├── tab_logout@2x.png │ ├── tab_sent@2x.png │ └── tab_theme@2x.png ├── index.html ├── js │ ├── FileSaver.js │ ├── angular-inbox.js │ ├── app.js │ ├── baobab.controller.app.coffee │ ├── baobab.controller.compose.coffee │ ├── baobab.controller.thread.coffee │ ├── baobab.controller.threadList.coffee │ ├── baobab.directive.autocomplete.coffee │ ├── baobab.directive.autofocus.coffee │ ├── baobab.directive.dropzone.coffee │ ├── baobab.directive.hotkeys.coffee │ ├── baobab.directive.inBindIframeContents.coffee │ ├── baobab.directive.inParticipantBubble.coffee │ ├── baobab.directive.inParticipants.coffee │ ├── baobab.directive.scribe.coffee │ ├── baobab.directive.typewriter.coffee │ ├── baobab.filter.coffee │ ├── baobab.service.auth.coffee │ ├── baobab.service.contacts.coffee │ ├── baobab.service.namespace.coffee │ ├── baobab.service.scrollstate.coffee │ ├── baobab.service.tags.coffee │ ├── baobab.service.threads.coffee │ ├── bootstrap-tokenfield.js │ ├── error.coffee │ ├── infinite-scroll.js │ ├── main.coffee │ └── minievents.js ├── partials │ ├── compose-zen.html │ ├── compose.html │ ├── message.html │ ├── tag.html │ ├── thread.html │ └── thread_list.html ├── scratch │ └── attachments.html ├── set-app-id.html └── sound │ ├── backspace.mp3 │ ├── key-new-01.mp3 │ ├── key-new-02.mp3 │ ├── key-new-03.mp3 │ ├── key-new-04.mp3 │ ├── key-new-05.mp3 │ ├── return-new.mp3 │ ├── scrollDown.mp3 │ ├── scrollUp.mp3 │ └── space-new.mp3 ├── screenshots ├── screenshot_compose.png ├── screenshot_dark_theme.png ├── screenshot_reply.png ├── screenshot_thread.png └── screenshot_threads.png ├── server.js └── test ├── controller ├── compose-spec.coffee └── thread-spec.coffee ├── filter ├── not_me-spec.coffee ├── participants-spec.coffee ├── pretty_size-spec.coffee ├── shorten-spec.coffee └── tag_expand-spec.coffee └── test-main.coffee /.arcconfig: -------------------------------------------------------------------------------- 1 | { 2 | "project_id" : "inbox", 3 | "conduit_uri" : "https://review.inboxapp.com/", 4 | "load" : [ 5 | "arclib" 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea/ 2 | *.DS_Store 3 | *.swp 4 | *.swo 5 | /node_modules/ 6 | public/js/angular-inbox.js 7 | npm-debug.log 8 | bower.json 9 | bower_components 10 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "vendor/inbox.js"] 2 | path = vendor/inbox.js 3 | url = https://github.com/inboxapp/inbox.js.git 4 | -------------------------------------------------------------------------------- /.jscsrc: -------------------------------------------------------------------------------- 1 | { 2 | "preset": "google", 3 | "maximumLineLength": { 4 | "value": 100, 5 | "allowComments": true, 6 | "allowRegex": true 7 | }, 8 | "disallowSpacesInsideObjectBrackets": null, 9 | "disallowSpacesInsideArrayBrackets": null, 10 | "disallowMultipleLineBreaks": null, 11 | "requireCurlyBraces": [ 12 | "else", 13 | "for", 14 | "while", 15 | "do", 16 | "try", 17 | "catch" 18 | ], 19 | "requireSpaceAfterKeywords": [ 20 | "if", 21 | "else", 22 | "for", 23 | "while", 24 | "do", 25 | "switch", 26 | "return", 27 | "try" 28 | ], 29 | "validateJSDoc": null 30 | } 31 | -------------------------------------------------------------------------------- /.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "indent": 2, 3 | "node": true, 4 | "undef": true, 5 | "expr": true, 6 | "browser": true, 7 | "eqnull": true, 8 | "strict": false, 9 | "sub": true, 10 | "globals": { 11 | }, 12 | "predef": ["define", "$", "alert"] 13 | } 14 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | #Contributing to Inbox.js 2 | 3 | - [Get the code](#get-the-code) 4 | - [Install dependencies](#install-dependencies) 5 | - [Working with the code](#working-with-the-code) 6 | - [Commit Message Guidelines](#commit-message-guidelines) 7 | 8 | ## Get the code 9 | 10 | ```bash 11 | git clone https://github.com/inboxapp/inbox.js.git 12 | 13 | cd inbox.js 14 | ``` 15 | 16 | ## Install dependencies 17 | 18 | ```bash 19 | # Install devDependencies from NPM 20 | npm install 21 | 22 | # For testing, install an appropriate [karma](http://karma-runner.github.io/) 23 | # browser launcher 24 | npm install karma-chrome-launcher 25 | ``` 26 | 27 | ## Working with the code 28 | 29 | ```bash 30 | # Perform style checks to ensure that the code meets style guidelines 31 | gulp lint 32 | 33 | # Build the frameworks 34 | gulp build 35 | ``` 36 | 37 | ## Running unit tests 38 | 39 | ```bash 40 | # Run unit tests 41 | gulp test 42 | 43 | # Run unit tests with custom browsers 44 | gulp test --browsers 45 | ``` 46 | 47 | ##Commit message guidelines 48 | 49 | Inbox.js is using a commit message scheme based on that used by [angular.js](https://github.com/angular/angular.js) and [conventional-changelog](https://www.npmjs.org/package/conventional-changelog), in order to simplify generation of meaningful changelogs, simplify bisecting to find and fix regressions, and to clarify what a given change has done. 50 | 51 | All contributions should fit this format, and all contributions should be squashed as appropriate. 52 | 53 | ### Commit Message Format 54 | Each commit message consists of a **header**, a **body** and a **footer**. The header has a special 55 | format that includes a **type**, a **scope** and a **subject**: 56 | 57 | ``` 58 | (): 59 | 60 | 61 | 62 |