mirror of
https://github.com/discourse/discourse.git
synced 2025-02-04 05:49:30 +08:00
61 lines
1.7 KiB
JavaScript
61 lines
1.7 KiB
JavaScript
import ModalFunctionality from 'discourse/mixins/modal-functionality';
|
|
import { default as computed, observes } from 'ember-addons/ember-computed-decorators';
|
|
import { allowsAttachments, authorizesAllExtensions, authorizedExtensions } from 'discourse/lib/utilities';
|
|
|
|
function uploadTranslate(key) {
|
|
if (allowsAttachments()) { key += "_with_attachments"; }
|
|
return `upload_selector.${key}`;
|
|
}
|
|
|
|
export default Ember.Controller.extend(ModalFunctionality, {
|
|
showMore: false,
|
|
imageUrl: null,
|
|
imageLink: null,
|
|
local: Ember.computed.equal('selection', 'local'),
|
|
remote: Ember.computed.equal('selection', 'remote'),
|
|
selection: 'local',
|
|
|
|
@computed()
|
|
uploadIcon: () => allowsAttachments() ? "upload" : "picture-o",
|
|
|
|
@computed()
|
|
title: () => uploadTranslate("title"),
|
|
|
|
@computed('selection')
|
|
tip(selection) {
|
|
const authorized_extensions = authorizesAllExtensions() ? "" : `(${authorizedExtensions()})`;
|
|
return I18n.t(uploadTranslate(`${selection}_tip`), { authorized_extensions });
|
|
},
|
|
|
|
@observes('selection')
|
|
_selectionChanged() {
|
|
if (this.get('local')) {
|
|
this.set('showMore', false);
|
|
}
|
|
},
|
|
|
|
actions: {
|
|
upload() {
|
|
if (this.get('local')) {
|
|
$('.wmd-controls').fileupload('add', { fileInput: $('#filename-input') });
|
|
} else {
|
|
const imageUrl = this.get('imageUrl') || '';
|
|
const imageLink = this.get('imageLink') || '';
|
|
const toolbarEvent = this.get('toolbarEvent');
|
|
|
|
if (this.get('showMore') && imageLink.length > 3) {
|
|
toolbarEvent.addText(`[![](${imageUrl})](${imageLink})`);
|
|
} else {
|
|
toolbarEvent.addText(imageUrl);
|
|
}
|
|
}
|
|
this.send('closeModal');
|
|
},
|
|
|
|
toggleShowMore() {
|
|
this.toggleProperty("showMore");
|
|
}
|
|
}
|
|
|
|
});
|