Как применить отредактированный Дашборд для всех и навсегда?

Расставил все блоки и таблички по феншую, но хотелось бы чтоб он был теперь вместо стандартного для всех. Каждый раз делать Импорт каждому пользователю не вариант. Где-то натыкался где и какой конфиг нужно править, но теперь найти не могу. Может ткнете где его менять?

Посмотри тип DashboardMenuNode здесь:
https://wiki.openitop.org/doku.php?id=2_1_0:customization:xml_reference#menus

Предполагаю, что можно экспортом вытащить настроенный дашборд, а затем в своем модуле переопределить <menu id="WelcomeMenuPage" xsi:type="DashboardMenuNode" _delta="redefine">, указав в теге <definition_file> экспортированный xml-файл.

Так получилось или нет? этот вопрос меня тоже интересует

Пытался создать свой модуль( в extensions) модуль получилось создать, а вот когда дорисовываешь новую менюшку ругается, что не знает что такое WelcomeMenuPage.
Как правильно прописать родительские менюшки/модули?

@sv16, код модуля и текст ошибки выложи.

С ошибками вроде разобрался.
Менюшки вставил в код.
Теперь менюшки не отображаются у пользователей.

     <?xml version="1.0" encoding="UTF-8"?>
<itop_design xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0">
  <constants>
  </constants>
  <classes>
  </classes>
  <menus>


   <menu id="HDMenu" xsi:type="DashboardMenuNode" _delta="define">
      <rank>0</rank>
      <parent>ServiceManagement</parent>
      <definition>
        <layout>DashboardLayoutOneCol</layout>
        <title/>
        <auto_reload>
          <enabled>true</enabled>
          <interval>60</interval>
        </auto_reload>
        <cells>
          <cell id="0">
            <rank>0</rank>
            <dashlets>
              <dashlet id="8" xsi:type="DashletObjectList">
                <rank>0</rank>
                <title>&#x41D;&#x43E;&#x432;&#x44B;&#x435; &#x43E;&#x431;&#x440;&#x430;&#x449;&#x435;&#x43D;&#x438;&#x44F;</title>
                <query>SELECT UserRequest WHERE status = 'new' OR agent_id=0</query>
                <menu>false</menu>
              </dashlet>
            </dashlets>
          </cell>
          <cell id="1">
            <rank>1</rank>
            <dashlets>
              <dashlet id="9" xsi:type="DashletObjectList">
                <rank>0</rank>
                <title>&#x41E;&#x431;&#x440;&#x430;&#x449;&#x435;&#x43D;&#x438;&#x44F; &#x43F;&#x440;&#x438;&#x43D;&#x44F;&#x442;&#x44B;&#x435; &#x432; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x443;</title>
                <query>SELECT UserRequest WHERE   agent_id!=0 AND status NOT IN ('closed', '')</query>
                <menu>false</menu>
              </dashlet>
            </dashlets>
          </cell>
          </cells>       
      </definition>
   </menu>

  </menus>
  <user_rights>
    <groups>
    </groups>
    <profiles>
    </profiles>
  </user_rights>
</itop_design>

Раньше отображались? Где они их ищут?

Я неправильно выразился.
Все, что раньше отображалось и сейчас отображается.
А те менюшки, которые я дорисовал в новом модуле не отображаются

Либо у меня проблемы с пониманием, либо у тебя с объяснением)
Давай ещё раз. Что и куда ты хочешь добавить, какой конечный результат нужен?

Твой код меню почти верный, у меня работает, пункт HDMenu появляется.

Хочу сделать отдельный пункт меню с моими дашлетами, которые бы отображались у всех пользователей по умолчанию( без импорта).

У меня меня пункт HDMenu не появился. Все делал по инструкции(Папку с модулем положил в itop/extensions, после чего запустил setup, отменил свой модуль и обновил конфигурацию)

Где ты его ищешь?

Эта строка задаёт родительский пункт меню, в данном случае Управление услугами.

И доступен этот пункт будет только пользователям с ролью Service Manager.

