Welcome to the OfficeClip Customization Help

This file describes how to customize OfficeClip using various Xml files. OfficeClip allows many levels of customzation:

  • Level 1 - XML Configuration
  • Level 2 - Web Services
  • Level 3 - Developer API

Each level described above requires different skill sets. To apply Level 1 customization, user will need knowledge of html files, css stylesheets, xml files and xml schema. w3schools website offers good reference as well as tutorial material on these topics. For Level 2 customization, web services and programming experience is necessary. For Level 3 customization, experience with developing user interfaces with microsoft.net framework and knowledge of C# programming language is required. A good site to learn and obtain reference material on the Microsoft.Net framework is the msdn

There are more customization features available in OfficeClip which are available for the users, organization administrators and the site administrators. The help for these customizations is available via OfficeClip help file within OfficeClip application.


General Information

OfficeClip customization framework is implemented in a way that all customization code remains separated from the OfficeClip code. This enables upgrades to the OfficeClip code without the concern of overwriting the customized part. All customization files reside in a separate directory (by default it is called custom). At runtime, the framework loads the customization index file, called custom.xml and stores the references to all the customized files.

Whenever a reference is made to the file that has been customized, the OfficeClip framework redirects it and uses the one which is present in custom directory.

Note: No OfficeClip files should be directly changed during customization. Doing so may result in unpredictable behaviour while upgrading OfficeClip to a newer version.

Currently all Level 1 customizations are applied manually by editing the xml and xsd files. These files can be edited using the notepad. However, it is advisable to make use of an xml editor. General customization has the following topics:

  1. Setting the Custom Path - The custom path is set using the customXML key at the root Web.Config file. The value can be either set to an empty string (in which case the custom configuration feature is off) or set to a relative path from the OfficeClip home directory.

  2. Creating the Custom Index - The custom index is an XML file which is created at the root of the custom directory and always has the name determined by the value of customXML key in the root web.config file (mentioned in Step 1). This file describes the mapping between OfficeClip file and the customized file that will alternatively be used at runtime.

  3. Adding Custom Files - Custom files are added under the custom directory (see Step 1). Usually it is advisable to add these files with the same relative path as the corresponding file in the OfficeClip directory.

  4. Restarting the Server - The ASP.Net process needs to be restarted for the customization to take effect. This can be done by running iisreset from the windows command prompt.


Setting the Custom Path

The custom path is set using the customXML key at the root Web.Config file. The value can either be set to an empty string (in which case the custom configuration feature is off) or set to a relative path from the OfficeClip home directory.

The entry for the custom path is defined in the root level web.config file as:

<AppSettings>
.....
    <add key="customXML" value="custom/custom.xml" />
...
</AppSettings>

The value in the above key determines two things: first the name of the custom index file which is custom.xml in the above example and second the location where the custom.xml file is kept. By default the directory "custom" is created within the OfficeClip root and is used to keep all the customized files.

Note: It is important to note that the custom directory will need to be a subdirectory of the OfficeClip root directory. This is because the it is referred in the programs as the relative url from the OfficeClip root.


Creating Custom Index

The custom index file is an xml file located in a subdirectory which is specified in the customXML key of the web.config file. Given below is an example of a custom index file

<customizations>
      <custom id="1" in="images/ThemeB/appbg.jpg" out="custom/images/ThemeB/appbg.jpg" active="N"/>
     <custom id="2" in="resources/appmenus.xml" out="custom/resources/appmenus.xml" active="N"/>
</customizations>

In the above example there is an element called custom having four attributes; id, in, out and active.

  • id - The unique integer which works as an index for the element custom.

  • in - The input file is the officeclip file which needs to be customized. The path is relative from the officeclip root directory.

  • out - The output file is the customized file which will in turn be used at run time. The path should again be relative from the officeclip root directory.

  • active - determines if a particular column is active, valid values are Y or N. Customization does not become effective unless this value is Y.

This kind of customization can be applied to any file within OfficeClip (programs, images and resources). The OfficeClip framework reads this index when the application is started and caches it in the primary memory. Whenever a request is made within OfficeClip to access a file which has been customized, the redirection to cutomized file takes place internally.

NOTE - If the index file is changed, OfficeClip application will need to be restarted to make the change effective. This can be achieved running iisreset from the winsows command prompt.


Adding Custom Files

The next step of customization is to add the custom files in the custom directory. Following points should be noted:

  • This directory should be under the OfficeClip root folder.

  • OfficeClip uses the convention to put the custom index file at the root level in this custom directory. However, developers are free to put this file anywhere as long as it can be referenced by a relative path from the OfficeClip root.

  • This filename should match exactly as specified in the custom index file.

  • Only entries that are active in the custom index file becomes effective. Entried can be made active by a property in each node of the custom.xml file (shown later)


Restarting the Server

In order for the .net runtime to read the changes that is made in the customization, it is necessary to reset the IIS, so the configuration files can be read again. This can be done in a few ways:

  • Executing iisreset - Execute the command iisreset on the command prompt of the machine where the iis server is installed.

  • Kill the aspnet_wp.exe - From the machine where the .Net runtime is installed, go to the task manager and kill the process called aspnet_wp.exe (or w3wp.exe).

  • Edit web.config - Open the web.config file in edit mode, make a trivial change on it (e.g. add a empty line at the end) and then save it.
    Note: Before doing any edits on web.config, make a backup copy. Inconsistent changes in this file may result in destroying the consistency of the programs and data


Level 1 - XML Configuration

XML Configuration

Many properties of OfficeClip can be configured via the configuration files. The configuration files are located in the APP_Data directory under the OfficeClip root folder. Any XML editor or a notepad can be used to make changes to the configuration files. These configuration files should not be edited directly. First copy it into the corresponding file in the custom subdirectory and then apply your changes to the copied file. Then, make an entry in the custom.xml file to make this change effective. This procedure is explained in a different section of this document.


Level 1 - Accounting

Accounting

The Accounting configuration files assists in adjusting the OfficeClip accounting parameters. Accounting module is used in OfficeClip online to charge users and extend the user's subscription for the disk storage as well as the time duration for which they can use the OfficeClip application.

The following files are available for accounting, note that these are only useful for OfficeClip online and will not affect the local version of OfficeClip.

  • accounting.xml - To adjust the accounting parameters
  • transactionProvider.xml - To adjust the credit card service provider details


Level 1 - Accounting File

Accounting File
File: ~/APP_DATA/accounting.xml

The Accounting xml file is called accounting.xml and it has various properties with the id and value attributes,

accountingKey

Enables or Disables the Billing/Accounting for the users in the system. Do no modify this entry directly by editing this value if it is originally off. By default it is Off. If you wish to switch it on, you must contact OfficeClip.

<property id="accountingKey" value="" />

trialPeriodUsersCount

This key determines how many free user licenses are provided during the trial period. During the trial period, OfficeClip is free to an account

<property id="trialPeriodUsersCount" value="25"/>

maxUsersCount

This key determines the maximum number of users the account can have. This is the maximum number of users that the account administrators can purchase using the accounting system

<property id="maxUsersCount" value="1000"/>

accountingCycleDuration

This key determines the number of days in an accounting period for which the license can be purchased at one time. Multiples of this duration is possible.

<property id="accountingCycleDuration" value="30"/>

maxDuration

This is the number of days upto which the account admins can purchase OfficeClip services using the accounting system.

<property id="maxDuration" value="1000"/>

perUserRatePerDuration

This is the rate per user per accouting duration in the local currency

<property id="perUserRatePerDuration" value="9.95"/>

numUsersIncrement

This is the number in multiples of which the number of user licenses can be purchased using the accounting system.

<property id="numUsersIncrement" value="5"/>

maxUserDocumentSpace

This is the maximum amount of document space in MB that can be allocated to a user. The minimum space and increments are determined by the web.config file.

<property id="maxUserDocumentSpace" value="200"/>

maxGroupDocumentSpace

This is the maximum amount of document space in MB that can be allocated to a group. The minimum space and increments are determined by the web.config file.

<property id="maxGroupDocumentSpace" value="500"/>

maxAccountDocumentSpace

This is the maximum amount of document space in MB that can be allocated to an account.

<property id="maxAccountDocumentSpace" value="500"/>

perUnitPrivateDocSpaceRate

This is the rate per unit for the user disk space in OfficeClip. The private disk space unit is specified in the Web.Config file (docPrivateDiskSpace).

<property id="perUnitPrivateDocSpaceRate" value="400"/>

perUnitGroupDocSpaceRate

This is the rate per unit for the group disk space in OfficeClip. The group disk space unit is specified in the Web.Config file (docGroupDiskSpace).

<property id="perUnitGroupDocSpaceRate" value="400"/>

perUnitAccountDocSpaceRate

This is the rate per unit for the account disk space in OfficeClip. The account disk space unit is specified in the Web.Config file (docAccountDiskSpace).

<property id="perUnitAccountDocSpaceRate" value="400"/>

coupons

Contains the information about the coupons. Coupons are used to provide discounts to the user. User types the coupon id on the screen, the first matching coupon will be applied. If the discount amount and the discount percentage is specified, the discountpercentage takes precedence.

<property id="coupons" >
<coupon id="boortz" startdate="01/01/2002" enddate="01/02/2003" discountamount="" discountpercentage="9.9" />
</property>


Transaction Provider
File: ~/APP_DATA/transactionProvider.xml

The transaction provider contains parameters for the credit card processor. It contains general attributes for sending and receiving transactions from the credit card gateway. There is an attribute called isActive which determines which provider is currently active. Only one provider of a particular type can be active at one time.

Send Parameters

