penguin/AstroJS

Javascript framework for my blog

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

raw ยท 1386 bytes

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

	/** @type {Dandelion} */
	var Dand                             = __import( "Dandelion" );
	/** @type {Dandelion.IDOMElement} */
	var IDOMElement                      = __import( "Dandelion.IDOMElement" );
	/** @type {Astro.Bootstrap} */
	var Bootstrap                        = __import( "Astro.Bootstrap" );
	/** @type {Astro.Blog} */
	var config                           = __import( "Astro.Blog.Config" );

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

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


		var n_toggle = function (args)
		{
			if(stage.getAttribute('active'))
			{
				stage.removeAttribute('active');
			}
			else
			{
				stage.setAttribute('active', 1);
			}
		};

		var nError = function (args)
		{
			
		}
		;

		IDOMElement(stage).addEventListener(
			'Click'
			, function (e) {
				var _action = stage.getAttribute('active') ? obj.disable : obj.enable;
				postData( processor, _action, n_toggle, nError );
			}
		);
	};

	var init = function()
	{
		var toggles = config.get( "toggle_btns" );
		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 );
})();