Subversion Repositories Integrator Subversion

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1 espaco 1
/**
2
Demo script to handle the theme demo
3
**/
4
var Demo = function() {
5
 
6
    // Handle Theme Settings
7
    var handleTheme = function() {
8
 
9
        var panel = $('.theme-panel');
10
 
11
        if ($('body').hasClass('page-boxed') === false) {
12
            $('.layout-option', panel).val("fluid");
13
        }
14
 
15
        $('.sidebar-option', panel).val("default");
16
        $('.page-header-option', panel).val("fixed");
17
        $('.page-footer-option', panel).val("default");
18
        if ($('.sidebar-pos-option').attr("disabled") === false) {
19
            $('.sidebar-pos-option', panel).val(Metronic.isRTL() ? 'right' : 'left');
20
        }
21
 
22
        //handle theme layout
23
        var resetLayout = function() {
24
            $("body").
25
            removeClass("page-boxed").
26
            removeClass("page-footer-fixed").
27
            removeClass("page-sidebar-fixed").
28
            removeClass("page-header-fixed").
29
            removeClass("page-sidebar-reversed");
30
 
31
            $('.page-header > .page-header-inner').removeClass("container");
32
 
33
            if ($('.page-container').parent(".container").size() === 1) {
34
                $('.page-container').insertAfter('body > .clearfix');
35
            }
36
 
37
            if ($('.page-footer > .container').size() === 1) {
38
                $('.page-footer').html($('.page-footer > .container').html());
39
            } else if ($('.page-footer').parent(".container").size() === 1) {
40
                $('.page-footer').insertAfter('.page-container');
41
                $('.scroll-to-top').insertAfter('.page-footer');
42
            }
43
 
44
             $(".top-menu > .navbar-nav > li.dropdown").removeClass("dropdown-dark");
45
 
46
            $('body > .container').remove();
47
        };
48
 
49
        var lastSelectedLayout = '';
50
 
51
        var setLayout = function() {
52
 
53
            var layoutOption = $('.layout-option', panel).val();
54
            var sidebarOption = $('.sidebar-option', panel).val();
55
            var headerOption = $('.page-header-option', panel).val();
56
            var footerOption = $('.page-footer-option', panel).val();
57
            var sidebarPosOption = $('.sidebar-pos-option', panel).val();
58
            var sidebarStyleOption = $('.sidebar-style-option', panel).val();
59
            var sidebarMenuOption = $('.sidebar-menu-option', panel).val();
60
            var headerTopDropdownStyle = $('.page-header-top-dropdown-style-option', panel).val();
61
 
62
            if (sidebarOption == "fixed" && headerOption == "default") {
63
                alert('Default Header with Fixed Sidebar option is not supported. Proceed with Fixed Header with Fixed Sidebar.');
64
                $('.page-header-option', panel).val("fixed");
65
                $('.sidebar-option', panel).val("fixed");
66
                sidebarOption = 'fixed';
67
                headerOption = 'fixed';
68
            }
69
 
70
            resetLayout(); // reset layout to default state
71
 
72
            if (layoutOption === "boxed") {
73
                $("body").addClass("page-boxed");
74
 
75
                // set header
76
                $('.page-header > .page-header-inner').addClass("container");
77
                var cont = $('body > .clearfix').after('<div class="container"></div>');
78
 
79
                // set content
80
                $('.page-container').appendTo('body > .container');
81
 
82
                // set footer
83
                if (footerOption === 'fixed') {
84
                    $('.page-footer').html('<div class="container">' + $('.page-footer').html() + '</div>');
85
                } else {
86
                    $('.page-footer').appendTo('body > .container');
87
                }
88
            }
89
 
90
            if (lastSelectedLayout != layoutOption) {
91
                //layout changed, run responsive handler: 
92
                Metronic.runResizeHandlers();
93
            }
94
            lastSelectedLayout = layoutOption;
95
 
96
            //header
97
            if (headerOption === 'fixed') {
98
                $("body").addClass("page-header-fixed");
99
                $(".page-header").removeClass("navbar-static-top").addClass("navbar-fixed-top");
100
            } else {
101
                $("body").removeClass("page-header-fixed");
102
                $(".page-header").removeClass("navbar-fixed-top").addClass("navbar-static-top");
103
            }
104
 
105
            //sidebar
106
            if ($('body').hasClass('page-full-width') === false) {
107
                if (sidebarOption === 'fixed') {
108
                    $("body").addClass("page-sidebar-fixed");
109
                    $("page-sidebar-menu").addClass("page-sidebar-menu-fixed");
110
                    $("page-sidebar-menu").removeClass("page-sidebar-menu-default");
111
                    Layout.initFixedSidebarHoverEffect();
112
                } else {
113
                    $("body").removeClass("page-sidebar-fixed");
114
                    $("page-sidebar-menu").addClass("page-sidebar-menu-default");
115
                    $("page-sidebar-menu").removeClass("page-sidebar-menu-fixed");
116
                    $('.page-sidebar-menu').unbind('mouseenter').unbind('mouseleave');
117
                }
118
            }
119
 
120
            // top dropdown style
121
            if (headerTopDropdownStyle === 'dark') {
122
                $(".top-menu > .navbar-nav > li.dropdown").addClass("dropdown-dark");
123
            } else {
124
                $(".top-menu > .navbar-nav > li.dropdown").removeClass("dropdown-dark");
125
            }
126
 
127
            //footer 
128
            if (footerOption === 'fixed') {
129
                $("body").addClass("page-footer-fixed");
130
            } else {
131
                $("body").removeClass("page-footer-fixed");
132
            }
133
 
134
            //sidebar style
135
            if (sidebarStyleOption === 'light') {
136
                $(".page-sidebar-menu").addClass("page-sidebar-menu-light");
137
            } else {
138
                $(".page-sidebar-menu").removeClass("page-sidebar-menu-light");
139
            }
140
 
141
            //sidebar menu 
142
            if (sidebarMenuOption === 'hover') {
143
                if (sidebarOption == 'fixed') {
144
                    $('.sidebar-menu-option', panel).val("accordion");
145
                    alert("Hover Sidebar Menu is not compatible with Fixed Sidebar Mode. Select Default Sidebar Mode Instead.");
146
                } else {
147
                    $(".page-sidebar-menu").addClass("page-sidebar-menu-hover-submenu");
148
                }
149
            } else {
150
                $(".page-sidebar-menu").removeClass("page-sidebar-menu-hover-submenu");
151
            }
152
 
153
            //sidebar position
154
            if (Metronic.isRTL()) {
155
                if (sidebarPosOption === 'left') {
156
                    $("body").addClass("page-sidebar-reversed");
157
                    $('#frontend-link').tooltip('destroy').tooltip({
158
                        placement: 'right'
159
                    });
160
                } else {
161
                    $("body").removeClass("page-sidebar-reversed");
162
                    $('#frontend-link').tooltip('destroy').tooltip({
163
                        placement: 'left'
164
                    });
165
                }
166
            } else {
167
                if (sidebarPosOption === 'right') {
168
                    $("body").addClass("page-sidebar-reversed");
169
                    $('#frontend-link').tooltip('destroy').tooltip({
170
                        placement: 'left'
171
                    });
172
                } else {
173
                    $("body").removeClass("page-sidebar-reversed");
174
                    $('#frontend-link').tooltip('destroy').tooltip({
175
                        placement: 'right'
176
                    });
177
                }
178
            }
179
 
180
            Layout.fixContentHeight(); // fix content height            
181
            Layout.initFixedSidebar(); // reinitialize fixed sidebar
182
        };
183
 
184
        // handle theme colors
185
        var setColor = function(color) {
186
            var color_ = (Metronic.isRTL() ? color + '-rtl' : color);
187
            $('#style_color').attr("href", Layout.getLayoutCssPath() + 'themes/' + color_ + ".css");
188
            if (color == 'light2') {
189
                $('.page-logo img').attr('src', Layout.getLayoutImgPath() + 'logo-invert.png');
190
            } else {
191
                $('.page-logo img').attr('src', Layout.getLayoutImgPath() + 'logo.png');
192
            }
193
        };
194
 
195
        $('.toggler', panel).click(function() {
196
            $('.toggler').hide();
197
            $('.toggler-close').show();
198
            $('.theme-panel > .theme-options').show();
199
        });
200
 
201
        $('.toggler-close', panel).click(function() {
202
            $('.toggler').show();
203
            $('.toggler-close').hide();
204
            $('.theme-panel > .theme-options').hide();
205
        });
206
 
207
        $('.theme-colors > ul > li', panel).click(function() {
208
            var color = $(this).attr("data-style");
209
            setColor(color);
210
            $('ul > li', panel).removeClass("current");
211
            $(this).addClass("current");
212
        });
213
 
214
        // set default theme options:
215
 
216
        if ($("body").hasClass("page-boxed")) {
217
            $('.layout-option', panel).val("boxed");
218
        }
219
 
220
        if ($("body").hasClass("page-sidebar-fixed")) {
221
            $('.sidebar-option', panel).val("fixed");
222
        }
223
 
224
        if ($("body").hasClass("page-header-fixed")) {
225
            $('.page-header-option', panel).val("fixed");
226
        }
227
 
228
        if ($("body").hasClass("page-footer-fixed")) {
229
            $('.page-footer-option', panel).val("fixed");
230
        }
231
 
232
        if ($("body").hasClass("page-sidebar-reversed")) {
233
            $('.sidebar-pos-option', panel).val("right");
234
        }
235
 
236
        if ($(".page-sidebar-menu").hasClass("page-sidebar-menu-light")) {
237
            $('.sidebar-style-option', panel).val("light");
238
        }
239
 
240
        if ($(".page-sidebar-menu").hasClass("page-sidebar-menu-hover-submenu")) {
241
            $('.sidebar-menu-option', panel).val("hover");
242
        }
243
 
244
        var sidebarOption = $('.sidebar-option', panel).val();
245
        var headerOption = $('.page-header-option', panel).val();
246
        var footerOption = $('.page-footer-option', panel).val();
247
        var sidebarPosOption = $('.sidebar-pos-option', panel).val();
248
        var sidebarStyleOption = $('.sidebar-style-option', panel).val();
249
        var sidebarMenuOption = $('.sidebar-menu-option', panel).val();
250
 
251
        $('.layout-option, .page-header-option, .page-header-top-dropdown-style-option, .sidebar-option, .page-footer-option, .sidebar-pos-option, .sidebar-style-option, .sidebar-menu-option', panel).change(setLayout);
252
    };
253
 
254
    // handle theme style
255
    var setThemeStyle = function(style) {
256
        var file = (style === 'rounded' ? 'components-rounded' : 'components');
257
        file = (Metronic.isRTL() ? file + '-rtl' : file);
258
 
259
        $('#style_components').attr("href", Metronic.getGlobalCssPath() + file + ".css");
260
 
261
        if ($.cookie) {
262
            $.cookie('layout-style-option', style);
263
        }
264
    };
265
 
266
    return {
267
 
268
        //main function to initiate the theme
269
        init: function() {
270
            // handles style customer tool
271
            handleTheme();
272
 
273
            // handle layout style change
274
            $('.theme-panel .layout-style-option').change(function() {
275
                 setThemeStyle($(this).val());
276
            });
277
 
278
            // set layout style from cookie
279
            if ($.cookie && $.cookie('layout-style-option') === 'rounded') {
280
                setThemeStyle($.cookie('layout-style-option'));
281
                $('.theme-panel .layout-style-option').val($.cookie('layout-style-option'));
282
            }            
283
        }
284
    };
285
 
286
}();