Alternative Administration Dashboard

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.
14 anos atrás
Greetings,

I want to share modified administration dashboard with nopCommerce community.(we use it already on our shop)
It lists recent registered customers and recent orders;
- Customers and Orders lists displays 5 items per page.
- Removed nopCommerce newsfeed
- removed Recent Search Terms
- removed Best Sold Items
Sample screenshot : http://img338.imageshack.us/img338/9784/111111t.jpg
You may speed up code like remove unused references,optimize databinding methods etc.


Default.aspx

<%@ Page Language="C#" MasterPageFile="~/Administration/main.master" AutoEventWireup="True"
    Inherits="NopSolutions.NopCommerce.Web.Administration.Administration_Default"
    CodeBehind="Default.aspx.cs" %>

<%@ Register TagPrefix="nopCommerce" TagName="nopCommerceNews" Src="Modules/nopCommerceNews.ascx" %>
<%@ Register TagPrefix="nopCommerce" TagName="Warnings" Src="Modules/Warnings.ascx" %>
<%@ Register TagPrefix="nopCommerce" TagName="SearchTermStat" Src="Modules/SearchTermStat.ascx" %>
<%@ Register TagPrefix="nopCommerce" TagName="BestSellersStat" Src="Modules/BestSellersStat.ascx" %>
<%@ Register TagPrefix="nopCommerce" TagName="OrderAverageReport" Src="Modules/OrderAverageReport.ascx" %>
<%@ Register TagPrefix="nopCommerce" TagName="OrderStatistics" Src="Modules/OrderStatistics.ascx" %>
<%@ Register TagPrefix="nopCommerce" TagName="CustomerStatistics" Src="Modules/CustomerStatistics.ascx" %>
<asp:Content ID="c1" ContentPlaceHolderID="cph1" runat="Server">
    <div class="section-title">
        <img src="Common/ico-dashboard.png" alt="<%=GetLocaleResourceString("Admin.Dashboard")%>" />
        <%=GetLocaleResourceString("Admin.Dashboard")%>
    </div>
    <table class="dashboard">
        <tr>
            <td class="maincol">
            <div class="section-header">
                <div class="title">
                    <img src="Common/ico-stat1.gif" alt="<%=GetLocaleResourceString("Admin.StoreStatistics")%>" />
                    <%=GetLocaleResourceString("Admin.StoreStatistics")%>
                </div>
            </div>
            <table class="stats">
                <tr>
                    <td>
                    <asp:GridView ID="gvOrders" runat="server" AutoGenerateColumns="False" Width="100%"
                        OnPageIndexChanging="gvOrders_PageIndexChanging" AllowPaging="true" PageSize="5">
                        <Columns>
                            <asp:BoundField DataField="OrderID" HeaderText="<% $NopResources:Admin.Orders.OrderIDColumn %>"
                                ItemStyle-Width="10%"></asp:BoundField>
                            <asp:TemplateField HeaderText="<% $NopResources:Admin.Orders.OrderTotalColumn %>"
                                ItemStyle-Width="10%">
                                <ItemTemplate>
                                    <%#Server.HtmlEncode(PriceHelper.FormatPrice(Convert.ToDecimal(Eval("OrderTotal")), true, false))%>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="<% $NopResources:Admin.Orders.OrderStatusColumn %>"
                                ItemStyle-Width="10%">
                                <ItemTemplate>
                                    <%#OrderManager.GetOrderStatusName(Convert.ToInt32(Eval("OrderStatusID")))%>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="<% $NopResources:Admin.Orders.PaymentStatusColumn %>"
                                ItemStyle-Width="20%">
                                <ItemTemplate>
                                    <%#PaymentStatusManager.GetPaymentStatusName(Convert.ToInt32(Eval("PaymentStatusID")))%>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="<% $NopResources:Admin.Orders.ShippingStatusColumn %>"
                                ItemStyle-Width="15%">
                                <ItemTemplate>
                                    <%#ShippingStatusManager.GetShippingStatusName(Convert.ToInt32(Eval("ShippingStatusID")))%>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="<% $NopResources:Admin.Orders.CustomerColumn %>" ItemStyle-Width="15%">
                                <ItemTemplate>
                                    <%#GetCustomerInfo (Convert.ToInt32(Eval("CustomerID")))%>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="<% $NopResources:Admin.Orders.ViewColumn %>" HeaderStyle-HorizontalAlign="Center"
                                ItemStyle-Width="10%" ItemStyle-HorizontalAlign="Center">
                                <ItemTemplate>
                                    <a href="OrderDetails.aspx?OrderID=<%#Eval("OrderID")%>" title="<%#GetLocaleResourceString("Admin.Orders.ViewColumn.Tooltip")%>">
                                        <%#GetLocaleResourceString("Admin.Orders.ViewColumn")%>
                                    </a>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="<% $NopResources:Admin.Orders.CreatedOnColumn %>"
                                HeaderStyle-HorizontalAlign="Center" ItemStyle-Width="15%" ItemStyle-HorizontalAlign="Center">
                                <ItemTemplate>
                                    <%#DateTimeHelper.ConvertToUserTime((DateTime)Eval("CreatedOn")).ToString()%>
                                </ItemTemplate>
                            </asp:TemplateField>
                        </Columns>
                    </asp:GridView>
                    </td>
                </tr>
            </table>
            <table class="stats">
                <tr>
                    <td>
                    <asp:GridView ID="gvCustomers" runat="server" AutoGenerateColumns="False" Width="100%"
                        OnPageIndexChanging="gvCustomers_PageIndexChanging" AllowPaging="true" PageSize="5">
                        <Columns>
                            <asp:BoundField DataField="CustomerID" HeaderText="Customer ID" Visible="False">
                            </asp:BoundField>
                            <asp:TemplateField HeaderText="<% $NopResources:Admin.Customers.EmailColumn %>" ItemStyle-Width="20%">
                                <ItemTemplate>
                                    <%#GetCustomerInfo((Customer)Container.DataItem)%>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="<% $NopResources:Admin.Customers.NameColumn %>" ItemStyle-Width="20%">
                                <ItemTemplate>
                                    <%#Server.HtmlEncode(Eval("FullName").ToString())%>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="<% $NopResources:Admin.Customers.UsernameColumn %>"
                                ItemStyle-Width="20%">
                                <ItemTemplate>
                                    <%#Server.HtmlEncode(Eval("Username").ToString())%>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="<% $NopResources:Admin.Customers.ActiveColumn %>"
                                HeaderStyle-HorizontalAlign="Center" ItemStyle-Width="10%" ItemStyle-HorizontalAlign="Center">
                                <ItemTemplate>
                                    <nopCommerce:ImageCheckBox runat="server" ID="cbActive" Checked='<%# Eval("Active") %>'>
                                    </nopCommerce:ImageCheckBox>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="<% $NopResources:Admin.Customers.RegistrationColumn %>"
                                HeaderStyle-HorizontalAlign="Center" ItemStyle-Width="10%" ItemStyle-HorizontalAlign="Center">
                                <ItemTemplate>
                                    <%#DateTimeHelper.ConvertToUserTime((DateTime)Eval("RegistrationDate")).ToString()%>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="<% $NopResources:Admin.Customers.EditColumn %>" HeaderStyle-HorizontalAlign="Center"
                                ItemStyle-Width="10%" ItemStyle-HorizontalAlign="Center">
                                <ItemTemplate>
                                    <a href="CustomerDetails.aspx?CustomerID=<%#Eval("CustomerID")%>" title="<%#GetLocaleResourceString("Admin.Customers.EditColumn.Tooltip")%>">
                                        <%#GetLocaleResourceString("Admin.Customers.EditColumn")%>
                                    </a>
                                </ItemTemplate>
                            </asp:TemplateField>
                        </Columns>
                    </asp:GridView>
                    </td>
                </tr>
            </table>
            <table class="stats">
                <tbody>
                    <tr>
                        <td class="orderaveragereport">
                        <nopCommerce:OrderAverageReport runat="server" ID="ctrlOrderAverageReport" />
                        </td>
                    </tr>
                </tbody>
            </table>
            <table class="stats">
                <tbody>
                    <tr>
                        <td class="orderstatistics">
                        <nopCommerce:OrderStatistics runat="server" ID="ctrlOrderStatistics" />
                        </td>
                        <td class="customerstatistics">
                        <nopCommerce:CustomerStatistics runat="server" ID="ctrlCustomerStatistics" />
                        </td>
                    </tr>
                </tbody>
            </table>
            </td>
            <%--            <td class="rightcol">
            <nopCommerce:nopCommerceNews runat="server" ID="ctrlNews" />
            </td>--%>
        </tr>
        <tr>
            <td colspan="2" class="basecol">
            <nopCommerce:Warnings runat="server" ID="ctrlWarnings" />
            </td>
        </tr>
    </table>
</asp:Content>
14 anos atrás
Default.aspx.cs

//------------------------------------------------------------------------------
// The contents of this file are subject to the nopCommerce Public License Version 1.0 ("License"); you may not use this file except in compliance with the License.
// You may obtain a copy of the License at  https://www.nopcommerce.com/License.aspx.
//
// Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.
// See the License for the specific language governing rights and limitations under the License.
//
// The Original Code is nopCommerce.
// The Initial Developer of the Original Code is NopSolutions.
// All Rights Reserved.
//
// Contributor(s): _______.
//------------------------------------------------------------------------------

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Text;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using NopSolutions.NopCommerce.BusinessLogic.Directory;
using NopSolutions.NopCommerce.BusinessLogic.Measures;
using NopSolutions.NopCommerce.BusinessLogic.Messages;
using NopSolutions.NopCommerce.BusinessLogic.Orders;
using NopSolutions.NopCommerce.BusinessLogic.CustomerManagement;

namespace NopSolutions.NopCommerce.Web.Administration
{
    public partial class Administration_Default : BaseNopAdministrationPage
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                BindData();
            }
        }

        private void BindData()
        {
            OrderCollection orders = OrderManager.SearchOrders(null, null, string.Empty, null, null, null);
            gvOrders.DataSource = orders;
            gvOrders.DataBind();
            int outTotalRecords = 0;
            CustomerCollection customers = CustomerManager.GetAllCustomers(null, null, string.Empty, string.Empty, false, int.MaxValue, 0, out outTotalRecords);
            gvCustomers.DataSource = customers;
            gvCustomers.DataBind();

        }
        protected string GetCustomerInfo(Customer customer)
        {
            string customerInfo = string.Empty;
            if (customer != null)
            {
                if (customer.IsGuest)
                {
                    customerInfo = Server.HtmlEncode(GetLocaleResourceString("Admin.Customers.Guest"));
                }
                else
                {
                    customerInfo = Server.HtmlEncode(customer.Email);
                }
            }
            return customerInfo;
        }
        protected string GetCustomerInfo(int CustomerID)
        {
            string customerInfo = string.Empty;
            Customer customer = CustomerManager.GetCustomerByID(CustomerID);
            if (customer != null)
            {
                if (customer.IsGuest)
                {
                    customerInfo = string.Format("<a href=\"CustomerDetails.aspx?CustomerID={0}\">{1}</a>", customer.CustomerID, GetLocaleResourceString("Admin.Orders.CustomerColumn.Guest"));
                }
                else
                {
                    customerInfo = string.Format("<a href=\"CustomerDetails.aspx?CustomerID={0}\">{1}</a>", customer.CustomerID, Server.HtmlEncode(customer.Email));
                }
            }
            return customerInfo;
        }

        protected void gvOrders_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            this.gvOrders.PageIndex = e.NewPageIndex;
            BindData();
        }
        protected void gvCustomers_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            gvCustomers.PageIndex = e.NewPageIndex;
            BindData();
        }
    }
}
14 anos atrás
Default.aspx.designer.cs