These parameters are used to send transactions to the credit card provider.
Note: The values of all the fields are the field name of the service provider, they are not the real values

  • oc_merchant - The name name of the merchant. This is provided by the service provider
  • oc_pin - The pin or password of the merchant. This is provided by the service provider
  • oc_orderId - The unique identifier for each order. This is usually generated by the merchant while placing the order.
  • oc_emailAddress - The email adddress of the customer who places the order
  • oc_returnUrl - The url which gets called by the service provider after the order is processed
  • oc_nameOnCard - The customer name who placed the order
  • oc_cardName - Type of the card
  • oc_cardNumber - The complete card numbercredit card without any dash or spaces
  • oc_cardNumber1 - The first four digits of the credit card
  • oc_cardNumber2 - the second four digits of the credit card
  • oc_cardNumber3 - The third four digits of the credit card
  • oc_cardNumber4 - The last four digits of the credit card
  • oc_expirationMonth - The two digit expiration month
  • oc_expirationYear - The year when the credit card expired
  • oc_cardStreet1 - The street number for the credit card holder
  • oc_cardStreet2 - The second line of the street number for the credit card holder
  • oc_cardCity - The city for the credit card holder
  • oc_cardState - The state for the credit card holder
  • oc_cardZip - The Zip Code for the credit card holder
  • oc_cardCountry - The country of the credit card holder
  • oc_phoneNumber - The phone number of the credit card holder
  • oc_amount - The total amount of the transaction

Receive Parameters

These parameters are used to receive transactions result from the credit card provider.

  • Status - The status of the return value

Example

This example shows the entry for echo credit card processing.

<provider category="InternalProcessing" name="echo-inc" url="https://wwws.echo-inc.com/scripts/INR200.EXE" isactive="Y">
<send>
<outfield name="oc_merchant" field="merchant_echo_id" value="123456789" />
<outfield name="oc_pin" field="merchant_pin" value="1111111" />
<outfield name="oc_orderId" field="order_number" />
<outfield name="oc_emailAddress" field="merchant_email" />
<outfield name="oc_nameOnCard" field="billing_company_name" />
<outfield name="oc_cardNumber" field="cc_number" />
<outfield name="oc_expirationMonth" field="ccexp_month" />
<outfield name="oc_expirationYear" field="ccexp_year" />
<outfield name="oc_cardStreet1" field="billing_address1" />
<outfield name="oc_cardStreet2" field="billing_address2" />
<outfield name="oc_cardCity" field="billing_city" />
<outfield name="oc_cardState" field="billing_state" />
<outfield name="oc_cardZip" field="billing_zip" />
<outfield name="oc_cardCountry" field="billing_country" />
<outfield name="oc_phoneNumber" field="billing_phone" />
<outfield name="oc_amount" field="grand_total" />
<outfield name="ocfield1" field="transaction_type" value="AS" />
<outfield name="ocfield2" field="order_type" value="S" />
<outfield name="ocfield3" field="counter" value="1" />
<outfield name="ocfield4" field="debug" value="T" />
</send>
<receive>
<infield value="Transaction approved" />
</receive>
</provider>

In the above example the provider category is InternalProcessing, This means that the credit card information is processed internally and will not direct the control to the credit card provider. In the outfield table, the name denotes, OfficeClip given names and the field denotes the field that maps to the provider field. All fields at the bottom like ocfield1, ocfield2 etc. are the fields that are constants and does not change on the input data. Any number of such constant fields can be inserted.

The infield table denotes the response from the credit card processor. The value of the field is checked with the value of the response from the credit card processor. If they match, the transaction is considered to be successful.


Level 1 - Applications

Applications

The appmenus.xml file contains the layout of the application menus that is shown on the left side frame, toolbar and menubar of OfficeClip.


Level 1 - Application Menus

Application Menus
File: ~/APP_DATA/appmenus.xml

The appmenus.xml file offer an additional level of customization to create the left hand frame of the OfficeClip, top toolbar and the OfficeClip menu bar.

<appmenus>
 <Menubar>
    <MenubarItem mId="1" url="general/menumap.aspx?id=1" Comments="File">
     <MenubarItem mId="4" url="sessionover.aspx" Comments="Log Off" />
    </MenubarItem>
    <MenubarItem mId="2" url="general/menumap.aspx?id=2" Comments="Tools">
     <MenubarItem xpathRef="Toolbar" />
    </MenubarItem>
    <MenubarItem mId="3" url="general/menumap.aspx?id=3" Comments="Help" >
     <MenubarItem mId="5" url="setup/about.aspx" Comments="About OfficeClip"/>
     <MenubarItem mId="22" url="enterbugs.html" Comments="Submit Bug / Enhancement Request" target="_blank" />
     <MenubarItem mId="6" Comments="Application Help">
        <MenubarItem mId="8" url="docs/output/officePortal/index.html" imageUrl="icons/small/help.gif" Comments="Office Portal"/>
        <MenubarItem mId="9" url="docs/output/desktop/index.html" imageUrl="icons/small/help.gif" Comments="Desktop"/>
        <MenubarItem mId="10" url="docs/output/ContactManager/index.html" imageUrl="icons/small/help.gif" Comments="Contact Manager"/>
        <MenubarItem mId="11" url="docs/output/Tracker/index.html" imageUrl="icons/small/help.gif" Comments="Issue Tracker"/>
        <MenubarItem mId="12" url="docs/output/te/index.html" imageUrl="icons/small/help.gif" Comments="Time and Expenses"/>
        <MenubarItem mId="13" url="docs/output/projects/index.html" imageUrl="icons/small/help.gif" Comments="Projects"/>
        <MenubarItem mId="14" url="docs/output/setupmgmt/index.html" imageUrl="icons/small/help.gif" Comments="Setup"/>
     </MenubarItem>
     <MenubarItem mId="15" name="Quick Help">
        <MenubarItem mId="16" url="quickhelp/officeportal.aspx?hideBut=1" imageUrl="icons/small/quickhelp.gif" Comments="Office Portal"/>
        <MenubarItem mId="17" url="quickhelp/desktop.aspx?hideBut=1" imageUrl="icons/small/quickhelp.gif" Comments="Desktop"/>
        <MenubarItem mId="18" url="quickhelp/contacts.aspx?hideBut=1" imageUrl="icons/small/quickhelp.gif" Comments="Contact Manager"/>
        <MenubarItem mId="19" url="quickhelp/issues.aspx?hideBut=1" imageUrl="icons/small/quickhelp.gif" Comments="Issue Tracker"/>
        <MenubarItem mId="20" url="quickhelp/te.aspx?hideBut=1" imageUrl="icons/small/quickhelp.gif" Comments="Time and Expenses"/>
        <MenubarItem mId="21" url="quickhelp/projects.aspx?hideBut=1" imageUrl="icons/small/quickhelp.gif" Comments="Projects"/>
        <MenubarItem mId="23" url="quickhelp/setup.aspx?hideBut=1" imageUrl="icons/small/quickhelp.gif" Comments="Setup"/>
     </MenubarItem>
    </MenubarItem>
 </Menubar>
 <Toolbar>
    <ToolbarItem tbId="1" appId="15"  skinID="alerttoolbaritem" alternateSkinID="alertblinktoolbaritem"/>
    <ToolbarItem tbId="-2" appId="-1"  skinID="tbLine" />
    <ToolbarItem tbId="2" appId="-1"  skinID="portaltoolbaritem" Selected="True">
     <Leftbar>
        <LeftbarItem appId="14" imageUrl="leftbar/homepage.gif" Selected="True"/>
        <LeftbarItem appId="18" imageUrl="leftbar/announcement.gif"/>
        <LeftbarItem appId="21" imageUrl="leftbar/notes.gif" />
        <LeftbarItem appId="3" imageUrl="leftbar/bookmark.gif" />
        <LeftbarItem appId="9" imageUrl="leftbar/bulletin.gif" />
        <LeftbarItem appId="25" imageUrl="leftbar/rss.gif" />
        <LeftbarItem appId="17" imageUrl="leftbar/photo.gif" />
        <LeftbarItem appId="16" imageUrl="leftbar/poll.gif" />
     </Leftbar>
     </ToolbarItem>
    <ToolbarItem tbId="3" appId="-1" skinID="desktoptoolbaritem">
     <Leftbar>
        <LeftbarItem appId="1" imageUrl="leftbar/calendar.gif" Selected="True" />
        <LeftbarItem appId="20" imageUrl="leftbar/task.gif" />
        <LeftbarItem appId="10" imageUrl="leftbar/document.gif" />
        <LeftbarItem appId="13" imageUrl="leftbar/usermanager.gif" />
        <LeftbarItem appId="26" imageUrl="leftbar/addressbook.gif" />
        <LeftbarItem appId="19" imageUrl="leftbar/email.gif" />
     </Leftbar>
    </ToolbarItem>
    <ToolbarItem tbId="-2" appId="-1" skinID="tbLine" />
    <ToolbarItem tbId="4" appId="-1" skinID="crmtoolbaritem">
     <Leftbar>
        <LeftbarItem appId="22" imageUrl="leftbar/contacts.gif" Selected="True"  />
        <LeftbarItem appId="27" imageUrl="leftbar/campaigns.gif"  />
        <LeftbarItem appId="24" imageUrl="leftbar/accounts.gif"  />
        <LeftbarItem appId="28" imageUrl="leftbar/opportunity.gif" />
     </Leftbar>
    </ToolbarItem>
    <ToolbarItem tbId="5" appId="5" skinID="trackertoolbaritem" />
    <ToolbarItem tbId="6" appId="-1" skinID="timetoolbaritem" >
     <Leftbar>
        <LeftbarItem appId="8" imageUrl="leftbar/timesheet.gif" />
        <LeftbarItem appId="7" imageUrl="leftbar/expense.gif" Selected="True" />
     </Leftbar>
                </ToolbarItem>
    <ToolbarItem tbId="-2" appId="-1"  skinID="tbLine" />
    <ToolbarItem tbId="10" appId="29" skinID="projectstoolbaritem" />
    <ToolbarItem tbId="7" appId="-1" skinID="setuptoolbaritem" url="setup/home.aspx"/>
    <ToolbarItem tbId="-2" appId="-1"  skinID="tbLine" />
    <ToolbarItem tbId="8" appId="-1" skinID="helptoolbaritem"/>
    <!--<ToolbarItem tbId="9" appId="-1" skinID="logofftoolbaritem"/>-->
 </Toolbar>
</appmenus>


Level 1 - Email

Email

OfficeClip supports configuration to its email subsystem. There are two possible configurations:

  • The columns that are displayed on the Email List screen.
  • The colors that the users can select to separate email from various sources


Level 1 - Email List

Email List
File: ~/APP_DATA/Desktop/email/emailList.xml

