/
Share Site Customizations Live Share Site Customizations Live

Share Site Customizations Live - PowerPoint Presentation

mitsue-stanley
mitsue-stanley . @mitsue-stanley
Follow
499 views
Uploaded On 2016-06-21

Share Site Customizations Live - PPT Presentation

David Draper DaveDraper Erik Winlöf erikwinlof UI Team What were going to do Possibilities Unique Organizing ID: 372215

acme alfresco site evaluator alfresco acme evaluator site share http module extension data preset amp partner customizations doclib extensions

Share:

Link:

Embed:

Download Presentation from below link

Download Presentation The PPT/PDF document "Share Site Customizations Live" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.


Presentation Transcript

Slide1

Share Site Customizations Live

David

Draper

@_

DaveDraper

Erik

Winlöf

@

erikwinlof

(UI Team)Slide2

What we’re going to do…

Possibilities

Unique

Organizing

Extension points

3 demos =

3 extension modules

…customizations applied

LIVE

!

Create

your own < 1 hour!

Slide3

Acme

Research

& Development

department

Publishes

R&D

articles

Partner

“portal”

Casting

:

Author:

Alan

Editor:

Erik

Partner:

PatrickSlide4

Pre Demo: “Nothing up our sleeves”

Alfresco Community

4.2.b

(vanilla)

Slide5

Step 1

Define

R&D projects

Make it availableSlide6

Don’t worry, be happy!

Slide7

Define R&D projects

Site

Presets

Used in create site dialog

Customize using

“preset-id”

in evaluators

Config

templateSlide8

/alfresco/site-data/presets/

acme-

rd

-

presets.xml

<preset id="

acme-

rd

-preset

”>

<page id="site/${

siteid

}/dashboard">

<title-id>

page.acme-rd-dashboard.title

</title-id>

<properties>

<

sitePages

>

[

{ "pageId":"acme-rd-introduction" }, { "pageId":"documentlibrary" } ]</sitePages> </properties> </page>

<components/></preset>Also:Custom propertiesRename pages w <pageMetadata>

*-presets.xml

(v 4.1)

http://

blogs.alfresco.com

/

wp

/

ddraper

/2011/11/01/spring-surf-presets/Slide9

/alfresco/site-data/pages/

acme-

rd

-

introduction.xml

<page>

<

template-instance>

1-column

</template-instance>

<components

>

<component>

<region-id>

column

</region-id>

<

sub-components

>

<sub-component id="wiki">

<url>/components/wiki/page</url> </sub-component> </sub-components> </component> </components>

Tip! (v4.0b)2-columns2-columns-resizable2-columns-narrow-left2-columns-narrow-left3-columnshttp://blogs.alfresco.com/wp/ewinlof/2011/10/12/create-pages-in-alfresco-share-using-new-out-of-the-box-templates/

http://wiki.alfresco.com/wiki/

Share_Custom_PagesSlide10

Make preset available

Global module: <customizations>

Slide11

What is an extension module? (v4.0)

/alfresco/site-data/extensions/

*-

extension.xml

<evaluator>

<components>

<configurations>

<customizations>

Add/remove/replace

components in

a

<@region>

Merge share-

config

Enhance templates’

&

webscripts

’:

markup / resources /

model

Module evaluators:

site

.module.evaluator

(v4.0)

portal

.module.evaluator

(v4.0)

group

.module.evaluator

(v4.2b

)

http

://docs.alfresco.com/4.0/index.jsp?topic=%2Fcom.alfresco.enterprise.doc%2Ftasks%2FCreate-a-

Model.html

http://

blogs.alfresco.com

/

wp

/

ddraper

/2011/08/26/extensibility-module-deployment/Slide12

/alfresco/site-data/extensions/

acme-

rd

-

extension.xml

<extension>

<

modules>

<

module>

<

id>

Acme Rd (1) Global changes

</id>

<auto-deploy>true</auto-deploy>

<

!-- No

evaluator, always applied!

--> <customizations> <customization> <targetPackageRoot>org.alfresco</targetPackageRoot> <

sourcePackageRoot>acme.rd.customizations</sourcePackageRoot> </customization> </customizations> </module> Slide13

/alfresco/site-

webscripts

/

org/alfresco

/

modules

create

-

site.get.js

model.sitePresets

.push

