Skip to content
Extraits de code Groupes Projets
Valider e4f9011c rédigé par sgiehl's avatar sgiehl
Parcourir les fichiers

refs #3011 added possibility to change the default dashboard layout

git-svn-id: http://dev.piwik.org/svn/trunk@6144 59fd770c-687e-43c8-a1e3-f5a4ff64c105
parent d4050180
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -561,6 +561,8 @@ $translations = array(
'Dashboard_EmptyDashboard' => 'Empty dashboard',
'Dashboard_DefaultDashboard' => 'Default dashboard',
'Dashboard_RemoveDashboard' => 'Remove dashboard',
'Dashboard_SaveAsDefault' => 'Save dashboard as default',
'Dashboard_SaveDefaultConfirm' => 'Do you realy want to make the current dashboard layout to the new default layout?',
'Dashboard_RemoveDashboardConfirm' => 'Do you realy want to remove the current dashboard. You will not be able to undo this operation',
'Dashboard_DashboardEmptyNotification' => 'Your Dashboard does not contain any widgets. Start by adding some widgets or just reset the dashboard to the default widget selection.',
'DBStats_PluginDescription' => 'This plugin reports the MySQL database usage by Piwik tables.',
......
......@@ -235,6 +235,26 @@ class Piwik_Dashboard_Controller extends Piwik_Controller
}
}
/**
* Saves the layout as default
*/
public function saveLayoutAsDefault()
{
$this->checkTokenInUrl();
if(Piwik::isUserIsSuperUser()) {
$layout = Piwik_Common::unsanitizeInputValue(Piwik_Common::getRequestVar('layout'));
$paramsBind = array('', '1', $layout, $layout);
Piwik_Query('INSERT INTO '.Piwik_Common::prefixTable('user_dashboard') .
' (login, iddashboard, layout)
VALUES (?,?,?)
ON DUPLICATE KEY UPDATE layout=?',
$paramsBind);
}
}
/**
* Get the dashboard layout for the current user (anonymous or loggued user)
*
......@@ -320,24 +340,28 @@ class Piwik_Dashboard_Controller extends Piwik_Controller
protected function getDefaultLayout()
{
$defaultLayout = '[
[
{"uniqueId":"widgetVisitsSummarygetEvolutionGraphcolumnsArray","parameters":{"module":"VisitsSummary","action":"getEvolutionGraph","columns":"nb_visits"}},
{"uniqueId":"widgetLivewidget","parameters":{"module":"Live","action":"widget"}},
{"uniqueId":"widgetVisitorInterestgetNumberOfVisitsPerVisitDuration","parameters":{"module":"VisitorInterest","action":"getNumberOfVisitsPerVisitDuration"}}
],
[
{"uniqueId":"widgetReferersgetKeywords","parameters":{"module":"Referers","action":"getKeywords"}},
{"uniqueId":"widgetReferersgetWebsites","parameters":{"module":"Referers","action":"getWebsites"}}
],
[
{"uniqueId":"widgetUserCountryMapworldMap","parameters":{"module":"UserCountryMap","action":"worldMap"}},
{"uniqueId":"widgetUserSettingsgetBrowser","parameters":{"module":"UserSettings","action":"getBrowser"}},
{"uniqueId":"widgetReferersgetSearchEngines","parameters":{"module":"Referers","action":"getSearchEngines"}},
{"uniqueId":"widgetVisitTimegetVisitInformationPerServerTime","parameters":{"module":"VisitTime","action":"getVisitInformationPerServerTime"}},
{"uniqueId":"widgetExampleRssWidgetrssPiwik","parameters":{"module":"ExampleRssWidget","action":"rssPiwik"}}
]
]';
$defaultLayout = $this->getLayoutForUser('', 1);
if(empty($defaultLayout)) {
$defaultLayout = '[
[
{"uniqueId":"widgetVisitsSummarygetEvolutionGraphcolumnsArray","parameters":{"module":"VisitsSummary","action":"getEvolutionGraph","columns":"nb_visits"}},
{"uniqueId":"widgetLivewidget","parameters":{"module":"Live","action":"widget"}},
{"uniqueId":"widgetVisitorInterestgetNumberOfVisitsPerVisitDuration","parameters":{"module":"VisitorInterest","action":"getNumberOfVisitsPerVisitDuration"}}
],
[
{"uniqueId":"widgetReferersgetKeywords","parameters":{"module":"Referers","action":"getKeywords"}},
{"uniqueId":"widgetReferersgetWebsites","parameters":{"module":"Referers","action":"getWebsites"}}
],
[
{"uniqueId":"widgetUserCountryMapworldMap","parameters":{"module":"UserCountryMap","action":"worldMap"}},
{"uniqueId":"widgetUserSettingsgetBrowser","parameters":{"module":"UserSettings","action":"getBrowser"}},
{"uniqueId":"widgetReferersgetSearchEngines","parameters":{"module":"Referers","action":"getSearchEngines"}},
{"uniqueId":"widgetVisitTimegetVisitInformationPerServerTime","parameters":{"module":"VisitTime","action":"getVisitInformationPerServerTime"}},
{"uniqueId":"widgetExampleRssWidgetrssPiwik","parameters":{"module":"ExampleRssWidget","action":"rssPiwik"}}
]
]';
}
$defaultLayout = $this->removeDisabledPluginFromLayout($defaultLayout);
return $defaultLayout;
}
......
......@@ -173,6 +173,13 @@
*/
removeDashboard: function() {
removeDashboard();
},
/**
* Saves the current layout aus new default layout
*/
saveLayoutAsDefault: function() {
saveLayout(true);
}
};
......@@ -457,8 +464,9 @@
/**
* Save the current layout in database if it has changed
* @param {boolean} saveAsDefault
*/
function saveLayout() {
function saveLayout(saveAsDefault) {
var columns = [];
......@@ -472,15 +480,21 @@
columnNumber++;
});
if(JSON.stringify(dashboardLayout.columns) != JSON.stringify(columns) || dashboardChanged) {
if(JSON.stringify(dashboardLayout.columns) != JSON.stringify(columns) || dashboardChanged || saveAsDefault) {
dashboardLayout.columns = JSON.parse(JSON.stringify(columns));
columns = null;
if(saveAsDefault) {
var action = 'saveLayoutAsDefault';
} else {
var action = 'saveLayout';
}
var ajaxRequest =
{
type: 'POST',
url: 'index.php?module=Dashboard&action=saveLayout&token_auth='+piwik.token_auth,
url: 'index.php?module=Dashboard&action='+action+'&token_auth='+piwik.token_auth,
dataType: 'html',
async: true,
success: function() {
......
......@@ -128,7 +128,11 @@ function showEmptyDashboardNotification() {
});
}
function saveDefaultLayout() {
piwikHelper.modalConfirm('#saveAsDefaultConfirmation', {
yes: function(){ $('#dashboardWidgetsArea').dashboard('saveLayoutAsDefault'); }
});
}
</script>
{/literal}
......@@ -138,8 +142,14 @@ function showEmptyDashboardNotification() {
<h2>{'Dashboard_DeleteWidgetConfirm'|translate}</h2>
<input role="yes" type="button" value="{'General_Yes'|translate}" />
<input role="no" type="button" value="{'General_No'|translate}" />
</div>
</div>
<div class="ui-confirm" id="saveAsDefaultConfirmation">
<h2>{'Dashboard_SaveDefaultConfirm'|translate}</h2>
<input role="yes" type="button" value="{'General_Yes'|translate}" />
<input role="no" type="button" value="{'General_No'|translate}" />
</div>
<div class="ui-confirm" id="resetDashboardConfirm">
<h2>{'Dashboard_ResetDashboardConfirm'|translate}</h2>
<input role="yes" type="button" value="{'General_Yes'|translate}" />
......@@ -202,6 +212,9 @@ function showEmptyDashboardNotification() {
<li onclick="renameDashboard();">{'Dashboard_RenameDashboard'|translate}</li>
<li onclick="removeDashboard();">{'Dashboard_RemoveDashboard'|translate}</li>
<li onclick="createDashboard();">{'Dashboard_CreateNewDashboard'|translate}</li>
{if ($isSuperUser)}
<li onclick="saveDefaultLayout();">{'Dashboard_SaveAsDefault'|translate}</li>
{/if}
{/if}
</ul>
<ul class="widgetpreview-widgetlist"></ul>
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter