Commit graph

302 commits

Author SHA1 Message Date
floatinghotpot
011f53ad08 add: invite user via email, invited user can accept or decline, allow member to quit 2015-12-07 11:15:57 +08:00
Maxime Quandalle
cb3bd86396 Improve Sandstorm usernames management
We now use the `preferredHandle` exposed by Sandstorm as source for
the username and append a number if the username is already taken
since we need to ensure username uniqueness (eg 'max', 'max1', 'max2')

Fixes #352
2015-11-11 14:16:40 -08:00
Maxime Quandalle
5d77ad4f6b Finish the minicard editor auto-completion feature
This commit stands on the initial support implemented in #342. We now
avoid error-prone parsing step by adding the member or the label
directly to the card object.

We also added support for `Tab` to completion on our textComplete
component.

Closes #342
2015-11-08 23:17:24 -08:00
Maxime Quandalle
aa974aa54a Prefer ES5 methods over underscore utilities
Since 07cc454 (ie the switch to Meteor 1.2) we includes the `es5-shim`
polyfill to support methods like `Array.prototype.forEach` in a
consistent way across all supported browsers (IE8+).

MDG recently released a blog post recommending the use of these native
methods instead of underscore [0]. We know follow this recommendation.

This commit also favor some ES6 features (argument defaults,
destructing assignment) in places where we didn’t use them.

[0]: http://info.meteor.com/blog/es2015-get-started
2015-10-22 18:13:12 +02:00
Maxime Quandalle
c6b12dc5ad Upgrade peerlibrary:blaze-components to v0.14
This change includes method renames and others UI related packages
updates.
2015-10-21 04:34:44 +02:00
Maxime Quandalle
15ebfa63c6 Translate the label colors 2015-10-15 00:52:32 +02:00
Maxime Quandalle
57fa7af24c Merge pull request #326 from AlexanderS/fix/display-all-archived
sidebar: Filter archived cards/lists for current board
2015-09-24 15:12:47 +02:00
Alexander Sulfrian
b2ab174fd5 sidebar: Filter archived cards/lists for current board
The archived items should be filtered for the current board or else you
will get a global list of all archived items on all boards.
2015-09-24 12:32:48 +02:00
Alexander Sulfrian
bf8f335ae7 Fix removeMemberPopup
The removeMemberPopup was missing the required helper to get the user and board
information and the user profile field is called "fullname" and not "name".
2015-09-20 23:52:51 +02:00
Maxime Quandalle
786423ba9d Display “Filter cards” action for non-board members 2015-09-18 17:37:01 +02:00
Maxime Quandalle
ec92f84f41 Merge pull request #305 from AlexanderS/fix/multiselect-toggle
Fix multiselect toggle logic

This bug was introduced in 45b662a
2015-09-16 15:35:18 +02:00
Alexander Sulfrian
6277bd2a90 Fix multiselect toggle logic
If every element already has the label/member, we do not need to add it
but it should be removed and if every element does not have the element,
we should add it.
2015-09-16 04:30:02 +02:00
Alexander Sulfrian
c5c1d06446 Remove redundant words 2015-09-16 04:19:57 +02:00
Maxime Quandalle
0f014c954c Merge branch 'master' into devel 2015-09-10 19:25:15 +02:00
Maxime Quandalle
8182cd1193 Fix labels drag and drop from the sidebar
This bug was introduced in e964fbb5.

Fixes #295.
2015-09-10 18:27:04 +02:00
Maxime Quandalle
45b662a1dd Centralize all mutations at the model level
This commit uses a new package that I need to document. It tries to
solve the long-standing debate in the Meteor community about
allow/deny rules versus methods (RPC).

This approach gives us both the centralized security rules of
allow/deny and the white-list of allowed mutations similarly to Meteor
methods. The idea to have static mutation descriptions is also
inspired by Facebook's Relay/GraphQL.

