+
+
+
+
-
-
-
+
+
{{_ "Alerts"}}:
+ {{# with "emailNotifications"}}
+
+ {{subValue 'emailNotifications'}}
+ {{> icon block="rc-user-info__config-content-icon" icon="arrow-down"}}
+
+ {{/with}}
+
+
+
+ {{/if}}
+
+
+
+
+
+
+
+
+
+ {{#each options}}
+
+
+
+ {{/each}}
diff --git a/packages/rocketchat-push-notifications/client/views/pushNotificationsFlexTab.js b/packages/rocketchat-push-notifications/client/views/pushNotificationsFlexTab.js
index 19ab56debedf..70f65e81ef12 100644
--- a/packages/rocketchat-push-notifications/client/views/pushNotificationsFlexTab.js
+++ b/packages/rocketchat-push-notifications/client/views/pushNotificationsFlexTab.js
@@ -1,5 +1,4 @@
-import toastr from 'toastr';
-/* globals ChatSubscription */
+/* globals ChatSubscription popover */
const notificationLabels = {
all: 'All_messages',
@@ -7,119 +6,58 @@ const notificationLabels = {
nothing: 'Nothing'
};
+const call = (method, ...params) => {
+ return new Promise((resolve, reject) => {
+ Meteor.call(method, ...params, (err, result)=> {
+ if (err) {
+ handleError(err);
+ return reject(err);
+ }
+ return resolve(result);
+ });
+ });
+};
+
Template.pushNotificationsFlexTab.helpers({
- audioAssets() {
- return RocketChat.CustomSounds && RocketChat.CustomSounds.getList && RocketChat.CustomSounds.getList() || [];
+ notificationIsEnabled() {
+ return !Template.instance().form.disableNotifications.get();
},
disableNotifications() {
- const sub = ChatSubscription.findOne({
- rid: Session.get('openedRoom')
- }, {
- fields: {
- disableNotifications: 1
- }
- });
- return sub ? sub.disableNotifications || false : false;
+ return Template.instance().form.disableNotifications.get();
+ },
+ showUnreadStatus() {
+ return !Template.instance().form.hideUnreadStatus.get();
},
hideUnreadStatus() {
- const sub = ChatSubscription.findOne({
- rid: Session.get('openedRoom')
- }, {
- fields: {
- hideUnreadStatus: 1
- }
- });
- return sub ? sub.hideUnreadStatus || false : false;
+ return Template.instance().form.hideUnreadStatus.get();
},
audioNotifications() {
- const sub = ChatSubscription.findOne({
- rid: Session.get('openedRoom')
- }, {
- fields: {
- audioNotifications: 1
- }
- });
- return sub ? sub.audioNotifications || 'default' : 'default';
+ return Template.instance().form.audioNotifications.get();
+ },
+ audioNotificationValue() {
+ const value = Template.instance().form.audioNotificationValue.get();
+ if (value === '0') {
+ return t('Use_account_preference');
+ }
+
+ return value;
},
desktopNotifications() {
- const sub = ChatSubscription.findOne({
- rid: Session.get('openedRoom')
- }, {
- fields: {
- desktopNotifications: 1
- }
- });
- return sub ? sub.desktopNotifications || 'default' : 'default';
+ return Template.instance().form.desktopNotifications.get();
},
mobilePushNotifications() {
- const sub = ChatSubscription.findOne({
- rid: Session.get('openedRoom')
- }, {
- fields: {
- mobilePushNotifications: 1
- }
- });
- return sub ? sub.mobilePushNotifications || 'default' : 'default';
+ return Template.instance().form.mobilePushNotifications.get();
},
emailNotifications() {
- const sub = ChatSubscription.findOne({
- rid: Session.get('openedRoom')
- }, {
- fields: {
- emailNotifications: 1
- }
- });
- return sub ? sub.emailNotifications : '';
- },
- showEmailMentions() {
- const sub = ChatSubscription.findOne({
- rid: Session.get('openedRoom')
- }, {
- fields: {
- t: 1
- }
- });
- return sub && sub.t !== 'd';
- },
- unreadAlert() {
- const sub = ChatSubscription.findOne({
- rid: Session.get('openedRoom')
- }, {
- fields: {
- unreadAlert: 1
- }
- });
- return sub ? sub.unreadAlert : 'default';
+ return Template.instance().form.emailNotifications.get();
},
- unreadAlertText() {
- const sub = ChatSubscription.findOne({
- rid: Session.get('openedRoom')
- }, {
- fields: {
- unreadAlert: 1
- }
- });
- if (sub) {
- switch (sub.unreadAlert) {
- case 'all':
- return t('On');
- case 'nothing':
- return t('Off');
- }
- }
- return t('Use_account_preference');
+ desktopNotificationDuration() {
+ return Template.instance().form.desktopNotificationDuration.get();
},
subValue(field) {
- const sub = ChatSubscription.findOne({
- rid: Session.get('openedRoom')
- }, {
- fields: {
- t: 1,
- [field]: 1
- }
- });
- if (sub) {
- switch (sub[field]) {
+ const { form } = Template.instance();
+ if (form[field]) {
+ switch (form[field].get()) {
case 'all':
return t('All_messages');
case 'nothing':
@@ -133,40 +71,6 @@ Template.pushNotificationsFlexTab.helpers({
}
}
},
- audioNotificationValue() {
- const sub = ChatSubscription.findOne({
- rid: Session.get('openedRoom')
- }, {
- fields: {
- audioNotificationValue: 1
- }
- });
- const audio = sub ? sub.audioNotificationValue || 'default' : 'default';
- if (audio === 'default') {
- return t('Use_account_preference');
- }
- return audio;
- },
- desktopNotificationDuration() {
- const sub = ChatSubscription.findOne({
- rid: Session.get('openedRoom')
- }, {
- fields: {
- desktopNotificationDuration: 1
- }
- });
- if (!sub) {
- return false;
- }
- // Convert to Number
- return sub.desktopNotificationDuration - 0;
- },
- editing(field) {
- return Template.instance().editing.get() === field;
- },
- emailVerified() {
- return Meteor.user().emails && Meteor.user().emails[0] && Meteor.user().emails[0].verified;
- },
defaultAudioNotification() {
let preference = RocketChat.getUserPreference(Meteor.user(), 'audioNotifications');
if (preference === 'default') {
@@ -187,103 +91,108 @@ Template.pushNotificationsFlexTab.helpers({
preference = RocketChat.settings.get('Accounts_Default_User_Preferences_mobileNotifications');
}
return notificationLabels[preference];
+ },
+ disabled() {
+ const { original, form } = Template.instance();
+ return Object.keys(original).every(key => original[key].get() === form[key].get());
}
});
Template.pushNotificationsFlexTab.onCreated(function() {
- this.editing = new ReactiveVar();
-
- this.validateSetting = (field) => {
- switch (field) {
- case 'audioNotificationValue':
- return true;
- case 'hideUnreadStatus':
- case 'disableNotifications':
- return true;
- default:
- const value = this.$(`input[name=${ field }]:checked`).val();
- if (['all', 'mentions', 'nothing', 'default'].indexOf(value) === -1) {
- toastr.error(t('Invalid_notification_setting_s', value || ''));
- return false;
- }
- return true;
+ const rid = Session.get('openedRoom');
+ const sub = ChatSubscription.findOne({rid}, {
+ fields: {
+ disableNotifications: 1,
+ hideUnreadStatus: 1,
+ audioNotifications: 1,
+ desktopNotifications: 1,
+ mobilePushNotifications: 1,
+ emailNotifications: 1,
+ desktopNotificationDuration: 1,
+ audioNotificationValue: 1
}
+ }) || {};
+
+ const {
+ disableNotifications = false,
+ hideUnreadStatus = false,
+ audioNotifications = 'default',
+ desktopNotifications = 'default',
+ mobilePushNotifications = 'default',
+ emailNotifications = 'default',
+ desktopNotificationDuration = 0,
+ audioNotificationValue = null
+ } = sub;
+
+ this.original = {
+ disableNotifications: new ReactiveVar(disableNotifications),
+ hideUnreadStatus: new ReactiveVar(hideUnreadStatus),
+ audioNotifications: new ReactiveVar(audioNotifications),
+ desktopNotifications: new ReactiveVar(desktopNotifications),
+ mobilePushNotifications: new ReactiveVar(mobilePushNotifications),
+ emailNotifications: new ReactiveVar(emailNotifications),
+ desktopNotificationDuration: new ReactiveVar(desktopNotificationDuration),
+ audioNotificationValue: new ReactiveVar(audioNotificationValue)
};
- this.saveSetting = () => {
- const field = this.editing.get();
- let value;
- switch (field) {
- case 'hideUnreadStatus':
- case 'disableNotifications':
- value = this.$(`input[name=${ field }]:checked`).val() ? '1' : '0';
- break;
- default:
- value = this.$(`input[name=${ field }]:checked`).val();
- break;
- }
- const soundVal = $('select').val();
- const duration = $('input[name=duration]').val();
- if (this.validateSetting(field)) {
- Meteor.call('saveNotificationSettings', Session.get('openedRoom'), field, value, (err/*, result*/) => {
- if (err) {
- return handleError(err);
- } else if (duration !== undefined) {
- Meteor.call('saveDesktopNotificationDuration', Session.get('openedRoom'), duration, (err) => {
- if (err) {
- return handleError(err);
- }
- });
- } else if (soundVal!==undefined) {
- Meteor.call('saveAudioNotificationValue', Session.get('openedRoom'), soundVal, (err) => {
- if (err) {
- return handleError(err);
- }
- });
- }
- this.editing.set();
- });
- }
+ this.form = {
+ disableNotifications: new ReactiveVar(disableNotifications),
+ hideUnreadStatus: new ReactiveVar(hideUnreadStatus),
+ audioNotifications: new ReactiveVar(audioNotifications),
+ desktopNotifications: new ReactiveVar(desktopNotifications),
+ mobilePushNotifications: new ReactiveVar(mobilePushNotifications),
+ emailNotifications: new ReactiveVar(emailNotifications),
+ desktopNotificationDuration: new ReactiveVar(desktopNotificationDuration),
+ audioNotificationValue: new ReactiveVar(audioNotificationValue)
};
-});
-Template.pushNotificationsFlexTab.events({
- 'keydown input[type=text]'(e, instance) {
- if (e.keyCode === 13) {
- e.preventDefault();
- instance.saveSetting();
- }
- },
+ this.saveSetting = async() => {
+ Object.keys(this.original).forEach(async field => {
+ if (this.original[field].get() === this.form[field].get()) {
+ return;
+ }
+ let value = this.form[field].get();
- 'click [data-edit]'(e, instance) {
- e.preventDefault();
- instance.editing.set($(e.currentTarget).data('edit'));
- setTimeout(function() { instance.$('input.editing').focus().select(); }, 100);
- },
+ value = typeof value === 'boolean' ? value ? '1' : '0' : value;
+ const rid = Session.get('openedRoom');
+ switch (field) {
+ case 'desktopNotificationDuration':
+ await call('saveDesktopNotificationDuration', rid, value);
+ break;
+ case 'audioNotificationValue':
+ await call('saveAudioNotificationValue', rid, value);
+ break;
+ default:
+ await call('saveNotificationSettings', rid, field, value);
+ }
+ this.original[field].set(this.form[field].get());
- 'click .cancel'(e, instance) {
- e.preventDefault();
- instance.editing.set();
+ });
+ };
+});
+
+Template.pushNotificationsFlexTab.events({
+ 'click .js-cancel'(e, instance) {
+ instance.data.tabBar.close();
},
- 'click .save'(e, instance) {
+ 'click .js-save'(e, instance) {
e.preventDefault();
instance.saveSetting();
},
'click [data-play]'(e) {
e.preventDefault();
-
- let audio = $(e.currentTarget).data('play');
const user = Meteor.user();
- if (audio === 'Use account preference' || audio === 'none') {
- audio = RocketChat.getUserPreference(user, 'newMessageNotification');
+ let value = Template.instance().form.audioNotificationValue.get();
+ if (value === '0') {
+ value = RocketChat.getUserPreference(user, 'newMessageNotification');
}
- if (audio && audio !== 'none') {
+ if (value && value !== 'none') {
const audioVolume = RocketChat.getUserPreference(user, 'notificationsSoundVolume');
- const $audio = $(`audio#${ audio }`);
+ const $audio = $(`audio#${ value }`);
if ($audio && $audio[0] && $audio[0].play) {
$audio[0].volume = Number((audioVolume/100).toPrecision(2));
@@ -292,29 +201,158 @@ Template.pushNotificationsFlexTab.events({
}
},
- 'change select[name=audioNotificationValue]'(e) {
+ 'change input[type=checkbox]'(e, instance) {
e.preventDefault();
+ const name = $(e.currentTarget).attr('name');
+ const checked = ['disableNotifications', 'hideUnreadStatus'].includes(name) ? !e.currentTarget.checked : e.currentTarget.checked;
+ instance.form[name].set(checked);
+ },
- let audio = $(e.currentTarget).val();
- const user = Meteor.user();
+ 'click .rc-user-info__config-value'(e) {
+ const instance = Template.instance();
+ const key = this.valueOf();
+
+ let options;
- if (audio==='') {
- audio = RocketChat.getUserPreference(user, 'newMessageNotification');
+ switch (key) {
+ case 'audioNotificationValue':
+ const audioAssets = RocketChat.CustomSounds && RocketChat.CustomSounds.getList && RocketChat.CustomSounds.getList() || [];
+ const audioAssetsArray = audioAssets.map(audio => {
+ return {
+ id: `audioNotificationValue${ audio.name }`,
+ name: 'audioNotificationValue',
+ label: audio.name,
+ value: audio._id
+ };
+ });
+ options = [
+ {
+ id: 'audioNotificationValueNone',
+ name: 'audioNotificationValue',
+ label: 'None',
+ value: 'none'
+ },
+ {
+ id: 'audioNotificationValueDefault',
+ name: 'audioNotificationValue',
+ label: 'Default',
+ value: 0
+ },
+ ...audioAssetsArray
+ ];
+ break;
+ case 'desktopNotificationDuration':
+ options = [{
+ id: 'desktopNotificationDuration',
+ name: 'desktopNotificationDuration',
+ label: 'Default',
+ value: 0
+ },
+ {
+ id: 'desktopNotificationDuration1s',
+ name: 'desktopNotificationDuration',
+ label: `1 ${ t('seconds') }`,
+ value: 1
+ },
+ {
+ id: 'desktopNotificationDuration2s',
+ name: 'desktopNotificationDuration',
+ label: `2 ${ t('seconds') }`,
+ value: 2
+ },
+ {
+ id: 'desktopNotificationDuration3s',
+ name: 'desktopNotificationDuration',
+ label: `3 ${ t('seconds') }`,
+ value: 3
+ },
+ {
+ id: 'desktopNotificationDuration4s',
+ name: 'desktopNotificationDuration',
+ label: `4 ${ t('seconds') }`,
+ value: 4
+ },
+ {
+ id: 'desktopNotificationDuration5s',
+ name: 'desktopNotificationDuration',
+ label: `5 ${ t('seconds') }`,
+ value: 5
+ }];
+ break;
+ default:
+ options = [{
+ id: 'desktopNotificationsDefault',
+ name: 'desktopNotifications',
+ label: 'Default',
+ value: 'default'
+ },
+ {
+ id: 'desktopNotificationsAll_messages',
+ name: 'desktopNotifications',
+ label: 'All_messages',
+ value: 'all'
+ },
+ {
+ id: 'desktopNotificationsMentions',
+ name: 'desktopNotifications',
+ label: 'Mentions',
+ value: 'mentions'
+ },
+ {
+ id: 'desktopNotificationsNothing',
+ name: 'desktopNotifications',
+ label: 'Nothing',
+ value: 'nothing'
+ }];
}
- if (audio && audio !== 'none') {
- const audioVolume = RocketChat.getUserPreference(user, 'notificationsSoundVolume');
- const $audio = $(`audio#${ audio }`);
- if ($audio && $audio[0] && $audio[0].play) {
- $audio[0].volume = Number((audioVolume/100).toPrecision(2));
- $audio[0].play();
+ const config = {
+ popoverClass: 'notifications-preferences',
+ template: 'pushNotificationsPopover',
+ mousePosition: () => ({
+ x: e.currentTarget.getBoundingClientRect().left,
+ y: e.currentTarget.getBoundingClientRect().bottom + 50
+ }),
+ customCSSProperties: () => ({
+ top: `${ e.currentTarget.getBoundingClientRect().bottom + 10 }px`,
+ left: `${ e.currentTarget.getBoundingClientRect().left - 10 }px`
+ }),
+ data: {
+ change : (value) => {
+ return instance.form[key].set(key === 'desktopNotificationDuration' ? parseInt(value) : value);
+ },
+ value: instance.form[key].get(),
+ options
}
- }
- },
+ };
+ popover.open(config);
+ }
+});
- 'change input[type=checkbox]'(e, instance) {
- e.preventDefault();
- instance.editing.set($(e.currentTarget).attr('name'));
- instance.saveSetting();
+
+
+Template.pushNotificationsPopover.onCreated(function() {
+ this.change = this.data.change;
+});
+
+Template.pushNotificationsPopover.onRendered(function() {
+ this.find(`[value=${ this.data.value }]`).checked = true;
+});
+
+Template.pushNotificationsPopover.helpers({
+ options() {
+ return Template.instance().data.options;
+ },
+ defaultDesktopNotification() {
+ let preference = RocketChat.getUserPreference(Meteor.user(), 'desktopNotifications');
+ if (preference === 'default') {
+ preference = RocketChat.settings.get('Accounts_Default_User_Preferences_desktopNotifications');
+ }
+ return notificationLabels[preference];
+ }
+});
+Template.pushNotificationsPopover.events({
+ 'change input'(e, instance) {
+ instance.change && instance.change(e.target.value);
}
});
diff --git a/packages/rocketchat-push-notifications/server/models/Subscriptions.js b/packages/rocketchat-push-notifications/server/models/Subscriptions.js
index e793d751adb2..a60402ef5509 100644
--- a/packages/rocketchat-push-notifications/server/models/Subscriptions.js
+++ b/packages/rocketchat-push-notifications/server/models/Subscriptions.js
@@ -51,7 +51,7 @@ RocketChat.models.Subscriptions.updateDesktopNotificationDurationById = function
const update = {
$set: {
- desktopNotificationDuration: value - 0
+ desktopNotificationDuration: parseInt(value)
}
};
diff --git a/packages/rocketchat-sandstorm/server/lib.js b/packages/rocketchat-sandstorm/server/lib.js
index fe002e07756f..bb5055b50aa4 100644
--- a/packages/rocketchat-sandstorm/server/lib.js
+++ b/packages/rocketchat-sandstorm/server/lib.js
@@ -1,11 +1,11 @@
/* globals getHttpBridge, waitPromise, UploadFS */
/* exported getHttpBridge, waitPromise */
+import Future from 'fibers/future';
RocketChat.Sandstorm = {};
if (process.env.SANDSTORM === '1') {
- const Future = Npm.require('fibers/future');
- const Capnp = Npm.require('/node_modules/capnp.js');
+ const Capnp = require('/node_modules/capnp.js');
const SandstormHttpBridge = Capnp.importSystem('sandstorm/sandstorm-http-bridge.capnp').SandstormHttpBridge;
let capnpConnection = null;
diff --git a/packages/rocketchat-sandstorm/server/powerbox.js b/packages/rocketchat-sandstorm/server/powerbox.js
index c1f2d28b0590..c644286c3926 100644
--- a/packages/rocketchat-sandstorm/server/powerbox.js
+++ b/packages/rocketchat-sandstorm/server/powerbox.js
@@ -3,7 +3,7 @@
RocketChat.Sandstorm.offerUiView = function() {};
if (process.env.SANDSTORM === '1') {
- const Capnp = Npm.require('/node_modules/capnp.js');
+ const Capnp = require('/node_modules/capnp.js');
const Powerbox = Capnp.importSystem('sandstorm/powerbox.capnp');
const Grain = Capnp.importSystem('sandstorm/grain.capnp');
diff --git a/packages/rocketchat-slackbridge/.npm/package/.gitignore b/packages/rocketchat-slackbridge/.npm/package/.gitignore
deleted file mode 100644
index 3c3629e647f5..000000000000
--- a/packages/rocketchat-slackbridge/.npm/package/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-node_modules
diff --git a/packages/rocketchat-slackbridge/.npm/package/README b/packages/rocketchat-slackbridge/.npm/package/README
deleted file mode 100644
index 3d492553a438..000000000000
--- a/packages/rocketchat-slackbridge/.npm/package/README
+++ /dev/null
@@ -1,7 +0,0 @@
-This directory and the files immediately inside it are automatically generated
-when you change this package's NPM dependencies. Commit the files in this
-directory (npm-shrinkwrap.json, .gitignore, and this README) to source control
-so that others run the same versions of sub-dependencies.
-
-You should NOT check in the node_modules directory that Meteor automatically
-creates; if you are using git, the .gitignore file tells git to ignore it.
diff --git a/packages/rocketchat-slackbridge/.npm/package/npm-shrinkwrap.json b/packages/rocketchat-slackbridge/.npm/package/npm-shrinkwrap.json
deleted file mode 100644
index a8db3e03aa75..000000000000
--- a/packages/rocketchat-slackbridge/.npm/package/npm-shrinkwrap.json
+++ /dev/null
@@ -1,433 +0,0 @@
-{
- "lockfileVersion": 1,
- "dependencies": {
- "agent-base": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-2.0.1.tgz",
- "integrity": "sha1-vY+ehqjrIh//oHvRS+/VXfFCgV4="
- },
- "ansi-regex": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz",
- "integrity": "sha1-xQYbbg74qBd15Q9dZhUb9r83EQc="
- },
- "ansi-styles": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
- "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
- },
- "asn1": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz",
- "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y="
- },
- "assert-plus": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz",
- "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ="
- },
- "async": {
- "version": "1.5.2",
- "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
- "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo="
- },
- "asynckit": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
- },
- "aws-sign2": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz",
- "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8="
- },
- "aws4": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.5.0.tgz",
- "integrity": "sha1-Cin/t5wxyecS7rCH6OemS0pW11U="
- },
- "bcrypt-pbkdf": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.0.tgz",
- "integrity": "sha1-PKdrhSQccXC/fZcD57mqdGMAQNQ="
- },
- "boom": {
- "version": "2.10.1",
- "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
- "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8="
- },
- "caseless": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz",
- "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c="
- },
- "chalk": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
- "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg="
- },
- "colors": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz",
- "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs="
- },
- "combined-stream": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz",
- "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk="
- },
- "commander": {
- "version": "2.9.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
- "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q="
- },
- "cryptiles": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz",
- "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g="
- },
- "cycle": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz",
- "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI="
- },
- "dashdash": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
- "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
- "dependencies": {
- "assert-plus": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
- }
- }
- },
- "debug": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz",
- "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w="
- },
- "delayed-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
- },
- "ecc-jsbn": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
- "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU="
- },
- "escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
- },
- "eventemitter3": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz",
- "integrity": "sha1-HIaZHYFq0eUEdQ5zh0Ik7PO+xQg="
- },
- "extend": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz",
- "integrity": "sha1-WkdDU7nzNT3dgXbf03uRyDpG8dQ="
- },
- "extsprintf": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz",
- "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA="
- },
- "eyes": {
- "version": "0.1.8",
- "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz",
- "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A="
- },
- "forever-agent": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
- "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
- },
- "form-data": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.2.tgz",
- "integrity": "sha1-icNTQAi5fq2ky7FX1Y9vXfAl6uQ="
- },
- "generate-function": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz",
- "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ="
- },
- "generate-object-property": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz",
- "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA="
- },
- "getpass": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.6.tgz",
- "integrity": "sha1-KD/9n8ElaECHUxHBtg6MQBhxEOY=",
- "dependencies": {
- "assert-plus": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
- }
- }
- },
- "graceful-readlink": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
- "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU="
- },
- "har-validator": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz",
- "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0="
- },
- "has-ansi": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
- "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE="
- },
- "hawk": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz",
- "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ="
- },
- "hoek": {
- "version": "2.16.3",
- "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
- "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0="
- },
- "http-signature": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz",
- "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8="
- },
- "https-proxy-agent": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz",
- "integrity": "sha1-NffabEjOTdv6JkiRrFk+5f+GceY="
- },
- "inherits": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
- },
- "is-my-json-valid": {
- "version": "2.15.0",
- "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz",
- "integrity": "sha1-k27do8o8IR/ZjzstPgjaQ/eykVs="
- },
- "is-property": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz",
- "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ="
- },
- "is-typedarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
- "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
- },
- "isstream": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
- "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
- },
- "jodid25519": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz",
- "integrity": "sha1-BtSRIlUJNBlHfUJWM2BuDpB4KWc="
- },
- "jsbn": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.0.tgz",
- "integrity": "sha1-ZQmH2g3XT06/WhE3eiqi0nPpff0="
- },
- "json-schema": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
- "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
- },
- "json-stringify-safe": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
- "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
- },
- "jsonpointer": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.0.tgz",
- "integrity": "sha1-ZmHhYdL8RF8Z+YQwIxNDci4fy9U="
- },
- "jsprim": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.3.1.tgz",
- "integrity": "sha1-KnJW9wQSop7jZwqspiWZTE3P8lI="
- },
- "lodash": {
- "version": "3.10.1",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
- "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y="
- },
- "mime-db": {
- "version": "1.25.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.25.0.tgz",
- "integrity": "sha1-wY29fHOl2/b0SgJNwNFloeexw5I="
- },
- "mime-types": {
- "version": "2.1.13",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.13.tgz",
- "integrity": "sha1-4HqqnGxrmnyjASxpADrSWjnpKog="
- },
- "ms": {
- "version": "0.7.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
- "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U="
- },
- "oauth-sign": {
- "version": "0.8.2",
- "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
- "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM="
- },
- "options": {
- "version": "0.0.6",
- "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz",
- "integrity": "sha1-7CLTEoBrtT5zF3Pnza788cZDEo8="
- },
- "pinkie": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
- "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA="
- },
- "pinkie-promise": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
- "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o="
- },
- "punycode": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
- "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
- },
- "qs": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.0.tgz",
- "integrity": "sha1-9AOyZPI7wBIox0ExtAfxjV6l1EI="
- },
- "request": {
- "version": "2.79.0",
- "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz",
- "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4="
- },
- "retry": {
- "version": "0.8.0",
- "resolved": "https://registry.npmjs.org/retry/-/retry-0.8.0.tgz",
- "integrity": "sha1-I2dijcDtskex6rZJ3FOshiisLV8="
- },
- "semver": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.0.3.tgz",
- "integrity": "sha1-d0Zt5YnNXTyV8TiqeLxWmjy10no="
- },
- "slack-client": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/slack-client/-/slack-client-2.0.6.tgz",
- "integrity": "sha1-eOuJ9/UnYg4UXM17HY0WvWcLs4M="
- },
- "sntp": {
- "version": "1.0.9",
- "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz",
- "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg="
- },
- "sshpk": {
- "version": "1.10.1",
- "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.10.1.tgz",
- "integrity": "sha1-MOGl0ykkSXShr2FREznVla9mOLA=",
- "dependencies": {
- "assert-plus": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
- }
- }
- },
- "stack-trace": {
- "version": "0.0.9",
- "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz",
- "integrity": "sha1-qPbq7KkGdMMz58Q5U/J1tFFRBpU="
- },
- "stringstream": {
- "version": "0.0.5",
- "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
- "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg="
- },
- "strip-ansi": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8="
- },
- "supports-color": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
- "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
- },
- "tough-cookie": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz",
- "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo="
- },
- "tunnel-agent": {
- "version": "0.4.3",
- "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz",
- "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us="
- },
- "tweetnacl": {
- "version": "0.14.4",
- "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.4.tgz",
- "integrity": "sha1-jJ2/tSeVaG8WbNICN5S88QPRPCs="
- },
- "ultron": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz",
- "integrity": "sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po="
- },
- "url-join": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/url-join/-/url-join-0.0.1.tgz",
- "integrity": "sha1-HbSK1CLTQCRpqH99l73r/k+x48g="
- },
- "uuid": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz",
- "integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE="
- },
- "verror": {
- "version": "1.3.6",
- "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz",
- "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw="
- },
- "winston": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/winston/-/winston-2.3.0.tgz",
- "integrity": "sha1-IH+qq2/M8/5JN0PdKwPbr8fOt4w=",
- "dependencies": {
- "async": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz",
- "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k="
- }
- }
- },
- "ws": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.1.tgz",
- "integrity": "sha1-CC3bbGQehdS7RR8D1S8G6r2x8Bg="
- },
- "xtend": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
- "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68="
- }
- }
-}
diff --git a/packages/rocketchat-slackbridge/package.js b/packages/rocketchat-slackbridge/package.js
index ffd49af791e0..c8e190e136b3 100644
--- a/packages/rocketchat-slackbridge/package.js
+++ b/packages/rocketchat-slackbridge/package.js
@@ -18,7 +18,3 @@ Package.onUse(function(api) {
api.addFiles('server/slackbridge.js', 'server');
api.addFiles('server/slackbridge_import.server.js', 'server');
});
-
-Npm.depends({
- 'slack-client': '2.0.6'
-});
diff --git a/packages/rocketchat-slackbridge/server/slackbridge.js b/packages/rocketchat-slackbridge/server/slackbridge.js
index 66e54369cc9d..0c0974d998b5 100644
--- a/packages/rocketchat-slackbridge/server/slackbridge.js
+++ b/packages/rocketchat-slackbridge/server/slackbridge.js
@@ -1,11 +1,15 @@
/* globals logger */
import _ from 'underscore';
+import util from 'util';
+import url from 'url';
+import http from 'http';
+import https from 'https';
class SlackBridge {
constructor() {
- this.util = Npm.require('util');
- this.slackClient = Npm.require('slack-client');
+ this.util = util;
+ this.slackClient = require('slack-client');
this.apiToken = RocketChat.settings.get('SlackBridge_APIToken');
this.aliasFormat = RocketChat.settings.get('SlackBridge_AliasFormat');
this.excludeBotnames = RocketChat.settings.get('SlackBridge_Botnames');
@@ -588,8 +592,7 @@ class SlackBridge {
**/
//details, slackMessage.file.url_private_download, rocketUser, rocketChannel, new Date(parseInt(slackMessage.ts.split('.')[0]) * 1000), isImporting);
uploadFileFromSlack(details, slackFileURL, rocketUser, rocketChannel, timeStamp, isImporting) {
- const url = Npm.require('url');
- const requestModule = /https/i.test(slackFileURL) ? Npm.require('https') : Npm.require('http');
+ const requestModule = /https/i.test(slackFileURL) ? https : http;
const parsedUrl = url.parse(slackFileURL, true);
parsedUrl.headers = { 'Authorization': `Bearer ${ this.apiToken }` };
requestModule.get(parsedUrl, Meteor.bindEnvironment((stream) => {
diff --git a/packages/rocketchat-slashcommands-archiveroom/server/server.js b/packages/rocketchat-slashcommands-archiveroom/server/server.js
index 3d382cc25cb7..0913e6b83812 100644
--- a/packages/rocketchat-slashcommands-archiveroom/server/server.js
+++ b/packages/rocketchat-slashcommands-archiveroom/server/server.js
@@ -14,13 +14,25 @@ function Archive(command, params, item) {
room = RocketChat.models.Rooms.findOneByName(channel);
}
+ const user = Meteor.users.findOne(Meteor.userId());
+
+ if (!room) {
+ return RocketChat.Notifications.notifyUser(Meteor.userId(), 'message', {
+ _id: Random.id(),
+ rid: item.rid,
+ ts: new Date(),
+ msg: TAPi18n.__('Channel_doesnt_exist', {
+ postProcess: 'sprintf',
+ sprintf: [channel]
+ }, user.language)
+ });
+ }
+
// You can not archive direct messages.
if (room.t === 'd') {
return;
}
- const user = Meteor.users.findOne(Meteor.userId());
-
if (room.archived) {
RocketChat.Notifications.notifyUser(Meteor.userId(), 'message', {
_id: Random.id(),
diff --git a/packages/rocketchat-slashcommands-unarchiveroom/server/server.js b/packages/rocketchat-slashcommands-unarchiveroom/server/server.js
index a9884b870755..ae656cdd929e 100644
--- a/packages/rocketchat-slashcommands-unarchiveroom/server/server.js
+++ b/packages/rocketchat-slashcommands-unarchiveroom/server/server.js
@@ -14,13 +14,25 @@ function Unarchive(command, params, item) {
room = RocketChat.models.Rooms.findOneByName(channel);
}
+ const user = Meteor.users.findOne(Meteor.userId());
+
+ if (!room) {
+ return RocketChat.Notifications.notifyUser(Meteor.userId(), 'message', {
+ _id: Random.id(),
+ rid: item.rid,
+ ts: new Date(),
+ msg: TAPi18n.__('Channel_doesnt_exist', {
+ postProcess: 'sprintf',
+ sprintf: [channel]
+ }, user.language)
+ });
+ }
+
// You can not archive direct messages.
if (room.t === 'd') {
return;
}
- const user = Meteor.users.findOne(Meteor.userId());
-
if (!room.archived) {
RocketChat.Notifications.notifyUser(Meteor.userId(), 'message', {
_id: Random.id(),
diff --git a/packages/rocketchat-sms/.npm/package/.gitignore b/packages/rocketchat-sms/.npm/package/.gitignore
deleted file mode 100644
index 3c3629e647f5..000000000000
--- a/packages/rocketchat-sms/.npm/package/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-node_modules
diff --git a/packages/rocketchat-sms/.npm/package/README b/packages/rocketchat-sms/.npm/package/README
deleted file mode 100644
index 3d492553a438..000000000000
--- a/packages/rocketchat-sms/.npm/package/README
+++ /dev/null
@@ -1,7 +0,0 @@
-This directory and the files immediately inside it are automatically generated
-when you change this package's NPM dependencies. Commit the files in this
-directory (npm-shrinkwrap.json, .gitignore, and this README) to source control
-so that others run the same versions of sub-dependencies.
-
-You should NOT check in the node_modules directory that Meteor automatically
-creates; if you are using git, the .gitignore file tells git to ignore it.
diff --git a/packages/rocketchat-sms/.npm/package/npm-shrinkwrap.json b/packages/rocketchat-sms/.npm/package/npm-shrinkwrap.json
deleted file mode 100644
index 89f6766fcf25..000000000000
--- a/packages/rocketchat-sms/.npm/package/npm-shrinkwrap.json
+++ /dev/null
@@ -1,407 +0,0 @@
-{
- "lockfileVersion": 1,
- "dependencies": {
- "ansi-regex": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz",
- "integrity": "sha1-xQYbbg74qBd15Q9dZhUb9r83EQc="
- },
- "ansi-styles": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
- "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
- },
- "asn1": {
- "version": "0.1.11",
- "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz",
- "integrity": "sha1-VZvhg3bQik7E2+gId9J4GGObLfc="
- },
- "assert-plus": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz",
- "integrity": "sha1-7nQAlBMALYTOxyGcasgRgS5yMWA="
- },
- "async": {
- "version": "0.9.2",
- "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz",
- "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0="
- },
- "aws-sign2": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz",
- "integrity": "sha1-xXED96F/wDfwLXwuZLYC6iI/fWM="
- },
- "base64-url": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/base64-url/-/base64-url-1.3.3.tgz",
- "integrity": "sha1-+LbFN/CaT8WMmcuG4LDpxhRhog8="
- },
- "base64url": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/base64url/-/base64url-1.0.6.tgz",
- "integrity": "sha1-1k03XWinxkDZEuI1jRcNylu1RoE="
- },
- "bl": {
- "version": "0.9.5",
- "resolved": "https://registry.npmjs.org/bl/-/bl-0.9.5.tgz",
- "integrity": "sha1-wGt5evCF6gC8Unr8jvzxHeIjIFQ=",
- "dependencies": {
- "readable-stream": {
- "version": "1.0.34",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
- "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw="
- }
- }
- },
- "bluebird": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz",
- "integrity": "sha1-U0uQM8AiyVecVro7Plpcqvu2UOE="
- },
- "boom": {
- "version": "2.10.1",
- "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
- "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8="
- },
- "buffer-equal-constant-time": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
- "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk="
- },
- "camelcase": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
- "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk="
- },
- "camelcase-keys": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-1.0.0.tgz",
- "integrity": "sha1-vRoRv5sxoc5JNJOpMN4aC69K1+w="
- },
- "caseless": {
- "version": "0.9.0",
- "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.9.0.tgz",
- "integrity": "sha1-t7Zc5r8UE4hlOc/VM/CzDv+pz4g="
- },
- "chalk": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
- "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg="
- },
- "combined-stream": {
- "version": "0.0.7",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz",
- "integrity": "sha1-ATfmV7qlp1QcV6w3rF/AfXO03B8="
- },
- "commander": {
- "version": "2.9.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
- "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q="
- },
- "concat-stream": {
- "version": "1.4.10",
- "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.4.10.tgz",
- "integrity": "sha1-rMO79WAsuMyYDGrIQPp9hgPj7zY="
- },
- "core-util-is": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
- "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
- },
- "cryptiles": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz",
- "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g="
- },
- "ctype": {
- "version": "0.5.3",
- "resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz",
- "integrity": "sha1-gsGMJGH3QRTvFsE1IkrQuRRMoS8="
- },
- "delayed-stream": {
- "version": "0.0.5",
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz",
- "integrity": "sha1-1LH0OpPoKW3+AmlPRoC8N6MTxz8="
- },
- "deprecate": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/deprecate/-/deprecate-0.1.0.tgz",
- "integrity": "sha1-xJBYYS3GyOUUXq/kg5uMLH0EHBQ="
- },
- "ecdsa-sig-formatter": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.7.tgz",
- "integrity": "sha1-MTfpdqHWIyUX4lE+BOMveby98SY="
- },
- "escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
- },
- "forever-agent": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
- "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
- },
- "form-data": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-0.2.0.tgz",
- "integrity": "sha1-Jvi8JtpkQOKZy9z7aQNcT3em5GY="
- },
- "generate-function": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz",
- "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ="
- },
- "generate-object-property": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz",
- "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA="
- },
- "get-stdin": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
- "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4="
- },
- "graceful-readlink": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
- "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU="
- },
- "har-validator": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-1.8.0.tgz",
- "integrity": "sha1-2DhCsOtMQ1lgrrEIoGejqpTA7rI="
- },
- "has-ansi": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
- "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE="
- },
- "hawk": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/hawk/-/hawk-2.3.1.tgz",
- "integrity": "sha1-HnMc45RH+h0PbXB/e87r7A/R7B8="
- },
- "hoek": {
- "version": "2.16.3",
- "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
- "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0="
- },
- "http-signature": {
- "version": "0.10.1",
- "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.10.1.tgz",
- "integrity": "sha1-T72sEyVZqoMjEh5UB3nAoBKyfmY="
- },
- "indent-string": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-1.2.2.tgz",
- "integrity": "sha1-25m8xYPrarux5I3LsZmamGBBy2s="
- },
- "inherits": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
- },
- "is-finite": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
- "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko="
- },
- "is-my-json-valid": {
- "version": "2.15.0",
- "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz",
- "integrity": "sha1-k27do8o8IR/ZjzstPgjaQ/eykVs="
- },
- "is-property": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz",
- "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ="
- },
- "isarray": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
- "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
- },
- "isstream": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
- "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
- },
- "json-stringify-safe": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
- "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
- },
- "jsonpointer": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.0.tgz",
- "integrity": "sha1-ZmHhYdL8RF8Z+YQwIxNDci4fy9U="
- },
- "jsonwebtoken": {
- "version": "5.4.1",
- "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-5.4.1.tgz",
- "integrity": "sha1-IFXGORlf/lYxT6alHfAkaBhqlpU="
- },
- "jwa": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.1.3.tgz",
- "integrity": "sha1-+p8vAF/wxjDnxBUmox8395czzW0="
- },
- "jws": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/jws/-/jws-3.1.3.tgz",
- "integrity": "sha1-uI8bRYGixe6IE8BrP9+Q6ptcfmw="
- },
- "jwt-simple": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/jwt-simple/-/jwt-simple-0.1.0.tgz",
- "integrity": "sha1-VGs0qrAuPNScQ6QnlJizTZQAQeM="
- },
- "map-obj": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
- "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0="
- },
- "meow": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/meow/-/meow-2.0.0.tgz",
- "integrity": "sha1-j1MKjs9dQNP0tN+Tw0cpAPuiqPE="
- },
- "mime-db": {
- "version": "1.12.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.12.0.tgz",
- "integrity": "sha1-PQxjGA9FjrENMlqqN9fFiuMS6dc="
- },
- "mime-types": {
- "version": "2.0.14",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.0.14.tgz",
- "integrity": "sha1-MQ4VnbI+B3+Lsit0jav6SVcUCqY="
- },
- "minimist": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
- "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
- },
- "ms": {
- "version": "0.7.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
- "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U="
- },
- "node-uuid": {
- "version": "1.4.7",
- "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz",
- "integrity": "sha1-baWhdmjEs91ZYjvaEc9/pMH2Cm8="
- },
- "number-is-nan": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
- "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
- },
- "oauth-sign": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.6.0.tgz",
- "integrity": "sha1-fb6uRPbKRU4fFoRR1jB0ZzWBPOM="
- },
- "object-assign": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-1.0.0.tgz",
- "integrity": "sha1-5l3Idm07R7S4MHRlyDEdoDCwcKY="
- },
- "punycode": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
- "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
- },
- "q": {
- "version": "0.9.7",
- "resolved": "https://registry.npmjs.org/q/-/q-0.9.7.tgz",
- "integrity": "sha1-TeLmyzspCIyeTLwDv51C+5bOL3U="
- },
- "qs": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/qs/-/qs-2.4.2.tgz",
- "integrity": "sha1-9854jld33wtQENp/fE5zujJHD1o="
- },
- "readable-stream": {
- "version": "1.1.14",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
- "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk="
- },
- "repeating": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/repeating/-/repeating-1.1.3.tgz",
- "integrity": "sha1-PUEUIYh3U3SU+X93+Xhfq4EPpKw="
- },
- "request": {
- "version": "2.55.0",
- "resolved": "https://registry.npmjs.org/request/-/request-2.55.0.tgz",
- "integrity": "sha1-11wc32eddrsQD5v/4f5VG1wk6T0="
- },
- "scmp": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/scmp/-/scmp-0.0.3.tgz",
- "integrity": "sha1-NkjfLXKUZB5/eGc//CloHZutkHM="
- },
- "sntp": {
- "version": "1.0.9",
- "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz",
- "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg="
- },
- "string.prototype.startswith": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/string.prototype.startswith/-/string.prototype.startswith-0.2.0.tgz",
- "integrity": "sha1-2miYLjU6TprEpDtFCiBF0cRFrns="
- },
- "string_decoder": {
- "version": "0.10.31",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
- "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
- },
- "stringstream": {
- "version": "0.0.5",
- "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
- "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg="
- },
- "strip-ansi": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8="
- },
- "supports-color": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
- "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
- },
- "tough-cookie": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz",
- "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo="
- },
- "tunnel-agent": {
- "version": "0.4.3",
- "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz",
- "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us="
- },
- "twilio": {
- "version": "2.9.1",
- "resolved": "https://registry.npmjs.org/twilio/-/twilio-2.9.1.tgz",
- "integrity": "sha1-BDv6JAzLM/X3a3cUNMJCGgFEvIU="
- },
- "typedarray": {
- "version": "0.0.6",
- "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
- "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
- },
- "underscore": {
- "version": "1.8.3",
- "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz",
- "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI="
- },
- "xtend": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
- "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68="
- }
- }
-}
diff --git a/packages/rocketchat-sms/package.js b/packages/rocketchat-sms/package.js
index d9cc5bc53e31..5e1e10f70f4f 100644
--- a/packages/rocketchat-sms/package.js
+++ b/packages/rocketchat-sms/package.js
@@ -14,7 +14,3 @@ Package.onUse(function(api) {
api.addFiles('SMS.js', 'server');
api.addFiles('services/twilio.js', 'server');
});
-
-Npm.depends({
- 'twilio': '2.9.1'
-});
diff --git a/packages/rocketchat-sms/services/twilio.js b/packages/rocketchat-sms/services/twilio.js
index e9e9ad2d165c..1d7499bb21ae 100644
--- a/packages/rocketchat-sms/services/twilio.js
+++ b/packages/rocketchat-sms/services/twilio.js
@@ -1,4 +1,6 @@
/* globals RocketChat */
+import twilio from 'twilio';
+
class Twilio {
constructor() {
this.accountSid = RocketChat.settings.get('SMS_Twilio_Account_SID');
@@ -23,7 +25,7 @@ class Twilio {
};
}
send(fromNumber, toNumber, message) {
- const client = Npm.require('twilio')(this.accountSid, this.authToken);
+ const client = twilio(this.accountSid, this.authToken);
client.messages.create({
to: toNumber,
diff --git a/packages/rocketchat-statistics/server/functions/get.js b/packages/rocketchat-statistics/server/functions/get.js
index de6063f5cea8..c0e069044a60 100644
--- a/packages/rocketchat-statistics/server/functions/get.js
+++ b/packages/rocketchat-statistics/server/functions/get.js
@@ -1,5 +1,6 @@
/* global InstanceStatus, MongoInternals */
import _ from 'underscore';
+import os from 'os';
RocketChat.statistics.get = function _getStatistics() {
const statistics = {};
@@ -42,7 +43,6 @@ RocketChat.statistics.get = function _getStatistics() {
statistics.lastMessageSentAt = RocketChat.models.Messages.getLastTimestamp();
statistics.lastSeenSubscription = RocketChat.models.Subscriptions.getLastSeen();
- const os = Npm.require('os');
statistics.os = {
type: os.type(),
platform: os.platform(),
diff --git a/packages/rocketchat-theme/.npm/package/.gitignore b/packages/rocketchat-theme/.npm/package/.gitignore
deleted file mode 100644
index 3c3629e647f5..000000000000
--- a/packages/rocketchat-theme/.npm/package/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-node_modules
diff --git a/packages/rocketchat-theme/.npm/package/README b/packages/rocketchat-theme/.npm/package/README
deleted file mode 100644
index 3d492553a438..000000000000
--- a/packages/rocketchat-theme/.npm/package/README
+++ /dev/null
@@ -1,7 +0,0 @@
-This directory and the files immediately inside it are automatically generated
-when you change this package's NPM dependencies. Commit the files in this
-directory (npm-shrinkwrap.json, .gitignore, and this README) to source control
-so that others run the same versions of sub-dependencies.
-
-You should NOT check in the node_modules directory that Meteor automatically
-creates; if you are using git, the .gitignore file tells git to ignore it.
diff --git a/packages/rocketchat-theme/.npm/package/npm-shrinkwrap.json b/packages/rocketchat-theme/.npm/package/npm-shrinkwrap.json
deleted file mode 100644
index c84611234b84..000000000000
--- a/packages/rocketchat-theme/.npm/package/npm-shrinkwrap.json
+++ /dev/null
@@ -1,430 +0,0 @@
-{
- "lockfileVersion": 1,
- "dependencies": {
- "amdefine": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz",
- "integrity": "sha1-/RdHRwDLXMnCtwnwvp0jzjwZjDM="
- },
- "ansi-regex": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz",
- "integrity": "sha1-xQYbbg74qBd15Q9dZhUb9r83EQc="
- },
- "ansi-styles": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
- "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
- },
- "asap": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/asap/-/asap-1.0.0.tgz",
- "integrity": "sha1-sqRdpf36ILBJb8N2jMJ8EvqRan0="
- },
- "asn1": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz",
- "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y="
- },
- "assert-plus": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz",
- "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ="
- },
- "asynckit": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
- },
- "autoprefixer-core": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/autoprefixer-core/-/autoprefixer-core-5.2.1.tgz",
- "integrity": "sha1-5kDEFK5Bmq4hwa1DyOoPPbgqVm0="
- },
- "aws-sign2": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz",
- "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8="
- },
- "aws4": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.5.0.tgz",
- "integrity": "sha1-Cin/t5wxyecS7rCH6OemS0pW11U="
- },
- "bcrypt-pbkdf": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.0.tgz",
- "integrity": "sha1-PKdrhSQccXC/fZcD57mqdGMAQNQ="
- },
- "boom": {
- "version": "2.10.1",
- "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
- "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8="
- },
- "browserslist": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-0.4.0.tgz",
- "integrity": "sha1-O9SrkZncG5FQ1NbbpNnTqrvIbdQ="
- },
- "caniuse-db": {
- "version": "1.0.30000570",
- "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000570.tgz",
- "integrity": "sha1-IYQ5E4VfSHOXSFDujvnmKPU7yN4="
- },
- "caseless": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz",
- "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c="
- },
- "chalk": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
- "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg="
- },
- "combined-stream": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz",
- "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk="
- },
- "commander": {
- "version": "2.9.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
- "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q="
- },
- "cryptiles": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz",
- "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g="
- },
- "dashdash": {
- "version": "1.14.0",
- "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.0.tgz",
- "integrity": "sha1-KeSGxUGL8PNWA0qZPVFoajPoQUE=",
- "dependencies": {
- "assert-plus": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
- }
- }
- },
- "delayed-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
- },
- "ecc-jsbn": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
- "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU="
- },
- "errno": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz",
- "integrity": "sha1-uJbiOp5ei6M4cfyZar02NfyaHH0="
- },
- "es6-promise": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-2.3.0.tgz",
- "integrity": "sha1-lu258v2wGZWCKyY92KratnSBgbw="
- },
- "escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
- },
- "extend": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz",
- "integrity": "sha1-WkdDU7nzNT3dgXbf03uRyDpG8dQ="
- },
- "extsprintf": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz",
- "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA="
- },
- "forever-agent": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
- "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
- },
- "form-data": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.1.tgz",
- "integrity": "sha1-St8DQuGnmvoehMjDIKn/yCOSofM="
- },
- "generate-function": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz",
- "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ="
- },
- "generate-object-property": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz",
- "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA="
- },
- "getpass": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.6.tgz",
- "integrity": "sha1-KD/9n8ElaECHUxHBtg6MQBhxEOY=",
- "dependencies": {
- "assert-plus": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
- }
- }
- },
- "graceful-fs": {
- "version": "3.0.11",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz",
- "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg="
- },
- "graceful-readlink": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
- "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU="
- },
- "har-validator": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz",
- "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0="
- },
- "has-ansi": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
- "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE="
- },
- "hawk": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz",
- "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ="
- },
- "hoek": {
- "version": "2.16.3",
- "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
- "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0="
- },
- "http-signature": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz",
- "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8="
- },
- "image-size": {
- "version": "0.3.5",
- "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.3.5.tgz",
- "integrity": "sha1-gyQOqy+1sAsEqrjHSwRx6cunrYw="
- },
- "is-my-json-valid": {
- "version": "2.15.0",
- "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz",
- "integrity": "sha1-k27do8o8IR/ZjzstPgjaQ/eykVs="
- },
- "is-property": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz",
- "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ="
- },
- "is-typedarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
- "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
- },
- "isstream": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
- "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
- },
- "jodid25519": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz",
- "integrity": "sha1-BtSRIlUJNBlHfUJWM2BuDpB4KWc="
- },
- "js-base64": {
- "version": "2.1.9",
- "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.1.9.tgz",
- "integrity": "sha1-8OgK4DmkvWVLXygfyT8EqRSn/M4="
- },
- "jsbn": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.0.tgz",
- "integrity": "sha1-ZQmH2g3XT06/WhE3eiqi0nPpff0="
- },
- "json-schema": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
- "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
- },
- "json-stringify-safe": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
- "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
- },
- "jsonpointer": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.0.tgz",
- "integrity": "sha1-ZmHhYdL8RF8Z+YQwIxNDci4fy9U="
- },
- "jsprim": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.3.1.tgz",
- "integrity": "sha1-KnJW9wQSop7jZwqspiWZTE3P8lI="
- },
- "less": {
- "version": "https://github.com/meteor/less.js/tarball/8130849eb3d7f0ecf0ca8d0af7c4207b0442e3f6",
- "integrity": "sha1-dD95WEi4QkZPVjcydtAMY6WS/qM="
- },
- "less-plugin-autoprefix": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/less-plugin-autoprefix/-/less-plugin-autoprefix-1.4.2.tgz",
- "integrity": "sha1-qkHkMshVh6YuH5WDGNNJoua21Zs="
- },
- "mime": {
- "version": "1.3.4",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz",
- "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM="
- },
- "mime-db": {
- "version": "1.24.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.24.0.tgz",
- "integrity": "sha1-4tE/k58AFsbk6a0lqGUvEmxGfww="
- },
- "mime-types": {
- "version": "2.1.12",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.12.tgz",
- "integrity": "sha1-FSuiVndwIN1GY/VMLnvCY4HnFyk="
- },
- "minimist": {
- "version": "0.0.8",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
- "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
- },
- "mkdirp": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
- "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM="
- },
- "natives": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.0.tgz",
- "integrity": "sha1-6f+EFBimsux6SV6TmYT3jxY+bjE="
- },
- "node-uuid": {
- "version": "1.4.7",
- "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz",
- "integrity": "sha1-baWhdmjEs91ZYjvaEc9/pMH2Cm8="
- },
- "num2fraction": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz",
- "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4="
- },
- "oauth-sign": {
- "version": "0.8.2",
- "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
- "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM="
- },
- "pinkie": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
- "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA="
- },
- "pinkie-promise": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
- "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o="
- },
- "postcss": {
- "version": "4.1.16",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-4.1.16.tgz",
- "integrity": "sha1-TESbTIr53zyvbTf44eV10DYXWNw="
- },
- "promise": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/promise/-/promise-6.1.0.tgz",
- "integrity": "sha1-LOcp9rlLRcJoka0GAsXJDgTG7vY="
- },
- "prr": {
- "version": "0.0.0",
- "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz",
- "integrity": "sha1-GoS4WQgyVQFBGFPQCB7j+obikmo="
- },
- "punycode": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
- "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
- },
- "qs": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.0.tgz",
- "integrity": "sha1-9AOyZPI7wBIox0ExtAfxjV6l1EI="
- },
- "request": {
- "version": "2.76.0",
- "resolved": "https://registry.npmjs.org/request/-/request-2.76.0.tgz",
- "integrity": "sha1-vkRQWv73A2CgQ2lVEGvjlF2VVg4="
- },
- "sntp": {
- "version": "1.0.9",
- "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz",
- "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg="
- },
- "source-map": {
- "version": "0.4.4",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
- "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s="
- },
- "sshpk": {
- "version": "1.10.1",
- "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.10.1.tgz",
- "integrity": "sha1-MOGl0ykkSXShr2FREznVla9mOLA=",
- "dependencies": {
- "assert-plus": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
- }
- }
- },
- "stringstream": {
- "version": "0.0.5",
- "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
- "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg="
- },
- "strip-ansi": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8="
- },
- "supports-color": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
- "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
- },
- "tough-cookie": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz",
- "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo="
- },
- "tunnel-agent": {
- "version": "0.4.3",
- "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz",
- "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us="
- },
- "tweetnacl": {
- "version": "0.14.3",
- "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.3.tgz",
- "integrity": "sha1-PaOC9nDyXe1417PReSEZvKC3Ey0="
- },
- "verror": {
- "version": "1.3.6",
- "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz",
- "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw="
- },
- "xtend": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
- "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68="
- }
- }
-}
diff --git a/packages/rocketchat-theme/client/imports/components/chip.css b/packages/rocketchat-theme/client/imports/components/chip.css
index 3af5f31ceff4..8c475bd1e8fc 100644
--- a/packages/rocketchat-theme/client/imports/components/chip.css
+++ b/packages/rocketchat-theme/client/imports/components/chip.css
@@ -1,22 +1,23 @@
.chip-container {
- margin: 15px;
- font-size: 15px;
list-style-type: none;
}
-.chip-container li {
+.chip-container li,
+.chip-container__item {
display: inline-block;
margin: 1px 0;
- padding: 2px 8px 2px 2px;
+ padding: 8px;
- cursor: pointer;
-
- border-radius: 10px;
+ border-radius: 2px;
background-color: var(--chip-background);
+
+ & > .icon {
+ width: 24px;
+ }
}
-.chip-container li .icon-plus-circled {
+.chip-container .icon-plus-circled {
opacity: 0.5;
font-size: 0.8rem;
diff --git a/packages/rocketchat-theme/client/imports/components/contextual-bar.css b/packages/rocketchat-theme/client/imports/components/contextual-bar.css
new file mode 100644
index 000000000000..a4cb00e51548
--- /dev/null
+++ b/packages/rocketchat-theme/client/imports/components/contextual-bar.css
@@ -0,0 +1,290 @@
+.contextual-bar {
+ z-index: 1;
+
+ display: flex;
+ flex-direction: column;
+ flex: 0 0 var(--flex-tab-width);
+
+ width: var(--flex-tab-width);
+ height: 100%;
+
+
+ background: var(--color-white);
+ box-shadow: 0 3px 1px 2px rgba(31, 35, 41, 0.08);
+
+ &-wrap {
+ position: relative;
+
+
+ display: flex;
+ flex-direction: column;
+ flex: 1 1 100%;
+
+ max-height: 100%;
+ }
+
+ & > .flex-tab {
+ width: 100%;
+ }
+
+ &__content {
+ overflow: auto;
+ padding: var(--default-padding);
+
+ flex: 1 1 auto;
+ justify-content: space-between;
+
+ display: flex;
+
+ flex-direction: column;
+
+
+ & .section:not(:last-child) {
+ margin-bottom: 2rem;
+ }
+ }
+
+ &__header {
+ display: flex;
+ flex: 0 0 auto;
+ justify-content: flex-end;
+ padding: var(--default-padding);
+
+ align-items: end;
+
+ &-data {
+ display: flex;
+ flex: 1 1;
+ align-items: center;
+ }
+
+ &-icon {
+ margin: 0 0.25rem;
+
+ font-size: 22px;
+
+ &--star {
+ fill: none;
+ }
+ }
+
+ &-title {
+ flex: 1;
+
+ margin: 0 0.25rem;
+
+ font-size: 16px;
+ font-weight: 400;
+ }
+
+ &-close-icon {
+ transform: rotate(45deg);
+
+ font-size: 20px;
+ }
+ }
+
+
+ & .search-form .rc-input__icon-svg {
+ font-size: 1.2rem;
+ }
+}
+
+@media (width <= 1100px) {
+ .contextual-bar {
+ position: absolute;
+ right: 0;
+ }
+
+ .rtl .contextual-bar {
+ position: absolute;
+ right: unset;
+ left: 0;
+ }
+}
+
+@media (width <= 500px) {
+ .contextual-bar {
+ position: fixed;
+ z-index: 999;
+ top: 0;
+
+ width: 100%;
+ max-width: var(--flex-tab-width);
+
+ animation: dropup-show 0.3s cubic-bezier(0.45, 0.05, 0.55, 0.95);
+ }
+}
+
+.attachments {
+ &__item {
+ display: flex;
+
+ flex: 1;
+ overflow: hidden;
+
+ transition: background-color 0.3s;
+
+ align-items: center;
+
+ &:hover {
+ cursor: pointer;
+
+ background-color: #f7f8fa;
+ }
+ }
+
+ &__file,
+ &__thumb {
+ display: inline-block;
+ display: flex;
+ flex-direction: column;
+ flex: 0 0 auto;
+
+ width: 50px;
+
+ height: 50px;
+ margin: 8px;
+
+ border-radius: 2px;
+
+ background: radial-gradient(ellipse at center, rgba(155, 169, 186, 1) 0%, rgba(131, 143, 158, 1) 100%);
+ background-size: cover;
+
+ font-size: 24px;
+
+ align-items: center;
+ justify-content: center;
+ }
+
+ &__file {
+ &--pdf {
+ background: radial-gradient(ellipse at center, rgba(250, 97, 97, 1) 0%, rgba(251, 19, 19, 1) 100%);
+ }
+
+ &--sheets {
+ background: radial-gradient(ellipse at center, rgba(0, 163, 82, 1) 0%, rgba(2, 114, 59, 1) 100%);
+ }
+
+ &--ppt {
+ background: radial-gradient(ellipse at center, rgba(250, 109, 77, 1) 0%, rgba(208, 71, 40, 1) 100%);
+ }
+ }
+
+ &__type {
+ overflow: hidden;
+ flex: 0 0 auto;
+
+ max-width: 100%;
+ padding: 0 10px;
+
+ text-overflow: ellipsis;
+
+ color: white;
+
+ font-size: 10px;
+ }
+
+ &__name {
+ overflow: hidden;
+
+ margin: 0 8px 8px;
+
+ white-space: nowrap;
+ text-overflow: ellipsis;
+
+ color: #2f343d;
+
+ font-size: 14px;
+ }
+
+ &__details {
+ margin: 0 8px 2px;
+
+ white-space: nowrap;
+ text-overflow: ellipsis;
+
+ font-size: 12px;
+ }
+
+ &__bold {
+ font-weight: 600;
+ }
+
+ &__content {
+ display: flex;
+
+ overflow: hidden;
+ flex-direction: column;
+
+ flex: 1 1 100%;
+
+ height: 50px;
+
+ color: #9ea2a8;
+ }
+}
+
+.contextual-bar__content.mail-messages {
+ & .rc-popup-list {
+ z-index: 1;
+ }
+
+ & .rc-input:not(:last-child) {
+ margin-bottom: 2rem;
+ }
+}
+
+.mail-messages__instructions {
+ display: flex;
+ border-width: 1px;
+ border-color: var(--rc-color-alert-message-primary);
+ background: var(--rc-color-alert-message-primary-background);
+ border-radius: 2px;
+ color: var(--rc-color-alert-message-primary);
+ padding: 1.25rem;
+ margin-bottom: 3rem;
+
+ &--selected {
+ background: var(--rc-color-alert-message-secondary-background);
+ border-color: var(--rc-color-alert-message-secondary);
+ color: var(--rc-color-alert-message-secondary);
+
+ cursor: pointer;
+ }
+
+ &--warning {
+ color: var(--rc-color-alert-message-warning);
+ border-color: var(--rc-color-alert-message-warning);
+ background: var(--rc-color-alert-message-warning-background);
+ }
+
+ &-wrapper {
+ display: flex;
+ margin: 0 -10px;
+ }
+
+ &-icon {
+ font-size: 2rem;
+ margin: 0 10px;
+
+ &--hand-pointer {
+ transform: rotate3d(0, 0, 1, -25deg);
+ margin: 0 15px;
+ fill: currentColor;
+ }
+ }
+
+ &-text {
+ font-size: 0.875rem;
+ font-weight: 600;
+ margin: 0 10px;
+ display: flex;
+ flex-direction: column;
+ line-height: 1.2rem;
+
+ &-selected {
+ font-weight: 400;
+ }
+ }
+}
diff --git a/packages/rocketchat-theme/client/imports/components/emojiPicker.css b/packages/rocketchat-theme/client/imports/components/emojiPicker.css
index 30574c4681e9..2b19e7eb1cea 100644
--- a/packages/rocketchat-theme/client/imports/components/emojiPicker.css
+++ b/packages/rocketchat-theme/client/imports/components/emojiPicker.css
@@ -29,19 +29,14 @@
width: 100%;
max-width: 365px;
- border-radius: 5px;
- box-shadow:
- 0 1px 1px 0 rgba(0, 0, 0, 0.2),
- 0 2px 10px 0 rgba(0, 0, 0, 0.16);
+ white-space: initial;
+
+ opacity: 1;
&.show {
display: block;
}
- & .filter {
- box-shadow: 0 2px 2px -1px rgba(0, 0, 0, 0.2);
- }
-
& .filter-list {
display: flex;
@@ -100,14 +95,27 @@
}
}
}
+
+ & .rc-input__icon {
+ left: 0.5rem;
+ }
+
+ & .rc-input__element {
+ padding: 0.5rem 1rem 0.5rem 2rem;
+ }
}
.emoji-top {
display: flex;
+ margin: 0 -0.3rem;
padding: 5px;
align-items: center;
+ & .rc-input {
+ margin: 0 0.3rem;
+ }
+
& .emoji-filter {
position: relative;
diff --git a/packages/rocketchat-theme/client/imports/components/header.css b/packages/rocketchat-theme/client/imports/components/header.css
new file mode 100644
index 000000000000..6b155f06f168
--- /dev/null
+++ b/packages/rocketchat-theme/client/imports/components/header.css
@@ -0,0 +1,354 @@
+.rc-header {
+ &__block {
+ display: flex;
+
+ margin: 0 0.5rem;
+ align-items: center;
+ }
+ z-index: 2;
+
+ display: flex;
+
+ margin: 0 -0.5rem;
+
+ padding: var(--header-padding);
+
+ white-space: nowrap;
+
+ background-color: var(--header-background-color);
+ box-shadow: 0 1px 2px 0 rgba(31, 35, 41, 0.08);
+
+ font-size: var(--header-title-font-size);
+
+ &__content {
+ display: flex;
+
+ width: 100%;
+ margin-left: 0;
+ align-items: center;
+ }
+
+ &--burger {
+ display: none;
+ }
+
+ &__name {
+ overflow: hidden;
+
+ padding-bottom: 1px;
+
+ text-overflow: ellipsis;
+ }
+
+ &__section-title {
+ color: var(--header-title-username-color-darker);
+
+ font-weight: var(--header-title-username-weight);
+ }
+
+ &__section-help {
+ flex: 1 1;
+ }
+
+ &__section-button {
+ display: flex;
+ flex: 1 1 100%;
+ justify-content: flex-end;
+
+ /* max-width: use this to allign the buttons with the form */
+ }
+
+ &__section-button > button {
+ margin: 0.3rem;
+ }
+
+ &-title {
+ display: flex;
+ flex-direction: column;
+
+ width: 100%;
+ }
+
+ &__data {
+
+ overflow: hidden;
+
+ flex-direction: column;
+
+ width: 1px;
+
+ margin: 0 0.5rem;
+
+ text-overflow: ellipsis;
+
+ color: var(--header-title-username-color-darker);
+
+ font-weight: var(--header-title-username-weight);
+ align-items: flex-start;
+
+ flex-grow: 1;
+ }
+
+ &__username {
+ display: inline;
+
+ color: var(--header-title-status-color);
+ }
+
+ &__topic,
+ &__status {
+ color: var(--header-title-status-color);
+
+ font-size: var(--header-title-font-size--subtitle);
+ font-weight: var(--header-title-status-name-weight);
+ }
+
+ &__topic {
+ overflow: hidden;
+
+ width: 100%;
+ max-width: fit-content;
+
+ text-overflow: ellipsis;
+ }
+
+ &-visual-status {
+ text-transform: capitalize;
+ }
+
+ &__status {
+ display: flex;
+
+ align-items: center;
+
+ &-bullet {
+ width: var(--header-title-status-bullet-size);
+ height: var(--header-title-status-bullet-size);
+ margin-right: 0.25rem;
+
+ border-radius: var(--header-title-status-bullet-radius);
+
+ &--online {
+ background-color: var(--status-online);
+ }
+
+ &--away {
+ background-color: var(--status-away);
+ }
+
+ &--busy {
+ background-color: var(--status-busy);
+ }
+
+ &--invisible {
+ background-color: var(--status-invisible);
+ }
+
+ &--offline {
+ background-color: var(--status-invisible);
+ }
+ }
+ }
+
+ &__toggle-favorite {
+ color: var(--header-toggle-favorite-star-color);
+
+ font-size: 1.5rem;
+
+ &.empty {
+ color: var(--header-toggle-favorite-color);
+
+ & .rc-header__icon {
+ fill: none;
+ }
+ }
+
+ &:hover {
+ color: var(--header-toggle-favorite-star-color);
+ }
+ }
+
+ &__icon {
+ fill: currentColor;
+ stroke: currentColor;
+ }
+
+ &__image {
+ width: 32px;
+ height: 32px;
+ margin: 0 0.5rem;
+ flex-shrink: 0;
+ }
+}
+
+.rc-room-actions {
+ display: flex;
+
+ &__action,
+ &__more-action {
+ display: flex;
+ flex-direction: column;
+
+ margin: 0 8px;
+
+ cursor: pointer;
+ transition: all 0.3s;
+
+ font-size: 24px;
+ align-items: center;
+
+ &.active,
+ &:hover {
+ color: var(--rc-color-link-active);
+ }
+ }
+
+ &__more {
+ &-action {
+ flex: 0 0 80px;
+
+ max-width: 80px;
+ margin: 8px;
+ }
+
+ &-container {
+ display: flex;
+
+ max-width: 480px;
+ margin: 0 -8px;
+ flex-wrap: wrap;
+ justify-content: space-between;
+ }
+ }
+
+ &__button {
+ color: inherit;
+
+ font-size: inherit;
+ }
+
+ &__description {
+ display: inline-block;
+ overflow: hidden;
+
+ width: 100%;
+ padding: 8px 0;
+
+ text-align: center;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+
+ font-size: 12px;
+ font-weight: 600;
+ }
+}
+
+.tab-button-icon--star {
+ fill: none;
+}
+
+.tab-bugtton-icon--team {
+ font-size: 28px;
+}
+
+@media (width <= 500px) {
+ .rc-header {
+ &__visual-status {
+ display: none;
+ }
+
+ &__block {
+ margin: 0 0.25rem;
+ }
+
+ &__block-action {
+ order: 2;
+ }
+
+ &__favorite {
+ order: 1;
+ }
+
+ &__data {
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+ }
+
+ &__status {
+ margin: 0 0.5rem;
+ }
+
+ &__image {
+ width: 20px;
+ height: 20px;
+ }
+
+ &--burger {
+ display: flex;
+ }
+ }
+}
+
+.burger {
+
+ cursor: pointer;
+ transition: transform 0.2s ease-out 0.1s;
+ will-change: transform;
+
+ & .burger__line {
+ display: block;
+
+ width: 20px;
+ height: 2px;
+ margin: 5px 0;
+
+ transition: transform 0.2s ease-out;
+
+ opacity: 0.8;
+ }
+
+ & .unread-burger-alert {
+ position: absolute;
+ z-index: 3;
+ bottom: 13px;
+ left: 10px;
+
+ min-width: 18px;
+ height: 18px;
+ padding: 0 4px;
+
+ text-align: center;
+
+ border-radius: 20px;
+
+ font-size: 12px;
+ font-weight: bold;
+ line-height: 18px;
+ }
+
+ &.menu-opened .burger__line {
+ &:nth-child(1),
+ &:nth-child(3) {
+ transform-origin: 50%, 50%, 0;
+
+ opacity: 1;
+ }
+
+ &:nth-child(1) {
+ transform: translate(-25%, 3px) rotate(-45deg) scale(0.5, 1);
+ }
+
+ &:nth-child(3) {
+ transform: translate(-25%, -3px) rotate(45deg) scale(0.5, 1);
+ }
+ }
+}
+
+@media (max-width: 780px) {
+ .rc-header {
+ &--burger {
+ display: flex;
+ }
+ }
+}
diff --git a/packages/rocketchat-theme/client/imports/components/memberlist.css b/packages/rocketchat-theme/client/imports/components/memberlist.css
new file mode 100644
index 000000000000..67e8453e895a
--- /dev/null
+++ b/packages/rocketchat-theme/client/imports/components/memberlist.css
@@ -0,0 +1,92 @@
+.rc-member-list {
+ &__search {
+ display: flex;
+
+ & .rc-input,
+ & .rc-select {
+ margin: 0 5px;
+ }
+ }
+
+ &__counter {
+
+ color: #25292f;
+
+ font-size: 14px;
+ }
+
+ &__user {
+
+ display: flex;
+
+ padding: 8px 0;
+
+ cursor: pointer;
+ align-items: center;
+
+ &.active,
+ &:hover {
+ background-color: #eeeeee;
+
+ & .rc-member-list__menu {
+ opacity: 1;
+ }
+ }
+
+ & > .avatar {
+ width: var(--sidebar-account-thumb-size);
+ height: var(--sidebar-account-thumb-size);
+ }
+ }
+
+ &__menu {
+
+ margin: 0 10px;
+
+ opacity: 0;
+
+ &:hover,
+ &:focus {
+ opacity: 1;
+ }
+ }
+
+ &__status {
+ width: 6px;
+ width: var(--sidebar-item-user-status-size);
+ height: 6px;
+ height: var(--sidebar-item-user-status-size);
+ margin: 0 10px;
+
+ -webkit-transform: translateY(-50%);
+ transform: translateY(-50%);
+
+ border-radius: 50%;
+ border-radius: var(--sidebar-item-user-status-radius);
+ background: var(--status-invisible);
+
+ &--online {
+ background-color: var(--status-online);
+ }
+
+ &--away {
+ background-color: var(--status-away);
+ }
+
+ &--busy {
+ background-color: var(--status-busy);
+ }
+
+ &--offline {
+ background-color: var(--status-invisible-sidebar);
+ }
+ }
+
+ &__username {
+ flex: 1 1 auto;
+
+ margin: 0 10px;
+
+ font-size: 16px;
+ }
+}
diff --git a/packages/rocketchat-theme/client/imports/components/messages.css b/packages/rocketchat-theme/client/imports/components/messages.css
index 930eabbc87e9..16e1b2986988 100644
--- a/packages/rocketchat-theme/client/imports/components/messages.css
+++ b/packages/rocketchat-theme/client/imports/components/messages.css
@@ -1,3 +1,7 @@
+.messages-container-wrapper {
+ position: relative;
+}
+
.message-actions {
position: absolute;
top: 2px;
diff --git a/packages/rocketchat-theme/client/imports/components/modal/create-channel.css b/packages/rocketchat-theme/client/imports/components/modal/create-channel.css
index c311719344ca..b976b4e931f1 100644
--- a/packages/rocketchat-theme/client/imports/components/modal/create-channel.css
+++ b/packages/rocketchat-theme/client/imports/components/modal/create-channel.css
@@ -10,6 +10,8 @@
&__wrapper {
overflow-x: hidden;
overflow-y: auto;
+
+ height: 100%;
}
&__header,
diff --git a/packages/rocketchat-theme/client/imports/components/popover.css b/packages/rocketchat-theme/client/imports/components/popover.css
index 20ade8f8a6e3..72a8fabeffa6 100644
--- a/packages/rocketchat-theme/client/imports/components/popover.css
+++ b/packages/rocketchat-theme/client/imports/components/popover.css
@@ -10,11 +10,32 @@
width: 100vw;
height: 100vh;
+ &__close {
+ cursor: pointer;
+ transform: rotate(45deg);
+
+ &:hover {
+ color: var(--rc-color-link-active);
+ }
+ }
+
+ &__header {
+ display: flex;
+ flex-direction: row;
+
+ margin-bottom: 16px;
+
+ font-size: 21px;
+ justify-content: flex-end;
+ }
+
&__content {
position: absolute;
display: flex;
+ flex-direction: column;
+
padding: var(--popover-padding);
animation: dropdown-show 0.1s cubic-bezier(0.45, 0.05, 0.55, 0.95);
@@ -45,6 +66,8 @@
}
&__title {
+ flex: 1;
+
margin-bottom: 8px;
text-transform: uppercase;
@@ -52,6 +75,8 @@
color: var(--popover-title-color);
font-size: var(--popover-title-text-size);
+
+ font-weight: 600;
}
&__item {
@@ -115,6 +140,70 @@
}
}
+.rc-popover__item-radio {
+ visibility: hidden;
+
+ &:checked + .rc-popover__item-radio-label {
+ color: #1D73F3;
+
+ &::after {
+ opacity: 1;
+ }
+ }
+
+ &:not(:checked) + .rc-popover__item-radio-label::after {
+ opacity: 0;
+ }
+}
+
+.rc-popover__item-radio-label {
+ position: relative;
+ padding-left: 20px;
+ margin-left: -20px;
+ cursor: pointer;
+
+ &::before {
+ content: '';
+ position: absolute;
+ left:0;
+ top: 0;
+ width: 15px;
+ height: 15px;
+ border: 1px solid #979797;
+ background: transparent;
+ border-radius: 50px;
+ }
+
+ &::after {
+ content: '';
+ position: absolute;
+ top: 3px;
+ left: 3px;
+ width: 9px;
+ height: 9px;
+ background: #1D73F3;
+ border-radius: 50px;
+ transition: all 0.2s;
+ }
+}
+
+.rtl .rc-popover__item-radio-label {
+ padding-right: 20px;
+ margin-right: -20px;
+ padding-left: 0;
+ margin-left: 0;
+
+ &::before {
+ right: 0;
+ left: auto;
+ }
+
+ &::after {
+ right: 3px;
+ left: auto;
+ }
+}
+
[data-message-action="unstar-message"] .rc-popover__icon-element--star {
fill: currentColor;
}
diff --git a/packages/rocketchat-theme/client/imports/components/sidebar/rooms-list.css b/packages/rocketchat-theme/client/imports/components/sidebar/rooms-list.css
index 1be5e3f4c783..271df989be48 100644
--- a/packages/rocketchat-theme/client/imports/components/sidebar/rooms-list.css
+++ b/packages/rocketchat-theme/client/imports/components/sidebar/rooms-list.css
@@ -3,6 +3,7 @@
.rooms-list {
position: relative;
+ overflow-x: hidden;
overflow-y: scroll;
flex: 1 1 auto;
diff --git a/packages/rocketchat-theme/client/imports/components/sidebar/sidebar-account.css b/packages/rocketchat-theme/client/imports/components/sidebar/sidebar-account.css
index 85578a4c080b..f06c1eb42fe7 100644
--- a/packages/rocketchat-theme/client/imports/components/sidebar/sidebar-account.css
+++ b/packages/rocketchat-theme/client/imports/components/sidebar/sidebar-account.css
@@ -11,6 +11,7 @@
background-color: var(--sidebar-background-light-hover);
}
}
+
.sidebar__account {
display: flex;
@@ -18,15 +19,16 @@
padding: var(--sidebar-extra-small-default-padding) var(--sidebar-default-padding);
- align-items: center;
-
transition: background-color 0.3s;
+ align-items: center;
+
&.active:hover {
cursor: pointer;
background-color: var(--sidebar-item-hover-background);
}
+
&-thumb {
flex: 0 0 var(--sidebar-account-thumb-size);
@@ -148,7 +150,7 @@
@media (width <= 400px) {
.sidebar__account {
margin: 0 0 5px;
- padding: var(--sidebar-header-small-padding) calc(var(--sidebar-small-default-padding) - 8px) var(--sidebar-header-small-padding);
+ padding: var(--sidebar-extra-small-default-padding) calc(var(--sidebar-small-default-padding) - 8px) var(--sidebar-extra-small-default-padding);
&-thumb {
diff --git a/packages/rocketchat-theme/client/imports/components/sidebar/sidebar-flex.css b/packages/rocketchat-theme/client/imports/components/sidebar/sidebar-flex.css
index cb2061465f4a..bdfda7b811d1 100644
--- a/packages/rocketchat-theme/client/imports/components/sidebar/sidebar-flex.css
+++ b/packages/rocketchat-theme/client/imports/components/sidebar/sidebar-flex.css
@@ -8,7 +8,7 @@
&__title {
font-size: 1rem;
font-weight: 400;
-
+
flex: 1;
}
diff --git a/packages/rocketchat-theme/client/imports/components/sidebar/sidebar-item.css b/packages/rocketchat-theme/client/imports/components/sidebar/sidebar-item.css
index 61a0780df174..f0b0914bbff1 100644
--- a/packages/rocketchat-theme/client/imports/components/sidebar/sidebar-item.css
+++ b/packages/rocketchat-theme/client/imports/components/sidebar/sidebar-item.css
@@ -217,6 +217,10 @@
line-height: 1.2rem;
}
+ &__me {
+ text-transform: lowercase;
+ }
+
&__last-message {
overflow: hidden;
flex: 1;
@@ -237,16 +241,14 @@
min-height: 13px;
}
- & > p,
- & code,
- & pre {
- display: inline;
-
- white-space: unset;
- }
-
- & br {
- display: none;
+ & * {
+ display: inline !important;
+ white-space: unset !important;
+ background-color: unset !important;
+ color: inherit !important;
+ font-weight: unset !important;
+ font-family: inherit !important;
+ padding: unset !important;
}
& a {
@@ -303,10 +305,6 @@
.sidebar-item {
padding: 0 0 0 var(--sidebar-small-default-padding);
- & .badge {
- margin: 0 0 0 3px;
- }
-
&__user-status {
left: 4px;
}
diff --git a/packages/rocketchat-theme/client/imports/components/sidebar/toolbar.css b/packages/rocketchat-theme/client/imports/components/sidebar/toolbar.css
index d0fca0ee0ecd..57809a773d4c 100644
--- a/packages/rocketchat-theme/client/imports/components/sidebar/toolbar.css
+++ b/packages/rocketchat-theme/client/imports/components/sidebar/toolbar.css
@@ -90,6 +90,8 @@
}
& .rc-button {
+
+ min-height: 36px;
margin: 0 0.25rem;
color: var(--rc-color-primary-light);
@@ -104,7 +106,7 @@
@media (width <= 400px) {
.toolbar {
- padding: 0 calc(var(--sidebar-small-default-padding) - 8px) var(--sidebar-small-default-padding);
+ padding: 0 var(--sidebar-extra-small-default-padding) var(--sidebar-small-default-padding);
}
}
diff --git a/packages/rocketchat-theme/client/imports/components/tooltip.css b/packages/rocketchat-theme/client/imports/components/tooltip.css
index 947914b80d9f..7e97858d599f 100644
--- a/packages/rocketchat-theme/client/imports/components/tooltip.css
+++ b/packages/rocketchat-theme/client/imports/components/tooltip.css
@@ -17,7 +17,11 @@
}
&::after {
- margin-bottom: 11px;
+
+ bottom: 100%;
+
+ min-height: 100%;
+ margin: 11px 0;
padding: 0.5em 1em;
content: attr(aria-label) attr(label);
@@ -38,18 +42,37 @@
content: "";
- border-width: 5px 5px 0;
+ border-width: 6px 6px 0;
border-style: solid;
border-color: var(--tooltip-background) transparent transparent transparent;
}
- &:hover::before,
- &:hover::after,
- &:focus::before,
- &:focus::after {
- transform: translate(-50%, 0);
- pointer-events: auto;
+ &--down {
+ &::after {
+ top: 100%;
+ bottom: initial;
+ }
+
+ &::before {
+ top: 100%;
+ bottom: initial;
+
+ border-width: 6px;
+ border-color: transparent transparent var(--tooltip-background) transparent;
+ }
+ }
+}
+
+@media (min-width: 501px) {
+ .rc-tooltip[aria-label] {
+ &:hover::before,
+ &:hover::after,
+ &:focus::before,
+ &:focus::after {
+ transform: translate(-50%, 0);
+ pointer-events: auto;
- opacity: 1;
+ opacity: 1;
+ }
}
}
diff --git a/packages/rocketchat-theme/client/imports/components/userInfo.css b/packages/rocketchat-theme/client/imports/components/userInfo.css
new file mode 100644
index 000000000000..914dc819acff
--- /dev/null
+++ b/packages/rocketchat-theme/client/imports/components/userInfo.css
@@ -0,0 +1,327 @@
+.rc-user-info {
+ z-index: 1;
+
+ display: flex;
+ flex-direction: column;
+
+ margin-bottom: var(--default-padding);
+ align-items: center;
+
+ &-container {
+ position: absolute;
+
+ top: 0;
+ right: 0;
+ left: 0;
+
+ display: flex;
+ flex-direction: column;
+
+ background-color: var(--color-white);
+
+ &.animated {
+ transition: transform 0.45s cubic-bezier(0.5, 0, 0, 1), opacity 0.125s ease-out 0.1s, -webkit-transform 0.45s cubic-bezier(0.5, 0, 0, 1);
+ }
+
+ &.animated-hidden {
+ transform: translateX(100%);
+
+ opacity: 0;
+ }
+ }
+
+ &-wrapper {
+ overflow-y: auto;
+
+ flex: 1 1;
+
+ padding: 0 var(--default-padding);
+ }
+
+ &__banner {
+
+ position: absolute;
+ z-index: 1;
+ bottom: 50px;
+
+ display: flex;
+
+ width: 132px;
+ height: 32px;
+ margin: 0 -6px;
+
+ color: #ffffff;
+
+ border-radius: 3px;
+ background: #1d74f5;
+ align-items: center;
+ -webkit-justify-content: center;
+ }
+
+ &__avatar {
+
+ position: relative;
+
+ width: 120px;
+ height: 120px;
+ margin: var(--default-padding);
+
+ border-radius: 2px;
+
+ .archived & > .avatar {
+ opacity: 0.8;
+ filter: blur(1px);
+ }
+ }
+
+ &__name {
+ text-align: center;
+ word-wrap: break-word;
+
+ font-size: 22px;
+ font-weight: 500;
+ line-height: 28px;
+ }
+
+ &__username {
+ color: var(--color-gray);
+
+ font-size: 14px;
+ }
+
+ &__scroll {
+ overflow-x: hidden;
+ overflow-y: auto;
+
+ margin: 0 -1.5rem;
+ padding: 0 1.5rem;
+
+ &.archived .rc-user-info__name,
+ &.archived .rc-user-info__label {
+ color: #9ea2a8;
+ }
+ }
+
+ &__flex {
+ display: flex;
+
+ & > .rc-button {
+ flex: 1;
+
+ margin: 0 5px;
+
+ &:first-child {
+ margin-left: 0;
+ }
+
+ &:last-child {
+ margin-right: 0;
+ }
+ }
+ }
+
+ &__block {
+ margin: 47px 0;
+ padding: 28px 0;
+
+ border-top: 1px solid #d7d7d7;
+ border-bottom: 1px solid #d7d7d7;
+ }
+
+ &__row {
+ flex-direction: row;
+
+ padding: 15px 0;
+
+ & > .rc-switch {
+ flex: 1;
+
+ color: #a1a1a1;
+
+ & > .rc-switch__label > .rc-switch__text {
+ flex: 1;
+ }
+ }
+
+ &--separator {
+
+ margin: 14px 0;
+
+ border-bottom: 1px solid #d7d7d7;
+ }
+ }
+
+ &__label {
+ display: block;
+
+ margin-bottom: 37px;
+
+ font-size: 15px;
+ font-weight: 400;
+ }
+
+ &__description {
+ padding: 8px 0;
+
+ color: #9ea2a8;
+ }
+
+ &-action {
+ display: flex;
+
+ margin-bottom: var(--default-padding);
+ justify-content: center;
+
+ &__item {
+ overflow: hidden;
+
+ margin: 0 8px;
+
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ }
+
+ &__icon {
+ font-size: 20px;
+ }
+ }
+
+ &-details {
+
+ margin-bottom: calc(var(--default-small-padding) * -1);
+ padding: var(--default-padding);
+
+ background-color: #f7f8fa;
+
+ &__item:not(:last-child) {
+ margin-bottom: var(--default-small-padding);
+ }
+
+ &__label {
+ display: inline-block;
+
+ margin-bottom: var(--default-small-padding);
+
+ color: var(--color-gray);
+
+ font-size: 10px;
+ }
+
+ &__info {
+ overflow: hidden;
+
+ text-overflow: ellipsis;
+
+ color: var(--color-dark);
+
+ font-size: 16px;
+ line-height: 18px;
+ }
+
+ &__item {
+ display: flex;
+ flex-direction: column;
+ }
+ }
+
+ &__config {
+ &-header {
+ display: flex;
+ align-items: center;
+ }
+
+ &-label {
+ margin: 0 0.75rem;
+
+ font-size: 0.75rem;
+ font-weight: 600;
+ }
+
+ &-icon {
+ font-size: 1.25rem;
+ }
+
+ &-content {
+ display: flex;
+
+ margin: 0.75rem 2rem;
+ align-items: flex-end;
+
+ &-icon {
+
+ color: #444444;
+
+ font-size: 1.25rem;
+ }
+
+ & .icon-play-circled {
+ cursor: pointer;
+ }
+ }
+
+ &-name,
+ &-value {
+ font-size: 0.75rem;
+ font-weight: 600;
+ }
+
+ &-name {
+ color: #777777;
+ }
+
+ &-value {
+
+ display: flex;
+
+ margin: 0 0.25rem;
+
+ cursor: pointer;
+
+ color: #1d73f3;
+ align-items: flex-end;
+ text-transform: capitalize;
+ }
+ }
+}
+
+.rc-switch-double {
+ display: flex;
+
+ width: 100%;
+
+ word-break: break-word;
+
+ &__description {
+ margin: 5px 2px;
+
+ font-size: 13px;
+ }
+
+ &__label {
+ flex: 1 1 100%;
+
+ font-size: 16px;
+
+ &:first-child {
+ text-align: right;
+ }
+
+ &:last-child {
+ text-align: left;
+ }
+
+ &.disabled {
+ color: #a1a1a1;
+ }
+ }
+
+ & .rc-switch {
+ flex: 0 0;
+
+ margin: 0 23px;
+
+ & .rc-switch__button {
+ margin: 0;
+ }
+ }
+}
diff --git a/packages/rocketchat-theme/client/imports/forms/button.css b/packages/rocketchat-theme/client/imports/forms/button.css
index 011bf1ef104e..fc19732a90cc 100644
--- a/packages/rocketchat-theme/client/imports/forms/button.css
+++ b/packages/rocketchat-theme/client/imports/forms/button.css
@@ -1,23 +1,46 @@
.rc-button {
+ &:not([disabled]):hover {
+ opacity: 0.6;
+ }
+
+ &--icon > svg {
+ margin: 0 5px;
+
+ font-size: 20px;
+ fill: currentColor;
+ }
+
+ display: flex;
+
+ min-height: 40px;
+ max-height: 40px;
margin: 0.5rem 0;
- padding: var(--button-padding);
+ padding: 0 1.5rem;
cursor: pointer;
- transition: background-color 0.3s;
+ transition: opacity 0.3s, background-color 0.3s, color 0.3s;
text-align: center;
+ color: #000000;
+
border-width: var(--button-border-width);
border-style: solid;
+ border-color: #000000;
+
border-radius: var(--button-border-radius);
background-color: transparent;
font-size: var(--button-text-size);
+ align-items: center;
+ justify-content: center;
+
&:disabled {
cursor: default;
color: var(--button-disabled-text-color);
border: 0;
+ border-color: var(--button-disabled-background);
background-color: var(--button-disabled-background);
}
@@ -36,13 +59,33 @@
background-color: var(--button-primary-background);
}
+ &--primary.rc-button--outline {
+ color: var(--button-primary-background);
+ border-color: var(--button-primary-background);
+ }
+
&--secondary {
+ color: var(--button-secondary-text-color);
border: 0;
+ border-color: var(--button-secondary-background);
+ background-color: var(--button-secondary-background);
+ }
+
+ &--secondary.rc-button--outline {
+ color: var(--button-secondary-background);
+ border-color: var(--button-secondary-background);
}
&--cancel {
color: var(--button-primary-text-color);
border: 0;
+ border-color: var(--button-cancel-color);
+ background-color: var(--button-cancel-color);
+ }
+
+ &--cancel.rc-button--outline {
+ color: var(--button-cancel-color);
+ border-color: var(--button-cancel-color);
}
&--small {
@@ -53,11 +96,18 @@
display: flex;
flex: 0 0 var(--button-square-size);
+ margin: 0;
padding: 0;
align-items: center;
justify-content: center;
}
+ &--outline {
+ border-width: 2px;
+ border-style: solid;
+ background: transparent;
+ }
+
&.loading {
position: relative;
diff --git a/packages/rocketchat-theme/client/imports/forms/input.css b/packages/rocketchat-theme/client/imports/forms/input.css
index 5a3291769311..1e342a794554 100644
--- a/packages/rocketchat-theme/client/imports/forms/input.css
+++ b/packages/rocketchat-theme/client/imports/forms/input.css
@@ -1,4 +1,6 @@
.rc-input {
+ position: relative;
+
width: 100%;
&__label {
@@ -6,8 +8,6 @@
}
&__title {
- color: var(--input-title-text-size);
-
font-size: var(--input-font-size);
}
@@ -98,6 +98,12 @@
}
}
+ &--small {
+ & .rc-input__element {
+ padding: 8px;
+ }
+ }
+
&--error {
& .rc-input {
&__element {
@@ -106,3 +112,24 @@
}
}
}
+
+select.rc-input {
+ padding: 0.782rem;
+ margin: 0.5rem 0;
+ appearance: none;
+
+ width: 100%;
+
+ color: var(--input-text-color);
+
+ border-width: var(--input-border-width);
+ border-color: var(--input-border-color);
+ border-radius: var(--input-border-radius);
+ background-color: transparent;
+
+ font-size: var(--input-font-size);
+
+ &--small {
+ padding: 0.5rem 1rem;
+ }
+}
diff --git a/packages/rocketchat-theme/client/imports/forms/select.css b/packages/rocketchat-theme/client/imports/forms/select.css
new file mode 100644
index 000000000000..9a8d5efcf24d
--- /dev/null
+++ b/packages/rocketchat-theme/client/imports/forms/select.css
@@ -0,0 +1,52 @@
+.rc-select {
+
+ position: relative;
+
+ display: flex;
+
+ flex: 0 0 auto;
+
+ color: var(--input-text-color);
+
+ border-width: var(--input-border-width);
+ border-color: var(--input-border-color);
+ border-radius: var(--input-border-radius);
+ background-color: transparent;
+
+ font-size: var(--input-font-size);
+ align-items: center;
+ justify-content: flex-end;
+
+ &__arrow {
+ position: absolute;
+ z-index: -1;
+
+ margin: 0 -5px;
+
+ color: var(--color-gray-light);
+
+ font-size: 20px;
+ }
+
+ &__element {
+ padding: 0.75rem 2rem 0.75rem 1rem;
+
+ text-transform: capitalize;
+
+ border: none;
+
+ appearance: none;
+
+ &::-ms-expand {
+ display: none;
+ }
+
+ .rc-select__small & {
+ padding: 0.5rem 1rem;
+ }
+ }
+}
+
+.rtl .rc-select__element {
+ padding: 0.75rem 1rem 0.75rem 2rem;
+}
diff --git a/packages/rocketchat-theme/client/imports/forms/switch.css b/packages/rocketchat-theme/client/imports/forms/switch.css
index 00ae30c5f85c..bbed3cf53909 100644
--- a/packages/rocketchat-theme/client/imports/forms/switch.css
+++ b/packages/rocketchat-theme/client/imports/forms/switch.css
@@ -9,6 +9,22 @@
align-items: center;
}
+ &--blue {
+ & .rc-switch__button {
+ border-color: #D7D7D7;
+ background-color: var(--color-gray-light);
+ }
+
+ & .rc-switch__input {
+ &:checked {
+ & + .rc-switch__button {
+ border-color: #1757B7;
+ background-color: var(--button-primary-background);
+ }
+ }
+ }
+ }
+
&__input {
display: none;
@@ -31,7 +47,7 @@
background-color: var(--rc-color-success);
& .rc-switch__button-inside {
- transform: translate3d(1px, 1px, 0);
+ transform: translate3d(13px, 1px, 0);
}
}
}
@@ -41,6 +57,7 @@
display: block;
flex: 0 32px;
+ width: 32px;
height: 20px;
margin-right: 0.25rem;
margin-left: 0.25rem;
@@ -61,7 +78,7 @@
height: 16px;
transition: all 0.2s cubic-bezier(0.65, 0.05, 0.36, 1);
- transform: translate3d(13px, 1px, 0);
+ transform: translate3d(1px, 1px, 0);
border-width: 1px;
border-color: #f2f3f5;
@@ -96,10 +113,10 @@
}
&__button-inside {
- transform: translate3d(-13px, 1px, 0);
+ transform: translate3d(-1px, 1px, 0);
}
&__input:checked + .rc-switch__button .rc-switch__button-inside {
- transform: translate3d(-1px, 1px, 0);
+ transform: translate3d(-13px, 1px, 0);
}
}
diff --git a/packages/rocketchat-theme/client/imports/forms/tags.css b/packages/rocketchat-theme/client/imports/forms/tags.css
index 438243035323..d535a8bcb282 100644
--- a/packages/rocketchat-theme/client/imports/forms/tags.css
+++ b/packages/rocketchat-theme/client/imports/forms/tags.css
@@ -3,6 +3,7 @@
width: 100%;
min-height: 43px;
+
padding: 0 1rem 0 2.25rem;
border-width: var(--tags-border-width);
@@ -44,9 +45,11 @@
}
&__input {
+
+ flex: 1;
+
margin: 0.25rem;
padding: 0.35rem 0.5rem;
- flex: 1;
border: 0;
diff --git a/packages/rocketchat-theme/client/imports/general/base.css b/packages/rocketchat-theme/client/imports/general/base.css
index dd10edadfd98..1a62424e1c15 100644
--- a/packages/rocketchat-theme/client/imports/general/base.css
+++ b/packages/rocketchat-theme/client/imports/general/base.css
@@ -23,7 +23,7 @@ body {
height: 100%;
padding: 0;
- font-size: var(--text-size);
+ font-size: var(--text-small-size);
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
@@ -95,19 +95,34 @@ button {
fill: var(--rc-color-primary-dark);
&--star {
+ width: 17px;
+ height: 16px;
fill: none;
}
+
+ &--language {
+ width: 16px;
+ height: 16px;
+
+ fill: currentColor;
+ stroke: none;
+ }
+
+ &--hubot {
+ width: 14px;
+ height: 16px;
+ }
}
}
.rc-icon {
-
overflow: hidden;
width: 1em;
height: 1em;
vertical-align: -0.15em;
+
}
.ps-scrollbar-y-rail {
@@ -136,7 +151,7 @@ button {
&::after {
position: absolute;
- z-index: 2;
+ z-index: 1;
top: -6px;
right: 0;
diff --git a/packages/rocketchat-theme/client/imports/general/base_old.css b/packages/rocketchat-theme/client/imports/general/base_old.css
index 9766649cff2c..13e1fc643294 100644
--- a/packages/rocketchat-theme/client/imports/general/base_old.css
+++ b/packages/rocketchat-theme/client/imports/general/base_old.css
@@ -187,15 +187,10 @@
height: 100%;
& .content {
- position: absolute;
- top: 0;
- left: 0;
-
overflow-y: scroll;
width: 100%;
height: calc(100% - 60px);
- margin-top: 60px;
padding: 25px 40px;
-webkit-overflow-scrolling: touch;
@@ -403,7 +398,7 @@
/* .rc-old textarea, */
-.rc-old select,
+/*.rc-old select,
.rc-old input[type='text'],
.rc-old input[type='number'],
.rc-old input[type='email'],
@@ -422,7 +417,7 @@
line-height: normal;
appearance: none;
-}
+}*/
.rc-old input {
& .input-forward {
@@ -646,16 +641,9 @@
}
.rc-old.burger {
- position: absolute;
- top: 5px;
- left: 0;
-
display: none;
visibility: hidden;
- margin-left: 7px;
- padding: 12px;
-
cursor: pointer;
transition: transform 0.2s ease-out 0.1s;
will-change: transform;
@@ -672,25 +660,6 @@
opacity: 0.8;
}
- & .unread-burger-alert {
- position: absolute;
- z-index: 3;
- top: 8px;
- right: 4px;
-
- min-width: 18px;
- height: 18px;
- padding: 0 4px;
-
- text-align: center;
-
- border-radius: 20px;
-
- font-size: 12px;
- font-weight: bold;
- line-height: 18px;
- }
-
&.menu-opened i {
&:nth-child(1),
&:nth-child(3) {
@@ -3407,6 +3376,7 @@ body:not(.is-cordova) {
overflow-x: visible;
width: var(--flex-tab-width);
+ height: calc(100vh - var(--header-height));
& .control {
& .header {
@@ -3493,6 +3463,13 @@ body:not(.is-cordova) {
}
& .content {
+ overflow-x: hidden;
+ overflow-y: auto;
+
+ width: 100%;
+ height: 100%;
+ -webkit-overflow-scrolling: touch;
+
& > div {
overflow-y: auto;
@@ -3584,7 +3561,7 @@ body:not(.is-cordova) {
}
}
- & .close-flex-tab {
+ /*& .close-flex-tab {
position: absolute;
z-index: 20;
top: 3px;
@@ -3610,7 +3587,7 @@ body:not(.is-cordova) {
font-size: 10px;
}
}
- }
+ }*/
}
& .flex-tab-bar {
@@ -3618,6 +3595,8 @@ body:not(.is-cordova) {
min-width: 40px;
+ border: 1px solid rgba(31, 35, 41, 0.08);
+
& .tab-button {
position: relative;
@@ -4413,10 +4392,8 @@ body:not(.is-cordova) {
margin: 20px auto;
padding: 20px;
- border-radius: 4px;
- box-shadow:
- 0 1px 1px 0 rgba(0, 0, 0, 0.2),
- 0 2px 10px 0 rgba(0, 0, 0, 0.16);
+ border-radius: 2px;
+ box-shadow: 0 0 2px 0 rgba(47, 52, 61, 0.08), 0 0 12px 0 rgba(47, 52, 61, 0.12);
& header {
padding: 18px 0 23px;
@@ -4474,6 +4451,10 @@ body:not(.is-cordova) {
& .forgot-password,
& .back-to-login {
margin-top: 12px;
+
+ & button {
+ margin: 0 auto;
+ }
}
& .input-line {
@@ -4499,6 +4480,7 @@ body:not(.is-cordova) {
& input,
& select {
+ width: 100%;
position: relative;
padding: 4px 8px;
@@ -5114,17 +5096,16 @@ body:not(.is-cordova) {
.rc-old .colorpicker-swatch {
position: absolute;
- top: 1px;
- left: 1px;
+ top: 2px;
+ left: 2px;
display: block;
overflow: hidden;
- width: 33px;
- height: 33px;
+ width: 41px;
+ height: 41px;
- border-width: 0 1px 0 0;
- border-radius: 5px 0 0 5px;
+ border-radius: 2px;
}
.rc-old .inline-video {
@@ -5652,7 +5633,7 @@ body:not(.is-cordova) {
.room-leader {
position: absolute;
- z-index: 2;
+ z-index: 1;
right: 0;
left: 0;
diff --git a/packages/rocketchat-theme/client/imports/general/forms.css b/packages/rocketchat-theme/client/imports/general/forms.css
index 9075c43e3d38..db1d854f830c 100644
--- a/packages/rocketchat-theme/client/imports/general/forms.css
+++ b/packages/rocketchat-theme/client/imports/general/forms.css
@@ -127,6 +127,29 @@
.rc-form-group {
margin-bottom: var(--gap-between-elements);
+
+ &--small {
+ margin-bottom: var(--default-small-padding);
+ }
+
+ &--inline {
+ display: flex;
+ flex-direction: row;
+ align-items: flex-end;
+ margin-left: -0.5rem;
+ margin-right: -0.5rem;
+ white-space: nowrap;
+ }
+
+ & > .rc-form-item-inline {
+ flex: 1 1 auto;
+ margin-left: 0.5rem;
+ margin-right: 0.5rem;
+
+ &--full {
+ flex: 0 0 100%;
+ }
+ }
}
.rc-form-label {
@@ -213,34 +236,15 @@
height: 100%;
- &__header {
- display: flex;
-
- height: 77px;
- padding: 25px;
-
- color: var(--color-dark);
- box-shadow: 0 0 1px 1px #e6e4e4;
-
- font-size: 16px;
- font-weight: 600;
- align-items: center;
- }
-
&__content {
overflow-y: auto;
+ flex: 1;
width: 100%;
padding: 25px;
}
}
-@media (width < 780px) {
- .preferences-page__header h2 {
- margin-left: 40px;
- }
-}
-
@media (width > 500px) {
.preferences-page .container {
max-width: 649px;
diff --git a/packages/rocketchat-theme/client/imports/general/rtl.css b/packages/rocketchat-theme/client/imports/general/rtl.css
index 759ec7b0d6be..084936878a85 100644
--- a/packages/rocketchat-theme/client/imports/general/rtl.css
+++ b/packages/rocketchat-theme/client/imports/general/rtl.css
@@ -672,10 +672,6 @@
}
&.uploaded-files-list {
- & a {
- direction: ltr;
- }
-
& i {
float: right;
margin-right: auto;
diff --git a/packages/rocketchat-theme/client/imports/general/variables.css b/packages/rocketchat-theme/client/imports/general/variables.css
index 07a9282c0dc6..8caed14de318 100644
--- a/packages/rocketchat-theme/client/imports/general/variables.css
+++ b/packages/rocketchat-theme/client/imports/general/variables.css
@@ -1,277 +1,325 @@
- :root {
- /*
- * General Colors
- */
-
- --color-darkest: #1f2329;
- --color-dark: #2f343d;
- --color-dark-medium: #414852;
- --color-dark-light: #6c727a;
- --color-gray: #9ea2a8;
- --color-gray-medium: #cbced1;
- --color-gray-light: #e1e5e8;
- --color-gray-lightest: #f2f3f5;
- --color-black: #000000;
- --color-white: #ffffff;
-
- --rc-color-error: #f5455c;
- --rc-color-error-light: #e1364c;
- --rc-color-alert: #ffd21f;
- --rc-color-alert-light: #f6c502;
- --rc-color-success: #2de0a5;
- --rc-color-success-light: #25d198;
- --rc-color-button-primary: #1d74f5;
- --rc-color-button-primary-light: #175cc4;
-
- --rc-color-primary: var(--color-dark);
- --rc-color-primary-darkest: var(--color-darkest);
- --rc-color-primary-dark: var(--color-dark-medium);
- --rc-color-primary-light: var(--color-gray);
- --rc-color-primary-light-medium: var(--color-gray-medium);
- --rc-color-primary-lightest: var(--color-gray-lightest);
- --rc-color-content: var(--color-white);
-
- /*
- * General
- */
- --text-size: 0.875rem;
- --header-min-height: 60px;
- --toolbar-height: 55px;
- --footer-min-height: 70px;
- --rooms-box-width: 280px;
- --flex-tab-width: 400px;
- --flex-tab-webrtc-width: 400px;
- --flex-tab-webrtc-2-width: 850px;
- --user-image-square: 20px;
- --border: 2px;
- --border-radius: 2px;
- --status-online: var(--rc-color-success);
- --status-away: var(--rc-color-alert);
- --status-busy: var(--rc-color-error);
- --status-invisible: var(--color-gray-medium);
- --status-invisible-sidebar: var(--rc-color-primary-darkest);
- --default-padding: 1.5rem;
- --default-small-padding: 1rem;
-
- /*
- * Forms
- */
- --gap-between-elements: 2.5rem;
- --label-margin-bottom: 1rem;
-
- /*
- * Forms - Button
- */
- --button-square-size: 36px;
- --button-padding: 0.782rem;
- --button-padding-small: 0.5rem;
- --button-text-size: var(--input-font-size);
- --button-border-width: var(--border);
- --button-border-radius: var(--border-radius);
- --button-disabled-background: var(--color-gray-light);
- --button-disabled-text-color: var(--color-white);
- --button-primary-background: var(--rc-color-button-primary);
- --button-primary-text-color: var(--color-white);
-
- /*
- * Forms - Input
- */
- --input-font-size: 0.875rem;
- --input-title-text-size: var(--input-font-size);
- --input-title-color: #2d343d;
- --input-text-color: var(--color-dark-medium);
- --input-placeholder-color: var(--color-gray-medium);
- --input-icon-color: var(--color-dark);
- --input-border-color: var(--color-gray-light);
- --input-border-width: var(--border);
- --input-border-radius: var(--border-radius);
- --input-description-text-color: var(--color-gray);
- --input-description-text-size: var(--input-font-size);
- --input-error-color: var(--rc-color-error);
-
- /*
- * Forms - popup list
- */
- --popup-list-border-radius: var(--border-radius);
- --popup-list-background: var(--color-white);
- --popup-list-background-hover: var(--color-gray-lightest);
- --popup-list-selected-background: var(--color-gray-lightest);
- --popup-list-name-color: #2d343d;
- --popup-list-name-size: 1rem;
-
- /*
- * Forms - tags
- */
- --tags-border-width: var(--border);
- --tags-border-radius: var(--border-radius);
- --tags-border-color: var(--color-gray-light);
- --tags-text-color: var(--rc-color-primary);
- --tags-background: #f2f3f5;
- --tags-avatar-size: 20px;
-
- /*
- * Forms - select avatar
- */
- --select-avatar-size: 48px;
- --select-avatar-preview-size: 150px;
- --select-avatar-upload-background: var(--color-gray-light);
- --select-avatar-upload-color: #2d343d;
-
- /*
- * Modal
- */
- --modal-wrapper-width: 650px;
- --modal-wrapper-margin: 3rem;
- --modal-back-button-color: var(--color-gray);
-
- /*
- * Modal - Create Channel
- */
- --create-channel-gap-between-elements: 2.5rem;
- --create-channel-title-color: var(--color-darkest);
- --create-channel-title-text-size: 1.375rem;
- --create-channel-description-color: var(--color-gray);
- --create-channel-description-text-size: 0.875rem;
-
- /*
- * Sidebar
- */
- --sidebar-width: 280px;
- --sidebar-small-width: 90%;
- --sidebar-background: var(--rc-color-primary);
- --sidebar-background-hover: var(--rc-color-primary-dark);
- --sidebar-background-light: var(--rc-color-primary-lightest);
- --sidebar-background-light-hover: var(--rc-color-primary-light);
- --sidebar-default-padding: 24px;
- --sidebar-small-default-padding: 16px;
- --sidebar-extra-small-default-padding: 12px;
- --sidebar-footer-height: 70px;
- --sidebar-small-header-padding: var(--sidebar-small-default-padding);
-
- /*
- * Sidebar flex
- */
- --sidebar-flex-search-background: var(--color-white);
- --sidebar-flex-search-placeholder-color: var(--color-gray);
-
- /*
- * Sidebar Account
- */
- --sidebar-account-thumb-size: 36px;
- --sidebar-small-account-thumb-size: 40px;
- --sidebar-account-status-bullet-size: 12px;
- --sidebar-small-account-status-bullet-size: 8px;
- --sidebar-account-status-bullet-radius: 50%;
- --sidebar-account-username-size: 1rem;
- --sidebar-account-username-weight: 700;
- --sidebar-small-account-username-weight: 400;
- --sidebar-account-username-color: var(--color-white);
- --sidebar-account-username-color-darker: var(--rc-color-primary);
- --sidebar-account-status-font-size: 0.875rem;
- --sidebar-account-status-color: var(--color-gray);
-
- /*
- * Sidebar Item
- */
- --sidebar-item-radius: 2px;
- --sidebar-item-height: 32px;
- --sidebar-item-big-height: 62px;
- --sidebar-item-thumb-size: 20px;
- --sidebar-item-big-thumb-size: 36px;
-
- --sidebar-item-text-color: var(--color-gray);
- --sidebar-item-background: inherit;
- --sidebar-item-hover-background: var(--rc-color-primary-darkest);
-
- --sidebar-item-active-background: var(--rc-color-primary-dark);
- --sidebar-item-active-color: var(--sidebar-item-text-color);
-
- --sidebar-item-unread-color: var(--color-white);
-
- --sidebar-item-popup-background: var(--color-dark-medium);
- --sidebar-item-user-status-size: 6px;
- --sidebar-small-item-user-status-size: 4px;
- --sidebar-item-user-status-radius: 50%;
- --sidebar-item-text-size: 1rem;
-
- /*
- * Toolbar
- */
- --toolbar-placeholder-color: var(--color-gray);
-
- /*
- * Rooms list
- */
- --rooms-list-title-color: var(--color-gray);
- --rooms-list-title-text-size: 0.75rem;
- --rooms-list-empty-text-color: var(--color-gray);
- --rooms-list-empty-text-size: 0.75rem;
- --rooms-list-padding: var(--sidebar-default-padding);
- --rooms-list-small-padding: var(--sidebar-small-default-padding);
-
- /*
- * Chip
- */
- --chip-background: #dddddd;
-
- /*
- * Avatar
- */
- --avatar-radius: var(--border-radius);
- --avatar-initials-text-size: 22px;
- --avatar-initials-text-weight: 700;
-
- /*
- * Badge
- */
- --badge-text-color: var(--color-white);
- --badge-radius: var(--border-radius);
- --badge-text-size: 0.75rem;
- --badge-background: var(--rc-color-primary-dark);
- --badge-unread-background: var(--rc-color-button-primary);
-
- /*
- * Flex nav
- */
- --flex-nav-background: var(--color-gray-lightest);
-
- /*
- * Popover
- */
- --popover-padding: 1rem;
- --popover-radius: var(--border-radius);
- --popover-background: var(--color-white);
- --popover-column-min-width: 130px;
- --popover-column-padding: 1rem;
- --popover-title-color: var(--color-dark);
- --popover-title-text-size: 0.75rem;
- --popover-item-color: var(--color-dark);
- --popover-item-text-size: 0.875rem;
- --popover-divider-height: 2px;
- --popover-divider-color: var(--color-gray-light);
-
- /*
- * Tooltip
- */
- --tooltip-background: var(--color-darkest);
- --tooltip-text-color: var(--color-white);
- --tooltip-text-size: 0.75rem;
- --tooltip-radius: var(--border-radius);
-
- /*
- * Message box
- */
- --message-box-text-size: var(--input-font-size);
- --message-box-placeholder-color: var(--color-gray-medium);
- --message-box-markdown-color: var(--color-gray);
- --message-box-markdown-hover-color: var(--color-dark);
- --message-box-user-typing-color: var(--color-gray);
- --message-box-user-typing-text-size: 0.75rem;
- --message-box-user-typing-user-color: var(--color-dark);
- --message-box-container-border-color: var(--color-gray-medium);
- --message-box-container-border-width: var(--border);
- --message-box-container-border-radius: var(--border-radius);
- --message-box-editing-color: #fff5df;
- --message-box-popover-title-text-color: var(--color-gray);
- --message-box-popover-title-text-size: 0.75rem;
- }
+:root {
+ /*
+ * General Colors
+ */
+
+ --color-darkest: #1f2329;
+ --color-dark: #2f343d;
+ --color-dark-medium: #414852;
+ --color-dark-light: #6c727a;
+ --color-gray: #9ea2a8;
+ --color-gray-medium: #cbced1;
+ --color-gray-light: #e1e5e8;
+ --color-gray-lightest: #f2f3f5;
+ --color-black: #000000;
+ --color-white: #ffffff;
+
+ --rc-color-error: #f5455c;
+ --rc-color-error-light: #e1364c;
+ --rc-color-alert: #ffd21f;
+ --rc-color-alert-light: #f6c502;
+ --rc-color-success: #2de0a5;
+ --rc-color-success-light: #25d198;
+
+ --rc-color-button-primary: #1d74f5;
+ --rc-color-button-primary-light: #175cc4;
+
+ --rc-color-alert-message-primary: var(--rc-color-button-primary);
+ --rc-color-alert-message-primary-background: #f1f6ff;
+ --rc-color-alert-message-secondary: #7ca52b;
+ --rc-color-alert-message-secondary-background: #fafff1;
+ --rc-color-alert-message-warning: #d52d24;
+ --rc-color-alert-message-warning-background: #fff3f3;
+
+ --rc-color-primary: var(--color-dark);
+ --rc-color-primary-darkest: var(--color-darkest);
+ --rc-color-primary-dark: var(--color-dark-medium);
+ --rc-color-primary-light: var(--color-gray);
+ --rc-color-primary-light-medium: var(--color-gray-medium);
+ --rc-color-primary-lightest: var(--color-gray-lightest);
+ --rc-color-content: var(--color-white);
+
+ --rc-color-link-active: var(--rc-color-button-primary);
+
+
+ /*
+ * General
+ */
+ --text-size: 0.875rem;
+ --header-min-height: 60px;
+ --toolbar-height: 55px;
+ --footer-min-height: 70px;
+ --rooms-box-width: 280px;
+ --flex-tab-width: 400px;
+ --flex-tab-webrtc-width: 400px;
+ --flex-tab-webrtc-2-width: 850px;
+ --user-image-square: 20px;
+ --border: 2px;
+ --border-radius: 2px;
+ --status-online: var(--rc-color-success);
+ --status-away: var(--rc-color-alert);
+ --status-busy: var(--rc-color-error);
+ --status-invisible: var(--color-gray-medium);
+ --status-invisible-sidebar: var(--rc-color-primary-darkest);
+ --default-padding: 1.5rem;
+ --default-small-padding: 1rem;
+ --status-bullet-size: 12px;
+ --status-bullet-radius: 50%;
+ --account-username-weight: 700;
+ --status-name-weight: 400;
+
+
+ /*
+ * General Typography
+ */
+ --text-default-size: 1rem;
+ --text-default-weight: 500;
+ --text-small-size: 0.875rem;
+ --text-small-weight: 500;
+ --text-heading-size: 1.375rem;
+ --text-heading-weight: 700;
+ --text-label-size: 075rem;
+ --text-label-weight: 600;
+ --text-tiny-size: 075rem;
+ --text-tiny-weight: 400;
+ --text-micro-size: 0.625rem;
+ --text-micro-weight: 700;
+
+ /*
+ * Forms
+ */
+ --gap-between-elements: 2.5rem;
+ --label-margin-bottom: 1rem;
+
+ /*
+ * Forms - Button
+ */
+ --button-square-size: 36px;
+ --button-padding: 0.782rem;
+ --button-padding-small: 0.5rem;
+ --button-text-size: var(--input-font-size);
+ --button-border-width: var(--border);
+ --button-border-radius: var(--border-radius);
+ --button-disabled-background: var(--color-gray-light);
+ --button-disabled-text-color: var(--color-white);
+ --button-primary-background: var(--rc-color-button-primary);
+ --button-primary-text-color: var(--color-white);
+ --button-cancel-color: var(--rc-color-error);
+ --button-secondary-background: var(--color-gray-medium);
+ --button-secondary-text-color: var(--color-dark-medium);
+
+ /*
+ * Forms - Input
+ */
+ --input-font-size: 0.875rem;
+ --input-title-text-size: var(--input-font-size);
+ --input-title-color: #2d343d;
+ --input-text-color: var(--color-dark-medium);
+ --input-placeholder-color: var(--color-gray-medium);
+ --input-icon-color: var(--color-dark);
+ --input-border-color: var(--color-gray-light);
+ --input-border-width: var(--border);
+ --input-border-radius: var(--border-radius);
+ --input-description-text-color: var(--color-gray);
+ --input-description-text-size: var(--input-font-size);
+ --input-error-color: var(--rc-color-error);
+
+ /*
+ * Forms - popup list
+ */
+ --popup-list-border-radius: var(--border-radius);
+ --popup-list-background: var(--color-white);
+ --popup-list-background-hover: var(--color-gray-lightest);
+ --popup-list-selected-background: var(--color-gray-lightest);
+ --popup-list-name-color: #2d343d;
+ --popup-list-name-size: 1rem;
+
+ /*
+ * Forms - tags
+ */
+ --tags-border-width: var(--border);
+ --tags-border-radius: var(--border-radius);
+ --tags-border-color: var(--color-gray-light);
+ --tags-text-color: var(--rc-color-primary);
+ --tags-background: #f2f3f5;
+ --tags-avatar-size: 20px;
+
+ /*
+ * Forms - select avatar
+ */
+ --select-avatar-size: 48px;
+ --select-avatar-preview-size: 150px;
+ --select-avatar-upload-background: var(--color-gray-light);
+ --select-avatar-upload-color: #2d343d;
+
+ /*
+ * Sidebar
+ */
+ --sidebar-width: 280px;
+ --sidebar-small-width: 90%;
+ --sidebar-background: var(--rc-color-primary);
+ --sidebar-background-hover: var(--rc-color-primary-dark);
+ --sidebar-background-light: var(--rc-color-primary-lightest);
+ --sidebar-background-light-hover: var(--rc-color-primary-light);
+ --sidebar-default-padding: 24px;
+ --sidebar-small-default-padding: 16px;
+ --sidebar-extra-small-default-padding: 12px;
+ --sidebar-footer-height: 70px;
+ --sidebar-small-header-padding: var(--sidebar-small-default-padding);
+
+ /*
+ * Sidebar flex
+ */
+ --sidebar-flex-search-background: var(--color-white);
+ --sidebar-flex-search-placeholder-color: var(--color-gray);
+
+ /*
+ * Sidebar Account
+ */
+ --sidebar-account-thumb-size: 36px;
+ --sidebar-small-account-thumb-size: 40px;
+ --sidebar-account-status-bullet-size: 12px;
+ --sidebar-small-account-status-bullet-size: 8px;
+ --sidebar-account-status-bullet-radius: 50%;
+ --sidebar-account-username-size: 1rem;
+ --sidebar-account-username-weight: 700;
+ --sidebar-small-account-username-weight: 400;
+ --sidebar-account-username-color: var(--color-white);
+ --sidebar-account-username-color-darker: var(--color-dark);
+ --sidebar-account-status-font-size: 0.875rem;
+ --sidebar-account-status-color: var(--color-gray);
+
+ /*
+ * Sidebar Item
+ */
+ --sidebar-item-radius: 2px;
+ --sidebar-item-height: 32px;
+ --sidebar-item-thumb-size: 20px;
+ --sidebar-item-text-color: var(--color-gray);
+ --sidebar-item-background: inherit;
+ --sidebar-item-hover-background: var(--rc-color-primary-darkest);
+ --sidebar-item-active-background: var(--rc-color-primary-dark);
+ --sidebar-item-active-color: var(--sidebar-item-text-color);
+ --sidebar-item-unread-color: var(--color-white);
+ --sidebar-item-popup-background: var(--color-dark-medium);
+ --sidebar-item-user-status-size: 6px;
+ --sidebar-small-item-user-status-size: 4px;
+ --sidebar-item-user-status-radius: 50%;
+ --sidebar-item-text-size: 1rem;
+ --sidebar-item-big-height: 62px;
+ --sidebar-item-big-thumb-size: 36px;
+
+ /*
+ * Modal
+ */
+ --modal-wrapper-width: 650px;
+ --modal-wrapper-margin: 3rem;
+ --modal-back-button-color: var(--color-gray);
+
+ /*
+ * Modal - Create Channel
+ */
+ --create-channel-gap-between-elements: 2.5rem;
+ --create-channel-title-color: var(--color-darkest);
+ --create-channel-title-text-size: 1.375rem;
+ --create-channel-description-color: var(--color-gray);
+ --create-channel-description-text-size: 0.875rem;
+
+ /*
+ * Toolbar
+ */
+ --toolbar-placeholder-color: var(--color-gray);
+
+ /*
+ * Rooms list
+ */
+ --rooms-list-title-color: var(--color-gray);
+ --rooms-list-title-text-size: 0.75rem;
+ --rooms-list-empty-text-color: var(--color-gray);
+ --rooms-list-empty-text-size: 0.75rem;
+ --rooms-list-padding: var(--sidebar-default-padding);
+ --rooms-list-small-padding: var(--sidebar-small-default-padding);
+
+ /*
+ * Chip
+ */
+ --chip-background: #dddddd;
+
+ /*
+ * Avatar
+ */
+ --avatar-radius: var(--border-radius);
+ --avatar-initials-text-size: 22px;
+ --avatar-initials-text-weight: 700;
+
+ /*
+ * Badge
+ */
+ --badge-text-color: var(--color-white);
+ --badge-radius: var(--border-radius);
+ --badge-text-size: 0.75rem;
+ --badge-background: var(--rc-color-primary-dark);
+ --badge-unread-background: var(--rc-color-button-primary);
+
+ /*
+ * Message box
+ */
+ --message-box-text-size: var(--input-font-size);
+ --message-box-placeholder-color: var(--color-gray-medium);
+ --message-box-markdown-color: var(--color-gray);
+ --message-box-markdown-hover-color: var(--color-dark);
+ --message-box-user-typing-color: var(--color-gray);
+ --message-box-user-typing-text-size: 0.75rem;
+ --message-box-user-typing-user-color: var(--color-dark);
+ --message-box-container-border-color: var(--color-gray-medium);
+ --message-box-container-border-width: var(--border);
+ --message-box-container-border-radius: var(--border-radius);
+ --message-box-editing-color: #fff5df;
+ --message-box-popover-title-text-color: var(--color-gray);
+ --message-box-popover-title-text-size: 0.75rem;
+
+ /*
+ * Header
+ */
+ --header-height: 77px;
+ --header-padding: 16px;
+ --header-toggle-favorite-color: var(--color-gray-medium);
+ --header-toggle-favorite-star-color: var(--rc-color-alert-light);
+ --header-title-username-color-darker: var(--color-dark);
+ --header-title-font-size: var(--text-default-size);
+ --header-title-font-size--subtitle: var(--text-small-size);
+ --header-title-status-color: var(--color-gray);
+ --header-title-username-weight: 400;
+ --header-title-status-name-weight: 400;
+ --header-title-status-bullet-radius: var(--status-bullet-radius);
+ --header-title-status-bullet-size: var(--status-bullet-size);
+ --header-background-color: var(--color-white);
+
+ /*
+ * Flex nav
+ */
+ --flex-nav-background: var(--color-gray-lightest);
+
+ /*
+ * Popover
+ */
+ --popover-padding: 1rem;
+ --popover-radius: var(--border-radius);
+ --popover-background: var(--color-white);
+ --popover-column-min-width: 130px;
+ --popover-column-padding: 1rem;
+ --popover-title-color: var(--color-dark);
+ --popover-title-text-size: 0.75rem;
+ --popover-item-color: var(--color-dark);
+ --popover-item-text-size: 0.875rem;
+ --popover-divider-height: 2px;
+ --popover-divider-color: var(--color-gray-light);
+
+ /*
+ * Tooltip
+ */
+ --tooltip-background: var(--color-darkest);
+ --tooltip-text-color: var(--color-white);
+ --tooltip-text-size: 0.75rem;
+ --tooltip-radius: var(--border-radius);
+}
diff --git a/packages/rocketchat-theme/client/main.css b/packages/rocketchat-theme/client/main.css
index 9b5c2bbef76d..cf9975789520 100644
--- a/packages/rocketchat-theme/client/main.css
+++ b/packages/rocketchat-theme/client/main.css
@@ -9,6 +9,7 @@
@import 'imports/general/forms.css';
@import 'imports/forms/button.css';
@import 'imports/forms/input.css';
+@import 'imports/forms/select.css';
@import 'imports/forms/popup-list.css';
@import 'imports/forms/select-avatar.css';
@import 'imports/forms/switch.css';
@@ -24,6 +25,8 @@
/* Main */
@import 'imports/components/flex-nav.css';
+@import 'imports/components/header.css';
+@import 'imports/components/memberlist.css';
@import 'imports/components/main-content.css';
@import 'imports/components/message-box.css';
@import 'imports/components/avatar.css';
@@ -34,11 +37,15 @@
@import 'imports/components/slider.css';
@import 'imports/components/chip.css';
@import 'imports/components/messages.css';
+@import 'imports/components/contextual-bar.css';
@import 'imports/components/emojiPicker.css';
/* Modal */
@import 'imports/components/modal/full-modal.css';
@import 'imports/components/modal/create-channel.css';
+/* User Info */
+@import 'imports/components/userInfo.css';
+
/* RTL */
@import 'imports/general/rtl.css';
diff --git a/packages/rocketchat-theme/package.js b/packages/rocketchat-theme/package.js
index 1696fb962f24..78340ff38e59 100644
--- a/packages/rocketchat-theme/package.js
+++ b/packages/rocketchat-theme/package.js
@@ -40,8 +40,3 @@ Package.onUse(function(api) {
// Run-time stylesheets
api.addAssets('server/colors.less', 'server');
});
-
-Npm.depends({
- 'less': 'https://github.com/meteor/less.js/tarball/8130849eb3d7f0ecf0ca8d0af7c4207b0442e3f6',
- 'less-plugin-autoprefix': '1.4.2'
-});
diff --git a/packages/rocketchat-theme/server/colors.less b/packages/rocketchat-theme/server/colors.less
index 882e768a516a..5ef8cd9cd1e3 100755
--- a/packages/rocketchat-theme/server/colors.less
+++ b/packages/rocketchat-theme/server/colors.less
@@ -20,7 +20,7 @@
* Transparency variables
*/
-@transparent-darkest: rgba(0, 0, 0, 0.5);
+@transparent-darkest: rgba(17, 12, 12, 0.5);
@transparent-darker: rgba(0, 0, 0, 0.15);
@transparent-dark: rgba(0, 0, 0, 0.05);
@transparent-light: rgba(255, 255, 255, 0.1);
@@ -442,7 +442,7 @@ input:-webkit-autofill {
.page-list,
.page-settings {
- a {
+ a:not(.rc-button) {
color: @primary-font-color;
&:hover {
@@ -678,20 +678,6 @@ input:-webkit-autofill {
* Flex tabs / admin fly-out panels
*/
.flex-tab {
- input,
- select,
- textarea {
- &:focus {
- border-color: lighten(@secondary-background-contrast, 30%);
- }
- }
-
- .content,
- .user-view,
- .list-view {
- background-color: @secondary-background-color;
- }
-
.message {
&.new-day::before {
background-color: @secondary-background-color;
diff --git a/packages/rocketchat-tokenpass/server/startup.js b/packages/rocketchat-tokenpass/server/startup.js
index 143e404d94ec..e6c0acfebde2 100644
--- a/packages/rocketchat-tokenpass/server/startup.js
+++ b/packages/rocketchat-tokenpass/server/startup.js
@@ -23,7 +23,7 @@ function validateTokenAccess(userData, roomData) {
Meteor.startup(function() {
RocketChat.authz.addRoomAccessValidator(function(room, user) {
- if (!room.tokenpass) {
+ if (!room.tokenpass || !user) {
return false;
}
diff --git a/packages/rocketchat-tutum/.npm/package/.gitignore b/packages/rocketchat-tutum/.npm/package/.gitignore
deleted file mode 100644
index 3c3629e647f5..000000000000
--- a/packages/rocketchat-tutum/.npm/package/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-node_modules
diff --git a/packages/rocketchat-tutum/.npm/package/README b/packages/rocketchat-tutum/.npm/package/README
deleted file mode 100644
index 3d492553a438..000000000000
--- a/packages/rocketchat-tutum/.npm/package/README
+++ /dev/null
@@ -1,7 +0,0 @@
-This directory and the files immediately inside it are automatically generated
-when you change this package's NPM dependencies. Commit the files in this
-directory (npm-shrinkwrap.json, .gitignore, and this README) to source control
-so that others run the same versions of sub-dependencies.
-
-You should NOT check in the node_modules directory that Meteor automatically
-creates; if you are using git, the .gitignore file tells git to ignore it.
diff --git a/packages/rocketchat-tutum/.npm/package/npm-shrinkwrap.json b/packages/rocketchat-tutum/.npm/package/npm-shrinkwrap.json
deleted file mode 100644
index 881f35669270..000000000000
--- a/packages/rocketchat-tutum/.npm/package/npm-shrinkwrap.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "lockfileVersion": 1,
- "dependencies": {
- "double-ended-queue": {
- "version": "2.1.0-0",
- "resolved": "https://registry.npmjs.org/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz",
- "integrity": "sha1-ED01J/0xUo9AGIEwyEHv3XgmTlw="
- },
- "redis": {
- "version": "2.2.5",
- "resolved": "https://registry.npmjs.org/redis/-/redis-2.2.5.tgz",
- "integrity": "sha1-+B1XALMmhmCfKcCvsp1TnthTrXg="
- }
- }
-}
diff --git a/packages/rocketchat-tutum/package.js b/packages/rocketchat-tutum/package.js
index a5b06252abee..736cd1f33b35 100644
--- a/packages/rocketchat-tutum/package.js
+++ b/packages/rocketchat-tutum/package.js
@@ -9,7 +9,3 @@ Package.onUse(function(api) {
api.use('rocketchat:lib');
api.addFiles('startup.js', 'server');
});
-
-Npm.depends({
- 'redis': '2.2.5'
-});
diff --git a/packages/rocketchat-tutum/startup.js b/packages/rocketchat-tutum/startup.js
index c71d01e88121..1b9c2d399806 100644
--- a/packages/rocketchat-tutum/startup.js
+++ b/packages/rocketchat-tutum/startup.js
@@ -6,7 +6,7 @@ DOCKERCLOUD_CLIENT_HOST=mywebsite.dotcloud.com
*/
if (process.env.DOCKERCLOUD_REDIS_HOST != null) {
- const redis = Npm.require('redis');
+ const redis = require('redis');
const client = redis.createClient(process.env.DOCKERCLOUD_REDIS_HOST);
diff --git a/packages/rocketchat-ui-account/client/accountPreferences.html b/packages/rocketchat-ui-account/client/accountPreferences.html
index d62ebda59485..22fb954194eb 100644
--- a/packages/rocketchat-ui-account/client/accountPreferences.html
+++ b/packages/rocketchat-ui-account/client/accountPreferences.html
@@ -1,21 +1,21 @@
-
- {{> burger}}
-
- {{_ "Preferences"}}
-
-
+ {{#header sectionName="Preferences" buttons=true}}
+
+ {{/header}}
+