This article illustrates how to create a simple page in sipXconfig, for both user and admin portal.
Notes
Throughout this article I will consider the '/main/sipXconfig' the root directory.
Intro
We use test-driven development (TDD) in order to create / modify a page or fix a issue.
TDD is an iterative software development process where you first write the test with the idea that it must fail. See http://en.wikipedia.org/wiki/Test-driven_development for more information.
For that we use JUnit, JWebUnit, HtmlUnit, DbUnit, etc.
Use 'ant' tool to run these tests (from 'sipXconfig' directory):
ant test-all -Dtest.name=MyTest
I Admin portal
1. Add a new menu (MyMenu) and a new entry (MyPage) to the new page Add a simple page
a. Add a test for the new menu and the new page
Under '/sipXconfig/web/test' directory, create a new package org.sipfoundry.sipxconfig.site.admin.mypackage and a new test class in this package (MyPageTestUi.java):
package org.sipfoundry.sipxconfig.site.admin.mypackage;
public class MyPageTestUi extends WebTestCase {
public static Test suite() throws Exception
@Override
protected void setUp() throws Exception
public void testDisplay()
}
Run this test:
ant test-all -Dtest.name=MyPage
This test will fail with the following errors:
[junit] Test org.sipfoundry.sipxconfig.site.admin.mypackage.MyPageTestUi FAILED
............
[concat] testcase: MyPageTestUi
[concat] junit.framework.AssertionFailedErrorjunit.framework.AssertionFailedError: Unable to find link with id [menu.myPage]
b. Create the menu entry and the page
In sipXconfig/web/context/WEB-INF/common/AdminNavigation.html file, add the next piece of code:
<li>
<div></div><div></div>
<div>
<a><span key="menu.section.myMenu">My Menu</span></a>
<ul>
<li><a jwcid="@PageLink" id="menu.myPage" page="admin/mypackage/MyPage"><span key="menu.myPage">My Page</span></a></li>
</ul>
</div>
</li>
and in sipXconfig/web/context/WEB-INF/common/AdminNavigation.properties, add the following two lines:
menu.section.myMenu=My Menu
menu.myPage=My Page
Now you can see these changes in the picture below:
Under 'sipXconfig/web/context/WEB-INF/admin/', create 'mypackage' directory and three files in this directory, as follows:
MyPage.page
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE page-specification PUBLIC "-//Apache Software Foundation//Tapestry Specification 4.0//EN"
"http://jakarta.apache.org/tapestry/dtd/Tapestry_4_0.dtd">
<page-specification>
<description>My page</description>
</page-specification>
MyPage.html
<div jwcid="@common/Border" useDojo="true" borderTitle="ognl:borderTitle">
<span jwcid="@common/QuickHelp" value="message:quick.help" />
<form jwcid="myPageForm@Form" id="myPageForm">
</form>
</div>
MyPage.properties
title=My title page
quick.help=TBD<br/>\
Insert quick help here
Create also /sipXconfig/web/src/org/sipfoundry/sipxconfig/site/user_portal/MyUserPage.java class
package org.sipfoundry.sipxconfig.site.user_portal;
public abstract class MyUserPage extends UserBasePage {
@Override
public void pageBeginRender(PageEvent event)
}
Now MyPageTestUi test will pass and changes can be seen below: