User:Aeric/tests

From LongJump Support Wiki
< User:Aeric
Revision as of 20:41, 24 May 2011 by imported>Aeric
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Tests.

See also:

Magic Words for Links

Server ({{SERVER}}) https://agileappscloud.info
Script path ({{SCRIPTPATH}}) /ljwiki-src
Hardcoded path http://lj.platformatyourservice.com/wiki/download
Variablized path
({{SERVER}}{{SCRIPTPATH}}/download)
https://agileappscloud.info/ljwiki-src/download

Negative Conditionals

Goal: In all but ISV domain, show this text: "This page contains information for ISVs".

This would work, but dang, it's ugly:

    {{#if: {{#expr ^({{skin}}=ISV)}}|This page contains information for ISVs.
    |...}}

So instead of doing that, we defined ShowIsvInfo, so that actual page content is shown only in the ISV domain. (Note that the ending-braces should immediately follow the text, to prevent double-spacing if the page is transcluded. Here, they are on a separate line, for readability.)

Code
{{#if: {{#expr ^({{skin}}=ISV)}}
|Information on this page is intended for ISVs.
|...}}
Analysis
It works, but as shown above the resulting code is both ugly and unreadable.
Much better to define a HideIsvInfo variable, and simplify the code

to:

{{#if: {{HideIsvInfo}}
|Information on this page is intended for ISVs.
|...}}

WRT defining domain names:

  • Template:ISV is the name of the template that displays the ISV-specific nav bar.
  • Template:LJ is the nav bar that is displayed everywhere else
  • So we can't define an "ISV" variable, unless we want to rename the nav-bar template.
  • And we don't want to use {{domain}}, because {domain} is used in URLs all over the Wiki, and it's too easy to make a mistake.
  • So we could use {{skin}}, if and when we want a skin-specific conditional. (But we should only use it for positive tests. As the code above shows, negative tests are unreadable.)
  • Clearly, one place we could use it are for the links to ISV pages. Then we can code
{{#ifeq: {{skin}}|ISV|...}}
  • Alternatively, we could code also define ShowIsvInfo, and then automatically set HideIsvInfo to not-ShowIsvInfo in LocalSettings.php.
    (We should do that for each of the Show variables, just to be consistent.)

Skin-Specific Variables

Variables and Their Usage

These variables are defined for each skin in LocalSettings.php.
They are case-insensitive.

Variable Name Definition Value in Current Domain Usage
Version Platform version identifer (global) Template:Version {{Version}}
Skin Abbreviated name LJ {{#if {{Skin}}|name|...|...else...}}
Domain Used in the platformURL variable na.longjump.com Create platform links using {{platformURL}}, instead of https://...
BrandLabel Label used in GUI
(Eclipse, Outlook,...)
LongJump {{BrandLabel}}
EnterpriseBrand Name of the platform LongJump Platform {{EnterpriseBrand}}
TrainingLink A link for training sessions. http://www.longjump.com/index.php?option=com_eventlist&view=eventlist&Itemid=178 {{#if {{TrainingLink}} | [{{TrainingLink}} Platform Training]}}
WhitepapersLink Future. Defined the same way as "TrainingLink", so it is easy to change.
 
Booleans
ShowWhitepapers Show whitepapers? true (empty=false)
(Fixed branding)
{{#if {{ShowWhitepapers}} | ...}}
ShowOutlookSync Show info related to Outlook Sync & Email Edition Plugin? true (empty=false) {{#if {{ShowOutlookSync}} | ...}}
ShowIsvInfo Show info only ISVs care about true (empty=false) {{#if {{ShowIsvInfo}} | ...}}
ShowMspInfo Show info only MSPs care about true (empty=false) {{#if {{ShowMspInfo}} | ...}}
PlatformAdminInfo Show tenant configuration (empty=false) {{#if {{PlatformAdminInfo}} | ...}}
ShowInstallInfo Show info for installers (empty=false) {{#if {{ShowInstallInfo}} | ...}}

Variable Combinations

Use this pattern to conditionalize information intended for all Service Providers (both ISVs and MSPs):
{{#if: {{ShowIsvInfo}} {{ShowMspInfo}} |
__Info for all Service Providers (LJ and ISV domains)__
}}

Notepad.png

Note: Information intended for both is generally conditioned using ShowIsvInfo--whether or not that was a wise choice remains TBD. So the combination above isn't strictly necessary.

Use this pattern if it is necessary to distinguish information intended for ISVs (which may mention MSPs) from information intended for MSPs, in Wiki versions that do not include ISV info (e.g. Relationals):
{{#if: {{ShowIsvInfo}} |
__ISV info (ISV DOMAIN) __

| <!-- HideIsvInfo -->
{{#if: {{ShowMspInfo}} |
__MSP info (LJ DOMAIN)__
}}}}

Variablized Link

Nested Conditionals

Test of nested conditionals. Display site prefix: LJ

Style for Rollovers

Original TEST of rollover help. New  TEST  of rollover.

CSS Styles

Original

  <span title="Rollover text to display" 
        class="terminologydef" style="cursor:help">TEST</span>
  of rollover help.
  where:
     cursor:help style = built-in HTML style attribute for rollover
     terminologydef class =  
        .terminologydef {border-bottom: 1px dashed green;}
      --defined in terminology.php, which puts the css definition into the page
      --or place desired definition in MediaWiki:Common.css

New

  • HTML code
<span title="Rollover text to display" 
      class="rollover" style="cursor:help"> TEST </span> 
of rollover help.
  • Added to MediaWiki:Common.css
.rollover {
  border-top:    1px solid blue; 
  border-bottom: 1px solid blue; 
  border-left:   1px solid blue; 
  border-right:  1px solid blue; 
  background:    yellow;
}

Conditional Category Test

  • Category tags can be conditionalized with the #if of #ifeq test.
  • This page has:
    • A category that always appears (the unconditionalized category)
    • A category that only appears when ShowWhitepapers is true,, using #if.
    • A category that only appears in the ISV domain, using #ifeq.

So:

Domain Categories
LJ 2 categories (whitepapers & unconditional)
ISV 2 categories (ISV & unconditional)
CUSTOM 1 category (unconditional)

Code:

{{#if: {{ShowWhitepapers}} | [[Category:Conditional Whitepapers Category]] }}
{{#ifeq: {{EnterpriseBrand}} | Platform | [[Category:Conditional ISV Category]] }}
[[Category:Unconditional Category]]

Categories:

  • No ISV category