Add tokenpass art in channel title bar

pull/8626/head
Lindoélio Lázaro 8 years ago
parent 25c3cf9a6b
commit fe2d0945ca
  1. 1
      packages/rocketchat-i18n/i18n/en.i18n.json
  2. 12
      packages/rocketchat-tokenpass/client/styles.css
  3. 2
      packages/rocketchat-tokenpass/package.js
  4. 17
      packages/rocketchat-tokenpass/server/methods/getChannelTokenpass.js
  5. 4
      packages/rocketchat-ui/client/views/app/room.html
  6. 14
      packages/rocketchat-ui/client/views/app/room.js

@ -1825,6 +1825,7 @@
"Token_Access": "Token Access",
"Token_Controlled_Access": "Token Controlled Access",
"Token_required": "Token required",
"Tokenpass_Channel_Label": "Tokenpass Channel",
"Tokenpass_Channels": "Tokenpass Channels",
"Tokens_Minimum_Needed_Balance": "Minimum needed token balance",
"Tokens_Minimum_Needed_Balance_Description": "Set minimum needed balance on each token. Blank or \"0\" for not limit.",

@ -0,0 +1,12 @@
.icon-tokenpass {
display: inline-block;
width: 24px;
height: 0.8em;
margin-bottom: -1px;
background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MzIgMzgxLjUiPjxkZWZzPjxzdHlsZT4uY2xzLTF7ZmlsbDojNDE3MGEwO308L3N0eWxlPjwvZGVmcz48dGl0bGU+VG9rZW5seV9JY29uPC90aXRsZT48ZyBpZD0iTGF5ZXJfMiIgZGF0YS1uYW1lPSJMYXllciAyIj48ZyBpZD0iTGF5ZXJfMS0yIiBkYXRhLW5hbWU9IkxheWVyIDEiPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTQyOC4zMSwxNzcsMzM0LjA3LDEzLjc2QTI3LjUyLDI3LjUyLDAsMCwwLDMxMC4yNCwwaC03OS40VjEzMy44OWg3NFYxMTIuODRoMTcuNzJsMTguMTMsMzEuNGExMi41MiwxMi41MiwwLDAsMSwwLDEyLjcxLDEyLjc1LDEyLjc1LDAsMCwxLTExLjIyLDYuNTRIMTAyLjU2YTEyLjc1LDEyLjc1LDAsMCwxLTExLjIyLTYuNTQsMTIuNTIsMTIuNTIsMCwwLDEsMC0xMi43MWwxOC4xMy0zMS40aDE3LjcydjIxLjA1aDc0VjBoLTc5LjRBMjcuNTIsMjcuNTIsMCwwLDAsOTcuOTMsMTMuNzZMMy42OSwxNzdhMjcuNTIsMjcuNTIsMCwwLDAsMCwyNy41Mkw5Ny45MywzNjcuNzRhMjcuNTIsMjcuNTIsMCwwLDAsMjMuODQsMTMuNzZoNzkuNFYyNDcuNjFoLTc0djIxLjA2SDEwOS40N2wtMTguMTMtMzEuNGExMi41MiwxMi41MiwwLDAsMSwwLTEyLjcxQTEyLjc1LDEyLjc1LDAsMCwxLDEwMi41NiwyMThIMzI5LjQ0YTEyLjc1LDEyLjc1LDAsMCwxLDExLjIyLDYuNTQsMTIuNTIsMTIuNTIsMCwwLDEsMCwxMi43MWwtMTguMTMsMzEuNEgzMDQuODFWMjQ3LjYxaC03NFYzODEuNWg3OS40YTI3LjUyLDI3LjUyLDAsMCwwLDIzLjg0LTEzLjc2bDk0LjI0LTE2My4yM0EyNy41MiwyNy41MiwwLDAsMCw0MjguMzEsMTc3WiIvPjwvZz48L2c+PC9zdmc+);
background-repeat: no-repeat;
background-position: center center;
}

@ -20,6 +20,7 @@ Package.onUse(function(api) {
api.addFiles('client/login-button.css', 'client');
api.addFiles('client/channelSettings.css', 'client');
api.addFiles('client/styles.css', 'client');
api.addFiles('client/startup.js', 'client');
api.addFiles('client/roomType.js', 'client');
@ -42,6 +43,7 @@ Package.onUse(function(api) {
api.addFiles('server/models/Users.js', 'server');
api.addFiles('server/methods/findTokenChannels.js', 'server');
api.addFiles('server/methods/getChannelTokenpass.js', 'server');
api.addFiles('server/cronRemoveUsers.js', 'server');

@ -0,0 +1,17 @@
Meteor.methods({
getChannelTokenpass(rid) {
check(rid, String);
if (!Meteor.userId()) {
throw new Meteor.Error('error-invalid-user', 'Invalid user', { method: 'getChannelTokenpass' });
}
const room = RocketChat.models.Rooms.findOneById(rid);
if (!room) {
throw new Meteor.Error('error-invalid-room', 'Invalid room', { method: 'getChannelTokenpass' });
}
return room.tokenpass;
}
});

@ -15,6 +15,10 @@
<a href="#favorite" class="toggle-favorite"><i class="{{favorite}}" aria-label="{{_ favoriteLabel}}"></i></a>
{{/if}}
{{#if tokenAccessChannel}}
<i class="icon-tokenpass" aria-label="{{_ "Tokenpass_Channel_Label"}}"></i>
{{/if}}
{{> icon block="room-icon" icon=roomIcon classes=userStatus}}
<span class="room-title">{{roomName}}</span>

@ -207,6 +207,10 @@ Template.room.helpers({
return roomIcon;
},
tokenAccessChannel() {
return Template.instance().hasTokenpass.get();
},
userStatus() {
const roomData = Session.get(`roomData${ this._id }`);
return RocketChat.roomTypes.getUserStatus(roomData.t, this._id) || 'offline';
@ -768,6 +772,16 @@ Template.room.onCreated(function() {
return this.userDetail.set(null);
};
this.hasTokenpass = new ReactiveVar(false);
if (RocketChat.settings.get('API_Tokenpass_URL') !== '') {
Meteor.call('getChannelTokenpass', this.data._id, (error, result) => {
if (!error) {
this.hasTokenpass.set(!!(result && result.tokens && result.tokens.length > 0));
}
});
}
Meteor.call('getRoomRoles', this.data._id, function(error, results) {
if (error) {
return handleError(error);

Loading…
Cancel
Save