forked from Botanical/BotanJS
SiteFile can now have original size
This commit is contained in:
@@ -16,6 +16,8 @@
|
||||
var Config = __import( "Astro.Blog.Config" );
|
||||
/** @type {System.utils.Perf} */
|
||||
var Perf = __import( "System.utils.Perf" );
|
||||
/** @type {System.Cycle.Trigger} */
|
||||
var Trigger = __import( "System.Cycle.Trigger" );
|
||||
/** @type {Astro.utils.Date} */
|
||||
var XDate = __import( "Astro.utils.Date" );
|
||||
|
||||
@@ -78,7 +80,7 @@
|
||||
_stage.setAttribute( new DataKey( "collection", 1 ) );
|
||||
}
|
||||
|
||||
var s, m, l;
|
||||
var s, m, l, o;
|
||||
|
||||
var finfo = e.file;
|
||||
var content = this.stage.firstChild;
|
||||
@@ -94,6 +96,13 @@
|
||||
var _image = Dand.wrapna( "img", new IKey("src", config.path.image.large + _hash + ".jpg") );
|
||||
var keys = [ new IKey( "type", "radio" ), new IKey( "name", "size_grp" + Perf.uuid ) ];
|
||||
var sid;
|
||||
|
||||
var detectImageChange = function() { return _image.complete; };
|
||||
var setImageSizeProp = function()
|
||||
{
|
||||
_stage.setAttribute( new DataKey( "dimensions", _image.naturalWidth + "x" + _image.naturalHeight ) );
|
||||
};
|
||||
|
||||
var selectionChanged = function ()
|
||||
{
|
||||
_stage.setAttribute( new DataKey( "size", this.size ) );
|
||||
@@ -109,9 +118,15 @@
|
||||
case "large":
|
||||
_image.setAttribute( "src", config.path.image.large + _hash + ".jpg" );
|
||||
break;
|
||||
case "original":
|
||||
_image.setAttribute( "src", config.path.image.original + _hash + ".jpg" );
|
||||
break;
|
||||
}
|
||||
|
||||
Trigger.register( detectImageChange, setImageSizeProp, 100 );
|
||||
};
|
||||
|
||||
Trigger.register( detectImageChange, setImageSizeProp, 100 );
|
||||
this.stage.insertBefore( _image, desc );
|
||||
|
||||
desc.removeChild( desc.firstChild );
|
||||
@@ -124,6 +139,8 @@
|
||||
, Dand.wrapne("label", "medium", new IKey("for", sid))
|
||||
, l = Dand.wrapna("input", keys.concat( new IKey("checked", "1"), new IKey("id", sid = "size_" + Perf.uuid) ))
|
||||
, Dand.wrapne("label", "large (default)", new IKey("for", sid))
|
||||
, o = Dand.wrapna("input", keys.concat( new IKey("id", sid = "size_" + Perf.uuid) ))
|
||||
, Dand.wrapne("label", "original", new IKey("for", sid))
|
||||
])
|
||||
);
|
||||
|
||||
@@ -131,6 +148,7 @@
|
||||
IDOMElement(s).addEventListener("Change", selectionChanged.bind({size: "small"}));
|
||||
IDOMElement(m).addEventListener("Change", selectionChanged.bind({size: "medium"}));
|
||||
IDOMElement(l).addEventListener("Change", selectionChanged.bind({size: "large"}));
|
||||
IDOMElement(o).addEventListener("Change", selectionChanged.bind({size: "original"}));
|
||||
|
||||
var hasValue = _stage.getDAttribute( "size" );
|
||||
if( hasValue )
|
||||
@@ -140,6 +158,7 @@
|
||||
case "small": s.checked = 1; break;
|
||||
case "medium": m.checked = 1; break;
|
||||
case "large": l.checked = 1; break;
|
||||
case "original": o.checked = 1; break;
|
||||
}
|
||||
|
||||
selectionChanged.bind({ size: hasValue })();
|
||||
@@ -251,6 +270,10 @@
|
||||
{
|
||||
options += " size=\"" + opt + "\"";
|
||||
}
|
||||
if( opt = stage.getDAttribute( "dimensions" ) )
|
||||
{
|
||||
options += " dimensions=\"" + opt + "\"";
|
||||
}
|
||||
if( opt = stage.getDAttribute( "preferred" ) )
|
||||
{
|
||||
options += " preferred=\"" + opt + "\"";
|
||||
|
Reference in New Issue
Block a user