Files
iTop/datamodels/2.x/itop-portal/datamodel.itop-portal.xml
Stephen Abello f095f93326 N°4684 - Align portal default theme with backoffice one (#702)
* 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>
2025-03-05 14:31:00 +01:00

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&amp;exec_page=index.php&amp;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>