//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:2.0.50727.4927
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

namespace NopSolutions.NopCommerce.Web.Administration {
    
    
    public partial class Administration_Default {
        
        /// <summary>
        /// gvOrders control.
        /// </summary>
        /// <remarks>
        /// Auto-generated field.
        /// To modify move field declaration from designer file to code-behind file.
        /// </remarks>
        protected global::System.Web.UI.WebControls.GridView gvOrders;
        
        /// <summary>
        /// gvCustomers control.
        /// </summary>
        /// <remarks>
        /// Auto-generated field.
        /// To modify move field declaration from designer file to code-behind file.
        /// </remarks>
        protected global::System.Web.UI.WebControls.GridView gvCustomers;
        
        /// <summary>
        /// ctrlOrderAverageReport control.
        /// </summary>
        /// <remarks>
        /// Auto-generated field.
        /// To modify move field declaration from designer file to code-behind file.
        /// </remarks>
        protected global::NopSolutions.NopCommerce.Web.Administration.Modules.OrderAverageReportControl ctrlOrderAverageReport;
        
        /// <summary>
        /// ctrlOrderStatistics control.
        /// </summary>
        /// <remarks>
        /// Auto-generated field.
        /// To modify move field declaration from designer file to code-behind file.
        /// </remarks>
        protected global::NopSolutions.NopCommerce.Web.Administration.Modules.OrderStatisticsControl ctrlOrderStatistics;
        
        /// <summary>
        /// ctrlCustomerStatistics control.
        /// </summary>
        /// <remarks>
        /// Auto-generated field.
        /// To modify move field declaration from designer file to code-behind file.
        /// </remarks>
        protected global::NopSolutions.NopCommerce.Web.Administration.Modules.CustomerStatisticsControl ctrlCustomerStatistics;
        
        /// <summary>
        /// ctrlWarnings control.
        /// </summary>
        /// <remarks>
        /// Auto-generated field.
        /// To modify move field declaration from designer file to code-behind file.
        /// </remarks>
        protected global::NopSolutions.NopCommerce.Web.Administration.Modules.WarningsControl ctrlWarnings;
    }
}

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.