mirror of
https://github.com/Combodo/iTop.git
synced 2026-02-13 07:24:13 +01:00
* Prepare SCSS files and move nav menu / main wrapper from Bootstrap positioning * Small work on navigation menu * Split bootstrap theme file into multiple files inside themes/ * Fix unit test missing css/ import path * Better display for usercard * Upload precompiled portal stylesheets to fix unit test based on portal.css * Polish menu * Stylize home tiles * Stylize home tiles and layout pages * Stylize home tiles and layout pages * Stylize home tiles and layout pages * Stylize home tiles and layout pages * Define default font in a more elegant way * Small implementation for open/close navigation_menu * Fix navigation menu dropdown menu not working * Fix menu colors * Set <html> lang attribute * Add accessibility attributes to menu toggler * Fix bricks / page title dot spacing * new look adaptation * Fix padding in manage brick * Fix menu entries font size and color * Change manage export color * Fix icon size in tiles * Add style to manage brick panels * Redesign browse brick mosaic view * Fix variable name collision * - Set templates cache in dev mode to 1s - Implements components classes JS - Move navigations layouts outside the global layout - Update tiles * Fix tile description font size * Redesign browse brick tree mode * Tweak navigation menu css * - use custom elements for js components - adjust layouts * Modify forms/modals * Modify method name following code review * Add a dropdown element to replace bootstrap one * improvement to dropdown * datatable prevent column sort icon to wrap * update composer json file. Without classmap-authoritative flag, classmap are not generated There is no test folder * remove colored circle in manage brick tile titles * remove white span between title and title additional part in brick layout * convert navigation menu js to custom element * navigation menu (WIP) * Improvement to dropdown * Fix some caselog classes * Improvement to dropdown * Improvement to dropdown * navigation menu (WIP) * portal ui version 2025 * datatable sort icon issue on link sets * portal ui settings * Fix dropdown for browse brick * add portal scss colors * add alerts scss= * Buttons improvement * Correction list table action issue * responsive adjustments * restore ben-j erased stephen * ipb-button integration * remove table header bottom border * remove brick page ipb-page--main-header duplicate * Adjust button styel * Fix browse brick buttons * Correctly overload approot and fix scsss imports * Fix treeview expand buttons, fix mosaic first display glitch and add animation to each mosaic tile drawn * Fix treeview toolbar * remove wrap from ipb-button-groups * Fix hover and clickable space in mosaics * Clean dropdown css * Fix dropdown menu content for a better display * Align pagination buttons with theme buttons * Align pagination buttons with theme buttons * Fix drowdown * Add precompiled stylesheets for merge to main branch --------- Co-authored-by: Benjamin Dalsass <95754414+bdalsass@users.noreply.github.com>
165 lines
7.7 KiB
XML
165 lines
7.7 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<itop_design xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.3">
|
|
<portals>
|
|
<portal id="itop-portal" _delta="define">
|
|
<!-- ID must match module_design[id] -->
|
|
<url>pages/exec.php?exec_module=itop-portal-base&exec_page=index.php&portal_id=itop-portal</url>
|
|
<!-- portal_id must match module_design[id] -->
|
|
<rank>1.0</rank>
|
|
<handler/>
|
|
<allow>
|
|
</allow>
|
|
<deny/>
|
|
</portal>
|
|
</portals>
|
|
<module_designs>
|
|
<module_design id="itop-portal" xsi:type="portal" _delta="define">
|
|
<properties>
|
|
<name>portal:itop-portal</name>
|
|
<ui_version>2025</ui_version>
|
|
<ui_settings>
|
|
<navigation_menu>vertical</navigation_menu>
|
|
</ui_settings>
|
|
<!-- Can be either a fileref or a relative path to the file (To be tested). Takes over env-xxx/branding/portal-logo.png -->
|
|
<!-- Priority order is <logo> from xml > env-xxx/branding/portal-logo.png > /images/logo-itop-dark-bg.svg -->
|
|
<!--<fileref ref="brt_6a2be154b2a62659d3332c513bdad715" />-->
|
|
<!--<logo>../images/itop-logo.png</logo>-->
|
|
<!-- Can be either a fileref or a relative path to the file from /env-xxx (eg. itop-portal-base/mystyle.css) -->
|
|
<!-- Available themes must have a unique id. Some ids are loaded in a specific order : bootstrap/portal/custom. Other ids are loaded after them, but their order cannot be predicted -->
|
|
<themes/>
|
|
<!-- Can be either a fileref or a relative path to the file from /env-xxx (eg. itop-portal-base/mytemplate.html.twig) -->
|
|
<!-- Available templates are id="layout|home" -->
|
|
<templates/>
|
|
<!-- Class used for generating objects view/edit urls (eg. in linked sets). -->
|
|
<!-- Note: Notification placeholders are NOT using this but the "DBObject::RegisterURLMakerClass(<PORTAL_ID>, <CLASS_NAME>)" declarations. -->
|
|
<urlmaker_class>iTopPortalViewUrlMaker</urlmaker_class>
|
|
<!-- An OQL query to determine which TriggerOnPortalUpdate to use within THIS instance of the portal. This is mostly needed to enable different triggers on several portal instances -->
|
|
<!-- Note : ":parent_classes" parameter is a reserved name that will be used for the current object class name (and its ancestors) -->
|
|
<triggers_query><![CDATA[SELECT TriggerOnPortalUpdate AS t WHERE t.target_class IN (:parent_classes)]]></triggers_query>
|
|
<attachments>
|
|
<allow_delete>true</allow_delete>
|
|
</attachments>
|
|
<allowed_portals>
|
|
<!-- Defines how other portals -allowed for the current user- will be opened. "tab" for a new tab, "self" for the current window -->
|
|
<opening_mode>tab</opening_mode>
|
|
</allowed_portals>
|
|
</properties>
|
|
<classes>
|
|
<class id="User">
|
|
<!-- Allow <allowed_profile>s to apply the <transition>s below. Flags on <field>s will be merged with those from datamodel -->
|
|
<!-- See example in UserRequest class -->
|
|
<!--<lifecycle/>-->
|
|
<scopes>
|
|
<!-- Note : Silos apply to those scope queries -->
|
|
<scope id="all">
|
|
<oql_view><![CDATA[SELECT User AS U JOIN Person AS P ON U.contactid=P.id WHERE P.id = :current_contact_id]]></oql_view>
|
|
<!-- No object of this class can be edited -->
|
|
<!--<oql_edit />-->
|
|
<!-- Everybody -->
|
|
<!--<allowed_profiles />-->
|
|
</scope>
|
|
</scopes>
|
|
</class>
|
|
<class id="Organization">
|
|
<scopes>
|
|
<scope id="all">
|
|
<oql_view><![CDATA[SELECT Organization WHERE id = :current_contact->org_id]]></oql_view>
|
|
</scope>
|
|
</scopes>
|
|
</class>
|
|
<class id="Location">
|
|
<scopes>
|
|
<scope id="all">
|
|
<oql_view><![CDATA[SELECT Location WHERE org_id = :current_contact->org_id]]></oql_view>
|
|
</scope>
|
|
</scopes>
|
|
</class>
|
|
<class id="Contact">
|
|
<scopes>
|
|
<scope id="all">
|
|
<oql_view><![CDATA[SELECT Contact WHERE org_id = :current_contact->org_id]]></oql_view>
|
|
</scope>
|
|
<scope id="admin">
|
|
<oql_view><![CDATA[SELECT Contact]]></oql_view>
|
|
<allowed_profiles>
|
|
<allowed_profile id="Administrator"/>
|
|
</allowed_profiles>
|
|
</scope>
|
|
</scopes>
|
|
<lists>
|
|
<list id="default">
|
|
<items>
|
|
<item id="status">
|
|
<rank>10</rank>
|
|
</item>
|
|
<item id="org_id">
|
|
<rank>20</rank>
|
|
</item>
|
|
<item id="function">
|
|
<rank>50</rank>
|
|
</item>
|
|
</items>
|
|
</list>
|
|
</lists>
|
|
</class>
|
|
</classes>
|
|
<bricks>
|
|
<brick id="user-profile" xsi:type="Combodo\iTop\Portal\Brick\UserProfileBrick">
|
|
<rank>
|
|
<!-- Can be either a <default> tag for both home page and navigation menu or distinct <home> or/and <navigation_menu> tags-->
|
|
<default>1</default>
|
|
</rank>
|
|
<title>
|
|
<!-- Can be either a <default> tag for both home page and navigation menu or distinct <home> or/and <navigation_menu> tags-->
|
|
<default>Brick:Portal:UserProfile:Navigation:Dropdown:MyProfil</default>
|
|
</title>
|
|
<decoration_class>
|
|
<default>fas fa-user fa-2x</default>
|
|
</decoration_class>
|
|
<!-- Show / hide some of the user profile forms by setting the tag value to true|false -->
|
|
<!--<show_picture_form>true</show_picture_form>-->
|
|
<!--<show_preferences_form>true</show_preferences_form>-->
|
|
<!--<show_password_form>true</show_password_form>-->
|
|
<form>
|
|
<!-- Optional tag to list the fields. If empty only fields from <twig> tag will be displayed, if omitted fields from zlist details will. -->
|
|
<fields/>
|
|
<!-- Optional tag to specify the form layout. Fields that are not positioned in the layout will be placed at the end of the form -->
|
|
<twig>
|
|
<!-- data-field-id attribute must be an attribute code of the class -->
|
|
<!-- data-field-flags attribute contains flags among read_only/hidden/mandatory/must_prompt/must_change -->
|
|
<div class="form_field" data-field-id="first_name" data-field-flags="read_only">
|
|
</div>
|
|
<div class="form_field" data-field-id="name" data-field-flags="read_only">
|
|
</div>
|
|
<div class="form_field" data-field-id="org_id" data-field-flags="read_only">
|
|
</div>
|
|
<div class="form_field" data-field-id="email" data-field-flags="read_only">
|
|
</div>
|
|
<div class="form_field" data-field-id="phone">
|
|
</div>
|
|
<div class="form_field" data-field-id="location_id">
|
|
</div>
|
|
<div class="form_field" data-field-id="function">
|
|
</div>
|
|
<div class="form_field" data-field-id="manager_id" data-field-flags="read_only">
|
|
</div>
|
|
</twig>
|
|
</form>
|
|
</brick>
|
|
</bricks>
|
|
<navigation_rules>
|
|
<!-- Close form (either the modal or the whole page) -->
|
|
<navigation_rule id="close-form" xsi:type="close"/>
|
|
<!-- Go to the homepage -->
|
|
<navigation_rule id="go-to-homepage" xsi:type="go-to-homepage"/>
|
|
</navigation_rules>
|
|
</module_design>
|
|
</module_designs>
|
|
<module_parameters>
|
|
<parameters id="itop-portal" _delta="define">
|
|
<lazy_loading_threshold>500</lazy_loading_threshold>
|
|
<!-- Will be placed in the conf/<env>/config-itop.php file under the itop-portal module's settings -->
|
|
</parameters>
|
|
</module_parameters>
|
|
</itop_design>
|