This file decides which column can be shown on the Email List screen. Only the attributes of the following columns can be changed, Any attempt to change other attributes will result in a runtime error. Following are the columns of this file:

  • Attachment- Can be switched on or off based on the value of the show field, it can either be On or Off, the default is show=On
  • Subject - Decides whether the subject is shown on the email list screen, it can either be On or Off, the default is show=On
  • Date - Decides whether the date is shown on the email list screen, it can either be On or Off, the default is show=On
  • Size - Decides whether the email size is shown on the email list screen, it can either be On or Off, the default is show=On
  • Account - Decides whether the email account name is shown on the email list screen, it can either be On or Off, the default is show=On
  • NumberOfRows - The number of rows on the email list screen

<Email>
 <EmailList>
  <Select />
  <Icon />
  <Priority />
  <Attachment show="On" />
  <From />
  <Subject show="On" />
  <Date show="On" />
  <Size show="On" />
  <Account show="Off" />
 </EmailList>
 <NumberOfRows value="30" />
</Email>


Level 1 - Email Colors

Email Colors
File: ~/APP_DATA/Desktop/email/accountColorScheme.xml

This file has all the colors by which the user distinguishes the account. The values of the colors need to be supported by .Net. Please see the xml file for a description on how to find valid .Net colors.

Following are the columns of this file:

  • Color- The value field of this attribute need to be a color name that is understood by .Net
Following are the possible colors that can be put in this field
AliceBlue | AntiqueWhite | Aqua | Aquamarine | Azure
Beige | Bisque | Black | BlanchedAlmond | Blue
BlueViolet | Brown | BurlyWood | CadetBlue | Chartreuse
Chocolate | Coral | CornflowerBlue | Cornsilk | Crimson
Cyan | DarkBlue | DarkCyan | DarkGoldenrod | DarkGray
DarkGreen | DarkKhaki | DarkMagenta | DarkOliveGreen | DarkOrange
DarkOrchid | DarkRed | DarkSalmon | DarkSeaGreen | DarkSlateBlue
DarkSlateGray | DarkTurquoise | DarkViolet | DeepPink | DeepSkyBlue
DimGray | DodgerBlue | Firebrick | FloralWhite | ForestGreen
Fuchsia | Gainsboro | GhostWhite | Gold | Goldenrod
Gray | Green | GreenYellow | Honeydew | HotPink
IndianRed | Indigo | Ivory | Khaki | Lavender
LavenderBlush | LawnGreen | LemonChiffon | LightBlue | LightCoral
LightCyan | LightGoldenrodYellow | LightGray | LightGreen | LightPink
LightSalmon | LightSeaGreen | LightSkyBlue | LightSlateGray | LightSteelBlue
LightYellow | Lime | LimeGreen | Linen | Magenta
Maroon | MediumAquamarine | MediumBlue | MediumOrchid | MediumPurple
MediumSeaGreen | MediumSlateBlue | MediumSpringGreen | MediumTurquoise | MediumVioletRed
MidnightBlue | MintCream | MistyRose | Moccasin | NavajoWhite
Navy | OldLace | Olive | OliveDrab | Orange
OrangeRed | Orchid | PaleGoldenrod | PaleGreen | PaleTurquoise
PaleVioletRed | PapayaWhip | PeachPuff | Peru | Pink
Plum | PowderBlue | Purple | Red | RosyBrown
RoyalBlue | SaddleBrown | Salmon | SandyBrown | SeaGreen
SeaShell | Sienna | Silver | SkyBlue | SlateBlue
SlateGray | Snow | SpringGreen | SteelBlue | Tan
Teal | Thistle | Tomato | Turquoise | Violet
Wheat | White | WhiteSmoke | Yellow | YellowGreen


Global (Web.Config)
  File: ~/web.config

The web.Config file consists of many customizable parameters for OfficeClip. The root Web.Config file is in the root directory of OfficeClip.

<?xml version="1.0" ?>
<configuration>
<!-- Application specific settings. Make sure you create a backup copy
     of this file before attempting to make any change. Also, please read
     the documentation before attempting to change this file. Changing this
     file in an inconsistent manner may corrupt information in files and
     database in a way that may not be recovered. -->
 <connectionStrings>
<!-- The connection string required for making the
 database connection --> <add name="DbString" connectionString="server=(local)\OfficeClip;uid=sa;pwd=***;database=officeclip71"/>
 </connectionStrings>
 <appSettings>
    <!-- The timezone where the server is installed -->
    <add key="serverTimeZone" value="12"/>
    <!-- Server where OfficeClip is installed, this should always be pointed to the external address, not
        the internal ip address behind he firewall -->
    <add key="HOSTStr" value="localhost"/>
    <!-- This unique id is usually used for the extranet users. Every extranet form will have
        this id embedded on it which would be checked when the form is posted to the OfficeClip server.
        If this number is changed all the extranet forms will not work unless they are regenerated.-->
    <add key="UniqueId" value="AZSDDEQSADD"/>
    <!-- Registered Company where the product is installed -->
    <add key="RegisteredCompany" value=""/>
    <!-- Shows version number on the title of the browser -->
    <add key="ShowVersionOnTitle" value="On"/>
    <!-- The email server name, making it empty does not send emails, The key EmailServerName
        is the primary server and will always be used to send emails. If the primary server fails
        to send email, the secondary servers EmailServerName1 and EmailServerName2 will attempt
        to send emails. These backup servers should be uncommented if needed -->
    <add key="EmailServerName" value="server=smtpauth.earthlink.net;user=officeclip@earthlink.net;password=abcd1234;port=25;timeout=90"/>
    <add key="EmailServerName1" value=""/>
    <add key="EmailServerName2" value=""/>
<!-- The email format --> 	<add key="MAILFormat" value="text"/>
    <!-- The Virtual Directory Path from where officeclip is accessed -->
    <add key="VDIRPath" value="/wap/"/>
    <!-- Whether the normal notification screen need to be shown -->
    <add key="successNotification" value="On"/>
    <!--
            Logs the messages in the windows 2000 event log, possible values are
            Off - Logging is off
            Level1 - Only errors and exceptions are logged
            Level2 - errors, exceptions and warnings are logged
            Level3 - errors, exceptions, warnings and information are logged
            On - same as Level3
         -->
    <add key="messageLogging" value="On"/>
    <!--
            Logs the login attempts in the windows 2000 event log, possible values are
            Off - Audit Logging is off
            Level1 - Only failed login attempts are logged
            Level2 - failed and successful login attempts are logged
            On - same as Level2
         -->
    <add key="auditLogging" value="Off"/>
    <!-- Specify the date and time format used everywhere -->
    <add key="dateTimeStringFormat" value="MMM dd, yyyy hh:mm tt"/>
    <add key="timeStringFormat" value="hh:mm tt"/>
    <add key="dateStringFormat" value="MMM dd, yyyy"/>
    <!--
            This key represents the default format in which Microsoft Excel recognizes
            a string as a valid date object. The way to find it is
                1. open Excel
                2. in a blank cell type in 02/01/2002
                3. Hit ENTER Key.
            If it automatically changes to 01-Feb-02 then your locale format is actually
            dd-MMM-yy but put the extra yy in the year and keep it dd-MMM-yyyy.
            This field is being used for CSV export of data which can be viewed in Excel.
        -->
    <add key="MSXLDateStringFormat" value="dd-MMM-yyyy"/>
    <!-- Valid Tracker udf date string format. Allowed values are:
         MM/dd/yyyy, dd/MM/yyyy or yyyy/MM/dd with '-' or '/' or '.' as delimiter -->
    <add key="TrackerUdfDateStringFormat" value="MM/dd/yyyy"/>
    <!-- Set the culture for Resources -->
    <add key="resourceCulture" value="en-US"/>
    <!-- Enter the password strength for creating the new password.
    The value is separated by semicolon. The first element is the minimum number of characters
    in the password, the second expression is the minimum number of non-alphanumeric characters
    in the password and the last element is the regular expression for the password. Note that you
    cannot put ; as a part of the regular expression. An empty value denotes that no password strength
    is enforced. All values are not required but the values should be put in the order specified. i.e.
    you cannot put the third value without putting the first and second value. -->
    <add key="passwordStrength" value="5;1;"/>
    <!-- Provides the email address for the support personnel -->
    <add key="supportEmailAddress" value="ocsupport@officeclip.com"/>
