penguin/AstroJS

Javascript framework for my blog

botanjs/src/Astro/Blog/Components/ToggleButton/_this.js

raw ยท 1596 bytes

(function(){
	var ns = __namespace( "Astro.Blog.Components" );

	/** @type {typeof Dandelion} */
	var Dand                             = __import( "Dandelion" );
	/** @type {function(...?): Dandelion.IDOMElement} */
	var IDOMElement                      = __import( "Dandelion.IDOMElement" );
	/** @type {Astro.Bootstrap} */
	var Bootstrap                        = __import( "Astro.Bootstrap" );
	/** @type {Astro.Blog} */
	var config                           = __import( "Astro.Blog.Config" );
	/** @type {typeof System.utils.DataKey} */
	var DataKey                          = __import( "System.utils.DataKey" );

	var postData                         = __import( "System.Net.postData" );

	var ToggleButton = function ( elem, processor, obj )
	{
		var stage = Dand.id( elem, true );
		if( !stage ) return;


		var n_toggle = function (args)
		{
			if( stage.getDAttribute("active") == 1 )
			{
				stage.setAttribute( new DataKey( "active", 0 ) );
			}
			else
			{
				stage.setAttribute( new DataKey( "active", 1 ) );
			}
		};

		var nError = function (args)
		{
			
		};

		stage.addEventListener(
			"Click"
			, function (e) {
				var _action = stage.getDAttribute( "active" ) == 1
					? obj[ "disable" ]
					: obj[ "enable" ]
				;
				postData( processor, _action, n_toggle, nError );
			}
		);
	};

	var init = function()
	{
		var toggles = config.get( "ToggleButtons" );
		for( var i in toggles )
		{
			new ToggleButton( toggles[ i ][0], toggles[ i ][1], toggles[ i ][2] );
		}

	};

	Bootstrap.regInit( init );

	ns[ NS_EXPORT ]( EX_CLASS, "ToggleButton", ToggleButton );
})();