MyTetra Share
Делитесь знаниями!
Модели контента в Alfresco (часть 2)
Время создания: 25.01.2012 16:39
Раздел: Компьютер - Управление проектами - Tomcat и Alfresco
Запись: xintrea/mytetra_syncro/master/base/1327495182y80e0s50ak/text.html на raw.github.com

Продолжим начатую тему. Впереди - самое главное. Как же применить этот XML, написанный ранее? Зачем он нам? А вот сейчас посмотрим.

Применение новой модели

Сначала надо уведомить Alfresco о том, что у нас появилась новая модель. Это делается добавлением нового файла в директорию tomcat/shared/classes/alfresco/extension/, название файла должно соответствовать маске *-context.xml. Можно просто добавить код в стандартный custom-model-context.xml.

<?xml version='1.0' encoding='UTF-8'?>

<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>

<beans>

<!-- Registration of new models -->

<bean id="extension.dictionaryBootstrap" parent="dictionaryModelBootstrap" depends-on="dictionaryBootstrap">

<property name="models">

<list>

<value>alfresco/extension/request.xml</value>

</list>

</property>

</bean>

</beans>

Этап 2. Добавление модели в интерфейс /alfresco

В интерфейс alfresco всего 3 места, где нужно что-то изменить:

1. Content Wizard - модуль, отвечающий за загрузку новых документов. Чтобы мы могли выбрать для нового документа принадлежность к нашему типу.

Находим/создаем в той же директории tomcat/shared/classes/alfresco/extension/ файл web-client-config-custom.xml и добавляем туда следующие строки:

<config evaluator="string-compare" condition="Content Wizards" replace="true">

<content-types>

<type name="itd:Request" />

</content-types>

</config>

После этого получаем такой результат:

2. Вторым этапом добавляем свойства файла. Какие и как должны показываться? Самый простой вариант:

<config evaluator="node-type" condition="itd:Request">

<property-sheet>

<show-property name="itd:Number" />

<show-property name="itd:Category" />

<show-property name="itd:Status" />

<show-association name="itd:relatedDocuments" />

</property-sheet>

</config>

Все в соответствии с моделью: свойства, ассоциации. Конечно же эту часть можно делать более сложно и с множеством рюшечек, но сейчас у нас цель - просто понять, как это счастье нам покажется. А вот так:

При редактировании:

Потом просто так:

А где же мы потеряли аспекты?

3. А аспекты мы описываем в разделе Action Wizards - Rule Wizard.

Добавляем в tomcat/shared/classes/alfresco/extension/ файл web-client-config-custom.xml строки

<config evaluator="string-compare" condition="Action Wizards" replace="true">

<aspects>

<!-- добавляем все аспекты, которые успели создать в моделе-->

<aspect name="itd:Severity" />

</aspects>

<subtypes>

<type name="itd:Request" />

</subtypes>

</config>

Далее добавление действий на аспекты выглядит примерно так:

С вашего позволения точнее описывать пока что не буду, спать хочется.. Если есть вопросы по реализации конкретного аспекта - пишите в комменты, а вообще пробуйте..

Этап 3. Добавление модели в интерфейс /share

Во первых, нужно научиться загружать документы нашего типа. Это делается в файле tomcat/webapps/share/WEB-INF/classes/alfresco/site-webscripts/org/alfresco/components/upload/flash-upload.get.js. Требуется добавить наш тип в список, либо изменить существующий на новый. Мы облегчим задачу и просто удалим все типы кроме нашего.

function getContentTypes()

{

var contentTypes = [

{

id: "itd:Request",

value: "itd_Request"

}];

return contentTypes;

}

model.contentTypes = getContentTypes();

После этого все загружаемые документы будут нашего типа.

Следующим этапом отображаем новые свойства в метаданных. Для этого нужно найти (или создать) файл tomcat/shared/classes/alfresco/web-extension/share-config-custom.xml. По аналогии с web-client-config-custom.xml получается такой файл:

<alfresco-config>

<config evaluator="node-type" condition="itd:Request">

<forms>

<form>

<field-visibility>

<show id="itd:Number" />

<show id="itd:Category" />

<show id="itd:Status" />

<show id="itd:relatedDocuments" />

<show id="cm:name" />

</field-visibility>

</form>

</forms>

</config>

</alfresco-config>

Вот и все. Ничего нереального, но это помогает заметно упростить категоризацию и обработку документов, обладающих определенными свойствами.

Олег Китаков

okitakov [AT] itd-systems [DOT] ru

ITD Systems

Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования