Page 1 of 1

Want to Create a New Module in Admin

Posted: Wed May 15, 2013 2:32 am
by darshgohel
Hi,

I want to add a whole new Module in Admin/CMS.

For the same i want to add a new Menu item Below - User Administration, with its own sub menus.

I follow below steps to do the same,
1) Perform DB entries as follows,

Code: Select all

INSERT INTO BLC_ADMIN_PERMISSION (ADMIN_PERMISSION_ID, DESCRIPTION, NAME, PERMISSION_TYPE) VALUES (64,'All MyModule','PERMISSION_ALL_MYMODULE', 'ALL');

INSERT INTO BLC_ADMIN_ROLE_PERMISSION_XREF (ADMIN_ROLE_ID, ADMIN_PERMISSION_ID) VALUES (1,64);

INSERT INTO BLC_ADMIN_MODULE (ADMIN_MODULE_ID, NAME, MODULE_KEY, ICON, DISPLAY_ORDER) VALUES (5,'MyModule Defination','EBONMyModuleDefination', 'icon-user', 5);

INSERT INTO BLC_ADMIN_SECTION (ADMIN_SECTION_ID, ADMIN_MODULE_ID, NAME, SECTION_KEY, URL, USE_DEFAULT_HANDLER) VALUES (14, 5, 'MyModule Management', 'MyModuleManagement', '/MyModule-management', TRUE);


After that i created,

Code: Select all

public class MyModuleManagementModule extends AbstractModule {
      @Override
   public void onModuleLoad() {
        setModuleTitle("MyModule Management");
        setModuleKey("EBONMyModuleDefination");
       
        List<String> cleafManagementPermissions = new ArrayList<String>();
        cleafManagementPermissions.add("PERMISSION_CREATE_ADMIN_USER");
        cleafManagementPermissions.add("PERMISSION_UPDATE_ADMIN_USER");
        cleafManagementPermissions.add("PERMISSION_DELETE_ADMIN_USER");
        cleafManagementPermissions.add("PERMISSION_READ_ADMIN_USER");
       
        setSection(
            BLCMain.getMessageManager().getString("roleManagementMainTitle"),
            "role",
            "org.broadleafcommerce.openadmin.client.view.user.RoleManagementView",
            "rolePresenter",
            "org.broadleafcommerce.openadmin.client.presenter.user.RoleManagementPresenter",
            cleafManagementPermissions
        );
       
        setOrder(250);
       
        registerModule();
    }
}


And an entry in myAdmin.gwt.xml,

Code: Select all

<inherits name="com.ebon.webshop.admin.myModuleManagementModule" />


where my myModuleManagementModule.gwt.xml, resides at the above location provided. And below is the code for the same

Code: Select all

<module>
    <inherits name="com.google.gwt.user.User" />
    <!-- <inherits name="org.broadleafcommerce.admin.customerCareModule" /> -->
   <source path="client" />   
    <entry-point class="com.ebon.webshop.admin.client.cleaf.EbonCleafManagementModule" />
   
</module>


Still when i compile and run the application there is no left menu item available for the same.

Can you please provide any documentation on how to add a new module in CMS, as the current section for the same is empty.

Re: Want to Create a New Module in Admin

Posted: Thu May 16, 2013 11:36 am
by RapidTransit

Code: Select all

public class ShippingModule extends AbstractModule {

    @Override
    public void onModuleLoad() {
        addConstants(GWT.<i18nConstants>create(ShippingMessages.class));
        addConstants(GWT.<i18nConstants>create(GeneratedMessagesEntityCommon.class));
        addConstants(GWT.<i18nConstants>create(GeneratedMessagesEntityOpenAdmin.class));
        addConstants(GWT.<i18nConstants>create(GeneratedMessagesEntityProfile.class));
        addConstants(GWT.<i18nConstants>create(GeneratedMessagesEntityFramework.class));

        setModuleTitle(BLCMain.getMessageManager().getString("shippingModuleTitle"));
        setModuleKey("BLCShipping");

        List<String> shippingPermissions = new ArrayList<String>();
        shippingPermissions.add("PERMISSION_CREATE_SHIPPING");
        shippingPermissions.add("PERMISSION_UPDATE_SHIPPING");
        shippingPermissions.add("PERMISSION_DELETE_SHIPPING");
        shippingPermissions.add("PERMISSION_READ_SHIPPING");
        setSection(
                BLCMain.getMessageManager().getString("carriersMainTitle"),
                "carriers",
                "org.broadleafcommerce.admin.client.view.shipping.CarrierView",
                "categoryPresenter",
                "org.broadleafcommerce.admin.client.presenter.shipping.CarrierPresenter",
                shippingPermissions
        );


        setOrder(50);

        registerModule();
    }

}



Code: Select all

public interface ShippingMessages extends i18nConstants
{

}




ShippingMessages.properties under resources/com.company.admin.client

Code: Select all

shippingModuleTitle = Shipping
carriersMainTitle = Carriers


Note that source path client is where it's going to look

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 2.0.1//EN"
        "http://google-web-toolkit.googlecode.com/svn/tags/2.4.0/distro-source/core/src/gwt-module.dtd">
<module>
    <inherits name="com.google.gwt.user.User" />
    <inherits name="org.broadleafcommerce.cms.admin.contentManagementModule" />

    <source path="client" />
    <entry-point class="org.broadleafcommerce.admin.client.ShippingModule" />
    <set-property name="user.agent" value="safari" />
</module>


Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
<module>
    <inherits name="com.google.gwt.user.User" />

    <inherits name="org.broadleafcommerce.admin.merchandisingModule" />
    <inherits name="org.broadleafcommerce.admin.customerCareModule" />
    <inherits name="org.broadleafcommerce.admin.shippingModule" />
    <inherits name="org.broadleafcommerce.openadmin.userModule" />
    <inherits name="org.broadleafcommerce.cms.admin.contentManagementModule" />

    <inherits name="com.google.gwt.core.CompilerParameters"/>
    <inherits name="com.google.gwt.i18n.I18N"/>
    <inherits name="org.broadleafcommerce.openadmin.theme.broadleaf.Broadleaf"/>
    <inherits name="com.google.gwt.precompress.Precompress"/>
   

    <extend-property name="locale" values="en_US"/>
    <entry-point class="org.broadleafcommerce.openadmin.client.BLCLaunch" />
   
    <!--  Uncomment the following lines to turn on logging  -->
   <inherits name="com.google.gwt.logging.Logging"/>
   <set-property name="gwt.logging.enabled" value="TRUE"/>
<set-property name="gwt.logging.simpleRemoteHandler" value="ENABLED" />

    <!-- Uncomment this line to compile only for Firefox and Chrome. -->
    <!-- It will speed up compiliation times while developing -->
   <set-property name="user.agent" value="safari" />

   
    <!-- Smartgwt requires quirk mode, so disable gwt warnings for now. -->
    <!-- http://planet.jboss.org/post/smartgwt_ie7_ie8_support -->
    <set-configuration-property name="document.compatMode" value="BackCompat"/>
</module>


under resources/messages-admin/messages-admin.properties added BLCShipping=Shipping, BLCShipping.Carriers=Carriers

Code: Select all

#Modules
BLCMerchandising=Catalog
BLCContentManagement=Content Management
BLCCustomerCare=Customer Care
BLCOpenAdmin=User Administration
BLCShipping=Shipping
#Sections
BLCShipping.Carriers=Carriers
BLCMerchandising.Category=Category
BLCMerchandising.Product=Product
BLCMerchandising.ProductOptions=Product Options
BLCMerchandising.Offer=Offer
BLCContentManagement.Pages=Pages
BLCContentManagement.Assets=Assets
BLCContentManagement.StructuredContent=Structured Content
BLCContentManagement.RedirectURL=Redirect URL
BLCCustomerCare.Order=Order
BLCCustomerCare.Customer=Customer
BLCOpenAdmin.UserManagement=User Management
BLCOpenAdmin.RoleManagement=Role Management
BLCOpenAdmin.PermissionManagement=Permission Management

#header
header.loading=Loading
header.logout=Logout
header.password.change=Change Password
header.profile.edit=Edit Profile



Code: Select all

INSERT INTO BLC_ADMIN_PERMISSION (ADMIN_PERMISSION_ID, DESCRIPTION, NAME, PERMISSION_TYPE) VALUES (64,'Create Shipping','PERMISSION_CREATE_SHIPPING', 'CREATE');
INSERT INTO BLC_ADMIN_PERMISSION (ADMIN_PERMISSION_ID, DESCRIPTION, NAME, PERMISSION_TYPE) VALUES (65,'Update Shipping','PERMISSION_UPDATE_SHIPPING', 'UPDATE');
INSERT INTO BLC_ADMIN_PERMISSION (ADMIN_PERMISSION_ID, DESCRIPTION, NAME, PERMISSION_TYPE) VALUES (66,'Delete Shipping','PERMISSION_DELETE_SHIPPING', 'DELETE');
INSERT INTO BLC_ADMIN_PERMISSION (ADMIN_PERMISSION_ID, DESCRIPTION, NAME, PERMISSION_TYPE) VALUES (67,'Read Shipping','PERMISSION_READ_SHIPPING', 'READ');
INSERT INTO BLC_ADMIN_PERMISSION (ADMIN_PERMISSION_ID, DESCRIPTION, NAME, PERMISSION_TYPE) VALUES (68,'All Shipping','PERMISSION_ALL_SHIPPING', 'ALL');


