Commit 7b7f84cf authored by Ludovic Dubost's avatar Ludovic Dubost
Browse files

Improved BlockTextMacro to support two buttons

Finalized documentation of BlockTextMacro
parent e7989b1a
Loading
Loading
Loading
Loading
+650 −5
Original line number Diff line number Diff line
@@ -24,7 +24,7 @@
  <web>PublicWebSite.Code</web>
  <name>BlockTextMacro</name>
  <language/>
  <defaultLanguage></defaultLanguage>
  <defaultLanguage/>
  <translation>0</translation>
  <creator>xwiki:XWiki.Admin</creator>
  <creationDate>1514761200000</creationDate>
@@ -39,7 +39,35 @@
  <minorEdit>false</minorEdit>
  <syntaxId>xwiki/2.1</syntaxId>
  <hidden>false</hidden>
  <content/>
  <content>This macro display a text block section in you page with one or two buttons.

The following parameters are available:

|= Parameter |= Description |= Default Value
| name | Name of the macro block. This needs to be unique in each page | //empty//
| title | Title displayed | //empty//
| desc | Description displayed under the title | //empty//
| color | Background color of the block (unused if a background image is present) | //empty//
| image | Background image of the block | //empty//
| height | Force height | Determined by the content of the block
| buttonText | Allows to add a button with the corresponding text | //empty//
| buttonUrl | Link or Page for the button | //empty//
| buttonText2 | Allows to add a second button with the corresponding text | //empty//
| buttonUrl2 | Link or Page for the second button | //empty//
| Macro content field | The content field is displayed under the title field and can contain wiki syntax or HTML | //empty//

Example:

{{code}}
{{blocktext name="pagename-textblock" title="Beyond Products, Services !" desc="Beyond providing a great Product which can enhance collaboration, XWiki SAS provides a full range of services allowing you to make the best of it's capabilities. From cloud and support services to configuration and training and for more advanced project custom solutions tailored to your needs, XWiki SAS is here to help you increase collaboration and knowledge sharing in your organization." color="#0087cb" buttonText="View our Services" buttonUrl="Main.WebHome"/}}

{{blocktext name="pagename-textblock2" title="Beyond Products, Services !" desc="Beyond providing a great Product which can enhance collaboration, XWiki SAS provides a full range of services allowing you to make the best of it's capabilities. From cloud and support services to configuration and training and for more advanced project custom solutions tailored to your needs, XWiki SAS is here to help you increase collaboration and knowledge sharing in your organization." color="#0087cb" buttonText="View our Services" buttonUrl="Main.WebHome" buttonText2="View our Custom Solutions" buttonUrl2="Sandbox.WebHome"/}}
{{/code}}

{{blocktext name="pagename-textblock" title="Beyond Products, Services !" desc="Beyond providing a great Product which can enhance collaboration, XWiki SAS provides a full range of services allowing you to make the best of it's capabilities. From cloud and support services to configuration and training and for more advanced project custom solutions tailored to your needs, XWiki SAS is here to help you increase collaboration and knowledge sharing in your organization." color="#0087cb" buttonText="View our Services" buttonUrl="Main.WebHome"/}}

{{blocktext name="pagename-textblock2" title="Beyond Products, Services !" desc="Beyond providing a great Product which can enhance collaboration, XWiki SAS provides a full range of services allowing you to make the best of it's capabilities. From cloud and support services to configuration and training and for more advanced project custom solutions tailored to your needs, XWiki SAS is here to help you increase collaboration and knowledge sharing in your organization." color="#0087cb" buttonText="View our Services" buttonUrl="Main.WebHome" buttonText2="View our Custom Solutions" buttonUrl2="Sandbox.WebHome"/}}
</content>
  <object>
    <name>PublicWebSite.Code.BlockTextMacro</name>
    <number>0</number>
@@ -339,10 +367,18 @@
#set($blockDesc = $xcontext.macro.params.desc)
#set($buttonText = $xcontext.macro.params.buttonText)
#set($buttonUrl = $xcontext.macro.params.buttonUrl)
#set($buttonText2 = $xcontext.macro.params.buttonText2)
#set($buttonUrl2 = $xcontext.macro.params.buttonUrl2)
#set($image = $xcontext.macro.params.image)
#set($color = $xcontext.macro.params.color)
#set($height = $xcontext.macro.params.height)
#set($content = $xcontext.macro.content)
#if(!$buttonUrl.startsWith("http"))
 #set($buttonUrl = $xwiki.getDocument($buttonUrl).getURL())
#end
#if(!$buttonUrl2.startsWith("http"))
 #set($buttonUrl2 = $xwiki.getDocument($buttonUrl2).getURL())
#end
#set($style="")
#if($image&amp;&amp;$image!="")
#set($imageURL = $doc.getAttachmentURL($image))
@@ -368,10 +404,25 @@
#if($content &amp;&amp; $content!="")
        &lt;p class="text-center"&gt;${content}&lt;/p&gt;
#end
      &lt;/div&gt;  
#set($colnb = "4")
#if($buttonText2)
#set($colnb = "3")
#end
    &lt;div class="row"&gt;
     &lt;div class="col-sm-${colnb}"&gt;&lt;/div&gt;
      &lt;div class="col-sm-${colnb}"&gt;
#if($buttonText &amp;&amp; $buttonText!="")
        &lt;a href="${buttonUrl}" class="btn btn-primary btn-blue-o"&gt;${buttonText}&lt;/a&gt;
#end
      &lt;/div&gt;
      &lt;div class="col-sm-${colnb}"&gt;
#if($buttonText2 &amp;&amp; $buttonText2!="")
        &lt;a href="${buttonUrl2}" class="btn btn-primary btn-blue-o"&gt;${buttonText2}&lt;/a&gt;
#end
      &lt;/div&gt;
      &lt;div class="col-sm-${colnb}"&gt;&lt;/div&gt;
     &lt;/div&gt;
    &lt;/div&gt;
   &lt;/div&gt;
  &lt;/div&gt;
@@ -381,7 +432,7 @@
</code>
    </property>
    <property>
      <contentDescription/>
      <contentDescription>Content displayed under the title and description fields</contentDescription>
    </property>
    <property>
      <contentType>Optional</contentType>
