11var control = ( function ( ) {
22
33var state = {
4- edit : false
4+ edit : false ,
5+ style : "block"
6+ } ;
7+
8+ var get = function ( ) {
9+ return state ;
510} ;
611
712var bind = function ( ) {
813var controlAdd = helper . e ( ".control-add" ) ;
914var controlEdit = helper . e ( ".control-edit" ) ;
15+ var controlLinkBlock = helper . e ( ".control-link-blocks" ) ;
16+ var controlLinkList = helper . e ( ".control-link-list" ) ;
1017controlAdd . addEventListener ( "click" , function ( ) {
1118_add ( ) ;
1219} , false ) ;
1320controlEdit . addEventListener ( "click" , function ( ) {
1421_edit ( ) ;
1522} , false ) ;
23+ controlLinkBlock . addEventListener ( "click" , function ( ) {
24+ _toggleListStyle ( "block" ) ;
25+ data . save ( ) ;
26+ } , false ) ;
27+ controlLinkList . addEventListener ( "click" , function ( ) {
28+ _toggleListStyle ( "list" ) ;
29+ data . save ( ) ;
30+ } , false ) ;
1631} ;
1732
1833var _add = function ( ) {
@@ -35,14 +50,50 @@ var control = (function(){
3550} ;
3651} ;
3752
53+ var _toggleListStyle = function ( style ) {
54+ state . style = style ;
55+ render ( ) ;
56+ } ;
57+
58+ var render = function ( ) {
59+ var html = helper . e ( "html" ) ;
60+ var controlLinkBlock = helper . e ( ".control-link-blocks" ) ;
61+ var controlLinkList = helper . e ( ".control-link-list" ) ;
62+ var action = {
63+ block : function ( ) {
64+ helper . addClass ( html , "is-link-block" ) ;
65+ helper . removeClass ( html , "is-link-list" ) ;
66+ helper . addClass ( controlLinkBlock , "active" ) ;
67+ helper . removeClass ( controlLinkList , "active" ) ;
68+ } ,
69+ list : function ( ) {
70+ helper . removeClass ( html , "is-link-block" ) ;
71+ helper . addClass ( html , "is-link-list" ) ;
72+ helper . removeClass ( controlLinkBlock , "active" ) ;
73+ helper . addClass ( controlLinkList , "active" ) ;
74+ }
75+ } ;
76+ action [ state . style ] ( ) ;
77+ } ;
78+
79+ var restore = function ( object ) {
80+ if ( object ) {
81+ state = object ;
82+ render ( ) ;
83+ } ;
84+ } ;
85+
3886var init = function ( ) {
3987bind ( ) ;
88+ render ( ) ;
4089} ;
4190
4291// exposed methods
4392return {
4493init : init ,
45- state : state
94+ get : get ,
95+ restore : restore ,
96+ render : render
4697} ;
4798
4899} ) ( ) ;
0 commit comments