},
setHeaderText: function(html)
{
- this.headerContainerEl.dom.innerHTML = html;
+ this.header = html;
+ if (this.headerContainerEl) {
+ this.headerContainerEl.dom.innerHTML = html;
+ }
}
this.fileCollection = new Roo.util.MixedCollection(false,function(r) {
return r.data.id
- });
-
+ });
+ this.addEvents({
+ // raw events
+ /**
+ * @event preview
+ * When a image is clicked on - and needs to display a slideshow or similar..
+ * @param {Roo.bootstrap.Card} this
+ * @param {Object} The image information data
+ *
+ */
+ 'preview' : true,
+ /**
+ * @event download
+ * When a the download link is clicked
+ * @param {Roo.bootstrap.Card} this
+ * @param {Object} The image information data contains
+ */
+ 'download' : true
+
+ });
};
-
+
Roo.extend(Roo.bootstrap.CardUploader, Roo.bootstrap.Input, {
{
tag: 'input',
type : 'hidden',
+ name : this.name,
value : this.value,
cls : 'd-none form-control'
},
id : Roo.bootstrap.CardUploader.ID--,
is_uploaded : false,
src : url,
+ srcfile : file,
title : file.name,
mimetype : file.type,
preview : false,
is_deleted : 0
- })
+ });
},
+ /**
+ * addCard - add an Attachment to the uploader
+ * @param data - the data about the image to upload
+ *
+ * {
+ id : 123
+ title : "Title of file",
+ is_uploaded : false,
+ src : "http://.....",
+ srcfile : { the File upload object },
+ mimetype : file.type,
+ preview : false,
+ is_deleted : 0
+ .. any other data...
+ }
+ *
+ *
+ */
+
addCard : function (data)
{
// hidden input element?
{
xns : Roo.bootstrap,
xtype : 'CardFooter',
- items: [
+ items: [
{
xns : Roo.bootstrap,
xtype : 'Element',
xns : Roo.bootstrap,
xtype : 'Button',
html : String.format("<small>{0}</small>", data.title),
- cls : 'col-11 text-left',
+ cls : 'col-10 text-left',
size: 'sm',
weight: 'link',
fa : 'download',
listeners : {
click : function() {
- this.downloadCard(data.id)
+
+ t.fireEvent( "download", t, data );
}
}
},
{
xns : Roo.bootstrap,
xtype : 'Button',
-
+ style: 'max-height: 28px; ',
size : 'sm',
weight: 'danger',
- cls : 'col-1',
+ cls : 'col-2',
fa : 'times',
listeners : {
click : function() {
}
];
-
+
var cn = this.addxtype(
{
items : footer,
initEvents : function() {
Roo.bootstrap.Card.prototype.initEvents.call(this);
+ var card = this;
this.imgEl = this.el.select('.card-img-top').first();
if (this.imgEl) {
- this.imgEl.on('click', function() { t.previewCard( data.id); }, this);
+ this.imgEl.on('click', function() { t.fireEvent( "preview", t, data ); }, this);
this.imgEl.set({ 'pointer' : 'cursor' });
}
+ this.getCardFooter().addClass('p-1');
}
// dont' really need ot update items.
// this.items.push(cn);
this.fileCollection.add(cn);
- this.updateInput();
+
+ if (!data.srcfile) {
+ this.updateInput();
+ return;
+ }
+
+ var _t = this;
+ var reader = new FileReader();
+ reader.addEventListener("load", function() {
+ data.srcdata = reader.result;
+ _t.updateInput();
+ });
+ reader.readAsDataURL(data.srcfile);
+
+
},
removeCard : function(id)
var card = this.fileCollection.get(id);
card.data.is_deleted = 1;
card.data.src = ''; /// delete the source - so it reduces size of not uploaded images etc.
- this.fileCollection.remove(card);
+ //this.fileCollection.remove(card);
//this.items = this.items.filter(function(e) { return e != card });
// dont' really need ot update items.
card.el.dom.parentNode.removeChild(card.el.dom);
+ this.updateInput();
+
},
reset: function()
{
this.fileCollection.each(function(card) {
- card.el.dom.parentNode.removeChild(card.el.dom);
+ if (card.el.dom && card.el.dom.parentNode) {
+ card.el.dom.parentNode.removeChild(card.el.dom);
+ }
});
this.fileCollection.clear();
this.updateInput();
updateInput : function()
{
- var data = [];
+ var data = [];
this.fileCollection.each(function(e) {
data.push(e.data);
+
});
-
this.inputEl().dom.value = JSON.stringify(data);
+
+
+
}
}
- this.alignEl = on_el;
+ this.alignEl = Roo.get( on_el );
if (!this.el) {
this.render(document.body);
//Roo.log(className);
if (className.indexOf('day') > -1 && className.indexOf('disabled') < 0 ){
var day = parseInt(html, 10) || 1;
- var year = this.viewDate.getUTCFullYear(),
- month = this.viewDate.getUTCMonth();
+ var year = (this.viewDate || new Date()).getUTCFullYear(),
+ month = (this.viewDate || new Date()).getUTCMonth();
if (className.indexOf('old') > -1) {
if(month === 0 ){
Roo.HtmlEditorCore.swapCodes =[
- [ 8211, "--" ],
- [ 8212, "--" ],
+ [ 8211, "–" ],
+ [ 8212, "—" ],
[ 8216, "'" ],
[ 8217, "'" ],
[ 8220, '"' ],