filepicker downloading is on panel initialization now; post button enabling replaced
diff --git a/sdk-derived/controls/card-composer.js b/sdk-derived/controls/card-composer.js
index dec7aaa..15ef0fd 100644
--- a/sdk-derived/controls/card-composer.js
+++ b/sdk-derived/controls/card-composer.js
@@ -579,6 +579,15 @@
return element;
}
+ var refreshPostButtonState = function() {
+ var mediaRequired = self.currentComposer && self.currentComposer.requiresMedia;
+ if (mediaRequired && !self.formData.media.length) {
+ self.disablePostButtonBy("media-required");
+ } else {
+ self.enablePostButtonBy("media-required");
+ }
+ };
+
this.mediaContainer = new Echo.StreamServer.Controls.MediaContainer({
"target": element.empty(),
"data": this.formData.media,
@@ -588,13 +597,7 @@
"displayAuthor": false,
"onRemove": function(data) {
self.removeMedia(self._getDefinedMediaIndex(data));
- /**
- * @echo_event Echo.StreamServer.Controls.CardComposer.onMediaDetached
- * Triggered when attached media preview was removed
- */
- self.events.publish({
- "topic": "onMediaDetached"
- });
+ refreshPostButtonState();
}
},
"ready": function() {
@@ -603,13 +606,6 @@
self.currentComposer.initMedia();
}, 0);
}
- /**
- * @echo_event Echo.StreamServer.Controls.CardComposer.onMediaContainerReady
- * Triggered when attached media was resolved
- */
- self.events.publish({
- "topic": "onMediaContainerReady"
- });
self.enablePostButtonBy("media-required");
}
});
@@ -1094,7 +1090,7 @@
//TODO: we shoud save states for each single composer and refresh media container due to that states...
if (this.mediaContainer) {
this.mediaContainer.clearOut();
- // TODO: this is a bad move. We shoud reduce fasciation in it
+ // TODO: this is a bad move. We shoud reduce enchainment here (m.b. using Events)
if (typeof composer.initMedia === "function" && composer.requiresMedia) {
composer.initMedia();
}
diff --git a/sdk-derived/controls/media-container.js b/sdk-derived/controls/media-container.js
index ea27b04..eacfdcd 100644
--- a/sdk-derived/controls/media-container.js
+++ b/sdk-derived/controls/media-container.js
@@ -8,11 +8,6 @@
media.dependencies = [{
"url": "{%= baseURLs.prod %}/sdk-derived/controls/nested-card.js",
"loaded": function() { return !!Echo.StreamServer.Controls.NestedCard; }
-}, { // TODO: replace it into "initAttachmentsPanel" call
- "url": "//api.filepicker.io/v1/filepicker.js",
- "loaded": function() {
- return !!(window.filepicker && window.filepicker.pick);
- }
}];
media.labels = {
@@ -122,7 +117,6 @@
media.methods.updateAttachments = function(attachments) {
attachments = attachments || [];
- // TODO: not sure that we have to do it
this.config.set("data", attachments);
this.view.render({"name": "container"});
};
@@ -131,6 +125,7 @@
if (this.get("attachmentsPanel.isActive")) return;
var container = this.view.get("container");
var panel = this._getAttachmentsPanel();
+ var self = this;
this.set("attachmentsPanel.isActive", true);
this.set("attachmentsPanel.allowMultiple", panelConfig.allowMultiple || false);
container.append(panel);
@@ -142,7 +137,11 @@
container.removeClass(this.cssPrefix + "single")
.addClass(this.cssPrefix + "multiple");
}
- this._initFilePickerPanel(panel, panelConfig);
+ Echo.Loader.download([{
+ "url": "//api.filepicker.io/v1/filepicker.js"
+ }], function() {
+ self._initFilePickerPanel(panel, panelConfig);
+ });
};
media.methods._showAttachmentsPanel = function() {
diff --git a/sdk-derived/plugins/cards/photo-card.js b/sdk-derived/plugins/cards/photo-card.js
index 7022cdd..e07858b 100644
--- a/sdk-derived/plugins/cards/photo-card.js
+++ b/sdk-derived/plugins/cards/photo-card.js
@@ -290,8 +290,8 @@
}),
"removeOld": true
});
- // TODO: replace it in any way to the end of resolving...
self.component.enablePostButtonBy("photo-uploading");
+ self.component.enablePostButtonBy("media-required");
},
"onError": function(type, message) {
@@ -312,8 +312,8 @@
"urls": [InkBlob.url],
"removeOld": true
});
- // TODO: replace it in any way to the end of resolving...
self.component.enablePostButtonBy("photo-uploading");
+ self.component.enablePostButtonBy("media-required");
},
"onError": function(err) {
self.component.enablePostButtonBy("photo-uploading");