Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.Sign up
Files in this directory are served by meteor as-is to the client. It hosts some (fav)icons and fonts.
wekan-manifest.json: goes into
link rel="manifest" in the header of the generated page and is a Web App Manifest.
activitiestemplate for the list of activities placed inside a
mode; XXX: does this mean that sidebar should be visible in board list mode? when does the
boardactivity gets shown?
commentFormtemplate used in
card-details-canvasfor adding comments;
archivedBoardstemplate for the modal dialog showing the list of archived boards that might be restored;
boardBody.jade: top level template for presenting a board is
boardand, based on screen size and current state, it uses either
boardBodyis the one including the
cardDetailsfor larger screens when a card is selected and the
addListFormfor adding a new list (also defined in this file);
boardListHeaderBarfor the list of boards in the initial screen;
boardsAndListsis the usual layout for a board display with
boardListsbeing used in sandstorm where each board is independent;
minicard.jade: has the
forms: inlinedform.jade has the
offlineWarningtemplates; if the user is connected we display a small "quick-access" top bar that list all starred boards with a link to go there (this is inspired by the Reddit "subreddit" bar); the first link goes to the boards page;
keyboardShortcuts- all for the shortcuts that are presented when you press
?re implemented inhere;
layouts.jade: has the template for head portion of the html page and other general purpose templates:
popup.tpl.jade: tpl files only define a single template so there's no need to wrap content in a template tag; the name of the template is the base name of the file (
popupin this case);
- spinner.tpl.jade: is the template for a "waiting" dialog;
- mixins: extends infiniteScrolling.js for card details, sidebar and also extends perfectScrollbar.js;
blazeHelpers.js: following Blaze helpers are registered here:
gecko-fix.js: removes deprecated
unwatchfrom Firefox prior to version 58;
- presence.js: custom state function for Presence that keeps track of current board;
reactiveTabs.js: ReactiveTabs are configured to use
- accessibility.js: define a set of DOM transformations that are specifically intended for blind screen readers;
CSSEventsobject has methods that select the name of the event based on the specific transitions and animations;
- pasteImage.js and dropImage.js: utility for pasting and dropping images on a web app; XXX: add comments; not same style as the rest of the code
- emoji-values.js: sets Emoji.values;
- escapeActions.js: defines the behavior (mostly canceling current edit) for escape keyboard key;
- i18n.js: at startup we choose the language for the ui based on user profile or browser language;
- inlinedform.js: forms for editing a single field (like adding a card); XXX: comments in code suggest that a form that is not submitted will retain its value to prevent data loss using unsavedEdits.js;bug?; XXX: edit button to save and open;
keyboard.js: the shortcuts that are presented when you press
?re implemented inhere;
mixins.js: stub; no
Mixinsat this point; XXX: what does
new classdo? exlint: missing () invoking a constructor
Popupclass for things likes electing a date; XXX: not a Blaze helper?
- textComplete.js: extends jquery-textcomplete to integrate with the rest of the system (like escape actions, tab and enter key handling); XXX: deprecated?
- utils.js: various methods all over the place (resize, screen size, sort, capitalize, navigate to board and card);
FilterBlaze helper to support filtering cards by labels and by members;
ModalBlaze helper to support showing modal windows like the one for archived boards;
ModalBlaze helper to support multiple selection mode;
hasUnsavedValueBlaze helpers to preserve content entered in fields but not saved;
- filter.js: registers
.js files in this directory are not available to the client.
- statistics.js implements a Meteor server-only method for general-purpose information such as OS, memory, CPUs, PID of the process and so on.
- migrations.js is where code that update sold databases to new schema is located. Anytime the schema of one of the collection changes in a non-backward compatible way a migration needs to be written in this file.
authentication.js add the
Authenticationobject to Meteor that provides methods for checking access rights.
- lib/utils.js defines some checks used by checklists.js** model. XXX: these methods are defined in server-only code by are used in models, which are visible by the client (in Checklists.allow)?
notifications.js: defines the
Notificationsobject that supports Activities and holds a list of functions to call when its
notify()method is called along with convenience methods to subscribe, unsubscribe and a way to filter recipients according to user settings for notification;
notifications.js: adds the
watch()Meteor server-only method that may watch boards, lists or cards using models/watchable.js;
outgoing.js: adds the
outgoingWebhooks()Meteor server-only method that can call external API XXX: I guess
- notifications.js: defines the
publications defines sets of records that are published by the server and how clients can subscribe to those:
- accountSettings.js: AccountSettings collection;
- activities.js: Activities collection filtered and paginated;
- announcements.js: Announcements collection;
- avatars.js: Avatars collection for current user;
- boards.js: Boards collection for current user, archived boards collection and individual board as a relation;
- cards.js: a Card by its id;
- fast-render.js: configures FastRender to use the board data; XXX: FastRender docs say "Make sure you're using Meteor.subscribe and not this.subscribe"
- people.js: Users collection;
- settings.js: Settings collection and, separately, the mail server;
- unsavedEdits.js: UnsavedEdits collection;
- users.js: provides a "mini-profile" for individual users and a way to check if current user is admin.
The files in models directory mainly define collections; most of them have aldeed SimpleSchema for automatic validation of insert and update of collections. This is also where helpers, mutations, methods, hooks and bootstrap code is to be found. Server side code also implements json REST API.
Mongo.Collection except as noted) are defined in:
- activities.js: does not have a SimpleSchema;
- attachments.js: file-system collection;
- avatars.js: file-system collection;
users.js: extends the
watchable.js: extends the schema, helpers and mutations of
- export.js: has some code to support the REST API.
importBoard()method so that Trello (in trelloCreator.js) and Wekan (in wekanCreator.js) boards can be imported. XXX: Solid candidates for a directory of their own.
- Text editors:
- .github: hosts the issues template;
- .eslintrc.json: ESLint configuration;
- .travis.yml: configuration for Travis CI;
- scalingo.json: Scalingo is a deploy solution;
cfs_access-point.txtfrom this folder is copied to
bundle/programs/server/packages/cfs_access-point.jsin Docker build and in snapcraft build; this is a monkey patch fix for downloading files that have unicode in filename.
- meta: binary signatures, project description, icons, screenshots and, oui, a French change-log;