parent
66309d806a
commit
09eb833a79
@ -1,43 +1,32 @@ |
||||
Meteor.startup(function() { |
||||
RocketChat.MessageAction.addButton({ |
||||
id: 'show-original-message', |
||||
icon: 'icon-language', |
||||
i18nLabel: 'Show_original_message', |
||||
context: [ |
||||
'message', |
||||
'message-mobile' |
||||
], |
||||
action() { |
||||
const message = this._arguments[1]; |
||||
RocketChat.MessageAction.hideDropDown(); |
||||
RocketChat.models.Messages.update({ _id: message._id }, { $set: { autoTranslateShowOriginal: true } }); |
||||
}, |
||||
Tracker.autorun(function() { |
||||
if (RocketChat.settings.get('AutoTranslate_Enabled') && RocketChat.authz.hasAtLeastOnePermission(['auto-translate'])) { |
||||
RocketChat.MessageAction.addButton({ |
||||
id: 'toggle-language', |
||||
icon: 'icon-language', |
||||
i18nLabel: 'Toggle_original_translated', |
||||
context: [ |
||||
'message', |
||||
'message-mobile' |
||||
], |
||||
action() { |
||||
const message = this._arguments[1]; |
||||
RocketChat.MessageAction.hideDropDown(); |
||||
if (message.autoTranslateShowInverse) { |
||||
RocketChat.models.Messages.update({ _id: message._id }, { $unset: { autoTranslateShowInverse: true } }); |
||||
} else { |
||||
RocketChat.models.Messages.update({ _id: message._id }, { $set: { autoTranslateShowInverse: true } }); |
||||
} |
||||
}, |
||||
|
||||
validation(message) { |
||||
return message && !message.autoTranslateShowOriginal && message.u && message.u._id !== Meteor.userId(); |
||||
}, |
||||
validation(message) { |
||||
return message && message.u && message.u._id !== Meteor.userId(); |
||||
}, |
||||
|
||||
order: 90 |
||||
}); |
||||
|
||||
RocketChat.MessageAction.addButton({ |
||||
id: 'show-translated-message', |
||||
icon: 'icon-language', |
||||
i18nLabel: 'Show_translated_message', |
||||
context: [ |
||||
'message', |
||||
'message-mobile' |
||||
], |
||||
action() { |
||||
const message = this._arguments[1]; |
||||
RocketChat.MessageAction.hideDropDown(); |
||||
RocketChat.models.Messages.update({ _id: message._id }, { $unset: { autoTranslateShowOriginal: 1 } }); |
||||
}, |
||||
|
||||
validation(message) { |
||||
return message && message.autoTranslateShowOriginal && message.u && message.u._id !== Meteor.userId(); |
||||
}, |
||||
|
||||
order: 90 |
||||
order: 90 |
||||
}); |
||||
} else { |
||||
RocketChat.MessageAction.removeButton('toggle-language'); |
||||
} |
||||
}); |
||||
}); |
||||
|
||||
@ -1,51 +1,53 @@ |
||||
<template name="autoTranslateFlexTab"> |
||||
<div class="content"> |
||||
<div class="list-view autotranslate"> |
||||
<div class="title"> |
||||
<h2>{{_ "Auto_Translate"}}</h2> |
||||
</div> |
||||
<form> |
||||
<ul class="list clearfix"> |
||||
<li> |
||||
<label>{{_ "Enabled"}}</label> |
||||
<div> |
||||
<div class="input checkbox toggle"> |
||||
<input type="checkbox" id="autoTranslate" name="autoTranslate" value="1" checked="{{$eq autoTranslate true}}" /> |
||||
<label for="autoTranslate"></label> |
||||
</div> |
||||
</div> |
||||
</li> |
||||
{{#if $eq autoTranslate true}} |
||||
{{#requiresPermission 'auto-translate'}} |
||||
<div class="list-view autotranslate"> |
||||
<div class="title"> |
||||
<h2>{{_ "Auto_Translate"}}</h2> |
||||
</div> |
||||
<form> |
||||
<ul class="list clearfix"> |
||||
<li> |
||||
<label>{{_ "Target_Language"}}</label> |
||||
<div> |
||||
{{#if editing 'autoTranslateLanguage'}} |
||||
<label> |
||||
<select name="autoTranslateLanguage"> |
||||
{{#each supportedLanguages}} |
||||
<option value="{{language}}" selected={{$eq language autoTranslateLanguage}}>{{$or name language}}</option> |
||||
{{/each}} |
||||
</select> |
||||
</label> |
||||
<button type="button" class="button cancel">{{_ "Cancel"}}</button> |
||||
<button type="button" class="button primary save">{{_ "Save"}}</button> |
||||
{{else}} |
||||
<span class="current-setting">{{languageName autoTranslateLanguage}} <i class="icon-pencil" data-edit="autoTranslateLanguage"></i></span> |
||||
{{/if}} |
||||
</div> |
||||
</li> |
||||
<li> |
||||
<label>{{_ "Display_translated_text"}}</label> |
||||
<label>{{_ "Enabled"}}</label> |
||||
<div> |
||||
<div class="input checkbox toggle"> |
||||
<input type="checkbox" id="autoTranslateDisplay" name="autoTranslateDisplay" value="1" checked="{{$eq autoTranslateDisplay true}}"/> |
||||
<label for="autoTranslateDisplay"></label> |
||||
<input type="checkbox" id="autoTranslate" name="autoTranslate" value="1" checked="{{$eq autoTranslate true}}" /> |
||||
<label for="autoTranslate"></label> |
||||
</div> |
||||
</div> |
||||
</li> |
||||
{{/if}} |
||||
</ul> |
||||
</form> |
||||
</div> |
||||
{{#if $eq autoTranslate true}} |
||||
<li> |
||||
<label>{{_ "Target_Language"}}</label> |
||||
<div> |
||||
{{#if editing 'autoTranslateLanguage'}} |
||||
<label> |
||||
<select name="autoTranslateLanguage"> |
||||
{{#each supportedLanguages}} |
||||
<option value="{{language}}" selected={{$eq language autoTranslateLanguage}}>{{$or name language}}</option> |
||||
{{/each}} |
||||
</select> |
||||
</label> |
||||
<button type="button" class="button cancel">{{_ "Cancel"}}</button> |
||||
<button type="button" class="button primary save">{{_ "Save"}}</button> |
||||
{{else}} |
||||
<span class="current-setting">{{languageName autoTranslateLanguage}} <i class="icon-pencil" data-edit="autoTranslateLanguage"></i></span> |
||||
{{/if}} |
||||
</div> |
||||
</li> |
||||
<li> |
||||
<label>{{_ "Display_translated_text"}}</label> |
||||
<div> |
||||
<div class="input checkbox toggle"> |
||||
<input type="checkbox" id="autoTranslateDisplay" name="autoTranslateDisplay" value="1" checked="{{$eq autoTranslateDisplay true}}"/> |
||||
<label for="autoTranslateDisplay"></label> |
||||
</div> |
||||
</div> |
||||
</li> |
||||
{{/if}} |
||||
</ul> |
||||
</form> |
||||
</div> |
||||
{{/requiresPermission}} |
||||
</div> |
||||
</template> |
||||
|
||||
@ -0,0 +1,5 @@ |
||||
Meteor.startup(() => { |
||||
if (RocketChat.models && RocketChat.models.Permissions) { |
||||
RocketChat.models.Permissions.createOrUpdate('auto-translate', ['admin']); |
||||
} |
||||
}); |
||||
Loading…
Reference in new issue