E-book details

Alfresco Developer Guide. Customizing Alfresco with actions, web scripts, web forms, workflows, and more

Alfresco Developer Guide. Customizing Alfresco with actions, web scripts, web forms, workflows, and more

Jeff Potts, Alfresco.com

Ebook
  • Alfresco Developer Guide
    • Table of Contents
    • Alfresco Developer Guide
    • Credits
    • About the Author
    • About the Reviewers
    • Preface
      • What This Book Covers
      • What You Need for This Book
      • Who This Book is For
      • Conventions
      • Reader Feedback
      • Customer Support
        • Downloading the Example Code for the Book
        • Errata
        • Piracy
        • Questions
    • 1. The Alfresco Platform
      • Alfresco in the Real World
        • Basic Document Management
        • Web Content Management
          • Content Authoring Tools
          • Separation of Presentation from Content
          • Systematic Publication or Deployment
          • Alfresco WCM Example
        • Custom Content-Centric Applications
      • Example Used throughout This Book
      • Alfresco Architecture
        • High-Level Architecture
          • Add-Ons
        • Open Source Components
        • Major Standards and Protocols Supported
      • Customizing Alfresco
        • Basic Customization
          • Dashlets
          • Custom Views
          • Rules and Rule Actions
          • Simple Workflow
        • Advanced Customization
          • Examples of Advanced Customizations
          • Extend the Content Model
          • Perform Automatic Operations on Content
          • Customize the Web Client
          • Create a RESTful API
          • Streamline Complex Business Processes with Advanced Workflows
          • Get Your Web sites under Control
          • Integrate with Other Systems
      • Dusting Off Your Toolbox
        • What about Adobe Flex?
      • Understanding Alfrescos Editions
        • Significant Feature Differences
        • What's Used in This Book
      • Summary
    • 2. Getting Started with Alfresco
      • Obtaining the SDK
        • Step-by-Step: Building Alfresco from Source
      • Setting up the SDK in Eclipse
        • Step-by-Step: Importing the SDK into Eclipse
      • Extending Alfresco
        • Understanding the Extension Mechanism
          • Standard Java Web Application Files
          • Framework Files
            • Spring Configuration Files
            • JavaServer Faces Configuration Files
            • Alfresco Configuration Files
            • Solution-Specific Files
            • Avoid Modifying Alfresco Code and Configuration
      • Packaging and Deploying Customizations
        • Separating Server-Specific Customizations
        • Step-by-Step: Packaging and Deploying a Simple Customization
          • Taking a Look at the Build File
      • Troubleshooting
        • Log4j
        • Step-by-Step: Debugging from within Eclipse
        • Node Browser
      • Starting Over
      • Summary
    • 3. Working with Content Models
      • Defining SomeCo's Content Model
        • Step-by-Step: Starting the Custom Content Model with Custom Types
          • Types
        • Step-by-Step: Adding Properties to Types
        • Properties and Property Types
        • Constraints
      • Step-by-Step: Relating Types with Associations
        • Associations
      • Step-by-Step: Adding Aspects to the Content Model
        • Aspects
      • Step-by-Step: Finishing up the Model
      • Modeling Summary
        • Custom Behavior
      • Modeling Best Practices
        • Out of the Box Models
      • Configuring the UI
        • Step-by-Step: Adding Properties to the Property Sheet
          • Externalizing Display Labels
          • Making Properties Read-Only
        • Step-by-Step: Adding Types and Aspects to WebClient Dropdowns
        • Step-by-Step: Adding Properties and Types to Advanced Search
        • Step-by-Step: Setting Externalized Label Values
          • Setting up Additional Locales
      • Working with Content Programmatically
        • Step-by-Step: Creating Content with JavaScript
          • Leveraging Root Objects
          • Knowing When to Save Documents
          • Using JavaScript for Batch Manipulation
          • Writing Content to the Content Property
        • Creating Content with Java Web Services
          • Step-by-Step: Run SomeCoDataCreator Class to Create Content
        • Creating Content with PHP Web Services
        • Creating Associations
          • Step-by-Step: Run SomeCoDataRelater Class to Create Association
        • Searching for Content
          • Step-by-Step: Run SomeCoDataQueries Class to See Lucene Example
        • Deleting Content
          • Step-by-Step: Running SomeCoDataCleaner Class to Delete Content
      • Summary
    • 4. Handling Content Automatically with Actions, Behaviors, Transformers, and Extractors
      • Encapsulating Content Operations in Actions
        • Step-by-Step: Creating a Basic Action
        • Hiding the Action from End Users
        • Creating Actions that Require User-Specified Parameters
          • Step-by-Step: Creating an Action that Accepts Parameters
        • Incorporating Parameter Values in the Action Description
        • Specifying Parameters when Code Executes an Action
      • Binding Logic to Custom Types with Behaviors
        • Step-by-Step: Writing a Simple Behavior in Java
        • Binding to Multiple Types/Aspects
        • Frequency
        • Figuring Out to Which Policies to Bind
        • Step-by-Step: Writing a Simple Behavior in JavaScript
        • Binding Behavior to Child Types
          • Step-by-Step: Writing a User Ratings Calculator
          • Step-by-Step: Testing the New Rating Behavior
        • Handling Deleted Ratings
      • Extracting Metadata from Files
        • Customizing Metadata Extractors
          • Step-by-step: Customizing the Metadata Mapping
        • Overriding the Default Mapping
        • Leveraging Out of the box Metadata Extractors
        • Digging into an Extractor Class
          • Step-by-Step: Customizing a Metadata Extractor Class
      • Transforming Content from One Format to Another
        • Step-by-Step: Writing a Custom Transformer
      • Summary
    • 5. Customizing the Web Client User Interface
      • Knowing When to Customize Alfresco's Web Client and When to Write Your Own
      • Adding New Menu Items with UI Actions
        • Step-by-Step: Adding a Simple UI Action
        • Showing/Hiding the Label
        • Leveraging Out of the Box Examples
        • Using Other Types of UI Actions
        • Step-by-Step: Adding a UI Action to Set the Web Flag
        • Restricting the UI Action by Permission
      • Writing Action Evaluators to Show/Hide UI Actions
        • Step-by-Step: Evaluating Whether or Not to Show the Set Web Flag UI Actions
      • Changing How the Web Client Renders Data with Custom Component Renderers
        • Step-by-Step: Making a Text Field a Specific Size
        • What Just Happened
        • Overriding the Generator for All Properties
        • Step-by-Step: Changing the Status Field on the Details Page to Display as a Stoplight Indicator
        • Overriding and Customizing Components
      • Creating Custom Dialogs
        • Step-by-Step: Creating a Dialog to Execute Scripts
        • Passing the Context to the Dialog
        • Understanding the JSP
        • Enabling and Disabling the OK Button
      • Creating Custom Wizards
        • Step-by-Step: Stubbing Out the Wizard
        • Step-by-Step: Finishing Out the Wizard
        • Adding Conditions to Wizard Step Pages
        • Receiving Interview Feedback via Email
        • Persisting Interviewer Choices
        • Copying Alfresco's Code into Your Customizations
      • Customizing Web Client JSP Pages
        • Overriding Navigation Rules with Type-specific Settings
      • Summary
    • 6. Exposing Content through a RESTful API with Web Scripts
      • Introducing the Web Script Framework
        • Step-by-Step: Hello World Web Script
        • What Just Happened?
        • Following the Model-View-Controller Pattern
        • Adding Controller Logic
        • Configuring the Web Script
          • Specifying the HTTP Method
          • Specifying Arguments
          • Specifying the Response Format
        • Deploying Web Scripts
        • Building Solutions with the Web Script Framework
      • Planning the SomeCo Whitepapers and Ratings API
      • Retrieving Data with Web Scripts
        • Step-by-Step: Writing a Web Script to List Whitepapers
        • Debugging
        • Fast Facts
        • Organizing Web Scripts
        • Overriding Web Scripts
        • Choosing a URL
        • Choosing between the Repository and the File System
        • Step-by-Step: Retrieving the Rating for a Whitepaper
        • Specifying Optional Arguments
        • Handling Errors
      • Writing Java-Backed Web Scripts
        • Step-by-Step: Writing a Java-Backed Web Script to Handle Ratings Posts
        • Using the Correct ID for Web Script Beans
        • Using both Java and JavaScript for Controller Logic
      • Wiring a Web Script to UI Widgets
        • Step-by-Step: Using a Widget to Post Ratings
        • Implementing the Delete Ratings Link
        • Adding the Web Script Calls to SomeCo's Whitepaper Web Page
        • Making Other Types of Content "Rateable"
        • Dealing with the Cross-Domain Scripting Limitation
      • Handling Form Data
        • Step-by-Step: Implementing a Form-Based Hello World
        • Step-by-Step: Using File Upload in a Multipart Request
      • Customizing the Web Client with Web Scripts
        • Step-by-Step: Running a Web Script as a Dashlet
        • Understanding Web Script Runtimes
      • Advanced Web Scripts
        • Running Web Scripts as JSR-168 Portlets
        • Dealing with Web Script Authentication
        • Controlling Web Script Cache
        • Executing Remote Web Scripts
          • Refactoring the Rating Service
      • Summary
    • 7. Advanced Workflow
      • What is a Workflow?
        • Workflow Options
      • Creating Process Definitions
        • Step-by-Step: Creating a Hello World Process Definition
        • Organizing Processes
      • Using the jBPM Graphical Process Designer
        • Step-by-Step: Using jBPM Process Designer to Create and Deploy Processes
          • Tokens
          • Node Types
          • Versioning Process Definitions
          • Deploying Dependencies
          • Using Alternative Deployment Methods
      • Wiring a Process to the Alfresco UI
        • Step-by-Step: Grabbing the Hello World Argument from the User
          • Understanding Workflow-Specific Content Models
      • Assigning Tasks to Users and Groups
        • Step-by-Step: Creating the Initial Whitepaper Submission Workflow
        • Controlling What Actions Can Be Taken from the Task Management Dialog
        • Enabling the Workflow Initiator to Select Users and Groups
      • Adding Logic to Workflows with Actions and Process Variables
        • Storing Data in Process Variables
        • Step-by-Step: Adding Logic to the Whitepaper Submission Workflow
        • Using Java Classes for Decisions
        • Getting Access to the Content in the Workflow
        • Selecting the Right Event for Your Logic
        • Using ForEachFork
      • Using the Workflow API
        • Step-by-Step: Implementing Third-Party Review
        • Using a Task-Node Instead of a State
        • Making the Third-Party Review More Robust
      • Using Timers
        • Step-by-Step: Adding a Timer to the Third-Party Review
        • Understanding Timer Syntax
      • Debugging Workflows
      • Comparing Alfresco Workflow Options
      • Summary
    • 8. Web Content Management
      • Understanding the Difference between Alfresco DM and Alfresco WCM
      • Obtaining Alfresco WCM
        • Step-by-Step: Installing Alfresco WCM
      • Creating Web Projects
        • Step-by-Step: Creating the SomeCo Web Project
        • What Just Happened
        • Playing Nicely in the Sandbox
        • Inviting Users
        • Mounting Sandboxes via CIFS
        • Virtualization and Layering
      • Creating Web Forms
        • Step-by-Step: Creating a SomeCo Press Release Web Form
        • Mapping XML Schema Types to Web Form Controls
          • Localizing Web Forms with Labels and Alerts
        • Generating XSD Dynamically
        • Step-by-Step: Creating a Press Release Index Page
        • Making Changes to an Existing Web Form
        • Using Web Forms Outside the WCM User Interface
      • Deploying Content
        • Step-by-Step: Deploying Content Using the File System Receiver (FSR)
          • Running Multiple FSR Hosts and Multiple FSR Targets
        • Setting the FSR Target User and Password
        • Viewing Deployment Reports
        • Deploying to Test Servers
        • Enabling Deployment Targets for Auto Deploy
        • Step-by-Step: Deploying to an Alfresco System Receiver (ASR)
      • Performing Post-Deployment Processing
        • Step-by-Step: Running Post-Deployment Code in an FSR Deployment
        • Handling Deletes
        • Step-by-Step: Implementing ASR Deployment Callbacks
      • Modifying and Creating WCM Workflows
        • Using Launch Dates, Expiration Dates, and Link Checking
          • Launch Dates
          • Expiration Dates
          • Link Checking
        • Step-by-Step: Creating a No-Approval Workflow for Job Postings
      • Working with the AVM API
        • Step-by-Step: Writing a Web Script to Query AVMNodes
        • Step-by-Step: Writing a Web Script to Trigger Deployments
          • Implementing a Web Script for Submit
      • Using the AVM Console
      • Summary
    • 9. Security
      • Authenticating and Synchronizing with LDAP
        • Step-by-Step: Setting Up a Local OpenLDAP Server
        • Step-by-Step: Configuring Alfresco to Authenticate against LDAP
        • Step-by-Step: Configuring Chaining
        • Step-by-Step: Synchronizing LDAP with Alfresco
          • Handling Large Directories
      • Setting Up Single Sign-On (SSO)
        • Step-by-Step: Implementing SSO
          • Logging Out
        • Step-by-Step: Configuring CAS to Use LDAP for Authentication
      • Working with Security Services
        • Securing the Admin User
        • Granting Additional Users Admin Rights
          • Step-by-Step: Making tpublisher1 an Admin
        • Creating Users and Groups Programmatically
          • Step-by-Step: Creating Users and Groups through the API
        • Understanding Permission Definitions
          • Permission Groups
          • Permissions
          • Permission Sets
          • Step-by-Step: Setting Up A Portal Publisher Custom Role
          • Global Permissions
          • Mapping Permissions to Methods
      • Summary
    • A. API Reference and Examples
      • Foundation API Public Services
        • ActionService
        • ActivityService (3.0 Labs)
        • AttributeService
        • AuditService
        • AuthenticationService
        • AuthorityService
        • AVMService
        • AVMLockingService
        • AVMSyncService
        • CategoryService
        • CheckOutCheckInService
        • ConfigurableService
        • ContentUsageService (3.0 Labs)
        • ContentService
        • CopyService
        • CrossRepositoryCopyService
        • DeploymentService
        • DescriptorService
        • DictionaryService
        • EditionService
        • EmailService
        • ExporterService
        • FileFolderService
        • ImporterService
        • LinkValidationService
        • LockService
        • MailService
        • MimetypeService
        • ModuleService
        • MultilingualContentService
        • NamespaceService
        • NodeService
        • OwnableService
        • PermissionService
        • PersonService
        • RegistryService
        • RepoAdminService (3.0 Labs)
        • RepositoryExporterService
        • RuleService
        • SearchService
        • ScriptService
        • SiteService (3.0 Labs)
        • TaggingService (3.0 Labs)
        • TemplateService
        • ThumbnailService (3.0 Labs)
        • TransactionService
        • VersionService
        • WorkflowService
      • Lucene Queries
        • Basic Lucene Syntax
        • Property Search
        • Proximity Search
        • Range Search
        • Field Search
          • TYPE and ASPECT
          • ID
          • PARENT
          • PATH
          • QNAME
          • TEXT
          • Category
          • Using Saved Searches as Examples
      • JavaScript
        • Root Objects
        • JavaScript API
          • General
            • Association
            • ChildAssociation
            • ScriptNode
            • ScriptUtils
            • Root object: cache
            • Root object: crossRepoCopy
            • Root object: logger
            • Root object: status
          • Actions API
            • Root object: actions
            • ScriptAction
          • AVM API
            • Root object: avm
            • AVMNode (extends ScriptNode)
            • AVMScriptStore
          • Classification API
            • Root node: classification
            • CategoryNode (extends ScriptNode)
          • People API
            • Root node: people
          • Presence API (3.0 Labs)
            • presence
          • Search API
            • search
      • API Examples
        • Create a Node
          • Foundation
          • JavaScript
          • Web Services
        • Perform a Search
          • Foundation
          • JavaScript
          • Web Services
        • Persist Content
          • Foundation
          • JavaScript
          • Web Services
        • Add an Aspect
          • Foundation
          • JavaScript
          • Web Services
        • Set a Property
          • Foundation
          • JavaScript
          • Web Services
        • Set Permissions
          • Foundation
          • JavaScript
          • Web Services
        • Start a Workflow
          • Foundation
          • JavaScript
          • Web Services
    • B. Alfresco Configuration Reference
      • Actions
        • Actions Available in both Enterprise and Labs
        • Actions Available in Labs Only
      • Web Client Config Elements
        • Conditional Configuration Elements
        • Unconditional Configuration Elements
      • Action Groups
        • Core Web Client Action Groups
        • Forums-Related UI Action Groups
        • Workflow-Related Action Groups
        • WCM-Related Action Groups
      • Metadata Extractors
      • Transformers
      • Graphical View of the Alfresco Content Model
        • System Model
        • User Model
        • Content Model
        • App Model
        • BPM Model
        • Workflow Model
        • WCM Model
        • WCM App Model
        • WCM Workflow Model
    • Index
  • Title: Alfresco Developer Guide. Customizing Alfresco with actions, web scripts, web forms, workflows, and more
  • Author: Jeff Potts, Alfresco.com
  • Original title: Alfresco Developer Guide. Customizing Alfresco with actions, web scripts, web forms, workflows, and more
  • ISBN: 9781847193124, 9781847193124
  • Date of issue: 2008-10-31
  • Format: Ebook
  • Item ID: e_3bpk
  • Publisher: Packt Publishing