ни в одном меню ни под каким пользователем HDMenu не появляется (

может проблема в module.hd.php ?

<?php
//
// iTop module definition file
//

SetupWebPage::AddModule(
	__FILE__, // Path to the current file, all other file names are relative to the directory containing this file
	'HD/',
	array(
		// Identification
		//
		'label' => 'REQUEST MANAGER UI',
		'category' => 'business',

		// Setup
		//
		'dependencies' => array( 						
		),
		'mandatory' => false,
		'visible' => true,

		// Components
		//
		'datamodel' => array(
			'model.hd.php'
		),
		'webservice' => array(
			
		),
		'data.struct' => array(
			// add your 'structure' definition XML files here,
		),
		'data.sample' => array(
			// add your sample data XML files here,
		),
		
		// Documentation
		//
		'doc.manual_setup' => '', // hyperlink to manual setup documentation, if any
		'doc.more_information' => '', // hyperlink to more information, if any 

		// Default settings
		//
		'settings' => array(
			// Module specific settings go here, if any
		),
	)
);


?>

Попробуй этот https://github.com/vbkunin/add-new-menu-item-for-itop.

Может кому-то пригодится…
Решение моей проблемы: Под линуксом нельзя использовать заглавные буквы в названиях создаваемых модулей.
В боевой папке создается model.HD.php а в конфиге прописывается model.hd.php
, при этом в тестовой среде все нормально.

1 лайк

Если работаете с другими модулями в module.хххххх.php обязательно надо заполнять раздел

 'dependencies' => array( 						
		),
1 лайк

Друзья!
Нашел более быстрый и простой способ, как применить один дашбоард на всех пользователей!
Как я делал:

1.Под своим пользователем построил себе нужный дашбоард со всеми значками и графиками.
2.Далее захожу в базу данных, нахожу таблицу priv_app_dashboards
3.Копирую данные из столбца contents моего пользователя по user_id. и вставляю в столбцы других пользователей.
4.Если нужного пользователя нет, то инсертим новую строку. user_id пользователя берем из таблицы priv_user

и теперь у всех пользователей, будет один дашбоард

Ручная правка базы данных – дело небезопасное. Не известно как поведут себя твои правки, если разработчики при очередном обновлении решат изменить структуру таблиц.
В iTop есть отличный инструмент разработки дополнений, обратная совместимость которых обеспечивается при обновлении. В сообщении 2 написано, как им воспользоваться. В этом случае новый дашборд становится стандартным, пользователь может его изменить, а затем отменить изменения. В случае же с правкой базы, отменив изменения, пользователь получит стандартный дашборд, а не тот, который вы настроили ему в базе.

Привет, вы знаете как создать новую MenuGroup? Я создал новый модуль с 2 файлами:

  1. “datamodel.add-button.xml” с кодом:
90 1 NewRequestManagement
  1. “en.dict.add-button.php” с кодом:

Dict::Add(‘EN US’, ‘English’, ‘English’, array(
‘Menu:NewRequestManagement’ => ‘New Requests’,
‘Menu:NewRequestManagement+’ => ‘New Requests’,
‘Menu:NewMyRequests’ => ‘New My Requests’,
‘Menu:NewMyRequests+’ => ‘New My Requests’,
Плюс положил в папку модуля файлы module и model. Но новое меню не создалось.
В чем проблема?

Не правильно отобразился код 1-ого файла, он такой:
menus>
menu id=“NewRequestManagement” xsi:type=“MenuGroup” _delta=“define”>
rank>90 /rank>
enable_stimulus/>
/menu>
menu id=“NewMyRequests” xsi:type=“OQLMenuNode” _delta=“define”>
rank>1 /rank>
parent>NewRequestManagement /parent>
oql>![CDATA[SELECT UserRequest WHERE agent_id = :current_contact_id AND status NOT IN (“closed”,“resolved”)]] /oql>
menu>
/menus>
****Открывающие скобки в коде есть, здесь на правильно)