(

{

id:

"acme-

rd

-preset"

,

name:

msg.get

("

preset.acme-rd.title

")});

/alfresco/site-webscripts/acme/rd/customizations/modulescreate-site.get.js

var

sitePresets

= [{

id:

"site-dashboard"

,

name

:

msg.get

("

title.collaborationSite

"

)

}

];

model.sitePresets

=

sitePresets

;

Note!

Separate runtime

Common model

http

://blogs.alfresco.com/wp/ddraper/2012/05/22/customizing-share-javascript-widget-instantiation-part-1/Slide14

Demo 1: “Create R&D

project”

Slide15

How quick is Dave?

…he’s smart…

https://github.com/share-extras/site-extension

%

>

ant create-project

-

D

company

=

Acme

-

D

usecase

=

RD

Slide16

Share

Namespaced

project structure:

build targets

Spring context file

i18n

Site preset

Sample

page &

webscript

Extension modules

Doclib

customizationsSlide17

Repository

Namespaced

project structure:

build targets

Spring

context

file

Content model

Sample repo

action

Note

!

Not required…Slide18

Repository

rd:article

aspect

rd:status

property [ “

Draft

|

Published

]

Repo

action

marks as “

Published

https://

devcon.alfresco.com

/berlin/sessions/developing-doclib-actions-alfresco-4

http://

wiki.alfresco.com/wiki/Data_Dictionary_Guide

Alternative solution:Folder rule kicks off a simple workflowhttp://docs.alfresco.com/4.0/index.jsp?topic=%2Fcom.alfresco.enterprise.doc%2Ftasks%2Flibrary-folder-rules-define.htmlSlide19

Step 2

Publishing articles

Show article info in the document library

“Slim down” Share for EditorsSlide20

Publishing articles

Doclib

action

SiteManager

(editor

)

R&D Project

only

Site

Preset module: <configurations>Slide21

/alfresco/site-data/extensions/

acme-

rd

-

extension.xml

<module>

<id>Acme Rd (2) Site changes</id>

<evaluator type="

site.module.evaluator

">

<

params

>

<sites>.*</sites>

<

sitePresets

>

acme-

rd

-preset

</

sitePresets> <applyForNonSites>false</applyForNonSites> <groups>.*</groups> </params> </evaluator> <configurations>  Actions, indicators etc

Slide22

/alfresco/site-data/extensions/

acme-

rd

-

extension.xml

<

config

evaluator="string-compare" condition="

DocLibActions

">

<actions>

<action id="

acme-

rd

-document-

setStatusPublished

" type="

javascript

">

<evaluator>

acme.rd.evaluator.doclib.

hasArticleAspect

</evaluator> <evaluator negate="true">acme.rd.evaluator.doclib.isStatusPublished</evaluator> <evaluator>evaluator.doclib.action.isSiteManager</evaluator> <permissions> <permission allow="true">Write</permission> </permissions> <param name="function">onActionSimpleRepoAction</

param> <param name="action">acme.rd.setPublishedStatus</param> </action>Also:

(v4.2b)isSiteConsumer

isSiteContributor

isSiteCollaborator

pagelink

” / “link

https

://devcon.alfresco.com/berlin/sessions/developing-doclib-actions-alfresco-4

http://

blogs.alfresco.com

/

wp

/

mikeh

/2011/09/26/share-document-library-extensions-in-v4-0/Slide23

Show Custom data only in R&D

doclibs

Indicators

Metadata templates

Slide24

/alfresco/site-data/extensions/

acme-

rd

-

extension.xml

<

config

evaluator="string-compare" condition="

DocumentLibrary

">

<indicators>

<indicator id="

acme-

rd

-status

" index="10"

icon

=”…/

rd

/components/

documentlibrary/indicators/status-16.png” label="acme.rd.indicator.status"> <evaluator>acme.rd.evaluator.doclib.hasArticleAspect</evaluator> <labelParam index="0">{jsNode.properties.rd_status}</

labelParam> </indicator></indicators></config>Tip!<override>some-indicator-id</override>“action” attribute

http://blogs.alfresco.com/wp/

mikeh

/2011/09/26/share-document-library-extensions-in-v4-0/Slide25

/alfresco/site-data/extensions/

acme-

rd

-

extension.xml

<

config

evaluator="string-compare" condition="

DocumentLibrary

">

<metadata-templates>

<template id="

acme-

rd

-status

">

<evaluator>

acme.rd.evaluator.doclib.

hasArticleAspect

</evaluator>

<line index="10" id="date">{

date

}{size}</line> <line index="20" id="rd:status"> {rd_status acme.rd.metadata.status} </line> </template></metadata-templates></config>

Renders objects with: (v4.2b)userNamedisplayNameiso8601titlename

…or register a custom renderer (v.4.0)http://blogs.alfresco.com/

wp

/

mikeh

/2011/09/26/share-document-library-extensions-in-v4-0/Slide26

Hide “Documents” for Editors

Site

Preset

module:

<components>

http://localhost:8081/share/page/

surfBugStatus

http://

blogs.alfresco.com

/

wp

/

ddraper

/2011/08/31/

surfbug

/Slide27

/alfresco/site-data/extensions/

acme-

rd

-

extension.xml

<component>

<scope>

template

</scope>

<region-id>

filter

</region-id>

<source-id>

documentlibrary

</source-id>

<sub-components>

<sub-component id="

default

">

<evaluations>

<evaluation id="

hideSiteManagersFilter

"> <render>false</render> <evaluators> <evaluator type="group.component.evaluator"> <params><groups>SiteManager</groups>

</params> </evaluator>Also: Add & Replacehttp://blogs.alfresco.com/wp/ewinlof/2011/11/09/add-remove-or-replace-components-on-shares-document-details-page/

Component evaluators: (v4.0)

config

.component.evaluator

equals

.component.evaluator

portlet

.component.evaluator

site

.component.evaluator

preset

.component.evaluator

http

://docs.alfresco.com/4.0/index.jsp?topic=%2Fcom.alfresco.enterprise.doc%2Ftasks%2FCreate-a-Model.htmlSlide28

Demo

2: “R

&D

site customizations”

Slide29

Step 3

Partner

“portal

List R&D Projects

Only “Published” articles

“inline previewer”Slide30

Partner “portal”

Dashboard

page

Partner

Title

List of R&D projects (

api

/

sites?spf

=acme-

rd

-preset)

Document Library page

Partner

Title

Document List (

customized)Slide31

/alfresco/site-data/extensions/

acme-rd-extension.xml

<module>

<id>Acme Rd (3) Partner changes</id>

<evaluator type="

group.module.evaluator

">

<

params

>

<

groups

>

GROUP_Partner

</

groups

>

<

groupRelation

>

AND

</groups> </params> </evaluator> <customizations> <customization> <targetPackageRoot>org.alfresco</targetPackageRoot

> <sourcePackageRoot>acme.rd.customizations-partner</sourcePackageRoot> </customization>Slide32

/alfresco

/templates/

org/

alfresco

/

dashboard.ftl

<@markup

target="

alf-hd

"

action="

after

"

id="acme-after-

alf

-

hd

">

<@region id="partner-title” scope="global" />

<@region id="partner-sites" scope="global" />

</@markup>

/alfresco/templates/

acme/rd/customizations-partner/dashboard.ftl

<@markup

id="

alf-hd

”>

<div id="

alf-hd

">

<@region id="header" scope="global" />

<@region id="title" scope="page" />

<@region id="navigation" scope="

page"

/>

</div>

</@markup>

<#-- Remove markup sections we don't want -->

<

@markup

target="

alf-hd

"

action="

remove

"

id="acme-remove-

alf

-

hd

" />

http://docs.alfresco.com/4.0/index.jsp?topic=%2Fcom.alfresco.enterprise.doc%2Ftasks%2Ftu-share-FM-temp-customize.htmlSlide33

Only “Published” docs

Custom repository

webscript

/slingshot/doclib2/

acme-

rd

rd:status

== “Published”

Share “surf-

doclist

webscript

<data-

url

-resolver

>

resolver.doclib.doclistDataUrl

”Slide34

/alfresco/site-data/extensions/

acme-

rd

-

extension.xml

<bean id="

acme.rd.doclib.resolver.doclistDataUrl

class="

org.alfresco.web.resolver.doclib

.

DefaultDoclistDataUrlResolver

">

<property name="

basePath

" value="/slingshot/doclib2/

acme-

rd

"/>

</bean>

/alfresco/web-extensions/

acme-

rd-share-context.xml

<config evaluator="string-compare” condition

="

DocumentLibrary

"

replace

="

true

">

<

doclist

><

data-

url

-resolver

>

acme.rd.doclib.resolver.doclistDataUrl

<

/

data-

url

-resolver

><

/

doclist

>

<

/

config

>Slide35

“inline previewer”

Document

List “

viewRenderer

Notes from

Ray’s

session

https://devcon.alfresco.com/berlin/sessions/share-document-library-views-dam-interface

http://rgauss.com/2012/08/08/adding-document-library-views-to-alfresco-share/ Slide36

Demo 3

: “Partner ‘portal’”

Slide37

What we have

done

Site extension

project

Site Preset

Global module

Site preset module

Group

moduleSlide38

Start worrying!

Engineering sessions

Slides & code

https://

devcon.alfresco.com

/berlin/sessions/share-customizations-live

Blogs

http://blogs.alfresco.com/wp/ewinlof/

http://blogs.alfresco.com/wp/ddraper/

Site Extension

project

https://github.com/share-extras/site-extension