diff --git a/.meteor/packages b/.meteor/packages index d135909dcb9..00c4512aeab 100644 --- a/.meteor/packages +++ b/.meteor/packages @@ -133,7 +133,6 @@ konecty:multiple-instances-status konecty:nrr konecty:user-presence -chrismbeckett:toastr dispatch:run-as-user francocatena:status jalik:ufs @@ -144,7 +143,6 @@ kadira:flow-router kenton:accounts-sandstorm mizzao:autocomplete mizzao:timesync -momentjs:moment mrt:reactive-store mystor:device-detection nimble:restivus diff --git a/.meteor/versions b/.meteor/versions index 58eeea45bf6..cca9fdb3b43 100644 --- a/.meteor/versions +++ b/.meteor/versions @@ -6,7 +6,6 @@ accounts-meteor-developer@1.0.11 accounts-oauth@1.1.15 accounts-password@1.3.3 accounts-twitter@1.1.12 -aldeed:moment-timezone@0.4.0 aldeed:simple-schema@1.5.3 allow-deny@1.0.5 autoupdate@1.2.11 @@ -23,7 +22,6 @@ caching-html-compiler@1.0.7 callback-hook@1.0.10 cfs:http-methods@0.0.32 check@1.2.4 -chrismbeckett:toastr@2.1.2_1 coffeescript@1.11.1_4 dandv:caret-position@2.1.1 ddp@1.2.5 @@ -89,7 +87,6 @@ mobile-experience@1.0.4 mobile-status-bar@1.0.13 modules@0.7.7 modules-runtime@0.7.7 -momentjs:moment@2.16.0 mongo@1.1.14 mongo-id@1.0.6 mongo-livedata@1.0.12 diff --git a/.sandstorm/sandstorm-pkgdef.capnp b/.sandstorm/sandstorm-pkgdef.capnp index f8b25f27950..bebb8d08f6e 100644 --- a/.sandstorm/sandstorm-pkgdef.capnp +++ b/.sandstorm/sandstorm-pkgdef.capnp @@ -19,9 +19,9 @@ const pkgdef :Spk.PackageDefinition = ( appTitle = (defaultText = "Rocket.Chat"), - appVersion = 45, # Increment this for every release. + appVersion = 47, # Increment this for every release. - appMarketingVersion = (defaultText = "0.46.0-develop"), + appMarketingVersion = (defaultText = "0.47.0-develop"), # Human-readable representation of appVersion. Should match the way you # identify versions of your app in documentation and marketing. diff --git a/.snapcraft/edge/snapcraft.yaml b/.snapcraft/edge/snapcraft.yaml index bf2c82e3dc0..2b5db0e6cf4 100644 --- a/.snapcraft/edge/snapcraft.yaml +++ b/.snapcraft/edge/snapcraft.yaml @@ -7,7 +7,7 @@ # 5. `snapcraft snap` name: rocketchat-server -version: 0.46.0-develop +version: 0.47.0-develop summary: Rocket.Chat server description: Have your own Slack like online chat, built with Meteor. https://rocket.chat/ confinement: strict diff --git a/.snapcraft/stable/snapcraft.yaml b/.snapcraft/stable/snapcraft.yaml index 5f12bfc952d..dd5d765e04c 100644 --- a/.snapcraft/stable/snapcraft.yaml +++ b/.snapcraft/stable/snapcraft.yaml @@ -7,7 +7,7 @@ # 5. `snapcraft snap` name: rocketchat-server -version: 0.46.0-develop +version: 0.47.0-develop summary: Rocket.Chat server description: Have your own Slack like online chat, built with Meteor. https://rocket.chat/ confinement: strict diff --git a/HISTORY.md b/HISTORY.md index 81bbddf9fe7..83fb60c8b1f 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -1,5 +1,73 @@ # History +## 0.46.0, 2016-Nov-21 + +### Upgraded to meteor 1.4.2.3 - Now uses NodeJS 4.6.2 + +- Add a csv plain text importer (#2689) +- Add a verified email toast +- Add an area to the warnings piece and allow defining users to be part of channels. +- Add channel renames to the importer tool +- Add debug to build scripts +- Add Hyper.sh +- Add missing dependencies to rocketchat:lib +- Add more tests +- Add option to hide user muted/unmuted messages +- Add option to remove the filesize restriction +- Add path prefix to sidenav layout (#4798) +- Add reaction importing capability for Slack +- Add REST endpoint to set user avatar +- Add scrollbar into the snippet view page +- Add setting to Forget user session on window close +- Add snippet message plugin +- Add snippet page and file creation +- Add syntax highlighting when a snippet is created +- Add tabBar english translation +- Add user account tests +- Allow private groups and add warnings to the importers +- Bot-helpers bugfix and new features +- Change default button colors and font-weight +- Change Jitsi iframe width to auto +- Change user rooms verifications to subscriptions +- Change utf8 names validation label +- Disabling the snippet feature by default +- Do not trigger livechat integration if room still open +- Enable broadcast connection logs when log level is 2 +- Fix channels were the creator wasn't imported was causing issues (#4934, #4899, #3911) +- Fix chevrons were backwards (#3581) +- Fix errors related to user status on logout +- Fix hubot-help path (#4807) +- Fix ignore cdn_prefix setting if empty (#4546) +- Fix LDAP filter users by their group (#4756) +- Fix Message_AllowSnippeting setting checks +- Fix sandstorm upload: UploadFS.Store.GetURL to return a relative URL +- Fix slackbridge out to stop re-sending messages that go out +- Fix the import progress not having the correct translations +- Fix Url previews are broken (#4779) +- Fixes the auto focus while using ctrl commands +- Fixes the create new btn bug +- List rocketchat:authorization as a dependency of rocketchat:lib +- Move client tabs into tabBar folder +- Provide the full avatar url when posting out to Slack +- Reactions need to be ran as the user who reacted and fix edits not showing +- Remove log and useless else condition. +- Remove online status class from channels +- Remove unused ChatSnippetMessage class +- Remove unused mime-type dependency +- Remove unused settings and add translation +- Replace erroneous head tags with header tags +- Sandstorm build: use node and npm from Meteor dev bundle, and don't use sudo. +- Standardising buttons appearance +- Support symbolic link integration +- Update Autolinker to 1.3.2 +- Update blaze +- Update buffer to string conversion using utf8 +- Update FileUpload.js +- Update LESSHat from version: v3.0.2 (2014-06-17) to version: v4.1.0 (2016-07-19) +- Using --headless instead of METEOR_PRETTY_OUTPUT=0 +- Using border-with on CSS to control borders +- Validate user access on file upload + ## 0.45.0, 2016-Oct-31 - Add global keydown event handler @@ -164,7 +232,7 @@ ## 0.40.0, 2016-Sep-20 -### IMPORTANT: Upgraded to meteor 1.4.1.1 - Now uses NodeJS 4.5 +### Upgraded to meteor 1.4.1.1 - Now uses NodeJS 4.5 - Add a minimalistic view for embedded layout - Add a setting to disable system notifications diff --git a/client/lib/handleError.js b/client/lib/handleError.js index 2bd1fec80f6..2ee1ba3391e 100644 --- a/client/lib/handleError.js +++ b/client/lib/handleError.js @@ -1,3 +1,4 @@ +import toastr from 'toastr'; this.handleError = function(error, useToastr = true) { if (_.isObject(error.details)) { for (var key in error.details) { diff --git a/client/methods/deleteMessage.coffee b/client/methods/deleteMessage.coffee index a31bb0b43a3..fc2dc6f5774 100644 --- a/client/methods/deleteMessage.coffee +++ b/client/methods/deleteMessage.coffee @@ -1,3 +1,6 @@ +import moment from 'moment' +import toastr from 'toastr' + Meteor.methods deleteMessage: (message) -> if not Meteor.userId() diff --git a/client/methods/updateMessage.coffee b/client/methods/updateMessage.coffee index 0ac0ca01908..f9a8cb9139a 100644 --- a/client/methods/updateMessage.coffee +++ b/client/methods/updateMessage.coffee @@ -1,3 +1,6 @@ +import moment from 'moment' +import toastr from 'toastr' + Meteor.methods updateMessage: (message) -> if not Meteor.userId() diff --git a/client/startup/emailVerification.js b/client/startup/emailVerification.js index 5be8d188380..0b50b3f9573 100644 --- a/client/startup/emailVerification.js +++ b/client/startup/emailVerification.js @@ -1,3 +1,4 @@ +import toastr from 'toastr'; Meteor.startup(function() { Tracker.autorun(function() { var user = Meteor.user(); diff --git a/client/startup/startup.coffee b/client/startup/startup.coffee index 6e3bb251b93..c7c0a169861 100644 --- a/client/startup/startup.coffee +++ b/client/startup/startup.coffee @@ -1,3 +1,5 @@ +import moment from 'moment' + Meteor.startup -> TimeSync.loggingEnabled = false @@ -45,7 +47,7 @@ Meteor.startup -> language = language.toLowerCase() if language isnt 'en' Meteor.call 'loadLocale', language, (err, localeFn) -> - Function(localeFn)() + Function(localeFn).call({moment: moment}); moment.locale(language) Meteor.subscribe("userData", () -> @@ -59,7 +61,9 @@ Meteor.startup -> status = undefined Tracker.autorun -> - if Meteor.user()?.status isnt status - status = Meteor.user().status - fireGlobalEvent('status-changed', status) + return if not Meteor.userId() + + if Meteor.user()?.status isnt status + status = Meteor.user().status + fireGlobalEvent('status-changed', status) ) diff --git a/client/startup/userSetUtcOffset.js b/client/startup/userSetUtcOffset.js index 27444599d91..eceddbef6fc 100644 --- a/client/startup/userSetUtcOffset.js +++ b/client/startup/userSetUtcOffset.js @@ -1,3 +1,5 @@ +import moment from 'moment'; + Meteor.startup(function() { Tracker.autorun(function() { var user, utcOffset; diff --git a/package.json b/package.json index fdb64e4db61..18263c2ebb4 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "Rocket.Chat", "description": "The Ultimate Open Source WebChat Platform", - "version": "0.46.0-develop", + "version": "0.47.0-develop", "author": { "name": "Rocket.Chat", "url": "https://rocket.chat/" @@ -63,6 +63,10 @@ }, "dependencies": { "babel-runtime": "^6.18.0", - "bcrypt": "^0.8.7" + "bcrypt": "^0.8.7", + "moment": "^2.16.0", + "moment-timezone": "^0.5.9", + "jquery": "^3.1.1", + "toastr": "^2.1.2" } } diff --git a/packages/meteor-accounts-saml/package.js b/packages/meteor-accounts-saml/package.js index 5fd3701974f..0508364fda2 100644 --- a/packages/meteor-accounts-saml/package.js +++ b/packages/meteor-accounts-saml/package.js @@ -7,6 +7,7 @@ Package.describe({ Package.on_use(function(api) { api.use(['rocketchat:lib'], 'server'); + api.use(['ecmascript'], 'server'); api.use(['coffeescript'], 'server'); api.use(['routepolicy', 'webapp', 'underscore', 'service-configuration'], 'server'); api.use(['http', 'accounts-base'], ['client', 'server']); diff --git a/packages/meteor-autocomplete/package.js b/packages/meteor-autocomplete/package.js index 961894cb78d..5a6912af07a 100755 --- a/packages/meteor-autocomplete/package.js +++ b/packages/meteor-autocomplete/package.js @@ -7,7 +7,7 @@ Package.describe({ Package.onUse(function(api) { api.use(['blaze', 'templating', 'jquery'], 'client'); - api.use(['coffeescript', 'underscore']); // both + api.use(['coffeescript', 'underscore', 'ecmascript']); // both api.use(['mongo', 'ddp']); api.use('dandv:caret-position@2.1.0-3', 'client'); diff --git a/packages/rocketchat-assets/package.js b/packages/rocketchat-assets/package.js index d5e8d55065b..c39b215d6d2 100644 --- a/packages/rocketchat-assets/package.js +++ b/packages/rocketchat-assets/package.js @@ -7,6 +7,7 @@ Package.describe({ Package.onUse(function(api) { api.use([ + 'ecmascript', 'coffeescript', 'underscore', 'webapp', diff --git a/packages/rocketchat-authorization/client/views/permissionsRole.coffee b/packages/rocketchat-authorization/client/views/permissionsRole.coffee index cd2c3f7a79d..ea4b351b700 100644 --- a/packages/rocketchat-authorization/client/views/permissionsRole.coffee +++ b/packages/rocketchat-authorization/client/views/permissionsRole.coffee @@ -1,3 +1,4 @@ +import toastr from 'toastr' Template.permissionsRole.helpers role: -> return RocketChat.models.Roles.findOne({ _id: FlowRouter.getParam('name') }) or {} diff --git a/packages/rocketchat-autolinker/.npm/package/npm-shrinkwrap.json b/packages/rocketchat-autolinker/.npm/package/npm-shrinkwrap.json index bccd299734c..8bb6ab9d7a1 100644 --- a/packages/rocketchat-autolinker/.npm/package/npm-shrinkwrap.json +++ b/packages/rocketchat-autolinker/.npm/package/npm-shrinkwrap.json @@ -1,503 +1,9 @@ { "dependencies": { - "ansi-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz", - "from": "ansi-regex@>=2.0.0 <3.0.0" - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "from": "ansi-styles@>=2.2.1 <3.0.0" - }, - "array-differ": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", - "from": "array-differ@>=1.0.0 <2.0.0" - }, - "array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "from": "array-find-index@>=1.0.1 <2.0.0" - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "from": "array-uniq@>=1.0.2 <2.0.0" - }, "autolinker": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/autolinker/-/autolinker-1.2.0.tgz", - "from": "autolinker@1.2.0" - }, - "beeper": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.0.tgz", - "from": "beeper@>=1.0.0 <2.0.0" - }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "from": "builtin-modules@>=1.0.0 <2.0.0" - }, - "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "from": "camelcase@>=2.0.0 <3.0.0" - }, - "camelcase-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "from": "camelcase-keys@>=2.0.0 <3.0.0" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "from": "chalk@>=1.0.0 <2.0.0" - }, - "clone": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz", - "from": "clone@>=1.0.0 <2.0.0" - }, - "clone-stats": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", - "from": "clone-stats@>=0.0.1 <0.0.2" - }, - "concat-with-sourcemaps": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.0.4.tgz", - "from": "concat-with-sourcemaps@*" - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "from": "core-util-is@>=1.0.0 <1.1.0" - }, - "currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "from": "currently-unhandled@>=0.4.1 <0.5.0" - }, - "dateformat": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz", - "from": "dateformat@>=1.0.11 <2.0.0" - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "from": "decamelize@>=1.1.2 <2.0.0" - }, - "duplexer2": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", - "from": "duplexer2@0.0.2" - }, - "error-ex": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.0.tgz", - "from": "error-ex@>=1.2.0 <2.0.0" - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "from": "escape-string-regexp@>=1.0.2 <2.0.0" - }, - "fancy-log": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.2.0.tgz", - "from": "fancy-log@>=1.1.0 <2.0.0" - }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "from": "find-up@>=1.0.0 <2.0.0" - }, - "get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "from": "get-stdin@>=4.0.1 <5.0.0" - }, - "glogg": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.0.tgz", - "from": "glogg@>=1.0.0 <2.0.0" - }, - "graceful-fs": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.9.tgz", - "from": "graceful-fs@>=4.1.2 <5.0.0" - }, - "gulp-header": { - "version": "1.8.8", - "resolved": "https://registry.npmjs.org/gulp-header/-/gulp-header-1.8.8.tgz", - "from": "gulp-header@>=1.7.1 <2.0.0" - }, - "gulp-util": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.7.tgz", - "from": "gulp-util@*", - "dependencies": { - "object-assign": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", - "from": "object-assign@>=3.0.0 <4.0.0" - } - } - }, - "gulplog": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", - "from": "gulplog@>=1.0.0 <2.0.0" - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "from": "has-ansi@>=2.0.0 <3.0.0" - }, - "has-gulplog": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", - "from": "has-gulplog@>=0.1.0 <0.2.0" - }, - "hosted-git-info": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.1.5.tgz", - "from": "hosted-git-info@>=2.1.4 <3.0.0" - }, - "indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "from": "indent-string@>=2.1.0 <3.0.0" - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "from": "inherits@>=2.0.1 <2.1.0" - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "from": "is-arrayish@>=0.2.1 <0.3.0" - }, - "is-builtin-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "from": "is-builtin-module@>=1.0.0 <2.0.0" - }, - "is-finite": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "from": "is-finite@>=1.0.0 <2.0.0" - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "from": "is-utf8@>=0.2.0 <0.3.0" - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "from": "isarray@0.0.1" - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "from": "load-json-file@>=1.0.0 <2.0.0" - }, - "lodash._basecopy": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", - "from": "lodash._basecopy@>=3.0.0 <4.0.0" - }, - "lodash._basetostring": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz", - "from": "lodash._basetostring@>=3.0.0 <4.0.0" - }, - "lodash._basevalues": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz", - "from": "lodash._basevalues@>=3.0.0 <4.0.0" - }, - "lodash._getnative": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", - "from": "lodash._getnative@>=3.0.0 <4.0.0" - }, - "lodash._isiterateecall": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", - "from": "lodash._isiterateecall@>=3.0.0 <4.0.0" - }, - "lodash._reescape": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz", - "from": "lodash._reescape@>=3.0.0 <4.0.0" - }, - "lodash._reevaluate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz", - "from": "lodash._reevaluate@>=3.0.0 <4.0.0" - }, - "lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "from": "lodash._reinterpolate@>=3.0.0 <4.0.0" - }, - "lodash._root": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", - "from": "lodash._root@>=3.0.0 <4.0.0" - }, - "lodash.escape": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz", - "from": "lodash.escape@>=3.0.0 <4.0.0" - }, - "lodash.isarguments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "from": "lodash.isarguments@>=3.0.0 <4.0.0" - }, - "lodash.isarray": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", - "from": "lodash.isarray@>=3.0.0 <4.0.0" - }, - "lodash.keys": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", - "from": "lodash.keys@>=3.0.0 <4.0.0" - }, - "lodash.restparam": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", - "from": "lodash.restparam@>=3.0.0 <4.0.0" - }, - "lodash.template": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz", - "from": "lodash.template@>=3.0.0 <4.0.0" - }, - "lodash.templatesettings": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz", - "from": "lodash.templatesettings@>=3.0.0 <4.0.0" - }, - "loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "from": "loud-rejection@>=1.0.0 <2.0.0" - }, - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "from": "map-obj@>=1.0.1 <2.0.0" - }, - "meow": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "from": "meow@>=3.3.0 <4.0.0" - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "from": "minimist@>=1.1.0 <2.0.0" - }, - "multipipe": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz", - "from": "multipipe@>=0.1.2 <0.2.0" - }, - "normalize-package-data": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.5.tgz", - "from": "normalize-package-data@>=2.3.4 <3.0.0" - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "from": "number-is-nan@>=1.0.0 <2.0.0" - }, - "object-assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz", - "from": "object-assign@*" - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "from": "parse-json@>=2.2.0 <3.0.0" - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "from": "path-exists@>=2.0.0 <3.0.0" - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "from": "path-type@>=1.0.0 <2.0.0" - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "from": "pify@>=2.0.0 <3.0.0" - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "from": "pinkie@>=2.0.0 <3.0.0" - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "from": "pinkie-promise@>=2.0.0 <3.0.0" - }, - "process-nextick-args": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "from": "process-nextick-args@>=1.0.6 <1.1.0" - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "from": "read-pkg@>=1.0.0 <2.0.0" - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "from": "read-pkg-up@>=1.0.1 <2.0.0" - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "from": "readable-stream@>=1.1.9 <1.2.0" - }, - "redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "from": "redent@>=1.0.0 <2.0.0" - }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "from": "repeating@>=2.0.0 <3.0.0" - }, - "replace-ext": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", - "from": "replace-ext@0.0.1" - }, - "semver": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "from": "semver@>=2.0.0 <3.0.0||>=3.0.0 <4.0.0||>=4.0.0 <5.0.0||>=5.0.0 <6.0.0" - }, - "signal-exit": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.1.tgz", - "from": "signal-exit@>=3.0.0 <4.0.0" - }, - "source-map": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "from": "source-map@>=0.5.1 <0.6.0" - }, - "sparkles": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz", - "from": "sparkles@>=1.0.0 <2.0.0" - }, - "spdx-correct": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", - "from": "spdx-correct@>=1.0.0 <1.1.0" - }, - "spdx-expression-parse": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", - "from": "spdx-expression-parse@>=1.0.0 <1.1.0" - }, - "spdx-license-ids": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", - "from": "spdx-license-ids@>=1.0.2 <2.0.0" - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "from": "string_decoder@>=0.10.0 <0.11.0" - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "from": "strip-ansi@>=3.0.0 <4.0.0" - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "from": "strip-bom@>=2.0.0 <3.0.0" - }, - "strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "from": "strip-indent@>=1.0.1 <2.0.0" - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "from": "supports-color@>=2.0.0 <3.0.0" - }, - "through2": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.1.tgz", - "from": "through2@>=2.0.0 <3.0.0", - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "from": "isarray@>=1.0.0 <1.1.0" - }, - "readable-stream": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", - "from": "readable-stream@>=2.0.0 <2.1.0" - } - } - }, - "time-stamp": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.0.1.tgz", - "from": "time-stamp@>=1.0.0 <2.0.0" - }, - "trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "from": "trim-newlines@>=1.0.0 <2.0.0" - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "from": "util-deprecate@>=1.0.1 <1.1.0" - }, - "validate-npm-package-license": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", - "from": "validate-npm-package-license@>=3.0.1 <4.0.0" - }, - "vinyl": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz", - "from": "vinyl@>=0.5.0 <0.6.0" - }, - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "from": "xtend@>=4.0.0 <4.1.0" + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/autolinker/-/autolinker-1.3.2.tgz", + "from": "autolinker@1.3.2" } } } diff --git a/packages/rocketchat-autolinker/package.js b/packages/rocketchat-autolinker/package.js index 619216d85ae..eca73cbc98c 100644 --- a/packages/rocketchat-autolinker/package.js +++ b/packages/rocketchat-autolinker/package.js @@ -6,7 +6,7 @@ Package.describe({ }); Npm.depends({ - autolinker: '1.2.0' + autolinker: '1.3.2' }); Package.onUse(function(api) { diff --git a/packages/rocketchat-cas/.npm/package/npm-shrinkwrap.json b/packages/rocketchat-cas/.npm/package/npm-shrinkwrap.json index 7d1d73b53c3..a309abf87b3 100644 --- a/packages/rocketchat-cas/.npm/package/npm-shrinkwrap.json +++ b/packages/rocketchat-cas/.npm/package/npm-shrinkwrap.json @@ -7,8 +7,8 @@ }, "cas": { "version": "0.0.5", - "resolved": "git+https://github.com/kcbanner/node-cas.git#fcd27dad333223b3b75a048bce27973fb3ca0f62", - "from": "cas@git+https://github.com/kcbanner/node-cas#fcd27dad333223b3b75a048bce27973fb3ca0f62" + "resolved": "https://github.com/kcbanner/node-cas/tarball/fcd27dad333223b3b75a048bce27973fb3ca0f62", + "from": "https://github.com/kcbanner/node-cas/tarball/fcd27dad333223b3b75a048bce27973fb3ca0f62" }, "cheerio": { "version": "0.19.0", diff --git a/packages/rocketchat-cas/package.js b/packages/rocketchat-cas/package.js index d1f75b1b08d..b584f5f9a92 100644 --- a/packages/rocketchat-cas/package.js +++ b/packages/rocketchat-cas/package.js @@ -27,5 +27,5 @@ Package.onUse(function(api) { }); Npm.depends({ - cas: 'git+https://github.com/kcbanner/node-cas#fcd27dad333223b3b75a048bce27973fb3ca0f62' + cas: 'https://github.com/kcbanner/node-cas/tarball/fcd27dad333223b3b75a048bce27973fb3ca0f62' }); diff --git a/packages/rocketchat-channel-settings-mail-messages/client/views/mailMessagesInstructions.coffee b/packages/rocketchat-channel-settings-mail-messages/client/views/mailMessagesInstructions.coffee index 7d3e047ef1b..3e8895c8c8b 100644 --- a/packages/rocketchat-channel-settings-mail-messages/client/views/mailMessagesInstructions.coffee +++ b/packages/rocketchat-channel-settings-mail-messages/client/views/mailMessagesInstructions.coffee @@ -1,3 +1,4 @@ +import toastr from 'toastr' Template.mailMessagesInstructions.helpers name: -> return Meteor.user().name diff --git a/packages/rocketchat-channel-settings-mail-messages/package.js b/packages/rocketchat-channel-settings-mail-messages/package.js index cfff045dfee..4892a7a8bc3 100644 --- a/packages/rocketchat-channel-settings-mail-messages/package.js +++ b/packages/rocketchat-channel-settings-mail-messages/package.js @@ -7,13 +7,13 @@ Package.describe({ Package.onUse(function(api) { api.use([ + 'ecmascript', 'coffeescript', 'templating', 'reactive-var', 'less', 'rocketchat:lib', - 'rocketchat:channel-settings', - 'momentjs:moment' + 'rocketchat:channel-settings' ]); api.addFiles([ diff --git a/packages/rocketchat-channel-settings-mail-messages/server/methods/mailMessages.coffee b/packages/rocketchat-channel-settings-mail-messages/server/methods/mailMessages.coffee index e6d193e9523..b02642efb05 100644 --- a/packages/rocketchat-channel-settings-mail-messages/server/methods/mailMessages.coffee +++ b/packages/rocketchat-channel-settings-mail-messages/server/methods/mailMessages.coffee @@ -1,3 +1,5 @@ +import moment from 'moment' + Meteor.methods 'mailMessages': (data) -> if not Meteor.userId() diff --git a/packages/rocketchat-channel-settings/client/views/channelSettings.coffee b/packages/rocketchat-channel-settings/client/views/channelSettings.coffee index 0d5eef04f21..b4670ec92ec 100644 --- a/packages/rocketchat-channel-settings/client/views/channelSettings.coffee +++ b/packages/rocketchat-channel-settings/client/views/channelSettings.coffee @@ -1,3 +1,4 @@ +import toastr from 'toastr' Template.channelSettings.helpers toArray: (obj) -> arr = [] diff --git a/packages/rocketchat-chatops/package.js b/packages/rocketchat-chatops/package.js index ef01298961f..3f2bcb83f65 100644 --- a/packages/rocketchat-chatops/package.js +++ b/packages/rocketchat-chatops/package.js @@ -8,6 +8,7 @@ Package.describe({ Package.onUse(function(api) { api.use([ 'coffeescript', + 'ecmascript', 'rocketchat:lib', 'dburles:google-maps@1.1.5' ]); diff --git a/packages/rocketchat-cors/package.js b/packages/rocketchat-cors/package.js index 9198225bcff..d0b1f681460 100644 --- a/packages/rocketchat-cors/package.js +++ b/packages/rocketchat-cors/package.js @@ -8,6 +8,7 @@ Package.describe({ Package.onUse(function(api) { api.use([ 'coffeescript', + 'ecmascript', 'webapp' ]); diff --git a/packages/rocketchat-custom-oauth/package.js b/packages/rocketchat-custom-oauth/package.js index 9192c70fbaa..bf9f3219d47 100644 --- a/packages/rocketchat-custom-oauth/package.js +++ b/packages/rocketchat-custom-oauth/package.js @@ -9,6 +9,7 @@ Package.onUse(function(api) { api.use('oauth'); api.use('oauth2'); api.use('underscore'); + api.use('ecmascript'); api.use('coffeescript'); api.use('accounts-oauth'); api.use('service-configuration'); diff --git a/packages/rocketchat-emoji-custom/admin/emojiEdit.js b/packages/rocketchat-emoji-custom/admin/emojiEdit.js index 0c36f1ac795..ae88ed1caee 100644 --- a/packages/rocketchat-emoji-custom/admin/emojiEdit.js +++ b/packages/rocketchat-emoji-custom/admin/emojiEdit.js @@ -1,3 +1,4 @@ +import toastr from 'toastr'; /* globals isSetNotNull */ Template.emojiEdit.helpers({ emoji() { diff --git a/packages/rocketchat-file-upload/lib/FileUpload.js b/packages/rocketchat-file-upload/lib/FileUpload.js index 0cc7b0c1e05..f4fe43e253c 100644 --- a/packages/rocketchat-file-upload/lib/FileUpload.js +++ b/packages/rocketchat-file-upload/lib/FileUpload.js @@ -13,6 +13,7 @@ FileUpload = { const user = Meteor.user(); const room = RocketChat.models.Rooms.findOneById(file.rid); + const directMessageAllow = RocketChat.settings.get('FileUpload_Enabled_Direct'); const fileUploadAllowed = RocketChat.settings.get('FileUpload_Enabled'); if (RocketChat.authz.canAccessRoom(room, user) !== true) { @@ -24,6 +25,18 @@ FileUpload = { throw new Meteor.Error('error-file-upload-disabled', reason); } + if (!directMessageAllow && room.t === 'd') { + const reason = TAPi18n.__('File_not_allowed_direct_messages', user.language); + throw new Meteor.Error('error-direct-message-file-upload-not-allowed', reason); + } + + if (file.size > maxFileSize) { + const reason = TAPi18n.__('File_exceeds_allowed_size_of_bytes', { + size: filesize(maxFileSize) + }, user.language); + throw new Meteor.Error('error-file-too-large', reason); + } + if (parseInt(maxFileSize) > 0) { if (file.size > maxFileSize) { const reason = TAPi18n.__('File_exceeds_allowed_size_of_bytes', { @@ -44,4 +57,4 @@ FileUpload = { RocketChat.settings.get('FileUpload_MaxFileSize', function(key, value) { maxFileSize = value; -}); +}); \ No newline at end of file diff --git a/packages/rocketchat-file-upload/server/startup/settings.js b/packages/rocketchat-file-upload/server/startup/settings.js index a947d747847..8e51b3fb407 100644 --- a/packages/rocketchat-file-upload/server/startup/settings.js +++ b/packages/rocketchat-file-upload/server/startup/settings.js @@ -106,4 +106,9 @@ RocketChat.settings.addGroup('FileUpload', function() { } }); }); + + this.add('FileUpload_Enabled_Direct', true, { + type: 'boolean', + public: true + }); }); diff --git a/packages/rocketchat-file/package.js b/packages/rocketchat-file/package.js index dec9ec402bd..cf616d8f1f5 100644 --- a/packages/rocketchat-file/package.js +++ b/packages/rocketchat-file/package.js @@ -9,6 +9,7 @@ Package.onUse(function(api) { api.use('rocketchat:lib'); api.use('rocketchat:version'); api.use('coffeescript'); + api.use('ecmascript'); api.addFiles('file.server.coffee', 'server'); diff --git a/packages/rocketchat-github-enterprise/package.js b/packages/rocketchat-github-enterprise/package.js index 60f8fa9f0fa..81378009079 100644 --- a/packages/rocketchat-github-enterprise/package.js +++ b/packages/rocketchat-github-enterprise/package.js @@ -5,6 +5,7 @@ Package.describe({ }); Package.onUse(function(api) { + api.use('ecmascript'); api.use('coffeescript'); api.use('rocketchat:lib'); api.use('rocketchat:custom-oauth'); diff --git a/packages/rocketchat-gitlab/package.js b/packages/rocketchat-gitlab/package.js index 46cfd06b932..ff57af3a669 100644 --- a/packages/rocketchat-gitlab/package.js +++ b/packages/rocketchat-gitlab/package.js @@ -5,6 +5,7 @@ Package.describe({ }); Package.onUse(function(api) { + api.use('ecmascript'); api.use('coffeescript'); api.use('rocketchat:lib'); api.use('rocketchat:custom-oauth'); diff --git a/packages/rocketchat-highlight-words/package.js b/packages/rocketchat-highlight-words/package.js index 9be18e529a9..8acf49bc0cb 100644 --- a/packages/rocketchat-highlight-words/package.js +++ b/packages/rocketchat-highlight-words/package.js @@ -12,6 +12,7 @@ Package.describe({ Package.onUse(function(api) { api.use([ + 'ecmascript', 'coffeescript', 'rocketchat:lib' ]); diff --git a/packages/rocketchat-i18n/i18n/en.i18n.json b/packages/rocketchat-i18n/i18n/en.i18n.json index 883920c65e8..06a4c2290f5 100644 --- a/packages/rocketchat-i18n/i18n/en.i18n.json +++ b/packages/rocketchat-i18n/i18n/en.i18n.json @@ -153,6 +153,7 @@ "API_Analytics": "Analytics", "API_Embed": "Embed Link Previews", "API_Embed_Description": "Whether embedded link previews are enabled or not when a user posts a link to a website.", + "API_EmbedCacheExpirationDays": "Embed cache expiration days", "API_EmbedDisabledFor": "Disable Embed for Users", "API_EmbedDisabledFor_Description": "Comma-separated list of usernames to disable the embedded link previews.", "API_EmbedIgnoredHosts": "Embed Ignored Hosts", @@ -227,6 +228,7 @@ "busy_male": "busy", "Busy_male": "Busy", "by": "by", + "cache_cleared": "Cache cleared", "Cancel": "Cancel", "Cancel_message_input": "Cancel", "Cannot_invite_users_to_direct_rooms": "Cannot invite users to direct rooms", @@ -270,6 +272,8 @@ "Choose_messages": "Choose messages", "Choose_the_alias_that_will_appear_before_the_username_in_messages": "Choose the alias that will appear before the username in messages.", "Choose_the_username_that_this_integration_will_post_as": "Choose the username that this integration will post as.", + "clear": "Clear", + "clear_cache_now": "Clear cache now", "Clear_all_unreads_question": "Clear all unreads?", "Click_here": "Click here", "Client_ID": "Client ID", @@ -425,6 +429,7 @@ "error-invalid-email": "Invalid email __email__", "error-invalid-file-height": "Invalid file height", "error-invalid-file-type": "Invalid file type", + "error-direct-message-file-upload-not-allowed": "File sharing not allowed in direct messages", "error-invalid-file-width": "Invalid file width", "error-invalid-from-address": "You informed an invalid FROM address.", "error-invalid-integration": "Invalid integration", @@ -479,10 +484,12 @@ "Field_removed": "Field removed", "Field_required": "Field required", "File_exceeds_allowed_size_of_bytes": "File exceeds allowed size of __size__.", + "File_not_allowed_direct_messages": "File sharing not allowed in direct messages.", "File_type_is_not_accepted": "File type is not accepted.", "FileUpload": "File Upload", "FileUpload_Enabled": "File Uploads Enabled", "FileUpload_Disabled": "File uploads are disabled.", + "FileUpload_Enabled_Direct": "File Uploads Enabled in Direct Messages ", "FileUpload_File_Empty": "File empty", "FileUpload_FileSystemPath": "System Path", "FileUpload_MaxFileSize": "Maximum File Upload Size (in bytes)", diff --git a/packages/rocketchat-i18n/package.js b/packages/rocketchat-i18n/package.js index 3fbf409a726..de361dc9104 100644 --- a/packages/rocketchat-i18n/package.js +++ b/packages/rocketchat-i18n/package.js @@ -9,8 +9,9 @@ Package.onUse(function(api) { api.use('templating', 'client'); var fs = Npm.require('fs'); - fs.readdirSync(process.env.PWD + '/packages/rocketchat-i18n/i18n').forEach(function(filename) { - if (filename.indexOf('.json') > -1 && fs.statSync(process.env.PWD + '/packages/rocketchat-i18n/i18n/' + filename).size > 16) { + var workingDir = process.env.PWD || '.'; + fs.readdirSync(workingDir + '/packages/rocketchat-i18n/i18n').forEach(function(filename) { + if (filename.indexOf('.json') > -1 && fs.statSync(workingDir + '/packages/rocketchat-i18n/i18n/' + filename).size > 16) { api.addFiles('i18n/' + filename); } }); diff --git a/packages/rocketchat-importer-hipchat/package.js b/packages/rocketchat-importer-hipchat/package.js index e4184668179..7461d067475 100644 --- a/packages/rocketchat-importer-hipchat/package.js +++ b/packages/rocketchat-importer-hipchat/package.js @@ -7,11 +7,11 @@ Package.describe({ Package.onUse(function(api) { api.use([ + 'ecmascript', 'coffeescript', 'rocketchat:lib', 'rocketchat:importer' ]); - api.use('aldeed:moment-timezone', 'server'); api.use('rocketchat:logger', 'server'); api.addFiles('server.coffee', 'server'); api.addFiles('main.coffee', ['client', 'server']); diff --git a/packages/rocketchat-importer-hipchat/server.coffee b/packages/rocketchat-importer-hipchat/server.coffee index c6d84459ccd..80f79a5b41c 100644 --- a/packages/rocketchat-importer-hipchat/server.coffee +++ b/packages/rocketchat-importer-hipchat/server.coffee @@ -1,3 +1,6 @@ +import moment from 'moment' +import 'moment-timezone' + Importer.HipChat = class Importer.HipChat extends Importer.Base @RoomPrefix = 'hipchat_export/rooms/' @UsersPrefix = 'hipchat_export/users/' diff --git a/packages/rocketchat-importer-slack/package.js b/packages/rocketchat-importer-slack/package.js index c137268571c..e10bc401cca 100644 --- a/packages/rocketchat-importer-slack/package.js +++ b/packages/rocketchat-importer-slack/package.js @@ -7,11 +7,11 @@ Package.describe({ Package.onUse(function(api) { api.use([ + 'ecmascript', 'coffeescript', 'rocketchat:lib', 'rocketchat:importer' ]); - api.use('aldeed:moment-timezone', 'server'); api.use('rocketchat:logger', 'server'); api.addFiles('server.coffee', 'server'); api.addFiles('main.coffee', ['client', 'server']); diff --git a/packages/rocketchat-importer/client/admin/adminImportPrepare.coffee b/packages/rocketchat-importer/client/admin/adminImportPrepare.coffee index 1127a921f37..b246e4ffaf5 100644 --- a/packages/rocketchat-importer/client/admin/adminImportPrepare.coffee +++ b/packages/rocketchat-importer/client/admin/adminImportPrepare.coffee @@ -1,3 +1,4 @@ +import toastr from 'toastr' Template.adminImportPrepare.helpers isAdmin: -> return RocketChat.authz.hasRole(Meteor.userId(), 'admin') diff --git a/packages/rocketchat-importer/client/admin/adminImportProgress.coffee b/packages/rocketchat-importer/client/admin/adminImportProgress.coffee index a759fcbf7b1..d7e9fe7511f 100644 --- a/packages/rocketchat-importer/client/admin/adminImportProgress.coffee +++ b/packages/rocketchat-importer/client/admin/adminImportProgress.coffee @@ -1,3 +1,4 @@ +import toastr from 'toastr' Template.adminImportProgress.helpers step: -> return Template.instance().step.get() diff --git a/packages/rocketchat-importer/package.js b/packages/rocketchat-importer/package.js index b4789ef712b..bb33f0da612 100644 --- a/packages/rocketchat-importer/package.js +++ b/packages/rocketchat-importer/package.js @@ -14,7 +14,6 @@ Package.onUse(function(api) { 'rocketchat:lib' ]); - api.use('aldeed:moment-timezone', 'server'); api.use('rocketchat:logger', 'server'); api.use('templating', 'client'); diff --git a/packages/rocketchat-integrations/client/views/integrations.coffee b/packages/rocketchat-integrations/client/views/integrations.coffee index 0ebbf38e903..b182b2566b2 100644 --- a/packages/rocketchat-integrations/client/views/integrations.coffee +++ b/packages/rocketchat-integrations/client/views/integrations.coffee @@ -1,3 +1,5 @@ +import moment from 'moment' + Template.integrations.helpers hasPermission: -> return RocketChat.authz.hasAtLeastOnePermission(['manage-integrations', 'manage-own-integrations']) diff --git a/packages/rocketchat-integrations/client/views/integrationsIncoming.coffee b/packages/rocketchat-integrations/client/views/integrationsIncoming.coffee index 9640832d665..68f912fc07e 100644 --- a/packages/rocketchat-integrations/client/views/integrationsIncoming.coffee +++ b/packages/rocketchat-integrations/client/views/integrationsIncoming.coffee @@ -1,3 +1,4 @@ +import toastr from 'toastr' Template.integrationsIncoming.onCreated -> @record = new ReactiveVar username: 'rocket.cat' diff --git a/packages/rocketchat-integrations/client/views/integrationsOutgoing.coffee b/packages/rocketchat-integrations/client/views/integrationsOutgoing.coffee index 425d9b971d0..7b78f0cc0e7 100644 --- a/packages/rocketchat-integrations/client/views/integrationsOutgoing.coffee +++ b/packages/rocketchat-integrations/client/views/integrationsOutgoing.coffee @@ -1,3 +1,4 @@ +import toastr from 'toastr' Template.integrationsOutgoing.onCreated -> @record = new ReactiveVar username: 'rocket.cat' diff --git a/packages/rocketchat-internal-hubot/hubot.coffee b/packages/rocketchat-internal-hubot/hubot.coffee index 9a258ef681f..9dbc5adf026 100644 --- a/packages/rocketchat-internal-hubot/hubot.coffee +++ b/packages/rocketchat-internal-hubot/hubot.coffee @@ -154,7 +154,7 @@ class HubotScripts for modulePath in modulesToLoad try Npm.require(modulePath)(robot) - robot.parseHelp __meteor_bootstrap__.serverDir+'/npm/rocketchat_internal-hubot/node_modules/'+modulePath + robot.parseHelp __meteor_bootstrap__.serverDir+'/npm/node_modules/meteor/rocketchat_internal-hubot/node_modules/'+modulePath console.log "Loaded #{modulePath}".green catch e console.log "can't load #{modulePath}".red diff --git a/packages/rocketchat-internal-hubot/package.js b/packages/rocketchat-internal-hubot/package.js index 9738f930c61..990a653c08f 100644 --- a/packages/rocketchat-internal-hubot/package.js +++ b/packages/rocketchat-internal-hubot/package.js @@ -7,6 +7,7 @@ Package.describe({ Package.onUse(function(api) { api.use([ + 'ecmascript', 'coffeescript', 'tracker', 'rocketchat:lib' diff --git a/packages/rocketchat-irc/package.js b/packages/rocketchat-irc/package.js index d820f40b1ad..311343292f8 100644 --- a/packages/rocketchat-irc/package.js +++ b/packages/rocketchat-irc/package.js @@ -12,6 +12,7 @@ Npm.depends({ Package.onUse(function(api) { api.use([ + 'ecmascript', 'coffeescript', 'underscore', 'rocketchat:lib' diff --git a/packages/rocketchat-katex/package.js b/packages/rocketchat-katex/package.js index 1f5d1f8e979..c7f561b190d 100644 --- a/packages/rocketchat-katex/package.js +++ b/packages/rocketchat-katex/package.js @@ -7,6 +7,7 @@ Package.describe({ Package.onUse(function(api) { api.use('coffeescript'); + api.use('ecmascript'); api.use('underscore'); api.use('templating'); api.use('underscorestring:underscore.string'); diff --git a/packages/rocketchat-lib/client/MessageAction.coffee b/packages/rocketchat-lib/client/MessageAction.coffee index fe5eb4adfc9..5f066302dd2 100644 --- a/packages/rocketchat-lib/client/MessageAction.coffee +++ b/packages/rocketchat-lib/client/MessageAction.coffee @@ -1,3 +1,6 @@ +import moment from 'moment' +import toastr from 'toastr' + RocketChat.MessageAction = new class buttons = new ReactiveVar {} diff --git a/packages/rocketchat-lib/package.js b/packages/rocketchat-lib/package.js index a9a58bed669..3b2ec0f8a0f 100644 --- a/packages/rocketchat-lib/package.js +++ b/packages/rocketchat-lib/package.js @@ -32,7 +32,6 @@ Package.onUse(function(api) { api.use('matb33:collection-hooks'); api.use('service-configuration'); api.use('check'); - api.use('momentjs:moment'); api.use('rocketchat:i18n'); api.use('rocketchat:streamer'); api.use('rocketchat:version'); diff --git a/packages/rocketchat-lib/rocketchat.info b/packages/rocketchat-lib/rocketchat.info index 011a4ae4b5c..e56b5d6f0a0 100644 --- a/packages/rocketchat-lib/rocketchat.info +++ b/packages/rocketchat-lib/rocketchat.info @@ -1,3 +1,3 @@ { - "version": "0.46.0-develop" + "version": "0.47.0-develop" } diff --git a/packages/rocketchat-lib/server/lib/notifyUsersOnMessage.js b/packages/rocketchat-lib/server/lib/notifyUsersOnMessage.js index 3e1dc362d0c..748e449b080 100644 --- a/packages/rocketchat-lib/server/lib/notifyUsersOnMessage.js +++ b/packages/rocketchat-lib/server/lib/notifyUsersOnMessage.js @@ -1,3 +1,5 @@ +import moment from 'moment'; + RocketChat.callbacks.add('afterSaveMessage', function(message, room) { // skips this callback if the message was edited if (message.editedAt) { diff --git a/packages/rocketchat-lib/server/lib/sendEmailOnMessage.js b/packages/rocketchat-lib/server/lib/sendEmailOnMessage.js index 4e7b6b53b66..67e75ce2474 100644 --- a/packages/rocketchat-lib/server/lib/sendEmailOnMessage.js +++ b/packages/rocketchat-lib/server/lib/sendEmailOnMessage.js @@ -1,3 +1,5 @@ +import moment from 'moment'; + RocketChat.callbacks.add('afterSaveMessage', function(message, room) { // skips this callback if the message was edited if (message.editedAt) { diff --git a/packages/rocketchat-lib/server/lib/sendNotificationsOnMessage.js b/packages/rocketchat-lib/server/lib/sendNotificationsOnMessage.js index 074c03ccf43..25081f7f0b4 100644 --- a/packages/rocketchat-lib/server/lib/sendNotificationsOnMessage.js +++ b/packages/rocketchat-lib/server/lib/sendNotificationsOnMessage.js @@ -1,4 +1,5 @@ /* globals Push */ +import moment from 'moment'; RocketChat.callbacks.add('afterSaveMessage', function(message, room) { // skips this callback if the message was edited diff --git a/packages/rocketchat-lib/server/methods/deleteMessage.coffee b/packages/rocketchat-lib/server/methods/deleteMessage.coffee index f19d2bb0c1f..04ab2e6f5f9 100644 --- a/packages/rocketchat-lib/server/methods/deleteMessage.coffee +++ b/packages/rocketchat-lib/server/methods/deleteMessage.coffee @@ -1,3 +1,5 @@ +import moment from 'moment' + Meteor.methods deleteMessage: (message) -> diff --git a/packages/rocketchat-lib/server/methods/sendMessage.coffee b/packages/rocketchat-lib/server/methods/sendMessage.coffee index c82a5427396..c787be5f359 100644 --- a/packages/rocketchat-lib/server/methods/sendMessage.coffee +++ b/packages/rocketchat-lib/server/methods/sendMessage.coffee @@ -1,3 +1,5 @@ +import moment from 'moment' + Meteor.methods sendMessage: (message) -> diff --git a/packages/rocketchat-lib/server/methods/updateMessage.coffee b/packages/rocketchat-lib/server/methods/updateMessage.coffee index 8db60860875..cfc0d49d763 100644 --- a/packages/rocketchat-lib/server/methods/updateMessage.coffee +++ b/packages/rocketchat-lib/server/methods/updateMessage.coffee @@ -1,3 +1,5 @@ +import moment from 'moment' + Meteor.methods updateMessage: (message) -> diff --git a/packages/rocketchat-lib/server/startup/settings.coffee b/packages/rocketchat-lib/server/startup/settings.coffee index 794155b24f6..c02f8f393dd 100644 --- a/packages/rocketchat-lib/server/startup/settings.coffee +++ b/packages/rocketchat-lib/server/startup/settings.coffee @@ -185,6 +185,8 @@ RocketChat.settings.addGroup 'Message', -> @add 'Message_AudioRecorderEnabled', true, { type: 'boolean', public: true, i18nDescription: 'Message_AudioRecorderEnabledDescription' } @add 'Message_GroupingPeriod', 300, { type: 'int', public: true, i18nDescription: 'Message_GroupingPeriodDescription' } @add 'API_Embed', true, { type: 'boolean', public: true } + @add 'API_EmbedCacheExpirationDays', 30, { type: 'int', public: false } + @add 'API_Embed_clear_cache_now', 'OEmbedCacheCleanup', { type: 'action', actionText: 'clear', i18nLabel: 'clear_cache_now' } @add 'API_EmbedDisabledFor', '', { type: 'string', public: true, i18nDescription: 'API_EmbedDisabledFor_Description' } @add 'API_EmbedIgnoredHosts', 'localhost, 127.0.0.1, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16', { type: 'string', i18nDescription: 'API_EmbedIgnoredHosts_Description' } @add 'API_EmbedSafePorts', '80, 443', { type: 'string' } diff --git a/packages/rocketchat-livechat/app/client/lib/chatMessages.coffee b/packages/rocketchat-livechat/app/client/lib/chatMessages.coffee index 276ce571954..f63f91e5ce2 100644 --- a/packages/rocketchat-livechat/app/client/lib/chatMessages.coffee +++ b/packages/rocketchat-livechat/app/client/lib/chatMessages.coffee @@ -1,3 +1,4 @@ +import toastr from 'toastr' class @ChatMessages init: (node) -> this.editing = {} diff --git a/packages/rocketchat-livechat/app/client/views/message.coffee b/packages/rocketchat-livechat/app/client/views/message.coffee index 38ab9dc5fdf..313e7d78793 100644 --- a/packages/rocketchat-livechat/app/client/views/message.coffee +++ b/packages/rocketchat-livechat/app/client/views/message.coffee @@ -1,5 +1,6 @@ -Template.message.helpers +import moment from 'moment' +Template.message.helpers own: -> return 'own' if this.u?._id is Meteor.userId() diff --git a/packages/rocketchat-livechat/app/package.json b/packages/rocketchat-livechat/app/package.json index ce4767e630c..0acb090c48a 100644 --- a/packages/rocketchat-livechat/app/package.json +++ b/packages/rocketchat-livechat/app/package.json @@ -20,7 +20,10 @@ "email": "support@rocket.chat" }, "dependencies": { - "autolinker": "^1.2.1", - "babel-runtime": "^6.18.0" + "autolinker": "^1.3.2", + "babel-runtime": "^6.18.0", + "moment": "^2.16.0", + "jquery": "^3.1.1", + "toastr": "^2.1.2" } } diff --git a/packages/rocketchat-livechat/client/views/app/livechatAppearance.js b/packages/rocketchat-livechat/client/views/app/livechatAppearance.js index 85b93a058b9..d3fd940eb9c 100644 --- a/packages/rocketchat-livechat/client/views/app/livechatAppearance.js +++ b/packages/rocketchat-livechat/client/views/app/livechatAppearance.js @@ -1,3 +1,6 @@ +import moment from 'moment'; +import toastr from 'toastr'; + Template.livechatAppearance.helpers({ previewState() { return Template.instance().previewState.get(); diff --git a/packages/rocketchat-livechat/client/views/app/livechatCurrentChats.js b/packages/rocketchat-livechat/client/views/app/livechatCurrentChats.js index a481af11307..57bcdbd87b9 100644 --- a/packages/rocketchat-livechat/client/views/app/livechatCurrentChats.js +++ b/packages/rocketchat-livechat/client/views/app/livechatCurrentChats.js @@ -1,3 +1,5 @@ +import moment from 'moment'; + Template.livechatCurrentChats.helpers({ livechatRoom() { return ChatRoom.find({ t: 'l' }, { sort: { ts: -1 } }); diff --git a/packages/rocketchat-livechat/client/views/app/livechatCustomFieldForm.js b/packages/rocketchat-livechat/client/views/app/livechatCustomFieldForm.js index 0d40f2be6e6..622cb6c5e09 100644 --- a/packages/rocketchat-livechat/client/views/app/livechatCustomFieldForm.js +++ b/packages/rocketchat-livechat/client/views/app/livechatCustomFieldForm.js @@ -1,3 +1,4 @@ +import toastr from 'toastr'; Template.livechatCustomFieldForm.helpers({ customField() { return Template.instance().customField.get(); diff --git a/packages/rocketchat-livechat/client/views/app/livechatDepartmentForm.js b/packages/rocketchat-livechat/client/views/app/livechatDepartmentForm.js index 067d5400e68..ec40ba225e1 100644 --- a/packages/rocketchat-livechat/client/views/app/livechatDepartmentForm.js +++ b/packages/rocketchat-livechat/client/views/app/livechatDepartmentForm.js @@ -1,3 +1,4 @@ +import toastr from 'toastr'; Template.livechatDepartmentForm.helpers({ department() { return Template.instance().department.get(); diff --git a/packages/rocketchat-livechat/client/views/app/livechatIntegrations.js b/packages/rocketchat-livechat/client/views/app/livechatIntegrations.js index f9a8ecd1bb8..9b96be1552f 100644 --- a/packages/rocketchat-livechat/client/views/app/livechatIntegrations.js +++ b/packages/rocketchat-livechat/client/views/app/livechatIntegrations.js @@ -1,3 +1,4 @@ +import toastr from 'toastr'; /* globals LivechatIntegration */ Template.livechatIntegrations.helpers({ webhookUrl() { diff --git a/packages/rocketchat-livechat/client/views/app/livechatOfficeHours.js b/packages/rocketchat-livechat/client/views/app/livechatOfficeHours.js index 298e84d4d11..aa4c2e6856b 100644 --- a/packages/rocketchat-livechat/client/views/app/livechatOfficeHours.js +++ b/packages/rocketchat-livechat/client/views/app/livechatOfficeHours.js @@ -1,4 +1,6 @@ +import toastr from 'toastr'; /* globals LivechatOfficeHour */ +import moment from 'moment'; Template.livechatOfficeHours.helpers({ days() { @@ -154,4 +156,4 @@ Template.livechatOfficeHours.onCreated(function() { this.autorun(() => { this.enableOfficeHours.set(RocketChat.settings.get('Livechat_enable_office_hours')); }); -}); \ No newline at end of file +}); diff --git a/packages/rocketchat-livechat/client/views/app/livechatTriggers.js b/packages/rocketchat-livechat/client/views/app/livechatTriggers.js index 071d0b3e6c3..74adc00334b 100644 --- a/packages/rocketchat-livechat/client/views/app/livechatTriggers.js +++ b/packages/rocketchat-livechat/client/views/app/livechatTriggers.js @@ -1,3 +1,4 @@ +import toastr from 'toastr'; Template.livechatTriggers.helpers({ conditions() { var trigger = Template.instance().trigger.get(); diff --git a/packages/rocketchat-livechat/client/views/app/livechatUsers.js b/packages/rocketchat-livechat/client/views/app/livechatUsers.js index c402b7533c0..6c4d746f425 100644 --- a/packages/rocketchat-livechat/client/views/app/livechatUsers.js +++ b/packages/rocketchat-livechat/client/views/app/livechatUsers.js @@ -1,3 +1,4 @@ +import toastr from 'toastr'; var ManagerUsers; Meteor.startup(function() { diff --git a/packages/rocketchat-livechat/client/views/app/tabbar/visitorEdit.js b/packages/rocketchat-livechat/client/views/app/tabbar/visitorEdit.js index 37b64c95433..0b3291c888c 100644 --- a/packages/rocketchat-livechat/client/views/app/tabbar/visitorEdit.js +++ b/packages/rocketchat-livechat/client/views/app/tabbar/visitorEdit.js @@ -1,3 +1,4 @@ +import toastr from 'toastr'; Template.visitorEdit.helpers({ visitor() { return Template.instance().visitor.get(); diff --git a/packages/rocketchat-livechat/client/views/app/tabbar/visitorForward.js b/packages/rocketchat-livechat/client/views/app/tabbar/visitorForward.js index 98b93ee5153..e7481e4af3b 100644 --- a/packages/rocketchat-livechat/client/views/app/tabbar/visitorForward.js +++ b/packages/rocketchat-livechat/client/views/app/tabbar/visitorForward.js @@ -1,3 +1,4 @@ +import toastr from 'toastr'; Template.visitorForward.helpers({ visitor() { return Template.instance().visitor.get(); diff --git a/packages/rocketchat-livechat/client/views/app/tabbar/visitorHistory.js b/packages/rocketchat-livechat/client/views/app/tabbar/visitorHistory.js index 9891716a3d8..9ed7ece648d 100644 --- a/packages/rocketchat-livechat/client/views/app/tabbar/visitorHistory.js +++ b/packages/rocketchat-livechat/client/views/app/tabbar/visitorHistory.js @@ -1,3 +1,5 @@ +import moment from 'moment'; + Template.visitorHistory.helpers({ historyLoaded() { return !Template.instance().loadHistory.ready(); diff --git a/packages/rocketchat-livechat/client/views/app/tabbar/visitorInfo.js b/packages/rocketchat-livechat/client/views/app/tabbar/visitorInfo.js index a1b3d4db5d1..41c2e26e04d 100644 --- a/packages/rocketchat-livechat/client/views/app/tabbar/visitorInfo.js +++ b/packages/rocketchat-livechat/client/views/app/tabbar/visitorInfo.js @@ -1,3 +1,4 @@ +import moment from 'moment'; import UAParser from 'ua-parser-js'; Template.visitorInfo.helpers({ diff --git a/packages/rocketchat-livechat/client/views/app/tabbar/visitorNavigation.js b/packages/rocketchat-livechat/client/views/app/tabbar/visitorNavigation.js index cef5a7e30d4..60944d09bd5 100644 --- a/packages/rocketchat-livechat/client/views/app/tabbar/visitorNavigation.js +++ b/packages/rocketchat-livechat/client/views/app/tabbar/visitorNavigation.js @@ -1,3 +1,5 @@ +import moment from 'moment'; + Template.visitorNavigation.helpers({ loadingNavigation() { return !Template.instance().pageVisited.ready(); diff --git a/packages/rocketchat-livechat/client/views/sideNav/livechat.js b/packages/rocketchat-livechat/client/views/sideNav/livechat.js index 8dc82cd55b3..94586f60f6a 100644 --- a/packages/rocketchat-livechat/client/views/sideNav/livechat.js +++ b/packages/rocketchat-livechat/client/views/sideNav/livechat.js @@ -126,8 +126,12 @@ Template.livechat.onCreated(function() { this.statusLivechat = new ReactiveVar(); this.autorun(() => { - const user = RocketChat.models.Users.findOne(Meteor.userId(), { fields: { statusLivechat: 1 } }); - this.statusLivechat.set(user.statusLivechat); + if (Meteor.userId()) { + const user = RocketChat.models.Users.findOne(Meteor.userId(), { fields: { statusLivechat: 1 } }); + this.statusLivechat.set(user.statusLivechat); + } else { + this.statusLivechat.set(); + } }); this.subscribe('livechat:inquiry'); diff --git a/packages/rocketchat-livechat/server/methods/sendTranscript.js b/packages/rocketchat-livechat/server/methods/sendTranscript.js index 386a962062e..e05f06930ac 100644 --- a/packages/rocketchat-livechat/server/methods/sendTranscript.js +++ b/packages/rocketchat-livechat/server/methods/sendTranscript.js @@ -1,5 +1,7 @@ /* globals emailSettings, DDPRateLimiter */ /* Send a transcript of the room converstation to the given email */ +import moment from 'moment'; + Meteor.methods({ 'livechat:sendTranscript'(rid, email) { check(rid, String); diff --git a/packages/rocketchat-livechat/server/models/LivechatOfficeHour.js b/packages/rocketchat-livechat/server/models/LivechatOfficeHour.js index 0232d3e8e84..7d908971014 100644 --- a/packages/rocketchat-livechat/server/models/LivechatOfficeHour.js +++ b/packages/rocketchat-livechat/server/models/LivechatOfficeHour.js @@ -1,3 +1,5 @@ +import moment from 'moment'; + class LivechatOfficeHour extends RocketChat.models._Base { constructor() { super('livechat_office_hour'); diff --git a/packages/rocketchat-logger/client/views/viewLogs.coffee b/packages/rocketchat-logger/client/views/viewLogs.coffee index e52f3d8d5e0..cb86a98cce9 100644 --- a/packages/rocketchat-logger/client/views/viewLogs.coffee +++ b/packages/rocketchat-logger/client/views/viewLogs.coffee @@ -1,3 +1,5 @@ +import moment from 'moment' + Template.viewLogs.onCreated -> @subscribe 'stdout' @atBottom = true diff --git a/packages/rocketchat-logger/package.js b/packages/rocketchat-logger/package.js index ad83cdb41d9..dae5b6e6f2c 100644 --- a/packages/rocketchat-logger/package.js +++ b/packages/rocketchat-logger/package.js @@ -5,6 +5,7 @@ Package.describe({ }); Package.onUse(function(api) { + api.use('ecmascript'); api.use('coffeescript'); api.use('underscore'); api.use('random'); diff --git a/packages/rocketchat-mailer/client/views/mailer.coffee b/packages/rocketchat-mailer/client/views/mailer.coffee index 7a439adea9f..9f484b5a5e3 100644 --- a/packages/rocketchat-mailer/client/views/mailer.coffee +++ b/packages/rocketchat-mailer/client/views/mailer.coffee @@ -1,3 +1,4 @@ +import toastr from 'toastr' Template.mailer.helpers fromEmail: -> return RocketChat.settings.get 'From_Email' diff --git a/packages/rocketchat-mailer/package.js b/packages/rocketchat-mailer/package.js index e40e713af7c..30da5c981e5 100644 --- a/packages/rocketchat-mailer/package.js +++ b/packages/rocketchat-mailer/package.js @@ -6,6 +6,7 @@ Package.describe({ Package.onUse(function(api) { api.use([ + 'ecmascript', 'coffeescript', 'ddp-rate-limiter', 'kadira:flow-router', diff --git a/packages/rocketchat-mapview/package.js b/packages/rocketchat-mapview/package.js index f8ef144e85b..d91c587ee18 100644 --- a/packages/rocketchat-mapview/package.js +++ b/packages/rocketchat-mapview/package.js @@ -6,6 +6,7 @@ Package.describe({ Package.onUse(function(api) { api.use([ + 'ecmascript', 'coffeescript', 'rocketchat:lib' ]); diff --git a/packages/rocketchat-markdown/package.js b/packages/rocketchat-markdown/package.js index 5acff381922..36babdcfad2 100644 --- a/packages/rocketchat-markdown/package.js +++ b/packages/rocketchat-markdown/package.js @@ -8,6 +8,7 @@ Package.describe({ Package.onUse(function(api) { api.use([ 'coffeescript', + 'ecmascript', 'underscore', 'templating', 'underscorestring:underscore.string', diff --git a/packages/rocketchat-mentions-flextab/package.js b/packages/rocketchat-mentions-flextab/package.js index 55627c9e864..000a7f2909d 100644 --- a/packages/rocketchat-mentions-flextab/package.js +++ b/packages/rocketchat-mentions-flextab/package.js @@ -7,6 +7,7 @@ Package.describe({ Package.onUse(function(api) { api.use([ + 'ecmascript', 'coffeescript', 'underscore', 'less', diff --git a/packages/rocketchat-mentions/package.js b/packages/rocketchat-mentions/package.js index 81a6ace9c2a..68ea0c3ce2e 100644 --- a/packages/rocketchat-mentions/package.js +++ b/packages/rocketchat-mentions/package.js @@ -7,6 +7,7 @@ Package.describe({ Package.onUse(function(api) { api.use([ + 'ecmascript', 'coffeescript', 'rocketchat:lib' ]); diff --git a/packages/rocketchat-message-attachments/client/messageAttachment.coffee b/packages/rocketchat-message-attachments/client/messageAttachment.coffee index 9da926d0692..195fb7cfb1f 100644 --- a/packages/rocketchat-message-attachments/client/messageAttachment.coffee +++ b/packages/rocketchat-message-attachments/client/messageAttachment.coffee @@ -1,3 +1,5 @@ +import moment from 'moment' + Template.messageAttachment.helpers fixCordova: (url) -> if Meteor.isCordova and url?[0] is '/' diff --git a/packages/rocketchat-message-attachments/package.js b/packages/rocketchat-message-attachments/package.js index cbdbce47a79..0b43fed4b30 100644 --- a/packages/rocketchat-message-attachments/package.js +++ b/packages/rocketchat-message-attachments/package.js @@ -8,6 +8,7 @@ Package.describe({ Package.onUse(function(api) { api.use([ 'templating', + 'ecmascript', 'coffeescript', 'underscore', 'rocketchat:lib' diff --git a/packages/rocketchat-message-mark-as-unread/package.js b/packages/rocketchat-message-mark-as-unread/package.js index 2f3c5d3a2ee..36da7db18ff 100644 --- a/packages/rocketchat-message-mark-as-unread/package.js +++ b/packages/rocketchat-message-mark-as-unread/package.js @@ -7,6 +7,7 @@ Package.describe({ Package.onUse(function(api) { api.use([ 'coffeescript', + 'ecmascript', 'underscore', 'less', 'rocketchat:lib', diff --git a/packages/rocketchat-message-pin/client/actionButton.coffee b/packages/rocketchat-message-pin/client/actionButton.coffee index 4a24b16c097..4b5861f5bbc 100644 --- a/packages/rocketchat-message-pin/client/actionButton.coffee +++ b/packages/rocketchat-message-pin/client/actionButton.coffee @@ -1,3 +1,4 @@ +import toastr from 'toastr' Meteor.startup -> RocketChat.MessageAction.addButton id: 'pin-message' diff --git a/packages/rocketchat-message-pin/package.js b/packages/rocketchat-message-pin/package.js index fac3a505abd..3d21a4c4ab9 100644 --- a/packages/rocketchat-message-pin/package.js +++ b/packages/rocketchat-message-pin/package.js @@ -7,6 +7,7 @@ Package.describe({ Package.onUse(function(api) { api.use([ 'coffeescript', + 'ecmascript', 'underscore', 'less', 'rocketchat:lib' diff --git a/packages/rocketchat-message-snippet/client/page/snippetPage.js b/packages/rocketchat-message-snippet/client/page/snippetPage.js index fda1532d20f..0967769600f 100644 --- a/packages/rocketchat-message-snippet/client/page/snippetPage.js +++ b/packages/rocketchat-message-snippet/client/page/snippetPage.js @@ -1,4 +1,6 @@ /* global SnippetedMessages */ +import moment from 'moment'; + Template.snippetPage.helpers({ snippet: function() { return SnippetedMessages.findOne({ _id: FlowRouter.getParam('snippetId') }); diff --git a/packages/rocketchat-message-snippet/client/tabBar/views/snippetMessage.js b/packages/rocketchat-message-snippet/client/tabBar/views/snippetMessage.js index c0106c72fe8..f561900d87b 100644 --- a/packages/rocketchat-message-snippet/client/tabBar/views/snippetMessage.js +++ b/packages/rocketchat-message-snippet/client/tabBar/views/snippetMessage.js @@ -1,3 +1,5 @@ +import moment from 'moment'; + Template.snippetMessage.helpers({ time: function() { return moment(this.ts).format(RocketChat.settings.get('Message_TimeFormat')); diff --git a/packages/rocketchat-message-star/client/actionButton.coffee b/packages/rocketchat-message-star/client/actionButton.coffee index 87dbed47b07..c0b873a6db8 100644 --- a/packages/rocketchat-message-star/client/actionButton.coffee +++ b/packages/rocketchat-message-star/client/actionButton.coffee @@ -1,3 +1,4 @@ +import toastr from 'toastr' Meteor.startup -> RocketChat.MessageAction.addButton id: 'star-message' diff --git a/packages/rocketchat-message-star/package.js b/packages/rocketchat-message-star/package.js index 85a5f1476d8..b8dc255bf08 100644 --- a/packages/rocketchat-message-star/package.js +++ b/packages/rocketchat-message-star/package.js @@ -8,6 +8,7 @@ Package.describe({ Package.onUse(function(api) { api.use([ 'coffeescript', + 'ecmascript', 'underscore', 'less', 'rocketchat:lib' diff --git a/packages/rocketchat-migrations/migrations.js b/packages/rocketchat-migrations/migrations.js index 25fb8d6b18a..ee54c145e69 100644 --- a/packages/rocketchat-migrations/migrations.js +++ b/packages/rocketchat-migrations/migrations.js @@ -1,4 +1,5 @@ /* eslint-disable */ +import moment from 'moment'; /* Adds migration capabilities. Migrations are defined like: @@ -27,8 +28,7 @@ be in an inconsistant state. */ -// since we'll be at version 0 by default, we should have a migration set for -// it. +// since we'll be at version 0 by default, we should have a migration set for it. var DefaultMigration = { version: 0, up: function() { diff --git a/packages/rocketchat-migrations/package.js b/packages/rocketchat-migrations/package.js index f569673cef8..b4fa65fea49 100644 --- a/packages/rocketchat-migrations/package.js +++ b/packages/rocketchat-migrations/package.js @@ -12,7 +12,6 @@ Package.onUse(function(api) { api.use('underscore'); api.use('check'); api.use('mongo'); - api.use('momentjs:moment'); api.addFiles('migrations.js', 'server'); }); diff --git a/packages/rocketchat-oauth2-server-config/admin/client/views/oauthApp.coffee b/packages/rocketchat-oauth2-server-config/admin/client/views/oauthApp.coffee index 901a85423de..f8da9f6ce69 100644 --- a/packages/rocketchat-oauth2-server-config/admin/client/views/oauthApp.coffee +++ b/packages/rocketchat-oauth2-server-config/admin/client/views/oauthApp.coffee @@ -1,3 +1,4 @@ +import toastr from 'toastr' Template.oauthApp.onCreated -> @subscribe 'oauthApps' @record = new ReactiveVar diff --git a/packages/rocketchat-oauth2-server-config/admin/client/views/oauthApps.coffee b/packages/rocketchat-oauth2-server-config/admin/client/views/oauthApps.coffee index b34aeb12e46..37e3df9d3ca 100644 --- a/packages/rocketchat-oauth2-server-config/admin/client/views/oauthApps.coffee +++ b/packages/rocketchat-oauth2-server-config/admin/client/views/oauthApps.coffee @@ -1,3 +1,5 @@ +import moment from 'moment' + Template.oauthApps.onCreated -> @subscribe 'oauthApps' diff --git a/packages/rocketchat-oauth2-server-config/package.js b/packages/rocketchat-oauth2-server-config/package.js index 976fad371c3..6f7c70c0f40 100644 --- a/packages/rocketchat-oauth2-server-config/package.js +++ b/packages/rocketchat-oauth2-server-config/package.js @@ -7,6 +7,7 @@ Package.describe({ Package.onUse(function(api) { api.use('webapp'); api.use('coffeescript'); + api.use('ecmascript'); api.use('rocketchat:lib'); api.use('rocketchat:api'); api.use('rocketchat:theme'); diff --git a/packages/rocketchat-oembed/server/models/OEmbedCache.coffee b/packages/rocketchat-oembed/server/models/OEmbedCache.coffee index 251eb3b6e6a..cdf8fbfbf27 100644 --- a/packages/rocketchat-oembed/server/models/OEmbedCache.coffee +++ b/packages/rocketchat-oembed/server/models/OEmbedCache.coffee @@ -1,6 +1,7 @@ RocketChat.models.OEmbedCache = new class extends RocketChat.models._Base constructor: -> super('oembed_cache') + @tryEnsureIndex { 'updatedAt': 1 } # FIND ONE @@ -20,3 +21,10 @@ RocketChat.models.OEmbedCache = new class extends RocketChat.models._Base record._id = @insert record return record + + # REMOVE + removeAfterDate: (date) -> + query = + updatedAt: + $lte: date + @remove query diff --git a/packages/rocketchat-otr/client/rocketchat.otr.room.js b/packages/rocketchat-otr/client/rocketchat.otr.room.js index 561fc8517bd..e5e7c591e4a 100644 --- a/packages/rocketchat-otr/client/rocketchat.otr.room.js +++ b/packages/rocketchat-otr/client/rocketchat.otr.room.js @@ -1,3 +1,4 @@ +import toastr from 'toastr'; /* globals crypto */ RocketChat.OTR.Room = class { diff --git a/packages/rocketchat-push-notifications/client/views/pushNotificationsFlexTab.js b/packages/rocketchat-push-notifications/client/views/pushNotificationsFlexTab.js index 3133cb92f2c..744c7427e3c 100644 --- a/packages/rocketchat-push-notifications/client/views/pushNotificationsFlexTab.js +++ b/packages/rocketchat-push-notifications/client/views/pushNotificationsFlexTab.js @@ -1,3 +1,4 @@ +import toastr from 'toastr'; /* globals ChatSubscription */ Template.pushNotificationsFlexTab.helpers({ diff --git a/packages/rocketchat-sharedsecret/package.js b/packages/rocketchat-sharedsecret/package.js index 633e85d78df..a3eaeda0b9d 100644 --- a/packages/rocketchat-sharedsecret/package.js +++ b/packages/rocketchat-sharedsecret/package.js @@ -7,6 +7,7 @@ Package.describe({ Package.onUse(function(api) { api.use([ + 'ecmascript', 'coffeescript', 'rocketchat:lib' ]); diff --git a/packages/rocketchat-slashcommands-invite/package.js b/packages/rocketchat-slashcommands-invite/package.js index fba407cf422..6c5203479de 100644 --- a/packages/rocketchat-slashcommands-invite/package.js +++ b/packages/rocketchat-slashcommands-invite/package.js @@ -8,6 +8,7 @@ Package.describe({ Package.onUse(function(api) { api.use([ + 'ecmascript', 'coffeescript', 'check', 'rocketchat:lib' diff --git a/packages/rocketchat-slashcommands-join/package.js b/packages/rocketchat-slashcommands-join/package.js index 158e28bfe41..8eedf2e8435 100644 --- a/packages/rocketchat-slashcommands-join/package.js +++ b/packages/rocketchat-slashcommands-join/package.js @@ -8,6 +8,7 @@ Package.describe({ Package.onUse(function(api) { api.use([ + 'ecmascript', 'coffeescript', 'check', 'rocketchat:lib' diff --git a/packages/rocketchat-slashcommands-kick/package.js b/packages/rocketchat-slashcommands-kick/package.js index 9d624064263..e089227b0e7 100644 --- a/packages/rocketchat-slashcommands-kick/package.js +++ b/packages/rocketchat-slashcommands-kick/package.js @@ -9,6 +9,7 @@ Package.onUse(function(api) { api.use([ 'coffeescript', + 'ecmascript', 'check', 'rocketchat:lib' ]); diff --git a/packages/rocketchat-slashcommands-leave/package.js b/packages/rocketchat-slashcommands-leave/package.js index 1d5f66df390..baaa3aebef3 100644 --- a/packages/rocketchat-slashcommands-leave/package.js +++ b/packages/rocketchat-slashcommands-leave/package.js @@ -7,6 +7,7 @@ Package.describe({ Package.onUse(function(api) { api.use([ + 'ecmascript', 'coffeescript', 'rocketchat:lib' ]); diff --git a/packages/rocketchat-slashcommands-me/package.js b/packages/rocketchat-slashcommands-me/package.js index e84b73310da..ce1b6e96aff 100644 --- a/packages/rocketchat-slashcommands-me/package.js +++ b/packages/rocketchat-slashcommands-me/package.js @@ -7,6 +7,7 @@ Package.describe({ Package.onUse(function(api) { api.use([ + 'ecmascript', 'coffeescript', 'rocketchat:lib' ]); diff --git a/packages/rocketchat-slashcommands-msg/package.js b/packages/rocketchat-slashcommands-msg/package.js index efd4b7250a9..068ae95c7ff 100644 --- a/packages/rocketchat-slashcommands-msg/package.js +++ b/packages/rocketchat-slashcommands-msg/package.js @@ -8,6 +8,7 @@ Package.describe({ Package.onUse(function(api) { api.use([ + 'ecmascript', 'coffeescript', 'check', 'rocketchat:lib' diff --git a/packages/rocketchat-slashcommands-mute/package.js b/packages/rocketchat-slashcommands-mute/package.js index e1506b09601..af1bc9a816b 100644 --- a/packages/rocketchat-slashcommands-mute/package.js +++ b/packages/rocketchat-slashcommands-mute/package.js @@ -8,6 +8,7 @@ Package.describe({ Package.onUse(function(api) { api.use([ + 'ecmascript', 'coffeescript', 'check', 'rocketchat:lib' diff --git a/packages/rocketchat-smarsh-connector/package.js b/packages/rocketchat-smarsh-connector/package.js index 26b0c062852..a8cbecf94d2 100644 --- a/packages/rocketchat-smarsh-connector/package.js +++ b/packages/rocketchat-smarsh-connector/package.js @@ -9,8 +9,7 @@ Package.onUse(function(api) { api.use([ 'ecmascript', 'rocketchat:lib', - 'underscore', - 'aldeed:moment-timezone' + 'underscore' ]); api.addFiles('lib/rocketchat.js', [ 'client', 'server' ]); diff --git a/packages/rocketchat-smarsh-connector/server/functions/generateEml.js b/packages/rocketchat-smarsh-connector/server/functions/generateEml.js index 75c4cf11b2d..58c884a0a5b 100644 --- a/packages/rocketchat-smarsh-connector/server/functions/generateEml.js +++ b/packages/rocketchat-smarsh-connector/server/functions/generateEml.js @@ -1,3 +1,6 @@ +import moment from 'moment'; +import 'moment-timezone'; + const start = '