@@ -462,13 +513,607 @@
      <defaultValue/>
    </property>
    <property>
      <description>Block Header Macro</description>
      <description>Name of the macro (needs to be unique on each page)</description>
    </property>
    <property>
      <mandatory>0</mandatory>
    </property>
    <property>
      <name>name</name>
    </property>
  </object>
  <object>
    <name>PublicWebSite.Code.BlockTextMacro</name>
    <number>1</number>
    <className>XWiki.WikiMacroParameterClass</className>
    <guid>45ef1aad-9889-4edd-aa51-057e43706769</guid>
    <class>
      <name>XWiki.WikiMacroParameterClass</name>
      <customClass/>
      <customMapping/>
      <defaultViewSheet/>
      <defaultEditSheet/>
      <defaultWeb/>
      <nameField/>
      <validationScript/>
      <defaultValue>
        <disabled>0</disabled>
        <name>defaultValue</name>
        <number>4</number>
        <prettyName>Parameter default value</prettyName>
        <size>30</size>
        <unmodifiable>0</unmodifiable>
        <classType>com.xpn.xwiki.objects.classes.StringClass</classType>
      </defaultValue>
      <description>
        <disabled>0</disabled>
        <name>description</name>
        <number>2</number>
        <prettyName>Parameter description</prettyName>
        <rows>5</rows>
        <size>40</size>
        <unmodifiable>0</unmodifiable>
        <classType>com.xpn.xwiki.objects.classes.TextAreaClass</classType>
      </description>
      <mandatory>
        <disabled>0</disabled>
        <displayFormType>select</displayFormType>
        <displayType>yesno</displayType>
        <name>mandatory</name>
        <number>3</number>
        <prettyName>Parameter mandatory</prettyName>
        <unmodifiable>0</unmodifiable>
        <classType>com.xpn.xwiki.objects.classes.BooleanClass</classType>
      </mandatory>
      <name>
        <disabled>0</disabled>
        <name>name</name>
        <number>1</number>
        <prettyName>Parameter name</prettyName>
        <size>30</size>
        <unmodifiable>0</unmodifiable>
        <classType>com.xpn.xwiki.objects.classes.StringClass</classType>
      </name>
    </class>
    <property>
      <defaultValue/>
    </property>
    <property>
      <description>Title displayed in the text block</description>
    </property>
    <property>
      <mandatory>0</mandatory>
    </property>
    <property>
      <name>title</name>
    </property>
  </object>
  <object>
    <name>PublicWebSite.Code.BlockTextMacro</name>
    <number>2</number>
    <className>XWiki.WikiMacroParameterClass</className>
    <guid>e01eb042-6da0-413e-a5c2-0b6b40185327</guid>
    <class>
      <name>XWiki.WikiMacroParameterClass</name>
      <customClass/>
      <customMapping/>
      <defaultViewSheet/>
      <defaultEditSheet/>
      <defaultWeb/>
      <nameField/>
      <validationScript/>
      <defaultValue>
        <disabled>0</disabled>
        <name>defaultValue</name>
        <number>4</number>
        <prettyName>Parameter default value</prettyName>
        <size>30</size>
        <unmodifiable>0</unmodifiable>
        <classType>com.xpn.xwiki.objects.classes.StringClass</classType>
      </defaultValue>
      <description>
        <disabled>0</disabled>
        <name>description</name>
        <number>2</number>
        <prettyName>Parameter description</prettyName>
        <rows>5</rows>
        <size>40</size>
        <unmodifiable>0</unmodifiable>
        <classType>com.xpn.xwiki.objects.classes.TextAreaClass</classType>
      </description>
      <mandatory>
        <disabled>0</disabled>
        <displayFormType>select</displayFormType>
        <displayType>yesno</displayType>
        <name>mandatory</name>
        <number>3</number>
        <prettyName>Parameter mandatory</prettyName>
        <unmodifiable>0</unmodifiable>
        <classType>com.xpn.xwiki.objects.classes.BooleanClass</classType>
      </mandatory>
      <name>
        <disabled>0</disabled>
        <name>name</name>
        <number>1</number>
        <prettyName>Parameter name</prettyName>
        <size>30</size>
        <unmodifiable>0</unmodifiable>
        <classType>com.xpn.xwiki.objects.classes.StringClass</classType>
      </name>
    </class>
    <property>
      <defaultValue/>
    </property>
    <property>
      <description>Description displayed in the text block under the title</description>
    </property>
    <property>
      <mandatory>0</mandatory>
    </property>
    <property>
      <name>desc</name>
    </property>
  </object>
  <object>
    <name>PublicWebSite.Code.BlockTextMacro</name>
    <number>3</number>
    <className>XWiki.WikiMacroParameterClass</className>
    <guid>a0aefaa7-02be-47e9-92c3-c5af1097bb3b</guid>
    <class>
      <name>XWiki.WikiMacroParameterClass</name>
      <customClass/>
      <customMapping/>
      <defaultViewSheet/>
      <defaultEditSheet/>
      <defaultWeb/>
      <nameField/>
      <validationScript/>
      <defaultValue>
        <disabled>0</disabled>
        <name>defaultValue</name>
        <number>4</number>
        <prettyName>Parameter default value</prettyName>
        <size>30</size>
        <unmodifiable>0</unmodifiable>
        <classType>com.xpn.xwiki.objects.classes.StringClass</classType>
      </defaultValue>
      <description>
        <disabled>0</disabled>
        <name>description</name>
        <number>2</number>
        <prettyName>Parameter description</prettyName>
        <rows>5</rows>
        <size>40</size>
        <unmodifiable>0</unmodifiable>
        <classType>com.xpn.xwiki.objects.classes.TextAreaClass</classType>
      </description>
      <mandatory>
        <disabled>0</disabled>
        <displayFormType>select</displayFormType>
        <displayType>yesno</displayType>
        <name>mandatory</name>
        <number>3</number>
        <prettyName>Parameter mandatory</prettyName>
        <unmodifiable>0</unmodifiable>
        <classType>com.xpn.xwiki.objects.classes.BooleanClass</classType>
      </mandatory>
      <name>
        <disabled>0</disabled>
        <name>name</name>
        <number>1</number>
        <prettyName>Parameter name</prettyName>
        <size>30</size>
        <unmodifiable>0</unmodifiable>
        <classType>com.xpn.xwiki.objects.classes.StringClass</classType>
      </name>
    </class>
    <property>
      <defaultValue/>
    </property>
    <property>
      <description>Background color of the block (unused if a background image is present) </description>
    </property>
    <property>
      <mandatory>0</mandatory>
    </property>
    <property>
      <name>color</name>
    </property>
  </object>
  <object>
    <name>PublicWebSite.Code.BlockTextMacro</name>
    <number>4</number>
    <className>XWiki.WikiMacroParameterClass</className>
    <guid>5a1871ca-00b0-4faf-8970-41d0bd73c896</guid>
    <class>
      <name>XWiki.WikiMacroParameterClass</name>
      <customClass/>
      <customMapping/>
      <defaultViewSheet/>
      <defaultEditSheet/>
      <defaultWeb/>
      <nameField/>
      <validationScript/>
      <defaultValue>
        <disabled>0</disabled>
        <name>defaultValue</name>
        <number>4</number>
        <prettyName>Parameter default value</prettyName>
        <size>30</size>
        <unmodifiable>0</unmodifiable>
        <classType>com.xpn.xwiki.objects.classes.StringClass</classType>
      </defaultValue>
      <description>
        <disabled>0</disabled>
        <name>description</name>
        <number>2</number>
        <prettyName>Parameter description</prettyName>
        <rows>5</rows>
        <size>40</size>
        <unmodifiable>0</unmodifiable>
        <classType>com.xpn.xwiki.objects.classes.TextAreaClass</classType>
      </description>
      <mandatory>
        <disabled>0</disabled>
        <displayFormType>select</displayFormType>
        <displayType>yesno</displayType>
        <name>mandatory</name>
        <number>3</number>
        <prettyName>Parameter mandatory</prettyName>
        <unmodifiable>0</unmodifiable>
        <classType>com.xpn.xwiki.objects.classes.BooleanClass</classType>
      </mandatory>
      <name>
        <disabled>0</disabled>
        <name>name</name>
        <number>1</number>
        <prettyName>Parameter name</prettyName>
        <size>30</size>
        <unmodifiable>0</unmodifiable>
        <classType>com.xpn.xwiki.objects.classes.StringClass</classType>
      </name>
    </class>
    <property>
      <defaultValue/>
    </property>
    <property>
      <description>Background image of the block (referring to an image attached in the page)</description>
    </property>
    <property>
      <mandatory>0</mandatory>
    </property>
    <property>
      <name>image</name>
    </property>
  </object>
  <object>
    <name>PublicWebSite.Code.BlockTextMacro</name>
    <number>5</number>
    <className>XWiki.WikiMacroParameterClass</className>
    <guid>11b0a7a8-cfd2-4e07-8fd3-fedaca048793</guid>
    <class>
      <name>XWiki.WikiMacroParameterClass</name>
      <customClass/>
      <customMapping/>
      <defaultViewSheet/>
      <defaultEditSheet/>
      <defaultWeb/>
      <nameField/>
      <validationScript/>
      <defaultValue>
        <disabled>0</disabled>
        <name>defaultValue</name>
        <number>4</number>
        <prettyName>Parameter default value</prettyName>
        <size>30</size>
        <unmodifiable>0</unmodifiable>
        <classType>com.xpn.xwiki.objects.classes.StringClass</classType>
      </defaultValue>
      <description>
        <disabled>0</disabled>
        <name>description</name>
        <number>2</number>
        <prettyName>Parameter description</prettyName>
        <rows>5</rows>
        <size>40</size>
        <unmodifiable>0</unmodifiable>
        <classType>com.xpn.xwiki.objects.classes.TextAreaClass</classType>
      </description>
      <mandatory>
        <disabled>0</disabled>
        <displayFormType>select</displayFormType>
        <displayType>yesno</displayType>
        <name>mandatory</name>
        <number>3</number>
        <prettyName>Parameter mandatory</prettyName>
        <unmodifiable>0</unmodifiable>
        <classType>com.xpn.xwiki.objects.classes.BooleanClass</classType>
      </mandatory>
      <name>
        <disabled>0</disabled>
        <name>name</name>
        <number>1</number>
        <prettyName>Parameter name</prettyName>
        <size>30</size>
        <unmodifiable>0</unmodifiable>
        <classType>com.xpn.xwiki.objects.classes.StringClass</classType>
      </name>
    </class>
    <property>
      <defaultValue/>
    </property>
    <property>
      <description>Force height </description>
    </property>
    <property>
      <mandatory>0</mandatory>
    </property>
    <property>
      <name>height</name>
    </property>
  </object>
  <object>
    <name>PublicWebSite.Code.BlockTextMacro</name>
    <number>6</number>
    <className>XWiki.WikiMacroParameterClass</className>
    <guid>7a0448da-a382-4027-9848-c2014fd9506c</guid>
    <class>
      <name>XWiki.WikiMacroParameterClass</name>
      <customClass/>
      <customMapping/>
      <defaultViewSheet/>
      <defaultEditSheet/>
      <defaultWeb/>
      <nameField/>
      <validationScript/>
      <defaultValue>
        <disabled>0</disabled>
        <name>defaultValue</name>
        <number>4</number>
        <prettyName>Parameter default value</prettyName>
        <size>30</size>
        <unmodifiable>0</unmodifiable>
        <classType>com.xpn.xwiki.objects.classes.StringClass</classType>
      </defaultValue>
      <description>
        <disabled>0</disabled>
        <name>description</name>
        <number>2</number>
        <prettyName>Parameter description</prettyName>
        <rows>5</rows>
        <size>40</size>
        <unmodifiable>0</unmodifiable>
        <classType>com.xpn.xwiki.objects.classes.TextAreaClass</classType>
      </description>
      <mandatory>
        <disabled>0</disabled>
        <displayFormType>select</displayFormType>
        <displayType>yesno</displayType>
        <name>mandatory</name>
        <number>3</number>
        <prettyName>Parameter mandatory</prettyName>
        <unmodifiable>0</unmodifiable>
        <classType>com.xpn.xwiki.objects.classes.BooleanClass</classType>
      </mandatory>
      <name>
        <disabled>0</disabled>
        <name>name</name>
        <number>1</number>
        <prettyName>Parameter name</prettyName>
        <size>30</size>
        <unmodifiable>0</unmodifiable>
        <classType>com.xpn.xwiki.objects.classes.StringClass</classType>
      </name>
    </class>
    <property>
      <defaultValue/>
    </property>
    <property>
      <description>Allows to add a button with the corresponding text </description>
    </property>
    <property>
      <mandatory>0</mandatory>
    </property>
    <property>
      <name>buttonText</name>
    </property>
  </object>
  <object>
    <name>PublicWebSite.Code.BlockTextMacro</name>
    <number>7</number>
    <className>XWiki.WikiMacroParameterClass</className>
    <guid>3e0ac4d8-a13e-48e1-8b28-e564dec530ca</guid>
    <class>
      <name>XWiki.WikiMacroParameterClass</name>
      <customClass/>
      <customMapping/>
      <defaultViewSheet/>
      <defaultEditSheet/>
      <defaultWeb/>
      <nameField/>
      <validationScript/>
      <defaultValue>
        <disabled>0</disabled>
        <name>defaultValue</name>
        <number>4</number>
        <prettyName>Parameter default value</prettyName>
        <size>30</size>
        <unmodifiable>0</unmodifiable>
        <classType>com.xpn.xwiki.objects.classes.StringClass</classType>
      </defaultValue>
      <description>
        <disabled>0</disabled>
        <name>description</name>
        <number>2</number>
        <prettyName>Parameter description</prettyName>
        <rows>5</rows>
        <size>40</size>
        <unmodifiable>0</unmodifiable>
        <classType>com.xpn.xwiki.objects.classes.TextAreaClass</classType>
      </description>
      <mandatory>
        <disabled>0</disabled>
        <displayFormType>select</displayFormType>
        <displayType>yesno</displayType>
        <name>mandatory</name>
        <number>3</number>
        <prettyName>Parameter mandatory</prettyName>
        <unmodifiable>0</unmodifiable>
        <classType>com.xpn.xwiki.objects.classes.BooleanClass</classType>
      </mandatory>
      <name>
        <disabled>0</disabled>
        <name>name</name>
        <number>1</number>
        <prettyName>Parameter name</prettyName>
        <size>30</size>
        <unmodifiable>0</unmodifiable>
        <classType>com.xpn.xwiki.objects.classes.StringClass</classType>
      </name>
    </class>
    <property>
      <defaultValue/>
    </property>
    <property>
      <description>URL or XWiki page name to link to</description>
    </property>
    <property>
      <mandatory>0</mandatory>
    </property>
    <property>
      <name>buttonUrl</name>
    </property>
  </object>
  <object>
    <name>PublicWebSite.Code.BlockTextMacro</name>
    <number>8</number>
    <className>XWiki.WikiMacroParameterClass</className>
    <guid>97bbdd6c-d449-4276-a2da-af84de230672</guid>
    <class>
      <name>XWiki.WikiMacroParameterClass</name>
      <customClass/>
      <customMapping/>
      <defaultViewSheet/>
      <defaultEditSheet/>
      <defaultWeb/>
      <nameField/>
      <validationScript/>
      <defaultValue>
        <disabled>0</disabled>
        <name>defaultValue</name>
        <number>4</number>
        <prettyName>Parameter default value</prettyName>
        <size>30</size>
        <unmodifiable>0</unmodifiable>
        <classType>com.xpn.xwiki.objects.classes.StringClass</classType>
      </defaultValue>
      <description>
        <disabled>0</disabled>
        <name>description</name>
        <number>2</number>
        <prettyName>Parameter description</prettyName>
        <rows>5</rows>
        <size>40</size>
        <unmodifiable>0</unmodifiable>
        <classType>com.xpn.xwiki.objects.classes.TextAreaClass</classType>
      </description>
      <mandatory>
        <disabled>0</disabled>
        <displayFormType>select</displayFormType>
        <displayType>yesno</displayType>
        <name>mandatory</name>
        <number>3</number>
        <prettyName>Parameter mandatory</prettyName>
        <unmodifiable>0</unmodifiable>
        <classType>com.xpn.xwiki.objects.classes.BooleanClass</classType>
      </mandatory>
      <name>
        <disabled>0</disabled>
        <name>name</name>
        <number>1</number>
        <prettyName>Parameter name</prettyName>
        <size>30</size>
        <unmodifiable>0</unmodifiable>
        <classType>com.xpn.xwiki.objects.classes.StringClass</classType>
      </name>
    </class>
    <property>
      <defaultValue/>
    </property>
    <property>
      <description>Optional second button text</description>
    </property>
    <property>
      <mandatory>0</mandatory>
    </property>
    <property>
      <name>buttonText2</name>
    </property>
  </object>
  <object>
    <name>PublicWebSite.Code.BlockTextMacro</name>
    <number>9</number>
    <className>XWiki.WikiMacroParameterClass</className>
    <guid>a03a2227-7af2-45cb-98b2-098bda80fdaa</guid>
    <class>
      <name>XWiki.WikiMacroParameterClass</name>
      <customClass/>
      <customMapping/>
      <defaultViewSheet/>
      <defaultEditSheet/>
      <defaultWeb/>
      <nameField/>
      <validationScript/>
      <defaultValue>
        <disabled>0</disabled>
        <name>defaultValue</name>
        <number>4</number>
        <prettyName>Parameter default value</prettyName>
        <size>30</size>
        <unmodifiable>0</unmodifiable>
        <classType>com.xpn.xwiki.objects.classes.StringClass</classType>
      </defaultValue>
      <description>
        <disabled>0</disabled>
        <name>description</name>
        <number>2</number>
        <prettyName>Parameter description</prettyName>
        <rows>5</rows>
        <size>40</size>
        <unmodifiable>0</unmodifiable>
        <classType>com.xpn.xwiki.objects.classes.TextAreaClass</classType>
      </description>
      <mandatory>
        <disabled>0</disabled>
        <displayFormType>select</displayFormType>
        <displayType>yesno</displayType>
        <name>mandatory</name>
        <number>3</number>
        <prettyName>Parameter mandatory</prettyName>
        <unmodifiable>0</unmodifiable>
        <classType>com.xpn.xwiki.objects.classes.BooleanClass</classType>
      </mandatory>
      <name>
        <disabled>0</disabled>
        <name>name</name>
        <number>1</number>
        <prettyName>Parameter name</prettyName>
        <size>30</size>
        <unmodifiable>0</unmodifiable>
        <classType>com.xpn.xwiki.objects.classes.StringClass</classType>
      </name>
    </class>
    <property>
      <defaultValue/>
    </property>
    <property>
      <description>Optional second link</description>
    </property>
    <property>
      <mandatory>0</mandatory>
    </property>
    <property>
      <name>blockheader</name>
      <name>buttonUrl2</name>
    </property>
  </object>
</xwikidoc>