News in Easy Publisher 1.8 ========================== Improved WebDAV support Improved Easy Workflow Manager GUI improvements - A new Tabs system that adds a second tab level. For crowded manage_tabs tabs views has been group and moved to the second level (for instance the LocalRoles tab has moved under the Security tab). - The text "Change" has been change to "Save Changes" in several places. - External Editor is supported for files that support editing by the External Editor product. (Zope External Editor Product by Casey Duncan) - File and Image icons reflect the content type for common file types. EasyWorkflow - The EasyWorkflowManager has been seperated from EasyNavigation. This means that several Easy Workflow Manager can be added in different locations of the site. - EasyWorkflowManager now tracks fields so the current configuration and selections will be presistent during the user session. - EasyWorkflowManager: Added a simple statistic view which counts documents by type. - EasyWorkflowManager: Seperated the view for configuration of the interface from the search view. - resetPublishHistory ***Needs sequrity settings*** - Added public methods isLooked, isPublished, isArchived, getLockedIcon - Renamed PublishDate and ArchiveDate to EffectiveDate and ExpirationDate Publish View - Added the possible choises of Publish Again (will trigger notifications) and Retract which makes it possible to retract a submitted document into a Draft state. Forumlator - Upgraded Forumlator to ***???*** ReplaceSupport - A Find & Replace view has replace the usual Find view. The Regular find view is included in the new view. Find & Replace makes it possible to replace texts in DTML Method accross the site. EasyContactForm - Uses the EasyMailService as e-mail server as default which means it's easier to change mail server configuration for all forms at the same time. - Moved the IEasyDateMetaData interface to EasyDublinCore: IEasyDateMetaData Public: def effective_year(self): return def effective_month(self): return def effective_month_name(self): return def effective_day(self): return def effective_weekday(self): return def publish_date(self): return def archive_date(self): return |None def modification_date(self): return def is_visible(self): return def is_archived(self): return HTML Tabs The size preferences for textareas in DTML Methods are also use in HTML View. ContentRegions - More Storage Types for Content Regions has been added: ***There are bugs here fix before release*** - Date Property - String Property - Text Property - Boolean Property - Int Property - Long Property - Float Property - Lines Property - Tokens Property - Selection Property - Multi Selection Property - Simple Storage has been removed. - The display of Content Regions in the HTML View has been enhanced. EasyTemplate - Easy Template now as a variable tracker built in to them. This means that you can setup variable names that should be tracket in one template or accross tempates. It can be used to remember user interface configurations, or values that are reused for the user accross accesses such as usernames or search texts without any programming. - EasyEditable makes two method calls when they are added if the meethods exist exists in the context of the template. First before the regions and views are initialized: pre_init(document, template) and after the regions and views are initialized post_init(document, template) DTMLView - DTMLViews not takes properties. EasyEditable (EasyDocument, EasyNewsItem, EasyContractForm) - A method for modification_date has been added, it returns the last time the content was modified (including all regions change dates). - Security setting for the following methods has been cahgne from Private to: Protected: AccessContentInformation: getViewName, getDefaultViewName, getViewNames, getTemplateId, istemplateidAcquired, isviewnameAcquired EasyDocumentChange: setViewName - New methods: Protected: AccessContentInformation: def getTemplateService(self) def getTemplate(self) def getView(self) - Unpublished and archived documents now raise a Unauthenticated which means that the ZPublisher will send a HTTP Logon request to the user. EasyEditor - Added a striphtml method to EasyEditor object. (It strips all HTML tags from a text). EasyEditor::Wysiwyg - Added a "disable_restricted_cut_and_paste" flag that if set to true in the context of the editor will enable the possibliity to cut&paste HTML content from Word. EasyFile & EasyImage - EasyFile and EasyImage gets create baes on the actual file type not on what type the user choosen. If the user choses EasyFile and uploads a gif image it will become a EasyImage. - ids are now preserved when file and images are uploaded (including the extenssion, eg. .gif) EasyImage - The methods original_html and preview_html has been deprecated and replaced by original_tag and preview_tag Protected: View: def preview(self, REQUEST=None, RESPONSE=None): def preview_tag(self, **kw): def original(self, REQUEST=None, RESPONSE=None): def original_tag(self, **kw): Protected: access_contents_information: def hasOriginal(self): def hasPreview(self): def getWidth(self): def getPreviewWidth(self): def getOriginalWidth(self): def getHeight(self): def getPreviewHeight(self): def getOriginalHeight(self): def getAbsoluteURL(self): def getPreviewAbsoluteURL(self): def getOriginalAbsoluteURL(self): EasyPublisher - Deprecated methods of EasyPublisherBase: def getEasyNavigationURL(self): #Deprecated use getEasyNavigation.physicalURL instead def getEasyNavigationPath(self): #Deprecated use getEasyNavigation.physicalPath instead def getEasyResourcesURL(self): #Deprecated use getEasyResources.physicalURL instead def getEasyResourcesPath(self): #Deprecated use getEasyResources.physicalPath instead def getEasyNewsServiceURL(self): #Deprecated use getEasyNewsService.physicalURL instead def getEasyNewsServicePath(self): #Deprecated use getEasyNewsService.physicalPath instead def getEasyRoot(self): #Deprecated use getSiteRoot (and others in VirtualPath) instead def getEasyRootURL(self): #Deprecated use getSiteRoot (and others in VirtualPath) instead def getEasyRootPath(self): #Deprecated use getSiteRoot (and others in VirtualPath) instead EasyNavigation: - Buggs fixed that made navigation elements in NamedMenus appear in diffrent locations when object are moved in the site. ***Add more information about the new EasyNavigation behaviour*** - NamedMenus doesn't copy them selfs properly. This might be a configuration or it can be a bug. ***Make test cases***, ***Add documentation for how to use NamedMenus*** EasyPresentationHelpers - The transparent 1x1 pixle helper image are now available as: /misc_/EasyCore/space.gif Deprecated: /misc_/EasyPresentationHelpers/space.gif - Improved the js_encode method. It will now that a tuple of characters to escape. (default is ' and ") - Added a method safe_eval that evaluates a Python exception with or without raising an exception. (If it fails and the argument do_raise=0 (default) it just returns the expression): safe_eval(expr, do_raise=0) - Added a method called multiLengthSequence(seq) which takes a sequence and returns ***I don't know***. - Added helper method: strip_html() - Added helper method: isEmpty(value, strip_html=1) that returns true if the string content of the value is empty or whitespaces. EasyParameterTracker: - Added to new classes Batches and BatchInfo to support the creation of batched result lists. Batches are returned by the create_batches method call. ***Needs more documentation*** EasySearchService - EasySearchService now track more field by default: query as string (not changed) query_start as string (was int), is automaticly transformed to int internaly batch_size as string (was int), is automaticly transformed to int internaly max_batch_size as int (new) searchtext as string (not changed) overlap as string (was int), is automaticly transformed to int internaly orphan as string (was int), is automaticly transformed to int internaly sorton as string (not changed) sortorder as string (not changed) pre_sorton as string (not changed) pre_sortorder as string (not changed) advanced_search as int (new) search_for_categories as string (new) search_for_subjects as tokens (new) - New variables set in REQUEST: previous (same) previous_size (same) next (same) next_size (same) search_query (same) search_batch_first (new) search_batch_last (new) search_batch_size (new) search_batches (same) search_result (same) search_length (same) EasySecurity - EasyUserFolder: Automaticly upgrade an existing UserFolder if an EasyUserFolder is added and there allready exists one. - EasyUser: getUserFullName and getEmail has been change from private to protected:EasyCorePermissions.ManageUsers New Permissions Easy File: Easy File Change **lookup** Easy Notification: Easy Notification Manage **lookup** Easy WorkflowService: Easy WorkflowService Add **lookup** Easy WorkflowService Manage **lookup** Easy WorkflowManager Add **lookup** Easy Workflow: Easy Workflow Publish **lookup** Easy Workflow Deny **lookup** Easy Workflow Retract **lookup** Edit: Easy Workflow Edit Published **lookup** Easy Workflow Edit Archived **lookup** Easy Workflow Edit Draft **lookup** Easy Workflow Edit Submitted **lookup** Deprecated: Easy Workflow View **lookup** Easy Upgrade: Easy Upgrade Manage **lookup** CMF: (ReplyToItem **lookup**) (Easy Discussion Manage **lookup**) EasyVirtualHostMonster: Easy VHM Manage **lookup** Easy LanguageService Manage **lookup** EasySynchronization: Easy Synchronize Manage **lookup** Easy Synchronize View **lookup** EasySimpleObject: Easy Simple Object Add **lookup** Easy Simple Object Edit **lookup** Classes:: EasyCatalogAware base class now looks for a attribute "__catalogs__" which is a tuple of the catalog names the object should be indexed in. Default Catalog is the EasyNavigation catalog, this attribute is set by the application programmer building custom EasyEditables. EasyCatalogAware contains a alternative base class for CatalogAware called VirtualPathCatalogAware: class VirtualPathCatalogAware(CatalogAware, VirtualPathBase): """This class is a simple CatalogAware that only modifies the parts that need to be modified for virtual paths to work properly.""" Security Changes - EasyUserFolder - Local roles: made the search for users case insensitive. New Service Object: - EasyLanguageService is a support object for multi lingual sites. It has knowledge of country and language abrevations and maps languages to paths. - EasyWorkflowManager is a new service object (not a singleton or virtual singleton) that has the functionallity that was in EasyNavigation before. New Easy Object: - EasySimpleObject is a object that can be used to store any information you want, EasySimpleObject are folderish to be use to create hierarcy of objects such as threaded discussions. - EasyPropertyContainer is a stand alone property container that holds properties, it can beused to hold customizable content that should be overridable in the site. It can also be uses as a simple message catalog mapping messageIds to text. - TinyTablePlus is now included out-of-the-box Bugs fixed - Fixed EasyNavigation bugg where object re-appeard after being moved. - Fixed intermittent problems with threads confiliction due to the use of global dictionaries in method calls. Appeard as weird results of navigation rendering for instance. - Problems related to automatic resize features of the EasyEditor Dialog has bee fixed. These problems appeard as JavaScript errors when viewing dialogs. Monkey Patches to Zope Traversable: - Removed the patch of unrestrictedTraverse(self, path, default=_marker, restricted=0) of the class Traversable PropertyManager: - optgroup and keyvalue Select and Multiple Select properties has been extended to handle strings preceeded by either optgroup: or keyvalue: special optgroup:LABEL will translate to an optgroup in the rendered property select box with LABEL as text. keyvalue:KEY;VALUE will translate to an option in the rendered property select box with KEY as key and VALUE as value. *Note using this feature will make your application none Zope conformant.