function init_components_dashboard(input){ var data = $.extend({ column: 8, line: 8, onMove: 'dashboard_widget_move', onRemove: 'dashboard_widget_delete', onResize: 'dashboard_widget_resize', onConfigure: 'dashboard_widget_configure', onAdd: 'dashboard_widget_add' },{ column: input.attr('data-column'), line: input.attr('data-line'), scope: input.attr('data-scope'), uid: input.attr('data-uid'), id: input.attr('data-id'), }); component = input.data('component'); if(!component){ component = new Dashboard({ element : input, columnNumber : data.column, lineNumber : data.line }); input.data('component',component); } if(data.scope){ $.action({ action: 'dashboard_widget_search', scope: data.scope, uid: data.uid },function(response){ component.addWidgets(response.widgets); }); } /*component.addWidgets([{ width : 1, height: 1, row: 3, column: 5, id: 1, icon : 'far fa-user', headerBackground : 'rgb(0, 123, 255)', label : 'Hello monde', content : '

Wazup ?

' }, { width : 3, height: 3, row: 0, column: 1, id: 2, removable : false, resizeable : false, draggable : false, label : 'ByBy', content : '

Wazup 2 ?

' }]);*/ component.on('placeholder-click',function(placeholder){ $.action({ action : data.onAdd, scope : data.scope, uid : data.uid, row : placeholder.row, column : placeholder.column },function(widget){ component.addWidgets([widget]); }); }).on('move',function(widget){ console.log('Widget has moved', widget); $.action({ action : data.onMove, widget : widget }); }).on('resize',function(widget){ console.log('Widget has resized', widget); $.action({ action: data.onResize, widget: widget }); }).on('delete',function(widget){ if(!confirm('Êtes-vous sûr de vouloir supprimer ce widget?')) return true; console.log('Widget has removed', widget); $.action({ action : data.onRemove, widget : widget }); }).on('configure',function(id){ $.action({ action : 'dashboard_widget_by_id', id : id },function(response){ var widget = response.item; $('#dashboard-configure-menu li').off().click(function(){ var li = $(this); var menu = li.attr('data-menu'); li.addClass('active').parent().find('>li').removeClass('active'); switch(menu){ case "model": $('#dashboard-configure-content').html($('#configure-model').html()); init_components('#dashboard-configure-content'); var modelList = $('#widget-models'); modelList.fill({ action : 'dashboard_model_search', },function(response){ $('li',modelList).removeClass('active'); $('li[data-model="'+widget.model+'"]',modelList).addClass('active'); $('li',modelList).click(function(){ $('#widget-models li').removeClass('active'); $(this).addClass('active'); $.action({ action : data.onConfigure, id : widget.id, model : $(this).attr('data-model') },function(response){ }); }); }); break; case "style": $('#dashboard-configure-content').html($('#configure-style').html()); $.action({ action : 'dashboard_widget_by_id', id : widget.id },function(response){ $('#configure-style-table').fromJson(response.item).change(function(){ var widgetData = {action:data.onConfigure}; widgetData.id = widget.id; var form = $('#configure-style-table').toJson(); widgetData.headerBackground = form['widget-header-background']; widgetData.bodyBackground = form['widget-body-background']; widgetData.bodyColor= form['widget-body-color']; widgetData.iconColor = form['widget-header-icon-color']; widgetData.titleColor = form['widget-header-title-color']; widgetData.icon = form['widget-header-icon']; var customiser = $('.dashboard-widget-customizer'); $('.dashboard-widget-header',customiser).css('backgroundColor',widgetData.headerBackground+'!important'); $('.widget-header-title',customiser).css('color',widgetData.titleColor+'!important'); $('.dashboard-widget-content',customiser).css({ backgroundColor : widgetData.bodyBackground+'!important', color : widgetData.bodyColor+'!important' }); $('.widget-header-icon i',customiser).css('color',widgetData.iconColor+'!important'); $('.widget-header-icon i',customiser).attr('class',widgetData.icon); component.renderContent(widget.id); $.action(widgetData); }); }); init_components('#dashboard-configure-content'); break; } }); $('#dashboard-configure-menu li[data-menu="model"]').click(); }); }); }