cancel
Showing results for 
Search instead for 
Did you mean: 

Criar estrutura de pastas (em árvore) automaticamente

pmans
Star Contributor
Star Contributor

Boa tarde.

Preciso criar uma estrutura de pastas que seja criada automaticamente, no repositório(sem utilização do share). Algo deste tipo:

Dá pesquisa que fiz o mais parecido que encontrei foi os space template, que tem um ficheiro xml com configuração de uma estrutura de pastas (software_engineering_project.xml).

Creating a space template 

Já tentei encontrar este ficheiro no alfresco SDK, mas sem sucesso.

Agradeço ajuda neste assunto

6 REPLIES 6

douglascrp
World-Class Innovator
World-Class Innovator

Boa tarde.

O SDK não tem relação alguma com código do Alfresco, e é por isso que você não encontrou o código relacionado com isso.

O que você precisa na verdade é do código do Share, que é onde essa estrutura de diretórios é criada, usando-se o mecanismo de bootstrap.

share/share-services/src/main/resources/alfresco/bootstrap/team-sample-sites/swsdp at develop · Alfr... 

share/module-context.xml at develop · Alfresco/share · GitHub 

Para entender como isso tudo funciona, dê uma lida na documentação oficial em Bootstrapping Files/Spaces via XML | Alfresco Documentation 

pmans
Star Contributor
Star Contributor

Bom dia Douglas.

Não pretendo usar o Share como IU, para isso estou a desenvolver uma app (html) adaptado ao que preciso.

Como não vou usar o Share, a informação que disponibilizou ainda se pode aplicar para a solução que estou a desenvolver?

douglascrp
World-Class Innovator
World-Class Innovator

Boa tarde.

Os exemplos que te passei são responsáveis pela criação de alguns objetos necessários para o Share, e por isso estão dentro desse projeto.

Essas funcionalidades server para a criação de qualquer objeto dentro do repositório, e não se limitam de forma alguma ao Share.

pmans
Star Contributor
Star Contributor

Bom dia.

Estou a seguir documentação oficial que me indicou mas devo estar a fazer algo mal.

Estou a fazer no Alfresco SDK 3.0 (plataform)

No ficheiro bootstrap-context.xml estou acrescentar:

        <bean id="customSpacesBootstrap" parent="spacesStoreImporter" singleton="true" >
      <property name="useExistingStore">
        <value>true</value>
      </property>
      <property name="bootstrapViews">
        <list>
          <props>
            <prop key="path">/${spaces.company_home.childname}/${spaces.dictionary.childname}/${spaces.templates.email.childname}</prop>
            <prop key="location">alfresco/module/${project.artifactId}/config_email_templates.xml</prop>
          </props>
        </list>
      </property>
    </bean>

De seguida criei um novo XML, config_email_templates.xml , que coloquei na dentro do SDK em "location">alfresco/module/${project.artifactId}/config_email_templates.xml

<view:view xmlns:view="http://www.alfresco.org/view/repository/1.0"
      xmlns:cm="http://www.alfresco.org/model/content/1.0" xmlns:app="http://www.alfresco.org/model/application/1.0"
      xmlns:emailserver="http://www.alfresco.org/model/emailserver/1.0">
      
      <cm:folder view:childName="cm:My First Folder">
        <app:uifacets />
        <cm:name>My First Folder</cm:name>
        <app:icon>space-icon-default</app:icon>
        <cm:title>My First Folder</cm:title>
        <cm:description></cm:description>
        <cm:contains>
          <cm:content view:childName="cm:custom_email_template.ftl">
            <view:aspects>
              <cm:titled />
              <cm:author />
              <app:inlineeditable />
            </view:aspects>
            <view:properties>
              <app:editInline>true</app:editInline>
              <cm:description>This is a custom email template.</cm:description>
              <cm:content>contentUrl=classpath:alfresco/module/${project.artifactId}/bootstrap/custom_email_template.ftl|mimetype=text/plain|size=|encoding=UTF-8|locale=en_US_</cm:content>
              <cm:title>My first email template</cm:title>
              <cm:author>Me</cm:author>
              <cm:name>custom_email_template.ftl</cm:name>
            </view:properties>
            <view:associations></view:associations>
          </cm:content>
        </cm:contains>
      </cm:folder>
    </view:view>

Estou a seguir este exemplo para ver se conseguia entender o seu funcionamento, e depois passava para a criação de uma estrutura só de pastas, tipo o exemplo da imagem que coloquei, mas não estou a conseguir.

Também não sei se estou a fazer confusão, mas os ficheiros XML que se criam para efectuar o bootstrapping é na versão instalada no Alfresco (5.2)  ou é no Alfresco SDK?

pmans
Star Contributor
Star Contributor

Boa tarde.

Entretanto tentei um exemplo mais pequeno, criar uma pasta, mas também não estou a conseguir obter resultados.

impot-folder.xml

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN'
'http://www.springframework.org/dtd/spring-beans.dtd'>
<beans>
    <bean id='myModule_bootstrapGroups' class='org.alfresco.repo.module.ImporterModuleComponent'
        parent='module.baseComponent'>
        <property name='moduleId' value='myModuleId' />
        <property name='name' value='nameGivenToImport' />
        <property name='description' value='descriptionOfThisImport' />
        <property name='sinceVersion' value='1.0' />
        <property name='appliesFromVersion' value='1.0' />
        <property name='importer' ref='userBootstrap' />
        <property name='bootstrapViews'>
            <list>
                <props>
                    <prop key='path'>/${spaces.company_home.childname}</prop>
                    <prop key='location'>alfresco/module/repoSDK/bootstrap/import-folders.xml</prop>
                </props>
            </list>
        </property>
    </bean>
</beans>

folder-context.xml

<?xml version="1.0" encoding="UTF-8"?>
<view:view xmlns:view="http://www.alfresco.org/view/repository/1.0"
   xmlns:cm="http://www.alfresco.org/model/content/1.0" xmlns:app="http://www.alfresco.org/model/application/1.0"
   xmlns:emailserver="http://www.alfresco.org/model/emailserver/1.0"
   xmlns:sys="http://www.alfresco.org/model/system/1.0">

   <cm:folder view:childName="cm:MyFolder">
      <app:uifacets />
      <cm:name>MyFolder</cm:name>
      <app:icon>space-icon-default</app:icon>
      <cm:title>MyFolder</cm:title>
      <cm:description>MyFolder</cm:description>
   </cm:folder>
</view:view>

Já fiz muitos testes mas não estou a conseguir fazer o deploy do Alfresco SDK 3, algo deve estar mal nos ficheiro xml que crie.

Agradeço se puderem da uma ajuda no que estarei a fazer de mal e se possível um passo a passo.

pmans
Star Contributor
Star Contributor

Boa tarde.

Após muitos testes, já consegui fazer a estrutura de pastas.

Mas surgiu-me um problema, ao criar a estrutura de pastas com o tipo cm:folder corre tudo bem, mas quando tento criar a estrutura de pastas com um tipo personalizado de pastas da-me erro.

Só é possível criar pastas com o tipo cm.folder?