This will allow the development of a REST API using the high-level
methods instead of the MongoDB queries to do the mapping between the
HTTP requests and our collections.
2015-09-08 20:19:42 +02:00
Maxime Quandalle
74fba0a817 Fix a recurrent English typo 2015-09-06 22:47:29 +02:00
Maxime Quandalle
e964fbb5cc Hide some disabled forms for anonymous board viewers
Fixes #288
Fixes #289
Fixes #290
2015-09-06 03:54:36 +02:00
Maxime Quandalle
69250d0ae8 Show avatars in search results
Fixes #265
2015-09-06 03:33:47 +02:00
Maxime Quandalle
82b3227778 Fix member permission modification
Fixes #280
2015-09-05 01:37:55 +02:00
Maxime Quandalle
b3851817ec Enforce a consistent ES6 coding style
Replace the old (and broken) jshint + jscsrc by eslint and configure
it to support some of the ES6 features.

The command `eslint` currently has one error which is a bug that was
discovered by its static analysis and should be fixed (usage of a
dead object).
2015-09-03 23:12:46 +02:00
Maxime Quandalle
039cfe7edf Improve list title form 2015-09-02 22:56:12 +02:00
Maxime Quandalle
9961de9c30 Update translation source file 2015-09-01 14:38:07 +02:00
Maxime Quandalle
dc3cbdd20e Hide feature non-member users can't use
Fixes #206
Fixes #244
2015-08-28 12:15:29 +02:00
Maxime Quandalle
91cfcf7b12 Yet another iteration on the user interface
* Automatically display the overlay when the card details is opened
  (previously we waited for the mouse to enter the card details panel)
* Improve the design of the minicards badges
* Change the minicard background when it is hovered or selected
* Removes unimplemented features links from the UI
* Fix the board canvas position when the sidebar is open (was hidden
  behind)

Fixes #215
2015-08-28 06:07:21 +02:00
Maxime Quandalle
d2af2ed521 Close the Popup when all escape actions are executed 2015-08-23 11:12:04 +02:00
Maxime Quandalle
d5eec54c72 Start the migration from iron-router to flow-router
Motivations:

* Iron-Router foces us to use Tracker.nonreactive black magic in order
  to avoid un-necessary re-renders;
* There is a community consensus (supported by some MDG members) that
  the flow-router API is easier to reason about;
* The useraccounts now supports flow router (that was a blocking
  element when I considered the switch ~3months ago)

On the server we use the Picker router, as encouraged by the Kadira
team (which develop both Flow and Picker routers).

In the current state of things there are some bugs related to the
missing Loading architecure. Previously onRendered callback where
always called when the data the component needed was available, now
we have to handle this ourselves, which we will in a following commit.
2015-08-23 11:11:03 +02:00
Maxime Quandalle
04bfbd5bd1 Implement list restoration 2015-08-22 02:06:49 +02:00
Maxime Quandalle
ae4288d507 Warn if the user try to restore a card in an archived list 2015-08-20 23:48:34 +02:00
Maxime Quandalle
8b3a6a7819 Adds new app store metadata to sandstorm package definition
We still miss some branding stuff, such as screenshots, icons, and a
description.

This commit also hides an option related to user permissions managment
in the sandstorm package.
2015-08-20 22:57:09 +02:00
Maxime Quandalle
8ae6abe603 Switch the font to roboto 2015-08-20 15:59:00 +02:00
Yasar icli
a79599d76c profile name changed fullname and comma hotfix. 2015-07-18 13:43:59 +03:00
Maxime Quandalle
879fc47b53 Fix some sidebar bugs 2015-06-16 23:50:47 +02:00
Maxime Quandalle
5478fc93db Improve the multi-selection experience
New features:
- select all filtered cards
- assign or unassign a member to selected cards
- archive selected cards

This commit also fix the card sort indexes calculation when a multi-
selection is drag-dropped.
2015-06-16 14:30:21 +02:00
Maxime Quandalle
a16b7cd69c Close "over elements" when opening the filter view 2015-06-13 15:22:42 +02:00
Maxime Quandalle
765b0168ea (Re-)implement default avatar using user initials
We use a embedded svg to scale the initials text to its container
size. The user is free to overwrite its initials in the profile form.
2015-06-10 17:10:32 +02:00
Maxime Quandalle
46cc691534 Re-factor the avatar system and support avatar uploads
The user is now able to upload an avatar, and pick one in a list.

This functionality should eventually be abstracted in a community
package but we still need to work on a great public API. We rely on
collectionFS to manage uploaded avatars. We also removed
bengott:avatar which was trying to solve the wrong problem (namely
displaying the avatar, which is as simple as displaying an image), and
not a avatar system as it should be.

Gravatar support is coming (back) soon. We may also want to have a
list of default fun avatars the user can choose instead of uploading
its own one.
2015-06-09 15:57:45 +02:00
Maxime Quandalle
98d7278d08 Add a UI to restore archived cards 2015-06-07 18:55:26 +02:00
Maxime Quandalle
92dd05d06d Click on the page to escape the last action
This is a generalization of what we had for closing a popup by
clicking outside of it. It now works for inlinedForms and detailsPane
as well.
2015-06-07 10:34:19 +02:00
Maxime Quandalle
12919cbfc6 Restore the popup to add a member to the board 2015-06-06 14:50:45 +02:00
Maxime Quandalle
dea52907bd Start designing the card details pane
Implement a dynamic overflow to focus sight on the pane.
2015-06-05 21:37:13 +02:00
Maxime Quandalle
7f6929608c Work on the user account system
Allow a user to modifies its name, username, initials, and password.

Fixes username handling on sandstorm.

Fixes #149.
2015-06-03 06:46:41 +02:00
Maxime Quandalle
f4c80d1315 Implement presence indicators 2015-05-30 15:50:48 +02:00
Maxime Quandalle
2c0030da62 Implement multi-selection
The UI and the internal APIs are still rough around the edges but the
feature is basically working. You can now select multiple cards and
move them together or (un|)assign them a label.
2015-05-30 03:50:14 +02:00
Maxime Quandalle
dcc64f44f9 UI improvements
* Implement visibility choice on board creation;

* Rework the board header bar. Remove links to un-implemented
features;

* Implement a board star counter (visible if the board have >2 stars);

* Define a new icon (a thin cross) to close elements;

* Remove $(document).on('mouseover') event handlers that were
basically fired hundreds of times for nothing, we now define a proper
Tracker dependency to execute jquery-ui plugin initialization only
when something has changed;

* Bug fixes related to list scrolling.
2015-05-27 17:23:25 +02:00
Maxime Quandalle
42f6dc686f Prioritize escape actions with a label hierarchy instead of an integer 2015-05-27 02:48:15 +02:00
Maxime Quandalle
40c2411f2a Implement a new system to handle "escape actions"
The new EscapeActions object decide what to do when the user press the
Escape key (such as closing a opened popup or inlined form).

This commit also re-introduced the sidebar current view as a sidebar
component local state.
2015-05-26 20:34:56 +02:00
Maxime Quandalle
1b4fcc67f4 Upgrade sandstorm integration
Both sandstorm and LibreBoard have significantly evolved since the
last release of LibreBoard on sandstorm. This commit:

* adds some more attributes on the sandstorm manifest
* introduces support with the sandstorm sharing box
* uses a server redirection to point to the board document
* hides the top shortcut bar on sandstorm

Fixes #163.
2015-05-26 00:18:45 +02:00
Maxime Quandalle
9a45f3752f Improve scrolling
We now replace native scrollbar by custom ones on the list card (which
is required by the new ergonomics in the parent commit), but the
"scrolling engine", is still native, we just hide the scrollbar and
draw our own in HTML/CSS using the perfect-scrollbar package (from
bower).

This commit also implements component scrolling when certain actions
are performed, eg scroll to the bottom when the new card composer is
opened.
2015-05-24 22:16:40 +02:00
Maxime Quandalle
781577db04 Experiment new ergonomics to interact with card details
The idea is that by displaying card details in a sidebar stuck on the
right of the screen, the mouse had to travel too much before
interacting with it. I also don’t want to use the Trello solution
(modal) on big screens, because I like the ability to interact with
the selected card and with the board at the same time (like in a
e-mail client).

The solution introduced in this commit consist of opening the card
detail in a column next to the minicard list.

This commit also fix right sidebar members and labels drag and drop.
2015-05-24 22:11:40 +02:00