INSERT INTO BLC_ADMIN_PERMISSION_ENTITY (ADMIN_PERMISSION_ENTITY_ID, CEILING_ENTITY, ADMIN_PERMISSION_ID) VALUES (225, 'org.broadleafcommerce.core.shipping.domain.Carrier', 64);
INSERT INTO BLC_ADMIN_PERMISSION_ENTITY (ADMIN_PERMISSION_ENTITY_ID, CEILING_ENTITY, ADMIN_PERMISSION_ID) VALUES (226, 'org.broadleafcommerce.core.shipping.domain.Carrier', 65);
INSERT INTO BLC_ADMIN_PERMISSION_ENTITY (ADMIN_PERMISSION_ENTITY_ID, CEILING_ENTITY, ADMIN_PERMISSION_ID) VALUES (227, 'org.broadleafcommerce.core.shipping.domain.Carrier', 66);
INSERT INTO BLC_ADMIN_PERMISSION_ENTITY (ADMIN_PERMISSION_ENTITY_ID, CEILING_ENTITY, ADMIN_PERMISSION_ID) VALUES (228, 'org.broadleafcommerce.core.shipping.domain.Carrier', 67);
INSERT INTO BLC_ADMIN_PERMISSION_ENTITY (ADMIN_PERMISSION_ENTITY_ID, CEILING_ENTITY, ADMIN_PERMISSION_ID) VALUES (229, 'org.broadleafcommerce.core.shipping.domain.Carrier', 68);

INSERT INTO BLC_ADMIN_PERMISSION_ENTITY (ADMIN_PERMISSION_ENTITY_ID, CEILING_ENTITY, ADMIN_PERMISSION_ID) VALUES (230, 'org.broadleafcommerce.core.shipping.domain.CarrierMethods', 64);
INSERT INTO BLC_ADMIN_PERMISSION_ENTITY (ADMIN_PERMISSION_ENTITY_ID, CEILING_ENTITY, ADMIN_PERMISSION_ID) VALUES (231, 'org.broadleafcommerce.core.shipping.domain.CarrierMethods', 65);
INSERT INTO BLC_ADMIN_PERMISSION_ENTITY (ADMIN_PERMISSION_ENTITY_ID, CEILING_ENTITY, ADMIN_PERMISSION_ID) VALUES (232, 'org.broadleafcommerce.core.shipping.domain.CarrierMethods', 66);
INSERT INTO BLC_ADMIN_PERMISSION_ENTITY (ADMIN_PERMISSION_ENTITY_ID, CEILING_ENTITY, ADMIN_PERMISSION_ID) VALUES (233, 'org.broadleafcommerce.core.shipping.domain.CarrierMethods', 67);
INSERT INTO BLC_ADMIN_PERMISSION_ENTITY (ADMIN_PERMISSION_ENTITY_ID, CEILING_ENTITY, ADMIN_PERMISSION_ID) VALUES (234, 'org.broadleafcommerce.core.shipping.domain.CarrierMethods', 68);

INSERT INTO BLC_ADMIN_ROLE_PERMISSION_XREF (ADMIN_ROLE_ID, ADMIN_PERMISSION_ID) VALUES (1,63);
INSERT INTO BLC_ADMIN_ROLE_PERMISSION_XREF (ADMIN_ROLE_ID, ADMIN_PERMISSION_ID) VALUES (1,64);
INSERT INTO BLC_ADMIN_ROLE_PERMISSION_XREF (ADMIN_ROLE_ID, ADMIN_PERMISSION_ID) VALUES (1,65);
INSERT INTO BLC_ADMIN_ROLE_PERMISSION_XREF (ADMIN_ROLE_ID, ADMIN_PERMISSION_ID) VALUES (1,66);
INSERT INTO BLC_ADMIN_ROLE_PERMISSION_XREF (ADMIN_ROLE_ID, ADMIN_PERMISSION_ID) VALUES (1,67);
INSERT INTO BLC_ADMIN_ROLE_PERMISSION_XREF (ADMIN_ROLE_ID, ADMIN_PERMISSION_ID) VALUES (1,68);

INSERT INTO BLC_ADMIN_MODULE (ADMIN_MODULE_ID, NAME, MODULE_KEY, ICON, DISPLAY_ORDER) VALUES (5,'Shipping Administration','BLCShipping', 'icon-user', 4);
INSERT INTO BLC_ADMIN_SECTION (ADMIN_SECTION_ID, ADMIN_MODULE_ID, NAME, SECTION_KEY, URL, USE_DEFAULT_HANDLER) VALUES (15, 5, 'Shipping Carriers', 'Carriers', '/carriers', TRUE);

INSERT INTO BLC_ADMIN_SEC_PERM_XREF (ADMIN_SECTION_ID, ADMIN_PERMISSION_ID) VALUES (15,64);
INSERT INTO BLC_ADMIN_SEC_PERM_XREF (ADMIN_SECTION_ID, ADMIN_PERMISSION_ID) VALUES (15,65);
INSERT INTO BLC_ADMIN_SEC_PERM_XREF (ADMIN_SECTION_ID, ADMIN_PERMISSION_ID) VALUES (15,66);
INSERT INTO BLC_ADMIN_SEC_PERM_XREF (ADMIN_SECTION_ID, ADMIN_PERMISSION_ID) VALUES (15,67);
INSERT INTO BLC_ADMIN_SEC_PERM_XREF (ADMIN_SECTION_ID, ADMIN_PERMISSION_ID) VALUES (15,68);


Empty your admin/target folder or else GWT won't be forced to recompile, gwt-clean doesn't work all of the time