<!-- Provides the email address for the site administrator
 --> 	<add key="adminEmailAddress" value="octest1@officeclip.com"/>
    <!-- Provides the email address for the second level support, this could be the partner
        email address or OfficeClip's support email address -->
    <add key="ocEmailAddress" value="ocsupport@officeclip.com"/>
    <!-- Flag to indicate whether this is a Box Version (On/Off) -->
    <add key="boxVersion" value="On"/>
    <!-- This is where the custom pages are stored. It is advised that all custom
        files should be stored in the custom folder (and project) in a similar directory
        structure as that of officeclip. The value here is relative to the App_Data folder -->
    <add key="customXML" value="custom/custom.xml"/>
    <!-- Enables or Disables the crystal report on the installed machine. This is useful if
        the crystal reports is not installed where the officeclip server is running -->
    <add key="crystalReportsAvailable" value="On"/>
    <!-- Activates or deactivates the OCReminder Service -->
    <add key="reminderActivated" value="On"/>
    <!-- Guard for misusing the demo account in officeclip.com. The value is
        the group id of the demo group, the value of -1 disables it -->
    <add key="demoGuard" value="-1"/>
    <!-- Whether the bulk upload is allowed on documents, For bulk upload to work, this key need to be set. Also,
        it is only available to the administrator of a group when he/she logs in the server. It cannot be run from
        the remote machine. -->
    <add key="AllowBulkUpload" value="On"/>
    <!-- Shows the track time button in some applications that can be used to track time required to do certain
        events. These times are then linked with time and expense reporting system
        The Values are:
            Off - Track Time feature is disabled
            On - Track Time feature is enabled with no restriction
            Restricted - Track time feature is enabled, but an user (except administrators) cannot see other user's information-->
    <add key="ShowTracktime" value="Restricted"/>
    <!-- Activates integration with LDAP Server. If there is value specified
        for this key, then the value for the next key i.e. LDAPAdminAccount
        must be specified for the whole integration to work properly.
        The Format of this key is

            server=<ServerName>;account=<AccountName>;authtype=<AuthenticationType>;userdn=<UserDN>
            example : "server=officeclip.net;account=administrator"

        <ServerName> is the either the hostname or the ip address of the ldap server (Mandatory).
        <AccountName> is the account name of the OfficeClip site administrator on the ldap server
                      similar to adminEmailAddress above (Mandatory).
        <AuthenticationType> is the authentication type supported by the LDAP Server. Default is Secure (Optional).
                        Possible values for AuthenticationType are
                        0   = None
                        1   = Secure (Default)
                        2   = SecureSocketsLayer
                        4   = ReadonlyServer
                        16  = Anonymous
                        64  = Signing
                        32  = FastBind
                        128 = Sealing
                        256 = Delegation
                        512 = ServerBind
                        Choose appropriate numeric value based on what kind of authentication is enabled on your server.
        <UserDN> is the base distinguished name. For example "o=Officeclip, dc=OfficeClip, dc=net" (Optional).
        -->
    <add key="LDAPAuthenticationString" value=""/>
    <!-- If the disk space quota is enabled, this key determines
             how much amout of disk space (in MB) to be allocated for each account -->
    <add key="diskSpaceQuota" value="100"/>
    <!-- Set the additional account disk space (MB) increment in document management -->
    <add key="docAccountDiskSpace" value="50"/>
    <!-- Include spell checker to check the spelling -->
    <add key="SpellCheckerAvailable" value="On"/>
    <!-- Introduce a delay before sending each emails, this is done because some smtp provider (like earthlink)
        will not allow many emails to be sent quickly. This value introduces an artificial wait between sending
        each emails. The unit is in milliseconds. -->
    <add key="WaitBetweenSendMail" value="1000"/>
    <!-- The javascript new window paramenter when the login screen opens up on a new window.
    The value can either be Off (Login on the same window) or the javascript parameter string.
    -->
    <add key="LoginPopupParameters" value="scrollbars=1,resizable=1,toolbar=0,location=0,directories=0,menubar=0,status=1"/>
    <add key="BusyIconActivate" value="on"/>
    <add key="ShowQuickHelp" value="on"/>
    <add key="OfficeClipWebsite" value="http://www.officeclipbeta.com"/>
    <!-- OCReminder Service callback period in minutes -->
    <add key="reminderTimeSpan" value="5"/>
 </appSettings>

 <system.diagnostics>
    <assert assertuienabled="true"/>
    <trace autoflush="true" indentsize="2">
     <listeners>
     </listeners>
    </trace>
    <switches>
     <add name="FunctionCall" value="0"/>
     <add name="Debug" value="0"/>
     <add name="AssertFail" value="0"/>
    </switches>
 </system.diagnostics>

 <location path="systemTest.aspx">
    <system.web>
     <authorization>
        <allow users="*" />
     </authorization>
    </system.web>
 </location>

 <location path="PreCompile.aspx">
    <system.web>
     <authorization>
        <allow users="*" />
     </authorization>
    </system.web>
 </location>

 <location path="newsite.aspx">
    <system.web>
     <authorization>
        <allow users="*" />
     </authorization>
    </system.web>
 </location>

 <system.web>
    <httpHandlers>
     <add verb="GET" path="CrystalImageHandler.aspx"
        type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web,
        Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
    </httpHandlers>
    <pages theme="Default"/>
    <!--<httpModules>
     <add name="ChangeTheme" type="OfficeClip.HttpHandlers.ChangeTheme, OfficeClip"/>
    </httpModules>-->
    <authentication mode="Forms">
     <forms name="aspxauth" loginUrl="default.aspx" protection="All" timeout="9000" path="/"
             requireSSL="false" slidingExpiration="true"
             cookieless="UseCookies" enableCrossAppRedirects="false" />
    </authentication>
    <trace enabled="true" />
    <sessionState mode="InProc"
        cookieless="false" timeout="9000"/>
    <authorization>
     <deny users="?"/>
    </authorization>
    <compilation debug="true">
     <assemblies>
        <add assembly="System.Security, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
        <add assembly="System.DirectoryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
        <add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        <add assembly="System.Configuration.Install, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
        <add assembly="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=8.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
        <add assembly="Microsoft.VisualStudio.QualityTools.Resource, Version=8.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
     </assemblies>
    </compilation>
    <customErrors mode="RemoteOnly" defaultRedirect="general/errors/generic.aspx">
     <error statusCode="300" redirect="general/errors/300.aspx"/>
     <error statusCode="305" redirect="general/errors/305.aspx"/>
     <error statusCode="400" redirect="general/errors/400.aspx"/>
     <error statusCode="401" redirect="general/errors/401.aspx"/>
     <error statusCode="404" redirect="general/errors/404.aspx"/>
     <error statusCode="405" redirect="general/errors/405.aspx"/>
     <error statusCode="406" redirect="general/errors/406.aspx"/>
     <error statusCode="407" redirect="general/errors/407.aspx"/>
     <error statusCode="408" redirect="general/errors/408.aspx"/>
     <error statusCode="409" redirect="general/errors/409.aspx"/>
     <error statusCode="410" redirect="general/errors/410.aspx"/>
     <error statusCode="411" redirect="general/errors/411.aspx"/>
     <error statusCode="412" redirect="general/errors/412.aspx"/>
     <error statusCode="413" redirect="general/errors/413.aspx"/>
     <error statusCode="414" redirect="general/errors/414.aspx"/>
     <error statusCode="415" redirect="general/errors/415.aspx"/>
     <error statusCode="416" redirect="general/errors/416.aspx"/>
     <error statusCode="417" redirect="general/errors/417.aspx"/>
     <error statusCode="500" redirect="general/errors/500.aspx"/>
     <error statusCode="501" redirect="general/errors/501.aspx"/>
     <error statusCode="502" redirect="general/errors/502.aspx"/>
     <error statusCode="503" redirect="general/errors/503.aspx"/>
     <error statusCode="504" redirect="general/errors/504.aspx"/>
     <error statusCode="505" redirect="general/errors/505.aspx"/>
    </customErrors>
    <!--  GLOBALIZATION This section sets the globalization settings of the application. -->
    <globalization culture="auto" uiCulture="auto"  requestEncoding="utf-8" responseEncoding="utf-8"/>
    <!-- FULLY QUALIFY URL FOR CLIENT REDIRECTS
            Some mobile devices require that the URL for client redirects be fully qualified. -->
    <httpRuntime useFullyQualifiedRedirectUrl="true" maxRequestLength="81920" executionTimeout="1200"/>
    <webParts>
     <personalization defaultProvider="OfficeClipPersonalizationProvider">
        <providers>
         <add name="OfficeClipPersonalizationProvider"
             type="OfficeClip.Service.Provider.OcPersonalizationProvider, OfficeClip.Service"/>
        </providers>
        <authorization>
         <allow verbs="enterSharedScope" users="*"/>
        </authorization>
     </personalization>
    </webParts>
 </system.web>
</configuration>


Level 1 - Homepage

Home Page

The Homepage is the first page that the user gets access to upon login into OfficeClip. It consists of a set of portlets which either contains summary of existing applications, or a new application. OfficeClip users can organize portlets. The content of some of the portlets can also be modified by changing the XML files.

Following are the XML files available for modification,
  • businesscenter.xml - Specifies the content of the business center portlet
  • news.xml - Specifies the news portlet
  • officeclippicks.xml - Specifies the OfficeClip Picks portlet.


Level 1 - Business Center

Business Center
File: ~/APP_DATA/OfficePortal/businesscenter.xml

The Business Center portlet in OfficeClip consists of various categories with links in each of them, The name of each category, their links and description are specified in the xml file. Also the title, url and description of each link can be changed.

Following are the attributes for the categories:

  • id - This is a unique number and starts from 100
  • name - The name of the category
  • column - Determines which column of the table this category is shown. This is valid only if the categories are shown in multiple columns
  • active - Determines whether the category is enabled. If the category is disabled, the category and the associated links are not shown. Valid values are "Y" and "N"

For each category, there are multiple links. These links are displayed when the category is clicked on the home page. The user can then click on the appropriate link to visit the page he/she wants. Following are the attributes for the links:

  • id - The unique id of the link. id should be unique across the whole xml file (also across categories)
  • url - The address of the page which is visited when somebody clicks on the link
  • title - The text of the link which is shown on the link page
  • desc - The description of the link which appears next to the title

<?xml version="1.0" encoding="utf-8"?>
 <businessCenter>
  <category id="110" name="Legal" column="1" active="Y">
   <link id="1" url="http://www.prepaidlegal.com/" title="Pre-paid Legal Services" desc=": Pre-paid Legal Services" />
   <link id="2" url="http://www.abanet.org/buslaw/" title="Business Law" desc=": American Bar Association" />
   <link id="3" url="http://www.copyright.com" title="Copyright Clearance Center" desc=": Licenser of photocopy reproduction rights and distribution of copyrighted materials" />
  </category
 </businessCenter>


Level 1 - OfficeClip Picks

OfficeClip Picks
File: ~/APP_DATA/officeportal/officeclippicks.xml

officeclipPicks.xml defines the text and links for the portlet called OfficeClip Picks. Following are the officeclipPicks attributes:

  • description - The text of the pick which is shown on the screen
  • url - The web address that is visited when an user clicks on the link on this portlet
  • active - Determines whether the portlet is enabled or not, valid values are "Y" and "N"

<?xml version="1.0" encoding="utf-8" ?>
 <OffieClipPicks>
  <pick description="World's greatest search engine" url="http://www.google.com" active="Y" />
  <pick description="OfficeClip-In-A-Box pricing" url="http://www.officeclip.com/web/products3new.html" active="Y" />
 </OffieClipPicks>


Level 1 - News

News
File: ~/APP_DATA/homepage/rsscontent.xml

The news portlet has links to various news websites. These links are specified in the news.xml file. The attributes of this XML file are,

  • Name - The name of the news link which appears on the news portlet.
  • Url - The address of the news website visited when the user clicks on the link.

<News xmlns="http://tempuri.org/news.xsd">
 <NewsItem>
  <Name>CNN</Name>
  <Url><![CDATA[http://www.cnn.com/]]></Url>
 </NewsItem>
 <NewsItem>
  <Name>MSNBC</Name>
  <Url><![CDATA[http://www.msnbc.com/]]></Url>
 </NewsItem>
 <NewsItem>
  <Name>Washington Post</Name>
  <Url><![CDATA[http://www.washingtonpost.com/]]></Url>
 </NewsItem>
 <NewsItem>
  <Name>ABC News</Name>
  <Url><![CDATA[http://abcnews.go.com/]]></Url>
 </NewsItem>
</News>


Level 1 - Password Combination

Password Combination
File: ~/APP_DATA/passwordCombination.xml

The passwordCombination.xml file consists of a set of nouns and adjectives which are randomly combined to create a new password

  • when the user forgets the password
  • when the administrator resets a user's password
  • when a new user is invited to the system.
    • The nouns and adjectives are merely combined and not interpreted in any way. The site administrator can change these values to fit his or her own needs. For example if the generated password is expected to be a word followed by some numbers, then replace all the adjectives with the random numerical values.

    <?xml version="1.0" encoding="utf-8" ?>
     <passwordCombination>
      <nouns>
       <noun value="car"/>
       <noun value="dog"/>
      </nouns>
      <adjectives>
       <adjective value="hot"/>
       <adjective value="cold"/>
      </adjectives>
     </passwordCombination>


Level 1 - Tracker

Tracker
File: ~/APP_DATA/tracker/tracker.xml

The file tracker.xml customizes parameters for various tracker binders. This file can be used to modify an existing binder type or create a new binder type. Once the binder is created using this template, it can be changed by using the tracker administrator. Each binder types has the following attributes:

  • Type - The type of the project, some of the predefined types are General Tracking, Software Defect Tracking, Sales Tracking, Patient Tracking, Workman's Comp Claims Tracking, HR Candidate Tracking and Group ToDo List
  • CaseListRows - Number of lines in a page to be shown in the case list screen
  • CaseNamingScheme - The naming scheme of the case number, the case name can be one of two types, a fixed two (or three) letter character or the user initial. This is followed by a unique number provided by OfficeClip.
  • CaseNamingPrefix - If the CaseNamingScheme is Fixed, then this field will carry the fixed alphabets which will be used for the case naming
  • HelpPopupPath - The relative path of the help popup screen for this binder. OfficeClip has created help files for all its default binder. These help files are available to the group administrators when they create a binder
  • CaseId - The case number which consists of
    • Name - The Name of the Case Number. this name is displayed on the screen
  • List - These are various lists in the tracker, these lists are also called fixed fields, the attributes for these lists are,
    • type - The type of the list, valid values are Status, Criticality, Category and Kind
    • Name - The name of this field which shows up on the tracker screen
    • ColumnSelect - Determines if this column is selected to be shown in the case list screen, valid values are "Y" or "N"
    • Sorted - Determines if the listvalues are sorted when they show up on the screen
    • ListValue - This contains the values of the combo box which shows up on the tracker screen, various attributes are:
      • Name - The name of the list value
      • Days - The number of days after which the case becomes critical (this attribute is only valid for criticality)
  • CreatedBy - The name of the user who created this case, valid values are:
    • Name - The name which is displayed on the screen
    • ColumnSelect - Whether this column will be selected to be shown on the case list screen
  • CreatedDate - The date on which this case is created, valid values are:
    • Name - The name which is displayed on the screen
    • ColumnSelect - Whether this column will be selected to be shown on the case list screen
  • ModifiedBy - The name of the user who last modified this case, valid values are:
    • Name - The name which is displayed on the screen
    • ColumnSelect - Whether this column will be selected to be shown on the case list screen
  • ModifiedDate - The date on which this case is modified, valid values are:
    • Name - The name which is displayed on the screen
    • ColumnSelect - Whether this column will be selected to be shown on the case list screen
  • Title - The Title of the case, valid values are:
    • Name - The name which is displayed on the screen
  • Description - The Description of the case, valid values are:
    • Name - The name which is displayed on the screen
  • Resolution - The Resolution of the case, valid values are:
    • Name - The name which is displayed on the screen
  • Comments - The Comments of the case, valid values are:
    • Name - The name which is displayed on the screen
  • udfs - A list of all the user defined field (udf) values, this consists a set of udfs, each udf has the following attributes
    • Name - The name of the udf
    • Type - The type of the udf, udf can be of the following types, Text, User, Email, Date and List (List has List Values as attributes)
    • ColumnSelect - Whether this column will be selected to be shown on the case list screen
    • Sorted - If this udf elements are sorted on the screen (only valid for List Type udfs). This can only have "Y" or "N" as valid values

An example of one of the project templates is shown below:

<Projects xmlns="http://tempuri.org/tracker.xsd">
<Project Type="General Tracking" CaseListRows="30" CaseNamingScheme="Initials" CaseNamingPrefix="" HelpPopUpPath="docs/help/help_popup/trackertypegeneral.html">
<CaseId Name="Case id" />
<List type="Status" Name="Status" ColumnSelect="Y" Sorted="N">
<ListValue Name="Open" Default="Y" />
<ListValue Name="Closed" />
<ListValue Name="Resolved" />
</List>
<List type="Criticality" Name="Criticality" ColumnSelect="N" Sorted="N">
<ListValue Name="Low" Days="10" />
<ListValue Name="Medium" Days="5" Default="Y" />
<ListValue Name="High" Days="1" />
</List>
<List type="Category" Name="Category" ColumnSelect="N" Sorted="N">
</List>
<List type="Kind" Name="Kind" ColumnSelect="N" Sorted="N">
</List>
<CreatedBy Name="Created By" ColumnSelect="Y" />
<CreatedDate Name="Created Date" ColumnSelect="Y" />
<ModifiedBy Name="Modified By" ColumnSelect="N" />
<ModifiedDate Name="Modified Date" ColumnSelect="N" />
<Title Name="Title" />
<Description Name="Description" />
<Resolution Name="Resolution" />
<Comments name="Comments" />
<Udfs>
<Udf Name="Assigned To" Type="User" ColumnSelect="N" Sorted="N" />
</Udfs>
</Project>


Level 1 - Time and Expenses

Time and Expenses
File: ~/APP_DATA/te/expenseTypes.xml

The expenseTypes.xml determines various expense types that are supported in the expense report. Following are the attributes:

  • ExpenseTypeId - A unique expense id
  • Category - The category of the expense, some of the valid types are AIRTRAVEL, HOTEL, AUTORENTAL, TAXI, TELEPHONE, OTHER
  • Name - The name of the expense type. This is displayed in OfficeClip Expense application.
  • Active - Determines whether the expense type is enabled. Valid values are either "Y" or "N"

Note: Do not modify the first five values in this file, these are the constants used in OfficeClip

<ExpenseTypes xmlns="http://tempuri.org/expenseTypes.xsd"><
 <ExpenseType ExpenseTypeId="1" Category="AIRTRAVEL" Name="Air Travel" Active="Y" /><
 <ExpenseType ExpenseTypeId="2" Category="HOTEL" Name="Hotel" Active="Y" /><
 <ExpenseType ExpenseTypeId="3" Category="AUTORENTAL" Name="Auto Rental" Active="Y" /><
 <ExpenseType ExpenseTypeId="4" Category="TAXI" Name="Taxi" Active="Y" /><
 <ExpenseType ExpenseTypeId="5" Category="TELEPHONE" Name="Telephone" Active="Y" /><
 <ExpenseType ExpenseTypeId="6" Category="OTHER" Name="Parking" Active="Y" /><
 <ExpenseType ExpenseTypeId="7" Category="OTHER" Name="Tolls" Active="Y" /><
 <ExpenseType ExpenseTypeId="8" Category="OTHER" Name="Car Mileage" Active="Y" /><
 <ExpenseType ExpenseTypeId="9" Category="OTHER" Name="Gas" Active="Y" /><
 <ExpenseType ExpenseTypeId="10" Category="OTHER" Name="Food" Active="Y" /><
 <ExpenseType ExpenseTypeId="11" Category="OTHER" Name="Supplies" Active="Y" /><
 <ExpenseType ExpenseTypeId="12" Category="OTHER" Name="Entertainment" Active="Y" /><
 <ExpenseType ExpenseTypeId="13" Category="OTHER" Name="Others" Active="Y" /><
</ExpenseTypes>


Level 2 - Web Services

Developer API

OfficeClip Web Services allows developers to use web services to exchange information with OfficeClip.

Note: The web services api is available as a separate document. For detail please consult the OfficeClip Developer Site.


Level 3 - Developer API

Developer API

OfficeClip developer API allows developers to use internal APIs to make changes to how OfficeClip works.

Note: The developer api is available as a separate document. For detail please consult the OfficeClip Developer Site.


Customizing Reports

OfficeClip uses Crystal Reports.Net runtime to display all its reports. The reports file has .rpt extension and is placed in various directories in the resources folder under the root directory of OfficeClip.

OfficeClip also provides ability to create quick reports using the OfficeClip's internal report generator. Currently this generator has limited scope and can only create reports a one level of grouping.

All the OfficeClip reports are configured using an XML file called reports.xml (located at the ~/resources/reports directory). This file can be customized by the site administrator to modify report sql and other parameters. Reports can also be selectively switched on for a particular group or set of groups.

Note: The version of crystal reports bundled with OfficeClip has limited licenses. For more information on how to buy additional licenses, please contact Business Objects. OfficeClip internal reports can be used instead of Crystal reports for creating simple reports.


Reports - Introduction

Introduction to Reports

Crystal Reports.Net is used to create and render reports in OfficeClip. The reports file (.rpt) files are created using the crystal reports designer (Most of the bundled reports are created using the crystal reports designer in Visual Studio.Net). Ado.Net dataset is used to link the reports with the dataset generated by the program. Following applications use reports in OfficeClip,

  • Tracker - Reports on statistical information
  • Time and Expenses - Administrative Reports

The datasets are stored in the schema file (.xsd extension). While modifying existing reports or creating new reports, care must be exercised so that the columns in the dataset and the columns in the reports exactly match.

Note: It is a good practice to give different names to the dataset (schema) and the report (.rpt) files. The .Net runtime framework generates another file with .xsx extension corresponding to each of these (schema & rpt) and one may override the other.

Given below is an example of the reports.xml file that can be used to create a crystal report and an OfficeClip report.

<?xml version="1.0" encoding="utf-8" ?>
 <reports>
  <report id="1" path="resources/reports/teadmin/" name="TasksR.rpt" program="te/reports/reportTasks.aspx" dataset="TasksD" category="teadmin">
   <title> Task Report    </title>
   <description> Displays the employee's name, job/client, and total hours tasks.    </description>
   <col1> Employee Name    </col1>
   <col2> Task Name    </col2>
   <col3> Number Of Hours    </col3>
   <sql>
<![CDATA[ select u.last_name+', '+u.first_name as 'Employee Name', tt.task_name as 'Task Name', sum(td.time_duration) as 'Number Of Hours' from timesheetdetails td, timesheets t, timesheettasks tt, users u where t.user_id = u.user_id and t.timesheet_id = td.timesheet_id and t.timesheet_template_id = tt.timesheet_template_id and t.group_id = :groupId and td.task_id = tt.task_id and tt.task_name like (':arg3') and td.task_date >
= convert (datetime, ':arg1', 101) and td.task_date <= convert (datetime, ':arg2', 101) group by u.last_name+', '+u.first_name, tt.task_name order by 'Employee Name', 'Task Name' ]]>
   </sql>
  </report>

  <report id="1004" path="custom/customer/teMonthlyReport/teMonthly/" name="monthly.xml" program="custom/customer/teMonthlyReport/reportCriteria.aspx" dataset="teMonthly" category="teMonthly">
   <title> Time Card Listing    </title>
   <description> Provides the cummalitive report for Time and Expenses    </description>
   <GroupPermission value="-1" />
   <sql>
<![CDATA[ select ISNULL(c.name, '***') as Client, ISNULL(p.name, '***') as Project, convert(char(10),td.task_date,101) as TaskDate, tt.task_name as TaskName, td.time_duration as Hours, td.description as Description from users u, timesheets t, timesheettasks tt, timesheetdetails td left outer join projects p on td.project_id = p.project_id left outer join customers c on td.customer_id = c.customer_id where t.user_id = u.user_id and u.user_id = :arg1 and t.timesheet_template_id = tt.timesheet_template_id and tt.task_id = td.task_id and t.group_id = :arg2 and td.timesheet_id = t.timesheet_id and td.task_date >
= convert (datetime, ':arg3', 101) and td.task_date <= convert (datetime, ':arg4', 101) order by td.task_date ]]>
   </sql>
  </report>
 </reports>

The first report is an OfficeClip internal report that is created using the Crystal report and the second report is a client report that is created using the OfficeClip internal report generator.The report id from 1-999 is reserved for OfficeClip reports, user report can be created from 1000 and upwards. Following are the explanation of the fields for the reports.xml file.

  1. id - The id of the report (this value should be greater than 999 for custom reports).
  2. path - The relative location where the report file is stored.
  3. name - The name of the report file, currently all names that has extension as rpt is considered as a crystal report and all files that ends with xml is considered to be using the OfficeClip report engine.
  4. program - The filter program that provides the filter condition of the report. Currently this file is an aspx file that needs to be created.
  5. dataset - The dataset schema that returns the data from the database. This is required for crystal reports as the reports are generated using the ado.net dataset. This file also resides in the same directory as the respective report.
  6. title - The title of the report. The title appears on all the report pages.
  7. description - The description of the report, the description appears in the first page where the report is selected.
  8. col1 - The first column of the report. If this is present then the first column name will be replaced by this.
  9. col2 - The second column of the report. If this is present then the first column name will be replaced by this.
  10. col3 - The third column of the report. If this is present then the first column name will be replaced by this
  11. sql - The sql query for the report, note that this sql statement can pass arguments by specifying :groupId, :arg1, :arg2 and :arg3 parameters. These parameters whould be defined in the program specified in the program field as given above.

In the second report above, An xml file is specified as the report file. This file describes the layout of the report for all reports generated through the OfficeClip report generator. The specification of the file is shown below:

<?xml version="1.0" encoding="utf-8" ?>
 <Layout>
 <ColumnSelect>
  <Column cid="0" name="Client"/>
  <Column cid="1" name="Project"/>
  <Column cid="2" name="Date"/>
  <Column cid="3" name="Activity"/>
  <Column cid="4" name="Duration"/>
  <Column cid="5" name="Description"/>
 </ColumnSelect>
 <GroupColumn value="0" />
 <Total Columns="4" ShowGroupTotals="Y" />
 </Layout>


Reports - Tracker

Tracker Reports
File: ~/APP_DATA/tracker/statisticalReport.rpt, ~/resources/tracker/statisticalReport.xsd

Tracker uses the reporting module to show the statistical reports pie chart of case distribution. Please see the files mentioned above to customize this report.


Reports - Time & Expenses

Time and Expenses Reports
File: ~/APP_DATA/reports/reports.xml

The time and expenses reports are a part of the OfficeClip reports framework which is managed by the file reports.xml. Following are the attributes for this file.

  • id - The unique identifier for the report
  • path - The path from the OfficeClip root where the report file resides
  • name - The name of the report file.
  • program - The name of the aspx program which runs the report.
  • dataset - The dataset name of the report. The dataset file should reside inthe same directory
  • title - The title of the report - This shows up in the screen
  • description - The description of the report. This shows up on the screen
  • col1 - The first column
  • col2 - The second column
  • col3 - The third column
  • sql - The sql statement


Customize Locale

OfficeClip supports multiple locales. The default in OfficeClip is US english. OfficeClip provides tools to create multiple predefined locales and also user-defined locale.

Note: Customizing locale is a part of the OfficeClip developer's toolkit. Please contact OfficeClip for details.


Customize Stylesheets

Like many other web based applications, OfficeClip uses customized stylesheets to adjust the look and feel on the screens. However, in OfficeClip, the stylesheets are not the only parameters which control the look and feel. There are various resources in the themes which participate to create a balanced look and feel for OfficeClip.


Customize Email Template

Customize Email Templates

All emails that are sent out of OfficeClip use a corresponding template. There are many predetermined sets of OfficeClip templates which are used to send emails. These templates are in various text files that can be easily changed to customize emails.

The format of the emails can be either text or html. The format can be changed via the key EMAILFormat in the AppSettings section of the Web.Config file as shown below.

<add key="MAILFormat" value="text" />


Email Templates - Text

Text Email Templates
File: ~/resources/templates/mail/text/*.txt

The text email templates are used to send text emails out of OfficeClip. Following are the various text email templates,

  • announcecreation.txt - Email the creation of announcement to the group.
  • announceedit.txt - Email to let the group know that an announcement has been edited
  • createanothergroup.txt - Email when a group is created from within OfficeClip.
  • creatinggroupwithregistration.txt - Email when a group is created from the registration page.
  • default.txt - Default emails, is used when no template is specified.
  • emailaliasenb.txt - Email when and email alias is activated.
  • exptimeapprej.txt - Email to the member when the timesheet ot expense report is rejected.
  • exptimesub.txt - Email when a new timesheet or expense report is sent for approval.
  • forgotpassword.txt - Email with the new password when the forgot password is clicked and a new password requested.
  • giveaccesstodocwithcode.txt - Email when a password protected document is given shared access to an external user.
  • giveaccesstodocwithoutcode.txt - Email when a non password protected document is given shared access to an external user
  • givefeedback.txt - Email when somebody sends a OfficeClip feedback using the feedback link.
  • grantadminprivilege.txt - Email when the administrative previlege is granted to an user.
  • informdisabledalias.txt - Email when an email alias is disabled
  • informenabledalias.txt - Email when an email alias is enabled.
  • informwhenforumisedited.txt - Email user when a bulletin board forum is edited.
  • invitealreadyregisteredmemberingroup.txt - Email when an already registered member is invited to a group.
  • invitealreadyregisteredmemberingroupldap.txt - Email when an already registered member is invited to a group. This is used when the ldap authentication is enabled.
  • invitenewmeetingextmem.txt - Email for a new meeting notice to an external member.
  • invitenewmeetingocmem.txt - Email for a new meeting notice to an OfficeClip member.
  • invitenewmemberingroup.txt - Email when a new member is invited to a group.
  • invitenewmemberingroupldap.txt - Email when a new member is invited to a group. This is used when ldap authentication is enabled.
  • inviteoldmembersinnewgroup.txt - Email when an old member is invited to a new group.
  • invitetobecomeassociategroup.txt - Email to become an associate member. Not currently used
  • mailinv.txt - Email when an invitation is rejected
  • mypendinv1.txt - Email for rejection of pending invitation.
  • mypendinv2.txt - Email for acceptance of the pending invitation.
  • newfrm.txt - Email for creation of a new forum.
  • newtpc.txt - Email for creation of a new topic.
  • notifycancelinvitation.txt - Email notifying the group members that a group event has been cancelled.
  • notifygroupremoval.txt - Email to an user when he/she is removed from the group.
  • notifymeetingchangeextmem.txt - Email notification of a meeting change to an external user.
  • notifymeetingchangeocmem.txt - Email notification of meeting change to OfficeClip member.
  • notifymemremovalmeeting.txt - Email notifying that a member is removed from the meeting.
  • notifynewforumcreation.txt - Email notifying the creation of the new forum.
  • notifynewgroupevent.txt - Email notifying the creation of a new group event.
  • notifynewtopiccreation.txt Email notifying the creation of a new topic.
  • notifyrepeatingeventcancellation.txt - Email notifying the cancellation of a new event.
  • notifyreplyposted.txt - Email notifying that a reply is posted to a topic.
  • notifyresetpassword.txt - Email with the new password when a password is reset by the administrator.
  • notifysubmittedTorE.txt - Email notifying the submission of the Time and Expense reporting
  • notifyTEapprovalorrejection.txt - Email notifying the Time and Expenses approval or rejection
  • notifyupdategroupevent.txt - Email notifying the update of a group event
  • notifyuserdetailinfoupdate.txt - Email notifying that the user detail is updated by the administrator.
  • parsertab1.txt - Email notifying joining the OfficeClip organization.
  • parsertab2.txt - Email notifying joining the OfficeClip organization.
  • parsertab3.txt - Email notifying joining the OfficeClip organization.
  • parsertab4.txt - Email notifying joining the OfficeClip organization.
  • pendinv.txt - Email notifying the pending invitation.
  • pollcreation.txt - Email notification of poll creation.
  • promote.txt - OfficeClip promotion notification. Not currently used
  • promotion.txt - OfficeClip promotion notification. Not currently used
  • reinviteimportregisteredmem.txt - Email for reinviting imported registered members to OfficeClip.
  • reinviteimportunregisteredmem.txt - Email for reinviting imported unregistered members to OfficeClip.
  • rejectinvitation.txt - Email rejecting an invitation.
  • rejectionofgroupinvitation.txt - Email rejecting a group invitation.
  • requestactiononpendinvinvitation.txt - Email requesting action on pending invitation.
  • requestdocstoragespace.txt - Email requesting document storage space.
  • requestevent.txt - Email requesting a new event.
  • resetpasswd.txt - Email notifying the reset of the password.
  • revokeadminprivilege.txt - Email revoking administrative privilege.
  • saleconfirmationcc.txt - Email for OfficeClip sales confirmation.
  • saleconfirmationpo.txt - Email for OfficeClip sales confirmation purchase order.
  • salenoticetoadmin.txt - Email for a sale notice to the administrator.
  • sendadminguide.txt - Email sending the admnistrator guide to the newly created administrator.
  • suggest.txt - Email when the user sends a suggestion to the OfficeClip administrator.
  • support.txt - Email when a support request is made by clicking on the support link in OfficeCLip.
  • userdet.txt - Email when the user detail is modiified.

Note: The email templates can also be adjusted via the OfficeClip Enterprise Manager (OEM). Also, to avoid sending emails for an event, remove the subject and body of the email.

SUB: A New Announcement has been created A new Announcement has been created for your group, <<UPD_GROUP_NAME>>

Title: <<UPD_ANNOUNCE_TITLE>>

Description:
<<UPD_ANNOUNCE_DESC>>

Visit OfficeClip to view your Announcement


Level 1 - Application List

Applications
File: ~/resources/applications.xml

The application.xml file contains information about all the aplications in OfficeClip. It contains the following fields:

  • id - The id of the application. All application id from 1 - 999 is reserved for OfficeClip. Third party applications should use the id number of 1000 or greater to integrate with OfficeClip.
  • url - The url (relative to the existing OfficeClip root folder) of the integrated program which gets invoked when the user clicks on the application from the menu. Absolute url cannot be used with this field.
  • text - The application name. This can show as tooltip if the application menu is a bitmap image.
  • active - Shows whether the application is currently enabled. Possible values are "Y" or "N". Site administrators can change this value to "N" to disable an application.

<?xml version="1.0" encoding="utf-8" ?>
<applications>
 <application id="1" url="calendar/calendarList.aspx" text="Calendar" active="Y"/>
 <application id="4" url="" text="Reservations" active="N"/>
 <application id="5" url="tracker/projects.aspx" text="Tracker" active="Y"/>
 <application id="6" url="reminder/reminder.aspx" text="Reminders" active="Y"/>
 <application id="7" url="te/inoutBox.aspx" text="Time and Expenses" active="Y"/>
 <application id="8" url="te/inoutBox.aspx" text="Time and Expenses" active="Y"/>
 <application id="9" url="bb/forumList.aspx" text="Bulletin Board" active="Y"/>
 <application id="10" url="docmgmt/view.aspx" text="Doc Mgmt" active="Y"/>
 <application id="13" url="officeagent/groupList.aspx" text="Office Agent" active="Y"/>
 <application id="14" url="homepage/homepage.aspx" text="Home" active="Y"/>
 <application id="15" url="alert/alertlist.aspx" text="Alerts" active="Y"/>
 <application id="16" url="poll/polllist.aspx" text="Poll" active="Y"/>
 <application id="17" url="photo/albums.aspx" text="Photos" active="Y"/>
 <application id="18" url="announcement/announcelist.aspx" text="Announcements" active="Y"/>
 <application id="19" url="email/emailList.aspx" text="Email" active="Y"/>
</applications>

The OfficeClip applications that are enabled does not depend solely upon the content of this file. Any entry with application id less than 1000 depends on if the license for a particular application is applied and if the application menu for a particular group/organization is enabled.

Note: For custom applications, specify url in this file only if the application is designed as an OfficeClip application. i.e. the application resides in the OfficeClip directory.


Level 1 - Banners

Banners

OfficeClip supports two banner types, One of them is at the top right corner and the other is at the side at the bottom left. Both the banner content and the frequency can be controlled using appropriate XML files. The top banner is usually 468 x 60 and the side banner is 125 x 125 box.

The banners uses the .Net AdRotator control to show the banners on the screen.


Level 1 - EULA

EULA
File: ~/resources/main/registrationEULA.xml

The end user license agreement is contained in the XML file registrationEULA.xml. This file contains the following attributes:

  • id - The unique id of the EULA
  • Text - The entire text of the EULA


Level 1 - Footer

Footer
File: ~/resources/footer.xml

Every OfficeClip screen contains a footer which contains information such as OfficeClip logo, copyright information etc. OfficeClip-In-A-Box users can modify the footer using this configuration file. This XML file has the following attributes:

  • separator - Determines whether the horizontal separator line between the text and the footer is present
  • logoGif - The logo which shows up in the footer. usually this logo is in the images directory
  • logoAlternateText - The alternate text for the logo gif (shown as tooltip or shown if image is not rendered for some reason
  • copyrightMessage - The copyright message which appears in the footer
  • feedbackLinkLabel - The link label for the feedback
  • feedbackUrl - The url where the control will go to when the feedback link is clicked

<?xml version="1.0" encoding="utf-8" ?>
<footerValues>
 <footer
  separator="on"
  logoGif="poweredby-white.gif"
  logoAlternateText="Powered by OfficeClip"
  logoNavigateUrl="http://www.officeclip.com/web/services.html"
  copyrightMessage="Copyright © 1999-2002 OfficeClip LLC. All Rights Reserved."
  feedbackLinkLabel="Submit Your Feedback"
  feedbackUrl="http://www.officeclip.com/web/feedback.html"
 >
 </footer>
</footerValues>


Level 1 - User Interface

User Interface

The User Interface consists of the following,

  • themes.xml - The configuration file for themes
  • footer.xml - The configuration file for the footer


Level 1 - Guides

User Guides
File: ~/resources/docs/adminGuide.html, ~/resources/docs/userGuide.html

There are two html guides (AdminGuide.html and UserGuide.html) that are sent to every new admin and a new user respectively. The User Guide is sent to a non administrator and the admin guide is sent to an administrator. Site administrators can modify these two files to send appropriate branded information to their users.


Level 1 - LDAP Template

LDAP Template
File: ~/resources/ldap.xml

This files acts as a template to initially map between the fields of an LDAP server and the fields of OfficeClip server. It is only used when users or contacts are imported to LDAP. It is not intended to be modified by the developer as the OfficeClip framework provides an interface to modify it while importing the LDAP information.


Level 1 - Office Agent

Office Agent
File: ~/resources/officeagent/grouplist.xml

The xml file grouplist.xml determines how the Office Agent screen is rendered. Each attribute in this file corresponds to a field in the user detail information stored in Office Agent application. The Show attribute determines whether the column will be displayed on the Office Agent group list screen. It can either be "On" and "Off". Following are the columns of this file:

  • Email - The email address, this is a mandatory field on the grouplist screen and cannot be set to show=Off
  • Name - The name is a mandatory field on the grouplist screen and cannot be set to show=Off
  • WorkTitle - The work title
  • WorkAddress - The Work Address
  • PagerDetail - The Pager Detail file
  • WorkPhonePrimary - The promary work phone
  • WorkPhoneSecondary - The secondary work phone
  • FaxNumber - The Fax Number
  • HomePhone - The Home Phone
  • OtherPhone - The other phone
  • CellPhone - The Cellular Phone
  • PreferredPhone -Tthe Preferred Phone
  • BirthDate - The Date of Birth
  • Organization - The Organization Name
  • Location - The Location
  • NumberOfRows - Shows the number of rows of user that are displayed on the screen

<OfficeAgent>
 <GroupList>
  <Email />
  <Name />
  <WorkTitle show="On" />
  <WorkAddress show="On" />
  <HomeAddress show="Off" />
  <PagerDetails show="Off" />
  <WorkPhonePrimary show="On" />
  <WorkPhoneSecondary show="Off" />
  <FaxNumber show="Off" />
  <HomePhone show="Off" />
  <OtherPhone show="Off" />
  <CellPhone show="Off" />
  <PreferredPhone show="On" />
  <BirthDate show="Off" />
  <Organization show="Off" />
  <Location show="Off" />
 </GroupList>
 <NumberOfRows value="20" />
</OfficeAgent>


Level 1 - Portlets

Portlets
File: ~/resources/homepage/portlets.xml

Portlets.xml holds various attributes of the OfficeClip portlets. All portlets with id 1-999 are reserved by OfficeClip. Portlets can also be created by the site administrator. Following are the attributes of the OffieClip portlets

  • id - The unique id of the portlets, OfficeClip reserves the portlet id 1-999 for its own portlets. The id for user defined portlet starts from 1000
    • .
  • file - The portlet definition file. This file contains the code to render the portlet
  • defaultName - The name of the portlet that is shown on the screen the first time. OfficeClip group administrators can change the portlet configuration of the portlets. The configuration of each group and each portlet is stored in the database.
  • locked - Determines whether the group administrators are allowed to change the portlet name
  • active - Determines whether the portlet is disabled or not. Valid values are "Y" and "N"

<?xml version="1.0" encoding="utf-8" ?>
 <portlets>
  <portlet id="1" file="homepage/whatsnew.ascx" defaultName="What's New" locked="N" active="Y"/>
  <portlet id="2" file="homepage/upcomingevents.ascx" defaultName="Upcoming Events" locked="N" active="Y"/>
  <portlet id="3" file="homepage/groupBookmarks.ascx" defaultName="Group Bookmarks" locked="Y" active="Y"/>
  <portlet id="4" file="homepage/personalLinks.ascx" defaultName="Personal Links" locked="N" active="Y"/>
  <portlet id="5" file="homepage/news.ascx" defaultName="News" locked="N" active="Y"/>
  <portlet id="6" file="homepage/businesspicks.ascx" defaultName="Business Picks" locked="N" active="Y"/>
  <portlet id="7" file="homepage/search.ascx" defaultName="Search" locked="N" active="Y"/>
  <portlet id="8" file="homepage/businesscenter.ascx" defaultName="Business Center" locked="N" active="Y"/>
  <portlet id="9" file="homepage/activatepageme.ascx" defaultName="Activate PageMe" locked="N" active="Y"/>
  <portlet id="10" file="homepage/weather.ascx" defaultName="Weather" locked="N" active="Y"/>
  <portlet id="11" file="homepage/polls.ascx" defaultName="Polls" locked="N" active="Y"/>
  <portlet id="12" file="homepage/announce.ascx" defaultName="Announcements" locked="N" active="Y"/>
  <portlet id="13" file="homepage/memberBusinessCards.ascx" defaultName="Member Business Card" locked="N" active="Y"/>
 </portlets>


Level 1 - Questions

Registration Questions
File: ~/resources/main/registrationQuestions.xml

The registration questions are the questions that are asked to the user when they register for the first time or login for the first time upon accepting an invitation. Each Question can have multiple choice answers. These questions appear on the screen with all the possible answers in a combo box. Following are the attributes:

  • id - The id of the question
  • value - The question to be asked to the user

The answer XML element contains the list of the answers for a particular question. An example of this file is shown below:

<Registration xmlns="http://tempuri.org/registrationQuestions.xsd">
<Question id="1" value="How did you hear about OfficeClip?">
  <Answer>From a Friend</Answer>
  <Answer>From a Colleague</Answer>
  <Answer>Search on the Web</Answer>
  <Answer>Web Ad</Answer>
  <Answer>News Report</Answer>
  <Answer>Advertisement</Answer>
</Question>
<Question id="2" value="What type of business is your group/organization in?">
  <Answer>Agriculture/Landscaping </Answer>
  <Answer>Arts and Entertainment</Answer>
  <Answer>Construction/Building</Answer>
  <Answer>Consultant/Contractor</Answer>
  <Answer>Education</Answer>
  <Answer>Financial Services</Answer>
  <Answer>Healthcare/Medicine</Answer>
  <Answer><![CDATA[Health & Fitness/Nutrition]]></Answer>
  <Answer>High Tech</Answer>
  <Answer>Hospitality</Answer>
  <Answer>Law</Answer>
  <Answer>Professional Services</Answer>
  <Answer>Public Service/Govt</Answer>
  <Answer>Sales</Answer>
  <Answer>Social Services</Answer>
  <Answer><![CDATA[Travel & Leisure]]></Answer>
  <Answer>Retail</Answer>
  <Answer>Manufacturing</Answer>
  <Answer>Maintenance/Repair</Answer>
</Question>
<Question id="3" value="What type of position do you hold?">
  <Answer>Administrative/Clerical</Answer>
  <Answer>Executive</Answer>
  <Answer>Operations</Answer>
  <Answer>Sales</Answer>
  <Answer>Customer Service</Answer>
  <Answer>Consulting</Answer>
  <Answer>Technology</Answer>
</Question>
</Registration>


Level 1 - Registration

Registration

When a new user is registered in OfficeClip, he/she has to pass though a registration screen which records information about the user. registration.xml file specifies the registration screen for the new user. Following are the various xml files that can be configured to customize the user registration:

  • registrationEULA.xml - contains the end user license agreement
  • registrationQuestions.xml - contains the registration time questions that are presented to the user


Level 1 - Side Banner

Side Banner
File: ~/resources/banners/side/ads.xml

The Side Banner is shown as a banner of size 125 x 125. This banner is implemented as the AdRotator object in the .Net framework. AdRotator uses an XML file to show the ads to the user computer. The details of the AdRotator xml file (called as Advertisement file) is explained below and it can also be read from the .Net framework manual.

The xml file used to define the banner is called ads.xml. This file has an element called Ad having the following attributes.

  • ImageUrl - The url of the image to be displayed.
  • NavigateUrl - The url of the page to navigate to when the AdRotator is Clicked
  • AlternateText - The Text to display if the image is unavailable
  • Keyword - The category for the advertisement. This is used to filter out the advertisement category.
  • Impressions - A value that shows how the advertisements are displayed with respect to other advertisements.

<?xml version="1.0" standalone="yes"?>
 <Advertisements>
  <Ad>
   <ImageUrl>tip12.png</ImageUrl>
   <NavigateUrl>~/docs/manual/d-share.html</NavigateUrl>
   <AlternateText>Did You Know? You can share a document securely?</AlternateText>
   <Impressions>80</Impressions>
   <Keyword />
   <Caption />
  </Ad>
 </Advertisements>


Level 1 - Themes

Themes
File: ~/resources/themes.xml

Themes defines all the themes in OfficeClip. This table is consulted by the application to determine all the possible supported themes and it also determines the default theme. Following are the attributes for the theme element.

  • id - The unique id for the theme
  • themeName - The name of the theme. This is also the directory name of the theme directory. The theme directory is always a folder in the image directory (under the root OfficeClip virtual folder)
  • description - The description which defines the theme. This description shows up in in the user profile - change theme screen
  • default - Can have value "Y" or "N", the first entry with a value "Y" is taken as the default theme for OfficeClip i.e. a new user will get this theme by default.
  • active - Shows if the theme is active. Valid values are either"Y" or "N" values. All inactive themes (value = "N") will be disabled.

    <?xml version="1.0" encoding="utf-8" ?>
    <themes>
    <theme id="1" themeName="themeA" description="Original" default="N" active="Y"/>
    <theme id="2" themeName="themeB" description="At your desk" default="N" active="Y"/>
    <theme id="3" themeName="themeC" description="iClip" default="Y" active="Y"/>
    <theme id="4" themeName="themeD" description="Tinted Rose" default="N" active="Y"/>
    </themes>


Level 1 - Top Banner

Top Banner
File: ~/resources/banners/top/ads.xml

The Top Banner is shown as a banner of size 468 x 60. This banner is implemented as an AdRotator object in the .Net framework. AdRotator uses an XML file to show the ads/banners to the user computer. The details of the AdRotator xml file (called as Advertisement file) is explained below and it can also be read from the .Net framework manual.

The xml file used to define the banner is called ads.xml. This file has an element called Ad having the following attributes.

  • ImageUrl - The url of the image to be displayed.
  • NavigateUrl - The url of the page to navigate to when the AdRotator is Clicked
  • AlternateText - The Text to display if the image is unavailable
  • Keyword - The category for the advertisement. This is used to filter out the advertisement category.
  • Impressions - A value that shows how the advertisements are displayed with respect to other advertisements.

<?xml version="1.0" standalone="yes"?>
 <Advertisements>
  <Ad>
   <ImageUrl>tip11.png</ImageUrl>
   <NavigateUrl>~/docs/manual/d-share.html</NavigateUrl>
   <AlternateText>Did You Know? You can share a document securely?</AlternateText>
   <Impressions>80</Impressions>
   <Keyword />
   <Caption />
  </Ad>
 </Advertisements>


Locale - Introduction

Introduction to Locale

Ths page describes how locale is used in OfficeClip in general. All OfficeClip screen label resources are replaced with string constants which are stored in a resource file. At run-time these resources are loaded in the memory. Whenever any reference to one of these resources is made, the resource module checks up the current language and locale and replace the resource with the appropriate string in the target language.

The resource locale is controlled by the resourceCulture key in the AppSettings section of the Web.Config file.

<add key="resourceCulture" value="" />

If the value of the above key is an empty string then the locale is selected according to the browser locale. On the other hand, if the value is specified and is a valid and happens to be a supported locale, then all the OfficeClip screens will show up in the same locale (irrespective of the browser settings).

Note: Customizing locale is a part of the OfficeClip developer's toolkit. Please contact OfficeClip for details.


Theme - Stylesheets
File: ~/images/theme?/style.css

The stylesheet for each theme is kept in the root directory of each theme. Adjusting this stylesheet will have effect only on the text resources of that theme.


Theme- Bitmaps
File: ~/images/theme?

OfficeClip themes consists of many image files which are automatically created with the same look and feel template. By adjusting these images and stylesheets it is possible to create a new OfficeClip theme.

Note: The manipulation of the theme images can be done easily by using ocimager application provided in the OfficeClip Developer Toolkit.


Walk1 - Enable Crystal Report

Walk1 - Enable Crystal Reports

This walkthrough explains how to enable crystal reports in OfficeClip. By default the crystal reports is off.

  1. Make a backup copy of the Web.Config file under the root directory of OfficeClip.

  2. Bring the Web.Config file on the notepad or any other editor of your choice, then

    1. Go the the key called CrystalReportsAvailable under the AppSettings section of the file.

    2. Change the value to "On".

  3. Open the tracker application and visit a project which has some cases in it.

  4. Click on Reports from the top left menu and then click on Statistical Reports

  5. The statistical reports pie chart should show up on the screen


Walk2 - Change Footer

This walkthrough will provide you with the steps to change the footers. As explained earlier, we will not make changes to the footer.xml file directly. Instead we will copy it into the custom directory and then make modifications on the custom copy. Following are the steps:

  1. Find out the path to the custom xml file in OfficeClip. By default it is Custom.xml. The path can be found by looking into the customXML key in the AppSettings section of OfficeClip Web.Config.
    Note: For the purpose of this walkthrough it will be assumed that this file is ~/Custom/custom.xml under the root directory.

  2. Open this file in a notepad or any xml editor.

  3. Create an entry for footer.xml for this file as shown below,
    <custom id="2" in="resources/footer.xml" out="custom/resources/footer.xml" active="Y"/>

  4. Copy footer.xml from ~/resources/footer.xml to ~/custom/resources/footer.xml where ~ represents the root virtual directory.

  5. Open the file ~/custom/resources/footer.xml on the notepad and make some textual change on the value of tag copyrightMessage.

  6. Restart the server by following instructions provided in Introduction to Customizing OfficeClip section.

  7. Log into OfficeClip and see the changes you made in the footer.


Walkthroughs

This section will provide hands on walkthroughs on how to customize OfficeClip at different levels.