fmsystem-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Fmsystem-commits] [11094] Merge 11089:11093 from trunk


From: Sigurd Nes
Subject: [Fmsystem-commits] [11094] Merge 11089:11093 from trunk
Date: Tue, 07 May 2013 08:14:01 +0000

Revision: 11094
          http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=11094
Author:   sigurdne
Date:     2013-05-07 08:14:01 +0000 (Tue, 07 May 2013)
Log Message:
-----------
Merge 11089:11093 from trunk

Modified Paths:
--------------
    branches/Version-1_0-branch/controller/inc/class.menu.inc.php
    branches/Version-1_0-branch/controller/inc/class.uicase.inc.php
    branches/Version-1_0-branch/controller/inc/class.uicheck_list.inc.php
    branches/Version-1_0-branch/controller/inc/class.uicontrol.inc.php
    branches/Version-1_0-branch/controller/inc/class.uicontrol_group.inc.php
    branches/Version-1_0-branch/controller/inc/class.uicontrol_item.inc.php
    branches/Version-1_0-branch/controller/inc/class.uidocument.inc.php
    branches/Version-1_0-branch/controller/inc/class.uiprocedure.inc.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrCollections.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/AlphaValue.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Background.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/BackgroundPosition.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Border.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Color.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Composite.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/DenyElementDecorator.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Filter.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Font.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/FontFamily.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/ImportantDecorator.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Length.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/ListStyle.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Multiple.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Number.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Percentage.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/TextDecoration.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/URI.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/Enum.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/Bool.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/Color.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/FrameTarget.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/ID.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/Length.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/LinkTypes.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/MultiLength.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/Nmtokens.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/Pixels.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/Integer.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/Lang.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/Text.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/URI/Email/SimpleCheck.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/URI/Email.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/URI/Host.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/URI/IPv4.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/URI/IPv6.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/URI.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrTransform/BdoDir.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrTransform/BgColor.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrTransform/BoolToCSS.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrTransform/Border.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrTransform/EnumToCSS.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrTransform/ImgRequired.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrTransform/ImgSpace.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrTransform/Lang.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrTransform/Length.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrTransform/Name.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrTransform/ScriptRequired.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrTransform.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrTypes.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrValidator.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Bootstrap.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/CSSDefinition.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ChildDef/Chameleon.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ChildDef/Custom.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ChildDef/Empty.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ChildDef/Optional.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ChildDef/Required.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ChildDef/StrictBlockquote.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ChildDef/Table.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ChildDef.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Config.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/Builder/ConfigSchema.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/Builder/Xml.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/Exception.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/Interchange/Directive.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/Interchange/Id.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/Interchange.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/InterchangeBuilder.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/Validator.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/ValidatorAtom.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedFrameTargets.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRel.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRev.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImage.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImageAlt.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultTextDir.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.EnableID.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklist.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklistRegexp.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefix.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefixLocal.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.AutoParagraph.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.Custom.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.Linkify.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowImportant.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowTricky.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowedProperties.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.DefinitionRev.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.Proprietary.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Cache.DefinitionImpl.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPath.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.AggressivelyFixLt.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.CollectErrors.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.ColorKeywords.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.ConvertDocumentToFragment.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.DirectLexLineNumberSyncInterval.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.Encoding.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidChildren.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidTags.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.EscapeNonASCIICharacters.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.HiddenElements.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.Language.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.LexerImpl.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.MaintainLineNumbers.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.RemoveInvalidImg.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.RemoveScriptContents.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Filter.Custom.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Filter.YouTube.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Allowed.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedAttributes.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedElements.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedModules.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.BlockWrapper.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.CoreModules.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.CustomDoctype.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionID.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionRev.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Doctype.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenAttributes.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenElements.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Parent.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Proprietary.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Strict.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.TidyAdd.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.TidyLevel.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.TidyRemove.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Trusted.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.XHTML.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Output.CommentScriptContents.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Output.Newline.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Output.TidyFormat.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Test.ForceNoIconv.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.AllowedSchemes.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.Base.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.DefaultScheme.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.DefinitionID.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.DefinitionRev.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.Disable.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableExternal.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableExternalResources.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableResources.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.Host.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.HostBlacklist.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.MakeAbsolute.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.Munge.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.OverrideAllowedSchemes.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/info.ini
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema.ser
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ContentSets.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Context.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Definition.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/DefinitionCache/Decorator/Cleanup.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/DefinitionCache/Decorator/Memory.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/DefinitionCache/Decorator/Template.php.in
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/DefinitionCache/Decorator.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/DefinitionCache/Null.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/DefinitionCache/Serializer.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/DefinitionCache.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/DefinitionCacheFactory.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Doctype.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/DoctypeRegistry.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ElementDef.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Encoder.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/EntityLookup/entities.ser
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/EntityLookup.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/EntityParser.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ErrorCollector.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Exception.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Filter/ExtractStyleBlocks.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Filter/YouTube.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Filter.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Generator.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLDefinition.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/Bdo.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/CommonAttributes.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/Edit.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/Hypertext.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/Image.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/Legacy.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/List.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/NonXMLCommonAttributes.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/Object.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/Presentation.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/Proprietary.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/Ruby.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/Scripting.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/StyleAttribute.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/Tables.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/Target.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/Text.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/Tidy/Proprietary.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/Tidy/Strict.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/Tidy/Transitional.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/Tidy/XHTML.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/Tidy/XHTMLAndHTML4.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/Tidy.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/XMLCommonAttributes.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModuleManager.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/IDAccumulator.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Injector/AutoParagraph.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Injector/Linkify.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Injector/PurifierLinkify.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Injector.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Language/classes/en-x-test.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Language/messages/en-x-test.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Language/messages/en-x-testmini.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Language/messages/en.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Language.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/LanguageFactory.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Lexer/DOMLex.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Lexer/DirectLex.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Lexer/PH5P.php
    branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Lexer.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/PercentEncoder.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Printer/CSSDefinition.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Printer/ConfigForm.css
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Printer/ConfigForm.js
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Printer/ConfigForm.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Printer/HTMLDefinition.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Printer.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Strategy/Composite.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Strategy/Core.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Strategy/FixNesting.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Strategy/MakeWellFormed.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Strategy/RemoveForeignElements.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Strategy/ValidateAttributes.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Strategy.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/StringHash.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/StringHashParser.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/TagTransform/Font.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/TagTransform/Simple.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/TagTransform.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Token/Comment.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Token/Empty.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Token/End.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Token/Start.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Token/Tag.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Token/Text.php
    branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Token.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/TokenFactory.php
    branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/URI.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/URIDefinition.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/URIFilter/DisableExternal.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/URIFilter/DisableExternalResources.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/URIFilter/HostBlacklist.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/URIFilter/MakeAbsolute.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/URIFilter.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/URIParser.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/URIScheme/ftp.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/URIScheme/http.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/URIScheme/https.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/URIScheme/mailto.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/URIScheme/news.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/URIScheme/nntp.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/URIScheme.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/URISchemeRegistry.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/VarParser/Flexible.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/VarParser/Native.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/VarParser.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/VarParserException.php
    branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier.auto.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier.autoload.php
    branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier.func.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier.includes.php
    branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier.kses.php
    branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier.path.php
    branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier.safe-includes.php
    branches/Version-1_0-branch/property/inc/class.soagreement.inc.php
    
branches/Version-1_0-branch/property/inc/import/default/Import_fra_Kemner_xml

Added Paths:
-----------
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Ident.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/Clone.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/Class.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/Switch.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrTransform/Background.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrTransform/Input.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrTransform/NameSync.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrTransform/Nofollow.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrTransform/SafeEmbed.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrTransform/SafeObject.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrTransform/SafeParam.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrTransform/TargetBlank.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrTransform/Textarea.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ChildDef/List.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedClasses.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.ClassUseCDATA.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultImageAlt.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.ForbiddenClasses.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.DisplayLinkURI.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.DocURL.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.Exceptions.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveSpansWithoutAttributes.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowedFonts.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.ForbiddenProperties.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.MaxImgLength.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.Trusted.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPermissions.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.DisableExcludes.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.EnableIDNA.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.NormalizeNewlines.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.RemoveProcessingInstructions.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Escaping.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Scope.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.TidyImpl.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedComments.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedCommentsRegexp.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Attr.Name.UseCDATA.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.FlashAllowFullScreen.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.MaxImgLength.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Nofollow.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.SafeEmbed.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.SafeIframe.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.SafeObject.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.SafeScripting.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.TargetBlank.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Output.FixInnerHTML.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Output.FlashCompat.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Output.SortAttr.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.MungeResources.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.MungeSecretKey.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.SafeIframeRegexp.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/DefinitionCache/Serializer/README
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ErrorStruct.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/Forms.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/Iframe.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/Name.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/Nofollow.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/SafeEmbed.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/SafeObject.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/SafeScripting.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/TargetBlank.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/HTMLModule/Tidy/Name.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Injector/DisplayLinkURI.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Injector/RemoveEmpty.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Injector/RemoveSpansWithoutAttributes.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Injector/SafeObject.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Length.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/PropertyList.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/PropertyListIterator.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/URIFilter/DisableResources.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/URIFilter/Munge.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/URIFilter/SafeIframe.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/URIScheme/data.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/URIScheme/file.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/UnitConverter.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier.composer.php

Removed Paths:
-------------
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigDef/Directive.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigDef/DirectiveAlias.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigDef/Namespace.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigDef.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/Interchange/Namespace.php
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormatParam.PurifierLinkifyDocURL.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormatParam.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Cache.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Filter.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/FilterParam.ExtractStyleBlocksEscaping.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/FilterParam.ExtractStyleBlocksScope.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/FilterParam.ExtractStyleBlocksTidyImpl.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/FilterParam.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Output.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Test.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.txt
    
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/Lexer/PEARSax3.php

Property Changed:
----------------
    branches/Version-1_0-branch/


Property changes on: branches/Version-1_0-branch
___________________________________________________________________
Modified: svn:mergeinfo
   - 
/trunk:6439-6441,6443,6445-6447,6449-6464,6466-6468,6470-6474,6476-6477,6479-6480,6483-6488,6490-6491,6493-6494,6496-6501,6503-6504,6506,6508,6510-6511,6513,6515-6516,6518,6520-6524,6526-6528,6533-6534,6536-6541,6543-6565,6567,6569,6571-6576,6578,6580-6586,6588-6596,6598-6600,6602-6604,6606-6607,6609-6611,6613-6625,6629-6639,6641-6643,6645-6646,6648,6650-6654,6656-6659,6661-6663,6665-6666,6668-6669,6672-6673,6675,6677-6678,6680,6682-6686,6688-6717,6719,6721-6722,6724-6728,6730,6732-6734,6736-6739,6741,6743,6745-6746,6748-6756,6758-6762,6764,6766-6788,6790,6792-6798,6800-6814,6816-6819,6821-6822,6824-6826,6828-6837,6839,6841,6843-6849,6851,6853-6869,6871-6874,6876-6877,6879,6881,6883,6885-6886,6888-6893,6895-6897,6899-6901,6903,6905-6907,6909,6911-6929,6931-6936,6938-6947,6949,6951,6953,6955-6956,6958-6959,6961-6968,6970-6971,6973-6974,6976-6978,6980,6982-7017,7019-7025,7027-7035,7037-7039,7041-7045,7047-7055,7057,7059-7065,7067-7069,7071,7073,7075-7076,7078,7080-7081,7083,7085,7087,7089-7097,7099-7102,7104-7105,7107-7111,7113-7120,7122-7124,7126-7129,7131,7133-7141,7143,7145-7146,7148-7150,7152-7153,7155-7158,7160-7164,7166-7167,7169-7170,7172,7174,7176,7178,7180-7181,7183,7185,7187-7188,7190,7192-7196,7198-7199,7201-7203,7205,7207,7209-7210,7212,7214,7216-7217,7219-7222,7224-7226,7228-7229,7231,7233-7234,7236-7238,7240-7241,7243-7244,7246,7248,7250,7252-7256,7258-7259,7261-7264,7266-7273,7275-7279,7281-7332,7334-7338,7340-7348,7350,7352-7353,7355-7361,7363-7366,7368-7370,7372,7374,7376,7378,7380-7386,7388-7400,7402,7404-7433,7435-7439,7441-7446,7448-7458,7460-7469,7471-7483,7485-7487,7489-7490,7492,7494,7496-7497,7499,7501-7502,7504,7506-7507,7509-7511,7513-7517,7519-7521,7523,7525,7527-7529,7531,7533,7535-7538,7540-7542,7544-7549,7551-7552,7554-7561,7563,7565,7567-7573,7575-7578,7580-7584,7586-7591,7593-7624,7627-7636,7638-7656,7658-7718,7720-7732,7734,7736,7738-7750,7754-7759,7761-7767,7769-7780,7782,7784-7809,7811-7812,7814-7835,7837-7847,7849-7887,7889-7895,7897,7899,7901,7903-7905,7907-7921,7923-7925,7927-7933,7935,7937-7952,7954-7968,7970-7974,7976,7978-7979,7981-7982,7984-7988,7990-7992,7994-8041,8043-8066,8068-8087,8089,8091-8108,8110-8124,8126-8129,8131,8133-8150,8152-8154,8156-8162,8164-8167,8169-8170,8172-8179,8181,8183-8196,8198-8207,8209-8211,8213-8214,8216-8217,8219-8220,8222,8224-8225,8227-8247,8249,8251,8253-8282,8284-8352,8354-8368,8370-8396,8398-8430,8432,8434-8440,8442-8445,8447-8453,8455-8456,8458,8460,8462-8464,8466-8473,8475-8479,8481,8483-8501,8503-8523,8525,8527-8531,8533,8535-8536,8538-8550,8552-8554,8556-8557,8559-8579,8581-8587,8589,8591-8592,8594-8595,8597-8601,8603-8610,8612-8613,8615,8617,8619-8645,8647-8650,8652-8661,8663-8666,8668-8669,8671-8683,8685-8691,8693-8730,8732-8737,8739,8741-8767,8769,8771-8772,8774,8776-8797,8799-8812,8814-8819,8821,8823-8833,8835-8837,8839,8841,8843-8849,8852-8858,8860-8867,8869-8870,8872,8874-8877,8879,8881,8883-8888,8890,8892-8901,8903-8911,8913-8917,8920-8923,8925-8933,8935-8938,8940-8943,8945,8947-8948,8950,8952-8953,8955-8962,8964,8966,8968-8970,8972-8975,8977-8983,8985-8993,8995-9001,9003,9005,9007,9009,9011-9019,9021-9023,9025,9027-9028,9030-9044,9046-9047,9049-9050,9052-9056,9058-9059,9061,9063-9064,9066-9068,9071-9092,9094-9112,9114-9117,9119,9121-9160,9162-9166,9169-9207,9209-9211,9213-9215,9217,9219,9221-9253,9255,9257,9259-9260,9262,9264-9269,9271-9273,9275,9277-9278,9280,9282-9283,9285-9289,9291-9299,9301-9310,9312-9313,9315-9320,9322-9324,9326-9338,9340-9342,9344,9346-9348,9350-9358,9360-9362,9364-9366,9368-9374,9376-9382,9384,9386,9388-9390,9392-9396,9398-9402,9404-9410,9412,9414,9416-9417,9419-9425,9427,9429-9430,9432,9434-9463,9465-9502,9504-9506,9508-9521,9523-9526,9528,9530-9537,9539,9541-9551,9553,9555-9556,9558-9578,9580-9581,9583,9585,9587,9589,9591-9624,9626-9655,9657-9700,9702-9726,9728-9729,9731-9749,9751,9753-9754,9756-9832,9834-9836,9838-9839,9841-9846,9848-9850,9852-9858,9860-9863,9865,9867,9869-9871,9873-9893,9895,9897-9912,9914-9919,9921-9928,9930-9952,9954,9956,9958-9963,9965-9993,9995-9997,9999-10001,10003-10004,10006-10007,10009-10012,10014-10031,10033-10073,10075-10107,10109-10165,10167-10210,10222-10226,10228-10311,10313-10378,10380,10382,10384-10393,10395-10478,10480-10482,10484-10494,10496-10503,10505,10507,10509-10521,10523,10525-10528,10530-10540,10542-10543,10545-10568,10570-10584,10586-10590,10592-10594,10596,10598-10599,10601-10611,10613,10615,10617-10626,10628-10636,10638,10640-10654,10656-10658,10660,10662-10672,10674,10676-10682,10684,10686,10688-10690,10692-10694,10696-10697,10699-10701,10703,10705-10706,10708-10724,10726-10731,10734,10736-10748,10750-10796,10798-10939,10941,10943,10945,10947-10953,10955,10957-10961,10963,10965-10966,10968-11001,11003-11030,11032-11034,11036,11038,11040,11042-11053,11055-11059,11061-11062,11064-11068,11070-11073,11075-11077,11079-11083,11085,11087-11088
   + 
/trunk:6439-6441,6443,6445-6447,6449-6464,6466-6468,6470-6474,6476-6477,6479-6480,6483-6488,6490-6491,6493-6494,6496-6501,6503-6504,6506,6508,6510-6511,6513,6515-6516,6518,6520-6524,6526-6528,6533-6534,6536-6541,6543-6565,6567,6569,6571-6576,6578,6580-6586,6588-6596,6598-6600,6602-6604,6606-6607,6609-6611,6613-6625,6629-6639,6641-6643,6645-6646,6648,6650-6654,6656-6659,6661-6663,6665-6666,6668-6669,6672-6673,6675,6677-6678,6680,6682-6686,6688-6717,6719,6721-6722,6724-6728,6730,6732-6734,6736-6739,6741,6743,6745-6746,6748-6756,6758-6762,6764,6766-6788,6790,6792-6798,6800-6814,6816-6819,6821-6822,6824-6826,6828-6837,6839,6841,6843-6849,6851,6853-6869,6871-6874,6876-6877,6879,6881,6883,6885-6886,6888-6893,6895-6897,6899-6901,6903,6905-6907,6909,6911-6929,6931-6936,6938-6947,6949,6951,6953,6955-6956,6958-6959,6961-6968,6970-6971,6973-6974,6976-6978,6980,6982-7017,7019-7025,7027-7035,7037-7039,7041-7045,7047-7055,7057,7059-7065,7067-7069,7071,7073,7075-7076,7078,7080-7081,7083,7085,7087,7089-7097,7099-7102,7104-7105,7107-7111,7113-7120,7122-7124,7126-7129,7131,7133-7141,7143,7145-7146,7148-7150,7152-7153,7155-7158,7160-7164,7166-7167,7169-7170,7172,7174,7176,7178,7180-7181,7183,7185,7187-7188,7190,7192-7196,7198-7199,7201-7203,7205,7207,7209-7210,7212,7214,7216-7217,7219-7222,7224-7226,7228-7229,7231,7233-7234,7236-7238,7240-7241,7243-7244,7246,7248,7250,7252-7256,7258-7259,7261-7264,7266-7273,7275-7279,7281-7332,7334-7338,7340-7348,7350,7352-7353,7355-7361,7363-7366,7368-7370,7372,7374,7376,7378,7380-7386,7388-7400,7402,7404-7433,7435-7439,7441-7446,7448-7458,7460-7469,7471-7483,7485-7487,7489-7490,7492,7494,7496-7497,7499,7501-7502,7504,7506-7507,7509-7511,7513-7517,7519-7521,7523,7525,7527-7529,7531,7533,7535-7538,7540-7542,7544-7549,7551-7552,7554-7561,7563,7565,7567-7573,7575-7578,7580-7584,7586-7591,7593-7624,7627-7636,7638-7656,7658-7718,7720-7732,7734,7736,7738-7750,7754-7759,7761-7767,7769-7780,7782,7784-7809,7811-7812,7814-7835,7837-7847,7849-7887,7889-7895,7897,7899,7901,7903-7905,7907-7921,7923-7925,7927-7933,7935,7937-7952,7954-7968,7970-7974,7976,7978-7979,7981-7982,7984-7988,7990-7992,7994-8041,8043-8066,8068-8087,8089,8091-8108,8110-8124,8126-8129,8131,8133-8150,8152-8154,8156-8162,8164-8167,8169-8170,8172-8179,8181,8183-8196,8198-8207,8209-8211,8213-8214,8216-8217,8219-8220,8222,8224-8225,8227-8247,8249,8251,8253-8282,8284-8352,8354-8368,8370-8396,8398-8430,8432,8434-8440,8442-8445,8447-8453,8455-8456,8458,8460,8462-8464,8466-8473,8475-8479,8481,8483-8501,8503-8523,8525,8527-8531,8533,8535-8536,8538-8550,8552-8554,8556-8557,8559-8579,8581-8587,8589,8591-8592,8594-8595,8597-8601,8603-8610,8612-8613,8615,8617,8619-8645,8647-8650,8652-8661,8663-8666,8668-8669,8671-8683,8685-8691,8693-8730,8732-8737,8739,8741-8767,8769,8771-8772,8774,8776-8797,8799-8812,8814-8819,8821,8823-8833,8835-8837,8839,8841,8843-8849,8852-8858,8860-8867,8869-8870,8872,8874-8877,8879,8881,8883-8888,8890,8892-8901,8903-8911,8913-8917,8920-8923,8925-8933,8935-8938,8940-8943,8945,8947-8948,8950,8952-8953,8955-8962,8964,8966,8968-8970,8972-8975,8977-8983,8985-8993,8995-9001,9003,9005,9007,9009,9011-9019,9021-9023,9025,9027-9028,9030-9044,9046-9047,9049-9050,9052-9056,9058-9059,9061,9063-9064,9066-9068,9071-9092,9094-9112,9114-9117,9119,9121-9160,9162-9166,9169-9207,9209-9211,9213-9215,9217,9219,9221-9253,9255,9257,9259-9260,9262,9264-9269,9271-9273,9275,9277-9278,9280,9282-9283,9285-9289,9291-9299,9301-9310,9312-9313,9315-9320,9322-9324,9326-9338,9340-9342,9344,9346-9348,9350-9358,9360-9362,9364-9366,9368-9374,9376-9382,9384,9386,9388-9390,9392-9396,9398-9402,9404-9410,9412,9414,9416-9417,9419-9425,9427,9429-9430,9432,9434-9463,9465-9502,9504-9506,9508-9521,9523-9526,9528,9530-9537,9539,9541-9551,9553,9555-9556,9558-9578,9580-9581,9583,9585,9587,9589,9591-9624,9626-9655,9657-9700,9702-9726,9728-9729,9731-9749,9751,9753-9754,9756-9832,9834-9836,9838-9839,9841-9846,9848-9850,9852-9858,9860-9863,9865,9867,9869-9871,9873-9893,9895,9897-9912,9914-9919,9921-9928,9930-9952,9954,9956,9958-9963,9965-9993,9995-9997,9999-10001,10003-10004,10006-10007,10009-10012,10014-10031,10033-10073,10075-10107,10109-10165,10167-10210,10222-10226,10228-10311,10313-10378,10380,10382,10384-10393,10395-10478,10480-10482,10484-10494,10496-10503,10505,10507,10509-10521,10523,10525-10528,10530-10540,10542-10543,10545-10568,10570-10584,10586-10590,10592-10594,10596,10598-10599,10601-10611,10613,10615,10617-10626,10628-10636,10638,10640-10654,10656-10658,10660,10662-10672,10674,10676-10682,10684,10686,10688-10690,10692-10694,10696-10697,10699-10701,10703,10705-10706,10708-10724,10726-10731,10734,10736-10748,10750-10796,10798-10939,10941,10943,10945,10947-10953,10955,10957-10961,10963,10965-10966,10968-11001,11003-11030,11032-11034,11036,11038,11040,11042-11053,11055-11059,11061-11062,11064-11068,11070-11073,11075-11077,11079-11083,11085,11087-11088,11090-11093

Modified: branches/Version-1_0-branch/controller/inc/class.menu.inc.php
===================================================================
--- branches/Version-1_0-branch/controller/inc/class.menu.inc.php       
2013-05-07 08:11:24 UTC (rev 11093)
+++ branches/Version-1_0-branch/controller/inc/class.menu.inc.php       
2013-05-07 08:14:01 UTC (rev 11094)
@@ -83,6 +83,7 @@
                                                'text'  => 
lang('Control_group'),
                                                'url'   => 
$GLOBALS['phpgw']->link('/index.php', array('menuaction'=> 
'controller.uicontrol_group.index') ),
                                                'image' => array('property', 
'location_1'),
+                                               /*
                                                'children' => array(
                                                                                
        'component_for_control_group' => array
                                                                                
        (
@@ -91,6 +92,7 @@
                                                                                
                'image' => array('property', 'entity_1')
                                                                                
        )
                                                                                
)
+                                               */
                                        ),
                                        'procedure' => array
                                        (

Modified: branches/Version-1_0-branch/controller/inc/class.uicase.inc.php
===================================================================
--- branches/Version-1_0-branch/controller/inc/class.uicase.inc.php     
2013-05-07 08:11:24 UTC (rev 11093)
+++ branches/Version-1_0-branch/controller/inc/class.uicase.inc.php     
2013-05-07 08:14:01 UTC (rev 11094)
@@ -61,7 +61,12 @@
         private $so_check_list;
 
         private $location_finder;
-    
+
+           private $read;
+           private $add;
+           private $edit;
+           private $delete;
+   
                var $public_functions = array(
             'add_case'                                 => true,
                        'save_case'                     => true,
@@ -92,7 +97,12 @@
             $this->so_check_list            = 
CreateObject('controller.socheck_list');
       
             $this->location_finder          = new location_finder();
-               }       
+
+                       $this->read    = 
$GLOBALS['phpgw']->acl->check('.control', PHPGW_ACL_READ, 'controller');//1 
+                       $this->add     = 
$GLOBALS['phpgw']->acl->check('.control', PHPGW_ACL_ADD, 'controller');//2 
+                       $this->edit    = 
$GLOBALS['phpgw']->acl->check('.control', PHPGW_ACL_EDIT, 'controller');//4 
+                       $this->delete  = 
$GLOBALS['phpgw']->acl->check('.control', PHPGW_ACL_DELETE, 'controller');//8 
+               }       
                
         function add_case()
                {
@@ -178,7 +188,13 @@
                                       
'check_list/fragments/select_buildings_on_property'), $data);
                }
     
-               function save_case_ajax(){
+               function save_case_ajax()
+               {
+                       if(!$this->add && !$this->edit)
+                       {
+                               return json_encode( array( "status" => 
"not_saved" ) );
+                       }
+
                        $check_list_id = phpgw::get_var('check_list_id');
                        $control_item_id = phpgw::get_var('control_item_id');
                        $case_descr = phpgw::get_var('case_descr');
@@ -194,7 +210,8 @@
                        $check_item = 
$this->so_check_item->get_check_item_by_check_list_and_control_item($check_list_id,
 $control_item_id);
                                                        
                        // Makes a check item if there isn't already made one  
-                       if($check_item == null){
+                       if($check_item == null)
+                       {
                                $new_check_item = new controller_check_item();
                                $new_check_item->set_check_list_id( 
$check_list_id );
                                $new_check_item->set_control_item_id( 
$control_item_id );
@@ -219,31 +236,44 @@
             $case->set_location_code( $location_code );
 
                        // Saves selected value from  or measurement
-                       if($type == 'control_item_type_2'){
+                       if($type == 'control_item_type_2')
+                       {
                                $measurement = phpgw::get_var('measurement');
                                $case->set_measurement( $measurement );
-                       }else if($type == 'control_item_type_3'){
+                       }
+                       else if($type == 'control_item_type_3')
+                       {
                                $option_value = phpgw::get_var('option_value');
                                $case->set_measurement( $option_value );
-                       }else if($type == 'control_item_type_4'){
+                       }
+                       else if($type == 'control_item_type_4')
+                       {
                                $option_value = phpgw::get_var('option_value');
                                $case->set_measurement( $option_value );
                        }
                        
                        $case_id = $this->so->store($case);
                        
-                       if($case_id > 0){
+                       if($case_id > 0)
+                       {
                                $cl_status_updater = new 
check_list_status_updater();
                                $cl_status_updater->update_check_list_status( 
$check_list_id );
                                                
                                return json_encode( array( "status" => "saved" 
) );
                        }
-                       else{
+                       else
+                       {
                                return json_encode( array( "status" => 
"not_saved" ) );
                        }
                }
     
-               function save_case(){
+               function save_case()
+               {
+                       if(!$this->add && !$this->edit)
+                       {
+                               return json_encode( array( "status" => 
"not_saved" ) );
+                       }
+
                        $case_id = phpgw::get_var('case_id');
                        $case_descr = phpgw::get_var('case_descr');
                        $case_status = phpgw::get_var('case_status');
@@ -258,33 +288,36 @@
                        $case->set_measurement($measurement);
                        $case->set_status($case_status);
                        
-      if($case->validate())
-      {
-        $case_id = $this->so->store($case);
-        $case = $this->so->get_single($case_id);
+                       if($case->validate())
+                       {
+                               $case_id = $this->so->store($case);
+                               $case = $this->so->get_single($case_id);
 
-        if($case_id > 0){
-          $cl_status_updater = new check_list_status_updater();
-          $cl_status_updater->update_check_list_status( $check_list_id );
+                               if($case_id > 0)
+                               {
+                                       $cl_status_updater = new 
check_list_status_updater();
+                                       
$cl_status_updater->update_check_list_status( $check_list_id );
 
-          $check_item = 
$this->so_check_item->get_single($case->get_check_item_id());
-          $control_item = 
$this->so_control_item->get_single($check_item->get_control_item_id());
+                                       $check_item = 
$this->so_check_item->get_single($case->get_check_item_id());
+                                       $control_item = 
$this->so_control_item->get_single($check_item->get_control_item_id());
 
-          $type = $control_item->get_type();
+                                       $type = $control_item->get_type();
 
-          return json_encode( array( "status" => "saved", "type" => $type, 
"caseObj" => $case->toArray() ) );
-        }
-        else{
-          return json_encode( array( "status" => "not_saved" ) );
-        }
-      }
-      else
-      {
-        return json_encode( array( "status" => "error" ) );
-      }
+                                       return json_encode( array( "status" => 
"saved", "type" => $type, "caseObj" => $case->toArray() ) );
+                               }
+                               else
+                               {
+                                       return json_encode( array( "status" => 
"not_saved" ) );
+                               }
+                       }
+                       else
+                       {
+                               return json_encode( array( "status" => "error" 
) );
+                       }
                }
                
-               function create_case_message(){
+               function create_case_message()
+               {
                        $check_list_id = phpgw::get_var('check_list_id');
                        $check_list = 
$this->so_check_list->get_single($check_list_id);
                                                
@@ -360,13 +393,20 @@
                        
self::render_template_xsl(array('check_list/fragments/check_list_menu', 
'case/create_case_message'), $data);
                }
                
-               function send_case_message(){
+               function send_case_message()
+               {
                        $check_list_id = phpgw::get_var('check_list_id');
                        $location_code = phpgw::get_var('location_code');
                        $message_title = phpgw::get_var('message_title');
                        $message_cat_id = phpgw::get_var('message_cat_id');
                        $case_ids = phpgw::get_var('case_ids');
                        
+                       if(!$this->add && !$this->edit)
+                       {
+                               phpgwapi_cache::message_set('No access', 
'error');
+                               $this->redirect(array('menuaction' => 
'controller.uicheck_list.edit_check_list', 'check_list_id' => $check_list_id));
+                       }
+
                        $check_list = 
$this->so_check_list->get_single($check_list_id);
                                                
                        $control_id = $check_list->get_control_id();
@@ -388,7 +428,8 @@
                        
                        // Generates message details from comment field in 
check item 
                        $counter = 1;
-                       foreach($case_ids as $case_id){
+                       foreach($case_ids as $case_id)
+                       {
                                $case = $this->so->get_single($case_id);
                                $message_details .= "Gjøremål $counter: ";
                                $message_details .=  $case->get_descr() . 
"<br>";
@@ -443,7 +484,8 @@
                                                
                        // Registers message and updates check items with 
message ticket id
 
-                       foreach($case_ids as $case_id){
+                       foreach($case_ids as $case_id)
+                       {
                                $case = $this->so->get_single($case_id);
                                $case->set_location_id($location_id_ticket);
                                $case->set_location_item_id($message_ticket_id);
@@ -527,11 +569,17 @@
                        
self::render_template_xsl(array('check_list/fragments/check_list_menu', 
'case/view_case_message'), $data);
                }
                
-               public function updateStatusForCases($location_id, 
$location_item_id, $updateStatus = 0){
-                       
+               public function updateStatusForCases($location_id, 
$location_item_id, $updateStatus = 0)
+               {
+                       if(!$this->add && !$this->edit)
+                       {
+                               return;
+                       }
+
                        $cases_array = $this->so->get_cases_by_message( 
$location_id, $location_item_id );
 
-                       if(!empty ( $cases_array ) ){
+                       if(!empty ( $cases_array ) )
+                       {
                                // Updates status for cases related to message  
                                foreach($cases_array as $case){
                                        $case->set_status( $updateStatus );
@@ -556,24 +604,36 @@
                
                public function delete_case()
                {
+                       if(!$this->delete)
+                       {
+                               return json_encode( array( "status" => 
"not_deleted" ) );
+                       }
+
                        $case_id = phpgw::get_var('case_id');
                        $check_list_id = phpgw::get_var('check_list_id');
                                
                        $status = $this->so->delete($case_id);
                
-                       if($status){
+                       if($status)
+                       {
                                $cl_status_updater = new 
check_list_status_updater();
                                $cl_status_updater->update_check_list_status( 
$check_list_id );
                                                
                                return json_encode( array( "status" => 
"deleted" ) );
                        }
-                       else{
+                       else
+                       {
                                return json_encode( array( "status" => 
"not_deleted" ) );
                        }
                }
                
                public function close_case()
                {
+                       if(!$this->add && !$this->edit)
+                       {
+                               return json_encode( array( "status" => "false" 
) );
+                       }
+
                        $case_id = phpgw::get_var('case_id');
                        $check_list_id = phpgw::get_var('check_list_id');
                                
@@ -588,13 +648,19 @@
                                                
                                return json_encode( array( "status" => "true" ) 
);
                        }
-                       else{
+                       else
+                       {
                                return json_encode( array( "status" => "false" 
) );
                        }
                }
                
                public function open_case()
                {
+                       if(!$this->add && !$this->edit)
+                       {
+                               return json_encode( array( "status" => "false" 
) );
+                       }
+
                        $case_id = phpgw::get_var('case_id');
                        $check_list_id = phpgw::get_var('check_list_id');
                                
@@ -603,13 +669,15 @@
                        
                        $case_id = $this->so->store($case);
                                        
-                       if($case_id > 0){
+                       if($case_id > 0)
+                       {
                                $cl_status_updater = new 
check_list_status_updater();
                                $cl_status_updater->update_check_list_status( 
$check_list_id );
                                                
                                return json_encode( array( "status" => "true" ) 
);
                        }
-                       else{
+                       else
+                       {
                                return json_encode( array( "status" => "false" 
) );
                        }
                }

Modified: branches/Version-1_0-branch/controller/inc/class.uicheck_list.inc.php
===================================================================
--- branches/Version-1_0-branch/controller/inc/class.uicheck_list.inc.php       
2013-05-07 08:11:24 UTC (rev 11093)
+++ branches/Version-1_0-branch/controller/inc/class.uicheck_list.inc.php       
2013-05-07 08:14:01 UTC (rev 11094)
@@ -1,618 +1,650 @@
 <?php
 
-    /**
-     * phpGroupWare - controller: a part of a Facilities Management System.
-     *
-     * @author Erik Holm-Larsen <address@hidden>
-     * @author Torstein Vadla <address@hidden>
-     * @copyright Copyright (C) 2011,2012 Free Software Foundation, Inc. 
http://www.fsf.org/
-     * This file is part of phpGroupWare.
-     *
-     * phpGroupWare is free software; you can redistribute it and/or modify
-     * it under the terms of the GNU General Public License as published by
-     * the Free Software Foundation; either version 2 of the License, or
-     * (at your option) any later version.
-     *
-     * phpGroupWare is distributed in the hope that it will be useful,
-     * but WITHOUT ANY WARRANTY; without even the implied warranty of
-     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-     * GNU General Public License for more details.
-     *
-     * You should have received a copy of the GNU General Public License
-     * along with phpGroupWare; if not, write to the Free Software
-     * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  
USA
-     *
-     * @license http://www.gnu.org/licenses/gpl.html GNU General Public License
-     * @internal Development of this application was funded by 
http://www.bergen.kommune.no/
-     * @package property
-     * @subpackage controller
-     * @version $Id$
-     */
-    /**
-     * Import the jQuery class
-     */
-    phpgw::import_class('phpgwapi.jquery');
+       /**
+        * phpGroupWare - controller: a part of a Facilities Management System.
+        *
+        * @author Erik Holm-Larsen <address@hidden>
+        * @author Torstein Vadla <address@hidden>
+        * @copyright Copyright (C) 2011,2012 Free Software Foundation, Inc. 
http://www.fsf.org/
+        * This file is part of phpGroupWare.
+        *
+        * phpGroupWare is free software; you can redistribute it and/or modify
+        * it under the terms of the GNU General Public License as published by
+        * the Free Software Foundation; either version 2 of the License, or
+        * (at your option) any later version.
+        *
+        * phpGroupWare is distributed in the hope that it will be useful,
+        * but WITHOUT ANY WARRANTY; without even the implied warranty of
+        * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+        * GNU General Public License for more details.
+        *
+        * You should have received a copy of the GNU General Public License
+        * along with phpGroupWare; if not, write to the Free Software
+        * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  
02110-1301  USA
+        *
+        * @license http://www.gnu.org/licenses/gpl.html GNU General Public 
License
+        * @internal Development of this application was funded by 
http://www.bergen.kommune.no/
+        * @package property
+        * @subpackage controller
+        * @version $Id$
+        */
+       /**
+        * Import the jQuery class
+        */
+       phpgw::import_class('phpgwapi.jquery');
 
-    /**
-     * Import the yui class
-     */
-    phpgw::import_class('phpgwapi.yui');
-    phpgw::import_class('phpgwapi.uicommon');
-    phpgw::import_class('controller.socheck_list');
-    phpgw::import_class('phpgwapi.datetime');
+       /**
+        * Import the yui class
+        */
+       phpgw::import_class('phpgwapi.yui');
+       phpgw::import_class('phpgwapi.uicommon');
+       phpgw::import_class('controller.socheck_list');
+       phpgw::import_class('phpgwapi.datetime');
 
-    include_class('controller', 'check_list', 'inc/model/');
-    include_class('controller', 'check_item', 'inc/model/');
-    include_class('controller', 'date_generator', 'inc/component/');
-    include_class('controller', 'check_list_status_updater', 'inc/helper/');
-    include_class('controller', 'date_converter', 'inc/helper/');
-    include_class('controller', 'location_finder', 'inc/helper/');
+       include_class('controller', 'check_list', 'inc/model/');
+       include_class('controller', 'check_item', 'inc/model/');
+       include_class('controller', 'date_generator', 'inc/component/');
+       include_class('controller', 'check_list_status_updater', 'inc/helper/');
+       include_class('controller', 'date_converter', 'inc/helper/');
+       include_class('controller', 'location_finder', 'inc/helper/');
 
-    class controller_uicheck_list extends phpgwapi_uicommon
-    {
-        protected $so;
-        protected $so_control;
-        protected $so_control_item;
-        protected $so_check_item;
-        protected $so_procedure;
-        protected $so_control_group_list;
-        protected $so_control_group;
-        protected $so_control_item_list;
-        protected $location_finder;
-        var $public_functions = array(
-            'index' => true,
-            'add_check_list' => true,
-            'save_check_list' => true,
-            'edit_check_list' => true,
-            'print_check_list' => true,
-            'view_control_info' => true,
-            'view_control_details' => true,
-            'view_control_items' => true,
-            'get_check_list_info' => true,
-            'get_cases_for_check_list' => true,
-            'update_status' => true
-        );
+       class controller_uicheck_list extends phpgwapi_uicommon
+       {
+               protected $so;
+               protected $so_control;
+               protected $so_control_item;
+               protected $so_check_item;
+               protected $so_procedure;
+               protected $so_control_group_list;
+               protected $so_control_group;
+               protected $so_control_item_list;
+               protected $location_finder;
 
-        function __construct()
-        {
-            parent::__construct();
+               private $read;
+               private $add;
+               private $edit;
+               private $delete;
 
-            $this->so_control = CreateObject('controller.socontrol');
-            $this->so = CreateObject('controller.socheck_list');
-            $this->so_control_item = CreateObject('controller.socontrol_item');
-            $this->so_check_item = CreateObject('controller.socheck_item');
-            $this->so_procedure = CreateObject('controller.soprocedure');
-            $this->so_control_group_list = 
CreateObject('controller.socontrol_group_list');
-            $this->so_control_group = 
CreateObject('controller.socontrol_group');
-            $this->so_control_item_list = 
CreateObject('controller.socontrol_item_list');
+               var $public_functions = array(
+                       'index' => true,
+                       'add_check_list' => true,
+                       'save_check_list' => true,
+                       'edit_check_list' => true,
+                       'print_check_list' => true,
+                       'view_control_info' => true,
+                       'view_control_details' => true,
+                       'view_control_items' => true,
+                       'get_check_list_info' => true,
+                       'get_cases_for_check_list' => true,
+                       'update_status' => true
+               );
 
-            $this->location_finder = new location_finder();
+               function __construct()
+               {
+                       parent::__construct();
 
-            self::set_active_menu('controller::control::check_list');
-        }
+                       $this->so_control = 
CreateObject('controller.socontrol');
+                       $this->so = CreateObject('controller.socheck_list');
+                       $this->so_control_item = 
CreateObject('controller.socontrol_item');
+                       $this->so_check_item = 
CreateObject('controller.socheck_item');
+                       $this->so_procedure = 
CreateObject('controller.soprocedure');
+                       $this->so_control_group_list = 
CreateObject('controller.socontrol_group_list');
+                       $this->so_control_group = 
CreateObject('controller.socontrol_group');
+                       $this->so_control_item_list = 
CreateObject('controller.socontrol_item_list');
 
-        /**
-         * Public function for displaying checklists  
-         * 
-         * @param HTTP:: phpgw_return_as
-         * @return data array
-         */
-        public function index()
-        {
-            if(phpgw::get_var('phpgw_return_as') == 'json')
-            {
-                return $this->query();
-            }
-            self::add_javascript('phpgwapi', 'yahoo', 'datatable.js');
-            phpgwapi_yui::load_widget('datatable');
-            phpgwapi_yui::load_widget('paginator');
+                       $this->location_finder = new location_finder();
 
-            $data = array(
-                'datatable_name' => 'Sjekkliste (Ikke i bruk)',
-                'form' => array(
-                    'toolbar' => array(
-                        'item' => array(
-                            array('type' => 'filter',
-                                'name' => 'status',
-                                'text' => lang('Status'),
-                                'list' => array(
-                                    array(
-                                        'id' => 'none',
-                                        'name' => lang('Not selected')
-                                    ),
-                                    array(
-                                        'id' => 'NEW',
-                                        'name' => lang('NEW')
-                                    ),
-                                    array(
-                                        'id' => 'PENDING',
-                                        'name' => lang('PENDING')
-                                    ),
-                                    array(
-                                        'id' => 'REJECTED',
-                                        'name' => lang('REJECTED')
-                                    ),
-                                    array(
-                                        'id' => 'ACCEPTED',
-                                        'name' => lang('ACCEPTED')
-                                    )
-                                )
-                            ),
-                            array('type' => 'text',
-                                'text' => lang('searchfield'),
-                                'name' => 'query'
-                            ),
-                            array(
-                                'type' => 'submit',
-                                'name' => 'search',
-                                'value' => lang('Search')
-                            ),
-                        ),
-                    ),
-                ),
-                'datatable' => array(
-                    'source' => self::link(array('menuaction' => 
'controller.uicheck_list.index', 'phpgw_return_as' => 'json')),
-                    'field' => array(
-                        array(
-                            'key' => 'id',
-                            'label' => lang('ID'),
-                            'sortable' => true,
-                            'formatter' => 'YAHOO.portico.formatLink'
-                        ),
-                        array(
-                            'key' => 'title',
-                            'label' => lang('Control title'),
-                            'sortable' => false
-                        ),
-                        array(
-                            'key' => 'start_date',
-                            'label' => lang('start_date'),
-                            'sortable' => false
-                        ),
-                        array(
-                            'key' => 'planned_date',
-                            'label' => lang('planned_date'),
-                            'sortable' => false
-                        ),
-                        array(
-                            'key' => 'end_date',
-                            'label' => lang('end_date'),
-                            'sortable' => false
-                        ),
-                        array(
-                            'key' => 'link',
-                            'hidden' => true
-                        )
-                    )
-                ),
-            );
+                       $this->read     = 
$GLOBALS['phpgw']->acl->check('.control', PHPGW_ACL_READ, 'controller');//1 
+                       $this->add       = 
$GLOBALS['phpgw']->acl->check('.control', PHPGW_ACL_ADD, 'controller');//2 
+                       $this->edit     = 
$GLOBALS['phpgw']->acl->check('.control', PHPGW_ACL_EDIT, 'controller');//4 
+                       $this->delete  = 
$GLOBALS['phpgw']->acl->check('.control', PHPGW_ACL_DELETE, 'controller');//8 
 
-            self::render_template_xsl('datatable_common', $data);
-        }
+                       
self::set_active_menu('controller::control::check_list');
+               }
 
-        /**
-         * Public function for displaying the add check list form
-         * 
-         * @param HTTP:: location code, control id, date
-         * @return data array
-         */
-        function add_check_list($check_list = null)
-        {
-            if($check_list == null)
-            {
-                $type = phpgw::get_var('type');
-                $control_id = phpgw::get_var('control_id');
-                $deadline_ts = phpgw::get_var('deadline_ts');
+               /**
+                * Public function for displaying checklists  
+                * 
+                * @param HTTP:: phpgw_return_as
+                * @return data array
+                */
+               public function index()
+               {
+                       if(phpgw::get_var('phpgw_return_as') == 'json')
+                       {
+                               return $this->query();
+                       }
+                       self::add_javascript('phpgwapi', 'yahoo', 
'datatable.js');
+                       phpgwapi_yui::load_widget('datatable');
+                       phpgwapi_yui::load_widget('paginator');
 
-                $check_list = new controller_check_list();
-                $check_list->set_control_id($control_id);
-                $check_list->set_deadline($deadline_ts);
-            } else
-            {
-                if($check_list->get_component_id() > 0)
-                {
-                    $type = "component";
-                } else
-                {
-                    $type = "location";
-                }
-            }
+                       $data = array(
+                               'datatable_name' => 'Sjekkliste (Ikke i bruk)',
+                               'form' => array(
+                                       'toolbar' => array(
+                                               'item' => array(
+                                                       array('type' => 
'filter',
+                                                               'name' => 
'status',
+                                                               'text' => 
lang('Status'),
+                                                               'list' => array(
+                                                                       array(
+                                                                               
'id' => 'none',
+                                                                               
'name' => lang('Not selected')
+                                                                       ),
+                                                                       array(
+                                                                               
'id' => 'NEW',
+                                                                               
'name' => lang('NEW')
+                                                                       ),
+                                                                       array(
+                                                                               
'id' => 'PENDING',
+                                                                               
'name' => lang('PENDING')
+                                                                       ),
+                                                                       array(
+                                                                               
'id' => 'REJECTED',
+                                                                               
'name' => lang('REJECTED')
+                                                                       ),
+                                                                       array(
+                                                                               
'id' => 'ACCEPTED',
+                                                                               
'name' => lang('ACCEPTED')
+                                                                       )
+                                                               )
+                                                       ),
+                                                       array('type' => 'text',
+                                                               'text' => 
lang('searchfield'),
+                                                               'name' => 
'query'
+                                                       ),
+                                                       array(
+                                                               'type' => 
'submit',
+                                                               'name' => 
'search',
+                                                               'value' => 
lang('Search')
+                                                       ),
+                                               ),
+                                       ),
+                               ),
+                               'datatable' => array(
+                                       'source' => 
self::link(array('menuaction' => 'controller.uicheck_list.index', 
'phpgw_return_as' => 'json')),
+                                       'field' => array(
+                                               array(
+                                                       'key' => 'id',
+                                                       'label' => lang('ID'),
+                                                       'sortable' => true,
+                                                       'formatter' => 
'YAHOO.portico.formatLink'
+                                               ),
+                                               array(
+                                                       'key' => 'title',
+                                                       'label' => 
lang('Control title'),
+                                                       'sortable' => false
+                                               ),
+                                               array(
+                                                       'key' => 'start_date',
+                                                       'label' => 
lang('start_date'),
+                                                       'sortable' => false
+                                               ),
+                                               array(
+                                                       'key' => 'planned_date',
+                                                       'label' => 
lang('planned_date'),
+                                                       'sortable' => false
+                                               ),
+                                               array(
+                                                       'key' => 'end_date',
+                                                       'label' => 
lang('end_date'),
+                                                       'sortable' => false
+                                               ),
+                                               array(
+                                                       'key' => 'link',
+                                                       'hidden' => true
+                                               )
+                                       )
+                               ),
+                       );
 
-            if(!$location_code = $check_list->get_location_code())
-            {
-                $location_code = phpgw::get_var('location_code');
-                $check_list->set_location_code($location_code);
-                $location_array = 
execMethod('property.bolocation.read_single', array('location_code' => 
$check_list->get_location_code()));
-                $level = 
$this->location_finder->get_location_level($location_code);
-            }
+                       self::render_template_xsl('datatable_common', $data);
+               }
 
-            if($type == "component")
-            {
-                if($check_list != null)
-                {
-                    $location_id = phpgw::get_var('location_id');
-                    $check_list->set_location_id($location_id);
-                    $component_id = phpgw::get_var('component_id');
-                    $check_list->set_component_id($component_id);
-                }
+               /**
+                * Public function for displaying the add check list form
+                * 
+                * @param HTTP:: location code, control id, date
+                * @return data array
+                */
+               function add_check_list($check_list = null)
+               {
+                       if($check_list == null)
+                       {
+                               $type = phpgw::get_var('type');
+                               $control_id = phpgw::get_var('control_id');
+                               $deadline_ts = phpgw::get_var('deadline_ts');
 
-                $component_arr = 
execMethod('property.soentity.read_single_eav', array('location_id' => 
$location_id, 'id' => $component_id));
-                $short_desc = 
execMethod('property.soentity.get_short_description', array('location_id' => 
$location_id, 'id' => $component_id));
+                               $check_list = new controller_check_list();
+                               $check_list->set_control_id($control_id);
+                               $check_list->set_deadline($deadline_ts);
+                       }
+                       else
+                       {
+                               if($check_list->get_component_id() > 0)
+                               {
+                                       $type = "component";
+                               }
+                               else
+                               {
+                                       $type = "location";
+                               }
+                       }
 
-                $component = new controller_component();
-                $component->set_location_code($component_arr['location_code']);
-                $component->set_xml_short_desc($short_desc);
+                       if(!$location_code = $check_list->get_location_code())
+                       {
+                               $location_code = 
phpgw::get_var('location_code');
+                               $check_list->set_location_code($location_code);
+                               $location_array = 
execMethod('property.bolocation.read_single', array('location_code' => 
$check_list->get_location_code()));
+                               $level = 
$this->location_finder->get_location_level($location_code);
+                       }
 
-                $component_array = $component->toArray();
-                $building_location_code = 
$this->location_finder->get_building_location_code($component_arr['location_code']);
-                $type = "component";
-            } else
-            {
-                $type = "location";
-            }
+                       if($type == "component")
+                       {
+                               if($check_list != null)
+                               {
+                                       $location_id = 
phpgw::get_var('location_id');
+                                       
$check_list->set_location_id($location_id);
+                                       $component_id = 
phpgw::get_var('component_id');
+                                       
$check_list->set_component_id($component_id);
+                               }
 
-            $control = 
$this->so_control->get_single($check_list->get_control_id());
+                               $component_arr = 
execMethod('property.soentity.read_single_eav', array('location_id' => 
$location_id, 'id' => $component_id));
+                               $short_desc = 
execMethod('property.soentity.get_short_description', array('location_id' => 
$location_id, 'id' => $component_id));
 
-            $year = date("Y", $deadline_ts);
-            $month_nr = date("n", $deadline_ts);
+                               $component = new controller_component();
+                               
$component->set_location_code($component_arr['location_code']);
+                               $component->set_xml_short_desc($short_desc);
 
-            $level = 
$this->location_finder->get_location_level($location_code);
-            $user_role = true;
+                               $component_array = $component->toArray();
+                               $building_location_code = 
$this->location_finder->get_building_location_code($component_arr['location_code']);
+                               $type = "component";
+                       }
+                       else
+                       {
+                               $type = "location";
+                       }
 
-            // Fetches buildings on property
-            $buildings_on_property = 
$this->location_finder->get_buildings_on_property($user_role, $location_code, 
$level);
+                       $control = 
$this->so_control->get_single($check_list->get_control_id());
 
-            $data = array
-                (
-                'location_array' => $location_array,
-                'component_array' => $component_array,
-                'control' => $control,
-                'check_list' => $check_list,
-                'buildings_on_property' => $buildings_on_property,
-                'type' => $type,
-                'current_year' => $year,
-                'current_month_nr' => $month_nr,
-                'building_location_code' => $building_location_code,
-                'location_level' => $level,
-                'check_list_type' => 'add_check_list'
-            );
+                       $year = date("Y", $deadline_ts);
+                       $month_nr = date("n", $deadline_ts);
 
-            $GLOBALS['phpgw']->jqcal->add_listener('planned_date');
-            $GLOBALS['phpgw']->jqcal->add_listener('completed_date');
+                       $level = 
$this->location_finder->get_location_level($location_code);
+                       $user_role = true;
 
-            self::add_javascript('controller', 'controller', 'custom_ui.js');
-            self::add_javascript('controller', 'controller', 'ajax.js');
-            self::add_javascript('controller', 'controller', 'check_list.js');
+                       // Fetches buildings on property
+                       $buildings_on_property = 
$this->location_finder->get_buildings_on_property($user_role, $location_code, 
$level);
 
-            self::render_template_xsl(array('check_list/add_check_list', 
'check_list/fragments/nav_control_plan',
-                'check_list/fragments/check_list_top_section', 
'check_list/fragments/add_check_list_menu',
-                'check_list/fragments/select_buildings_on_property'), $data);
-        }
+                       $data = array
+                       (
+                               'location_array' => $location_array,
+                               'component_array' => $component_array,
+                               'control' => $control,
+                               'check_list' => $check_list,
+                               'buildings_on_property' => 
$buildings_on_property,
+                               'type' => $type,
+                               'current_year' => $year,
+                               'current_month_nr' => $month_nr,
+                               'building_location_code' => 
$building_location_code,
+                               'location_level' => $level,
+                               'check_list_type' => 'add_check_list'
+                       );
 
-        /**
-         * Public function for displaying the edit check list form  
-         * 
-         * @param HTTP:: check list id
-         * @return data array
-         */
-        function edit_check_list($check_list = null)
-        {
-            if($check_list == null)
-            {
-                $check_list_id = phpgw::get_var('check_list_id');
-                $check_list = $this->so->get_single($check_list_id);
-            }
+                       $GLOBALS['phpgw']->jqcal->add_listener('planned_date');
+                       
$GLOBALS['phpgw']->jqcal->add_listener('completed_date');
 
-            $control = 
$this->so_control->get_single($check_list->get_control_id());
+                       self::add_javascript('controller', 'controller', 
'custom_ui.js');
+                       self::add_javascript('controller', 'controller', 
'ajax.js');
+                       self::add_javascript('controller', 'controller', 
'check_list.js');
 
-            $component_id = $check_list->get_component_id();
+                       
self::render_template_xsl(array('check_list/add_check_list', 
'check_list/fragments/nav_control_plan',
+                               'check_list/fragments/check_list_top_section', 
'check_list/fragments/add_check_list_menu',
+                               
'check_list/fragments/select_buildings_on_property'), $data);
+               }
 
-            if($component_id > 0)
-            {
-                $location_id = $check_list->get_location_id();
-                $component_id = $check_list->get_component_id();
+               /**
+                * Public function for displaying the edit check list form  
+                * 
+                * @param HTTP:: check list id
+                * @return data array
+                */
+               function edit_check_list($check_list = null)
+               {
+                       if($check_list == null)
+                       {
+                               $check_list_id = 
phpgw::get_var('check_list_id');
+                               $check_list = 
$this->so->get_single($check_list_id);
+                       }
 
-                $component_arr = 
execMethod('property.soentity.read_single_eav', array('location_id' => 
$location_id, 'id' => $component_id));
-                $short_desc = 
execMethod('property.soentity.get_short_description', array('location_id' => 
$location_id, 'id' => $component_id));
+                       $control = 
$this->so_control->get_single($check_list->get_control_id());
 
-                $component = new controller_component();
-                $component->set_location_code($component_arr['location_code']);
-                $component->set_xml_short_desc($short_desc);
-                $component_array = $component->toArray();
+                       $component_id = $check_list->get_component_id();
 
-                $type = 'component';
-                $building_location_code = 
$this->location_finder->get_building_location_code($component_arr['location_code']);
-            } else
-            {
-                $location_code = $check_list->get_location_code();
-                $location_array = 
execMethod('property.bolocation.read_single', array('location_code' => 
$location_code));
-                $type = 'location';
-                $level = 
$this->location_finder->get_location_level($location_code);
-            }
+                       if($component_id > 0)
+                       {
+                               $location_id = $check_list->get_location_id();
+                               $component_id = $check_list->get_component_id();
 
-            $year = date("Y", $check_list->get_deadline());
-            $month = date("n", $check_list->get_deadline());
+                               $component_arr = 
execMethod('property.soentity.read_single_eav', array('location_id' => 
$location_id, 'id' => $component_id));
+                               $short_desc = 
execMethod('property.soentity.get_short_description', array('location_id' => 
$location_id, 'id' => $component_id));
 
-            $level = 
$this->location_finder->get_location_level($location_code);
-            $user_role = true;
+                               $component = new controller_component();
+                               
$component->set_location_code($component_arr['location_code']);
+                               $component->set_xml_short_desc($short_desc);
+                               $component_array = $component->toArray();
 
-            // Fetches buildings on property
-            $buildings_on_property = 
$this->location_finder->get_buildings_on_property($user_role, $location_code, 
$level);
+                               $type = 'component';
+                               $building_location_code = 
$this->location_finder->get_building_location_code($component_arr['location_code']);
+                       }
+                       else
+                       {
+                               $location_code = 
$check_list->get_location_code();
+                               $location_array = 
execMethod('property.bolocation.read_single', array('location_code' => 
$location_code));
+                               $type = 'location';
+                               $level = 
$this->location_finder->get_location_level($location_code);
+                       }
 
-            $data = array
-                (
-                'control' => $control,
-                'check_list' => $check_list,
-                '$buildings_on_property' => $buildings_on_property,
-                'location_array' => $location_array,
-                'component_array' => $component_array,
-                'type' => $type,
-                'current_year' => $year,
-                'current_month_nr' => $month,
-                'building_location_code' => $building_location_code,
-                'location_level' => $level
-            );
+                       $year = date("Y", $check_list->get_deadline());
+                       $month = date("n", $check_list->get_deadline());
 
-            $GLOBALS['phpgw']->jqcal->add_listener('planned_date');
-            $GLOBALS['phpgw']->jqcal->add_listener('completed_date');
-            $GLOBALS['phpgw']->jqcal->add_listener('deadline_date');
+                       $level = 
$this->location_finder->get_location_level($location_code);
+                       $user_role = true;
 
-            self::add_javascript('controller', 'controller', 'custom_ui.js');
-            self::add_javascript('controller', 'controller', 'ajax.js');
-            self::add_javascript('controller', 'controller', 'check_list.js');
+                       // Fetches buildings on property
+                       $buildings_on_property = 
$this->location_finder->get_buildings_on_property($user_role, $location_code, 
$level);
 
-            
self::render_template_xsl(array('check_list/fragments/check_list_menu', 
'check_list/fragments/nav_control_plan',
-                'check_list/fragments/check_list_top_section', 
'check_list/edit_check_list',
-                'check_list/fragments/select_buildings_on_property'), $data);
-        }
+                       $data = array
+                       (
+                               'control' => $control,
+                               'check_list' => $check_list,
+                               '$buildings_on_property' => 
$buildings_on_property,
+                               'location_array' => $location_array,
+                               'component_array' => $component_array,
+                               'type' => $type,
+                               'current_year' => $year,
+                               'current_month_nr' => $month,
+                               'building_location_code' => 
$building_location_code,
+                               'location_level' => $level
+                       );
 
-        /**
-         * Public function for saving a check list
-         * 
-         * @param HTTP:: location code, control id, status etc.. (check list 
details) 
-         * @return data array
-         */
-        function save_check_list()
-        {
-            $check_list_id = phpgw::get_var('check_list_id');
-            $control_id = phpgw::get_var('control_id');
-            $status = (int) phpgw::get_var('status');
-            $type = phpgw::get_var('type');
-            $deadline_date = phpgw::get_var('deadline_date', 'string');
-            $planned_date = phpgw::get_var('planned_date', 'string');
-            $completed_date = phpgw::get_var('completed_date', 'string');
-            $comment = phpgw::get_var('comment', 'string');
+                       $GLOBALS['phpgw']->jqcal->add_listener('planned_date');
+                       
$GLOBALS['phpgw']->jqcal->add_listener('completed_date');
+                       $GLOBALS['phpgw']->jqcal->add_listener('deadline_date');
 
-            $deadline_date_ts = 
date_converter::date_to_timestamp($deadline_date);
+                       self::add_javascript('controller', 'controller', 
'custom_ui.js');
+                       self::add_javascript('controller', 'controller', 
'ajax.js');
+                       self::add_javascript('controller', 'controller', 
'check_list.js');
 
-            if($planned_date != '')
-            {
-                $planned_date_ts = 
date_converter::date_to_timestamp($planned_date);
-            } else
-            {
-                $planned_date_ts = 0;
-            }
+                       
self::render_template_xsl(array('check_list/fragments/check_list_menu', 
'check_list/fragments/nav_control_plan',
+                               'check_list/fragments/check_list_top_section', 
'check_list/edit_check_list',
+                               
'check_list/fragments/select_buildings_on_property'), $data);
+               }
 
-            if($completed_date != '')
-            {
-                $completed_date_ts = 
phpgwapi_datetime::date_to_timestamp($completed_date);
-                $status = controller_check_list::STATUS_DONE;
-            } else
-            {
-                $completed_date_ts = 0;
-            }
+               /**
+                * Public function for saving a check list
+                * 
+                * @param HTTP:: location code, control id, status etc.. (check 
list details) 
+                * @return data array
+                */
+               function save_check_list()
+               {
+                       $check_list_id = phpgw::get_var('check_list_id');
+                       if(!$this->add && !$this->edit)
+                       {
+                               phpgwapi_cache::message_set('No access', 
'error');
+                               $this->redirect(array('menuaction' => 
'controller.uicheck_list.edit_check_list', 'check_list_id' => $check_list_id));
+                       }
 
-            if($check_list_id > 0)
-            {
-                $check_list = $this->so->get_single($check_list_id);
-            } else
-            {
-                $check_list = new controller_check_list();
-                $check_list->set_control_id($control_id);
-                $location_code = phpgw::get_var('location_code');
-                $check_list->set_location_code($location_code);
+                       $control_id = phpgw::get_var('control_id');
+                       $status = (int) phpgw::get_var('status');
+                       $type = phpgw::get_var('type');
+                       $deadline_date = phpgw::get_var('deadline_date', 
'string');
+                       $planned_date = phpgw::get_var('planned_date', 
'string');
+                       $completed_date = phpgw::get_var('completed_date', 
'string');
+                       $comment = phpgw::get_var('comment', 'string');
 
-                if($type == "component")
-                {
-                    $location_id = phpgw::get_var('location_id');
-                    $component_id = phpgw::get_var('component_id');
-                    $check_list->set_location_id($location_id);
-                    $check_list->set_component_id($component_id);
-                }
-            }
+                       $deadline_date_ts = 
date_converter::date_to_timestamp($deadline_date);
 
-            $check_list->set_status($status);
-            $check_list->set_comment($comment);
-            $check_list->set_deadline($deadline_date_ts);
-            $check_list->set_planned_date($planned_date_ts);
-            $check_list->set_completed_date($completed_date_ts);
+                       if($planned_date != '')
+                       {
+                               $planned_date_ts = 
date_converter::date_to_timestamp($planned_date);
+                       }
+                       else
+                       {
+                               $planned_date_ts = 0;
+                       }
 
-            if($check_list->validate())
-            {
-                $check_list_id = $this->so->store($check_list);
+                       if($completed_date != '')
+                       {
+                               $completed_date_ts = 
phpgwapi_datetime::date_to_timestamp($completed_date);
+                               $status = controller_check_list::STATUS_DONE;
+                       }
+                       else
+                       {
+                               $completed_date_ts = 0;
+                       }
 
-                $cl_status_updater = new check_list_status_updater();
-                $cl_status_updater->update_check_list_status($check_list_id);
+                       if($check_list_id > 0)
+                       {
+                               $check_list = 
$this->so->get_single($check_list_id);
+                       }
+                       else
+                       {
+                               $check_list = new controller_check_list();
+                               $check_list->set_control_id($control_id);
+                               $location_code = 
phpgw::get_var('location_code');
+                               $check_list->set_location_code($location_code);
 
-                if($check_list_id > 0)
-                {
-                    $this->redirect(array('menuaction' => 
'controller.uicheck_list.edit_check_list', 'check_list_id' => $check_list_id));
-                } else
-                {
-                    $this->edit_check_list($check_list);
-                }
-            } else
-            {
-                if($check_list->get_id() > 0)
-                {
-                    $this->edit_check_list($check_list);
-                } else
-                {
-                    $this->add_check_list($check_list);
-                }
-            }
-        }
+                               if($type == "component")
+                               {
+                                       $location_id = 
phpgw::get_var('location_id');
+                                       $component_id = 
phpgw::get_var('component_id');
+                                       
$check_list->set_location_id($location_id);
+                                       
$check_list->set_component_id($component_id);
+                               }
+                       }
 
-        function view_control_info()
-        {
-            $check_list_id = phpgw::get_var('check_list_id');
+                       $check_list->set_status($status);
+                       $check_list->set_comment($comment);
+                       $check_list->set_deadline($deadline_date_ts);
+                       $check_list->set_planned_date($planned_date_ts);
+                       $check_list->set_completed_date($completed_date_ts);
 
-            $check_list = $this->so->get_single($check_list_id);
-            $control = 
$this->so_control->get_single($check_list->get_control_id());
+                       if($check_list->validate())
+                       {
+                               $check_list_id = $this->so->store($check_list);
 
-            $component_id = $check_list->get_component_id();
+                               $cl_status_updater = new 
check_list_status_updater();
+                               
$cl_status_updater->update_check_list_status($check_list_id);
 
-            if($component_id > 0)
-            {
-                $location_id = $check_list->get_location_id();
-                $component_id = $check_list->get_component_id();
+                               if($check_list_id > 0)
+                               {
+                                       $this->redirect(array('menuaction' => 
'controller.uicheck_list.edit_check_list', 'check_list_id' => $check_list_id));
+                               }
+                               else
+                               {
+                                       $this->edit_check_list($check_list);
+                               }
+                       }
+                       else
+                       {
+                               if($check_list->get_id() > 0)
+                               {
+                                       $this->edit_check_list($check_list);
+                               } else
+                               {
+                                       $this->add_check_list($check_list);
+                               }
+                       }
+               }
 
-                $component_arr = 
execMethod('property.soentity.read_single_eav', array('location_id' => 
$location_id, 'id' => $component_id));
-                $short_desc = 
execMethod('property.soentity.get_short_description', array('location_id' => 
$location_id, 'id' => $component_id));
+               function view_control_info()
+               {
+                       $check_list_id = phpgw::get_var('check_list_id');
 
-                $component = new controller_component();
-                $component->set_location_code($component_arr['location_code']);
-                $component->set_xml_short_desc($short_desc);
-                $component_array = $component->toArray();
+                       $check_list = $this->so->get_single($check_list_id);
+                       $control = 
$this->so_control->get_single($check_list->get_control_id());
 
-                $type = 'component';
-                $building_location_code = 
$this->location_finder->get_building_location_code($component_arr['location_code']);
-            } else
-            {
-                $location_code = $check_list->get_location_code();
-                $location_array = 
execMethod('property.bolocation.read_single', array('location_code' => 
$location_code));
-                $type = 'location';
-                $level = 
$this->location_finder->get_location_level($location_code);
-            }
+                       $component_id = $check_list->get_component_id();
 
-            $year = date("Y", $check_list->get_deadline());
-            $month = date("n", $check_list->get_deadline());
+                       if($component_id > 0)
+                       {
+                               $location_id = $check_list->get_location_id();
+                               $component_id = $check_list->get_component_id();
 
-            $level = 
$this->location_finder->get_location_level($location_code);
-            $user_role = true;
+                               $component_arr = 
execMethod('property.soentity.read_single_eav', array('location_id' => 
$location_id, 'id' => $component_id));
+                               $short_desc = 
execMethod('property.soentity.get_short_description', array('location_id' => 
$location_id, 'id' => $component_id));
 
-            // Fetches buildings on property
-            $buildings_on_property = 
$this->location_finder->get_buildings_on_property($user_role, $location_code, 
$level);
+                               $component = new controller_component();
+                               
$component->set_location_code($component_arr['location_code']);
+                               $component->set_xml_short_desc($short_desc);
+                               $component_array = $component->toArray();
 
-            $data = array
-                (
-                'control' => $control,
-                'check_list' => $check_list,
-                'buildings_on_property' => $buildings_on_property,
-                'location_array' => $location_array,
-                'component_array' => $component_array,
-                'type' => $type,
-                'current_year' => $year,
-                'current_month_nr' => $month,
-                'building_location_code' => $building_location_code,
-                'location_level' => $level
-            );
+                               $type = 'component';
+                               $building_location_code = 
$this->location_finder->get_building_location_code($component_arr['location_code']);
+                       }
+                       else
+                       {
+                               $location_code = 
$check_list->get_location_code();
+                               $location_array = 
execMethod('property.bolocation.read_single', array('location_code' => 
$location_code));
+                               $type = 'location';
+                               $level = 
$this->location_finder->get_location_level($location_code);
+                       }
 
-            phpgwapi_jquery::load_widget('core');
+                       $year = date("Y", $check_list->get_deadline());
+                       $month = date("n", $check_list->get_deadline());
 
-            
self::render_template_xsl(array('check_list/fragments/check_list_menu', 
'check_list/fragments/check_list_top_section',
-                'check_list/fragments/nav_control_plan', 
'check_list/view_control_info',
-                'check_list/fragments/select_buildings_on_property'), $data);
-        }
+                       $level = 
$this->location_finder->get_location_level($location_code);
+                       $user_role = true;
 
-        function view_control_details()
-        {
-            $control_id = phpgw::get_var('control_id');
+                       // Fetches buildings on property
+                       $buildings_on_property = 
$this->location_finder->get_buildings_on_property($user_role, $location_code, 
$level);
 
-            $control = $this->so_control->get_single($control_id);
+                       $data = array
+                       (
+                               'control' => $control,
+                               'check_list' => $check_list,
+                               'buildings_on_property' => 
$buildings_on_property,
+                               'location_array' => $location_array,
+                               'component_array' => $component_array,
+                               'type' => $type,
+                               'current_year' => $year,
+                               'current_month_nr' => $month,
+                               'building_location_code' => 
$building_location_code,
+                               'location_level' => $level
+                       );
 
-            $data = array
-                (
-                'control' => $control,
-            );
+                       phpgwapi_jquery::load_widget('core');
 
-            self::render_template_xsl('check_list/view_control_details', 
$data);
-        }
+                       
self::render_template_xsl(array('check_list/fragments/check_list_menu', 
'check_list/fragments/check_list_top_section',
+                               'check_list/fragments/nav_control_plan', 
'check_list/view_control_info',
+                               
'check_list/fragments/select_buildings_on_property'), $data);
+               }
 
-        function view_control_items()
-        {
-            $check_list_id = phpgw::get_var('check_list_id');
-            $check_list = $this->so->get_single($check_list_id);
+               function view_control_details()
+               {
+                       $control_id = phpgw::get_var('control_id');
 
-            $control = 
$this->so_control->get_single($check_list->get_control_id());
-            $control_groups = 
$this->so_control_group_list->get_control_groups_by_control($control->get_id());
+                       $control = $this->so_control->get_single($control_id);
 
-            $saved_groups_with_items_array = array();
+                       $data = array
+                       (
+                               'control' => $control,
+                       );
 
-            //Populating array with saved control items for each group
-            foreach($control_groups as $control_group)
-            {
-                $saved_control_items = 
$this->so_control_item_list->get_control_items_by_control_and_group($control->get_id(),
 $control_group->get_id());
+                       
self::render_template_xsl('check_list/view_control_details', $data);
+               }
 
-                $control_item = 
$this->so_control_item->get_single($control_item_id);
+               function view_control_items()
+               {
+                       $check_list_id = phpgw::get_var('check_list_id');
+                       $check_list = $this->so->get_single($check_list_id);
 
-                $saved_groups_with_items_array[] = array("control_group" => 
$control_group->toArray(), "control_items" => $saved_control_items);
-            }
+                       $control = 
$this->so_control->get_single($check_list->get_control_id());
+                       $control_groups = 
$this->so_control_group_list->get_control_groups_by_control($control->get_id());
 
-            $data = array
-                (
-                'saved_groups_with_items_array' => 
$saved_groups_with_items_array,
-                'check_list' => $check_list
-            );
+                       $saved_groups_with_items_array = array();
 
-            self::render_template_xsl('check_list/view_control_items', $data);
-        }
+                       //Populating array with saved control items for each 
group
+                       foreach($control_groups as $control_group)
+                       {
+                               $saved_control_items = 
$this->so_control_item_list->get_control_items_by_control_and_group($control->get_id(),
 $control_group->get_id());
 
-        public function print_check_list()
-        {
-            $check_list_id = phpgw::get_var('check_list_id');
-            $check_list = $this->so->get_single($check_list_id);
+                               $control_item = 
$this->so_control_item->get_single($control_item_id);
 
-            $control = 
$this->so_control->get_single($check_list->get_control_id());
-            $control_groups = 
$this->so_control_group_list->get_control_groups_by_control($control->get_id());
+                               $saved_groups_with_items_array[] = 
array("control_group" => $control_group->toArray(), "control_items" => 
$saved_control_items);
+                       }
 
-            $saved_groups_with_items_array = array();
+                       $data = array
+                       (
+                               'saved_groups_with_items_array' => 
$saved_groups_with_items_array,
+                               'check_list' => $check_list
+                       );
 
-            //Populating array with saved control items for each group
-            foreach($control_groups as $control_group)
-            {
-                $saved_control_items = 
$this->so_control_item_list->get_control_items_by_control_and_group($control->get_id(),
 $control_group->get_id());
+                       
self::render_template_xsl('check_list/view_control_items', $data);
+               }
 
-                $control_item = 
$this->so_control_item->get_single($control_item_id);
+               public function print_check_list()
+               {
+                       $check_list_id = phpgw::get_var('check_list_id');
+                       $check_list = $this->so->get_single($check_list_id);
 
-                $saved_groups_with_items_array[] = array("control_group" => 
$control_group->toArray(), "control_items" => $saved_control_items);
-            }
+                       $control = 
$this->so_control->get_single($check_list->get_control_id());
+                       $control_groups = 
$this->so_control_group_list->get_control_groups_by_control($control->get_id());
 
-            $data = array
-                (
-                'saved_groups_with_items_array' => 
$saved_groups_with_items_array,
-                'check_list' => $check_list
-            );
+                       $saved_groups_with_items_array = array();
 
-            self::render_template_xsl('check_list/print_check_list', $data);
-        }
+                       //Populating array with saved control items for each 
group
+                       foreach($control_groups as $control_group)
+                       {
+                               $saved_control_items = 
$this->so_control_item_list->get_control_items_by_control_and_group($control->get_id(),
 $control_group->get_id());
 
-        // Returns check list info as JSON
-        public function get_check_list_info()
-        {
-            $check_list_id = phpgw::get_var('check_list_id');
-            $check_list = 
$this->so_check_list->get_single_with_check_items($check_list_id, "open");
+                               $control_item = 
$this->so_control_item->get_single($control_item_id);
 
-            return json_encode($check_list);
-        }
+                               $saved_groups_with_items_array[] = 
array("control_group" => $control_group->toArray(), "control_items" => 
$saved_control_items);
+                       }
 
-        // Returns open cases for a check list as JSON 
-        public function get_cases_for_check_list()
-        {
-            $check_list_id = phpgw::get_var('check_list_id');
+                       $data = array
+                       (
+                               'saved_groups_with_items_array' => 
$saved_groups_with_items_array,
+                               'check_list' => $check_list
+                       );
 
-            $check_items_with_cases = 
$this->so_check_item->get_check_items_with_cases($check_list_id, null, "open", 
null);
+                       
self::render_template_xsl('check_list/print_check_list', $data);
+               }
 
-            return json_encode($check_items_with_cases);
-        }
+               // Returns check list info as JSON
+               public function get_check_list_info()
+               {
+                       $check_list_id = phpgw::get_var('check_list_id');
+                       $check_list = 
$this->so_check_list->get_single_with_check_items($check_list_id, "open");
 
-        /**
-         * Public function for updateing status for a check list
-         * 
-         * @return json encoded array with status saved or not saved
-         */
+                       return json_encode($check_list);
+               }
+
+               // Returns open cases for a check list as JSON 
+               public function get_cases_for_check_list()
+               {
+                       $check_list_id = phpgw::get_var('check_list_id');
+
+                       $check_items_with_cases = 
$this->so_check_item->get_check_items_with_cases($check_list_id, null, "open", 
null);
+
+                       return json_encode($check_items_with_cases);
+               }
+
+               /**
+                * Public function for updateing status for a check list
+                * 
+                * @return json encoded array with status saved or not saved
+                */
                public function update_status()
                {
+                       if(!$this->add && !$this->edit)
+                       {
+                               return json_encode( array( "status" => 
'not_saved') );
+                       }
+
                        $check_list_id = phpgw::get_var('check_list_id');
                        $check_list_status = phpgw::get_var('status');
 
@@ -622,7 +654,7 @@
 
                        if($this->so->store($check_list))
                        {
-                               return json_encode( array( 'status' => 
$check_list_status) );
+                               return json_encode( array( 'status' => 
$check_list_status) );
                        }
                        else
                        {
@@ -630,9 +662,9 @@
                        }
                }
 
-        public function query()
-        {
-            
-        }
+               public function query()
+               {
+                       
+               }
 
-    }
+       }

Modified: branches/Version-1_0-branch/controller/inc/class.uicontrol.inc.php
===================================================================
--- branches/Version-1_0-branch/controller/inc/class.uicontrol.inc.php  
2013-05-07 08:11:24 UTC (rev 11093)
+++ branches/Version-1_0-branch/controller/inc/class.uicontrol.inc.php  
2013-05-07 08:14:01 UTC (rev 11094)
@@ -60,6 +60,11 @@
     private $so_check_item;
     private $_category_acl;            
 
+    private $read;
+    private $add;
+    private $edit;
+    private $delete;
+
     public $public_functions = array
     (
                        'index'                                                 
                                                =>      true,
@@ -80,12 +85,12 @@
                {
                        parent::__construct('controller');
 
-                       $read    = $GLOBALS['phpgw']->acl->check('.control', 
PHPGW_ACL_READ, 'controller');//1 
-                       $add     = $GLOBALS['phpgw']->acl->check('.control', 
PHPGW_ACL_ADD, 'controller');//2 
-                       $edit    = $GLOBALS['phpgw']->acl->check('.control', 
PHPGW_ACL_EDIT, 'controller');//4 
-                       $delete  = $GLOBALS['phpgw']->acl->check('.control', 
PHPGW_ACL_DELETE, 'controller');//8 
+                       $this->read    = 
$GLOBALS['phpgw']->acl->check('.control', PHPGW_ACL_READ, 'controller');//1 
+                       $this->add     = 
$GLOBALS['phpgw']->acl->check('.control', PHPGW_ACL_ADD, 'controller');//2 
+                       $this->edit    = 
$GLOBALS['phpgw']->acl->check('.control', PHPGW_ACL_EDIT, 'controller');//4 
+                       $this->delete  = 
$GLOBALS['phpgw']->acl->check('.control', PHPGW_ACL_DELETE, 'controller');//8 
                        
-                       $manage  = $GLOBALS['phpgw']->acl->check('.control', 
16, 'controller');//16
+                       $this->manage  = 
$GLOBALS['phpgw']->acl->check('.control', 16, 'controller');//16
 
                        //if(!$manage)
                        
@@ -323,7 +328,13 @@
                 * @param HTTP:: control id, control details fields
                 * @return redirect to function view_control_groups
                 */
-               public function save_control_details(){
+               public function save_control_details()
+               {
+                       if(!$this->add && !$this->edit)
+                       {
+                               
$GLOBALS['phpgw']->redirect_link('/index.php',array('menuaction'=> 
'controller.uicontrol.index'));
+                       }
+
                        $control_id = phpgw::get_var('control_id');
                        
                        // Update existing control details
@@ -366,7 +377,8 @@
                                
                                $control_id = $this->so->store($control);
                                $this->redirect(array('menuaction' => 
'controller.uicontrol.view_control_groups', 'control_id' => $control_id));      
  
-                       }else
+                       }
+                       else
                        {
                                        $this->view_control_details($control);
                        }
@@ -439,6 +451,11 @@
                 */
                public function save_control_groups()
                {
+                       if(!$this->add && !$this->edit)
+                       {
+                               
$GLOBALS['phpgw']->redirect_link('/index.php',array('menuaction'=> 
'controller.uicontrol.index'));
+                       }
+
                        $control_id = phpgw::get_var('control_id');
                        $control_group_ids = 
phpgw::get_var('control_group_ids');
 

Modified: 
branches/Version-1_0-branch/controller/inc/class.uicontrol_group.inc.php
===================================================================
--- branches/Version-1_0-branch/controller/inc/class.uicontrol_group.inc.php    
2013-05-07 08:11:24 UTC (rev 11093)
+++ branches/Version-1_0-branch/controller/inc/class.uicontrol_group.inc.php    
2013-05-07 08:14:01 UTC (rev 11094)
@@ -51,6 +51,11 @@
                private $so_control_item_list;
                private $so_control_group_list;
 
+           private $read;
+           private $add;
+           private $edit;
+           private $delete;
+
                public $public_functions = array
                (
                        'index'                                                 
                                                                        =>      
true,
@@ -71,11 +76,17 @@
                        $this->so_control_item_list = 
CreateObject('controller.socontrol_item_list');
                        $this->so_control_group_list = 
CreateObject('controller.socontrol_group_list');
                        $GLOBALS['phpgw_info']['flags']['menu_selection'] = 
"controller::control_group";
+
+                       $this->read    = 
$GLOBALS['phpgw']->acl->check('.control', PHPGW_ACL_READ, 'controller');//1 
+                       $this->add     = 
$GLOBALS['phpgw']->acl->check('.control', PHPGW_ACL_ADD, 'controller');//2 
+                       $this->edit    = 
$GLOBALS['phpgw']->acl->check('.control', PHPGW_ACL_EDIT, 'controller');//4 
+                       $this->delete  = 
$GLOBALS['phpgw']->acl->check('.control', PHPGW_ACL_DELETE, 'controller');//8 
                }
 
                public function index()
                {
-                       if(phpgw::get_var('phpgw_return_as') == 'json') {
+                       if(phpgw::get_var('phpgw_return_as') == 'json')
+                       {
                                return $this->query();
                        }
 
@@ -204,6 +215,12 @@
 
                        if(isset($_POST['save_control_group'])) // The user has 
pressed the save button
                        {
+                               if(!$this->add && !$this->edit)
+                               {
+                                       phpgwapi_cache::message_set('No 
access', 'error');
+                                       
$GLOBALS['phpgw']->redirect_link('/index.php', array('menuaction' => 
'controller.uicontrol_group.index'));
+                               }
+
                                if(isset($control_group)) // Add new values to 
the control item
                                {
                                        
$control_group->set_group_name(phpgw::get_var('group_name'));
@@ -260,6 +277,12 @@
                        }
                        else if(isset($_POST['remove_control_group_items']))
                        {
+                               if(!$this->add && !$this->edit)
+                               {
+                                       phpgwapi_cache::message_set('No 
access', 'error');
+                                       
$GLOBALS['phpgw']->redirect_link('/index.php', array('menuaction' => 
'controller.uicontrol_group.index'));
+                               }
+
                                $control_item_ids = array();
                                // Fetching selected control items
                                $control_tag_ids = 
phpgw::get_var('item_remove_ids');
@@ -388,6 +411,12 @@
                        }
                        else if(isset($_POST['save_control_group_items']))
                        {
+                               if(!$this->add && !$this->edit)
+                               {
+                                       phpgwapi_cache::message_set('No 
access', 'error');
+                                       
$GLOBALS['phpgw']->redirect_link('/index.php', array('menuaction' => 
'controller.uicontrol_group.index'));
+                               }
+
                                $tab_to_display = 'control_group_items';
                                //update control items with control group id
                                //$control_group_id = 
phpgw::get_var('control_group_id');
@@ -534,6 +563,12 @@
 
                public function save_group_and_item_order()
                {
+                       if(!$this->add && !$this->edit)
+                       {
+                               phpgwapi_cache::message_set('No access', 
'error');
+                               
$GLOBALS['phpgw']->redirect_link('/index.php',array('menuaction'=> 
'controller.uicontrol_group.index'));
+                       }
+
                        $control_id = phpgw::get_var('control_id');
                        $item_order_str = phpgw::get_var('item_order');
                        $group_order_str = phpgw::get_var('group_order');
@@ -644,7 +679,8 @@
                        {
                                $user_rows_per_page = 
$GLOBALS['phpgw_info']['user']['preferences']['common']['maxmatchs'];
                        }
-                       else {
+                       else
+                       {
                                $user_rows_per_page = 10;
                        }
 
@@ -767,12 +803,18 @@
                                $control_groups_array = 
$this->so->get_all_control_groups_array();
                        }
                        else
+                       {
                                $control_groups_array = 
$this->so->get_control_groups_by_control_area($control_area_id);
+                       }
 
                        if(count($control_groups_array)>0)
+                       {
                                return json_encode( $control_groups_array );
+                       }
                        else
+                       {
                                return null;
+                       }
                }
 
                public function get_control_area_by_control_group()
@@ -798,9 +840,13 @@
                        }
 
                        if(count($control_areas_array)>0)
+                       {
                                return json_encode( $control_areas_array );
+                       }
                        else
+                       {
                                return null;
+                       }
                }
 
        }

Modified: 
branches/Version-1_0-branch/controller/inc/class.uicontrol_item.inc.php
===================================================================
--- branches/Version-1_0-branch/controller/inc/class.uicontrol_item.inc.php     
2013-05-07 08:11:24 UTC (rev 11093)
+++ branches/Version-1_0-branch/controller/inc/class.uicontrol_item.inc.php     
2013-05-07 08:14:01 UTC (rev 11094)
@@ -47,8 +47,12 @@
                private $so;
                private $so_control_group;
                private $so_control_item_option;
-               
 
+           private $read;
+           private $add;
+           private $edit;
+           private $delete;
+
                public $public_functions = array
                (
                        'index'                                                 
                =>      true,
@@ -68,8 +72,14 @@
                        $this->so_control_item_list = 
CreateObject('controller.socontrol_item_list');
                        $this->so_control_group = 
CreateObject('controller.socontrol_group');
                        $this->so_control_item_option = 
CreateObject('controller.socontrol_item_option');
-                       
+
                        $GLOBALS['phpgw_info']['flags']['menu_selection'] = 
"controller::control_item";
+
+                       $this->read    = 
$GLOBALS['phpgw']->acl->check('.control', PHPGW_ACL_READ, 'controller');//1 
+                       $this->add     = 
$GLOBALS['phpgw']->acl->check('.control', PHPGW_ACL_ADD, 'controller');//2 
+                       $this->edit    = 
$GLOBALS['phpgw']->acl->check('.control', PHPGW_ACL_EDIT, 'controller');//4 
+                       $this->delete  = 
$GLOBALS['phpgw']->acl->check('.control', PHPGW_ACL_DELETE, 'controller');//8 
+
                }
 
                public function index()
@@ -99,7 +109,7 @@
                                (
                                        'id'    => $cat_list['cat_id'],
                                        'name'  => $cat_list['name'],
-                               );              
+                               );
                        }
                        // END categories
 
@@ -118,7 +128,7 @@
                                                                'text' => 
lang('Control_area'),
                                                                'list' => 
$control_areas_array2,
                                                        ),
-                                                       array('type' => 'text', 
+                                                       array('type' => 'text',
                                                                'text' => 
lang('searchfield'),
                                                                'name' => 
'query'
                                                        ),
@@ -172,11 +182,11 @@
                                        )
                                ),
                        );
-                       
+
                        phpgwapi_yui::load_widget('paginator');
                        phpgwapi_yui::load_widget('datatable');
                        self::add_javascript('phpgwapi', 'yahoo', 
'datatable.js');
-               
+
                        self::render_template_xsl( array( 'datatable_common' ), 
$data);
                }
 
@@ -203,35 +213,35 @@
                        if($control_item == null)
                        {
                                $control_item_id = phpgw::get_var('id');
-                       
+
                                // Edit control item
                                if($control_item_id > 0)
                                {
-                                       $control_item = 
$this->so->get_single_with_options($control_item_id); 
+                                       $control_item = 
$this->so->get_single_with_options($control_item_id);
                                }
                                // New control item
                                else
                                {
                                        $control_item = new 
controller_control_item();
-                               }       
+                               }
                        }
-                       
+
                        // Sigurd: START as categories
                        $cats   = CreateObject('phpgwapi.categories', -1, 
'controller', '.control');
                        $cats->supress_info     = true;
-                       
+
                        $control_areas = 
$cats->formatted_xslt_list(array('format'=>'filter','globals' => true,'use_acl' 
=> $this->_category_acl));
                        $control_areas_array = $control_areas['cat_list'];
 
                        $control_groups_array = 
$this->so_control_group->get_control_group_array();
 
                        // Hack to fix display of &nbsp; char
-      $what_to_do_fixed = str_replace( "&nbsp;", " 
",$control_item->get_what_to_do() );
-      $control_item->set_what_to_do( $what_to_do_fixed );
-      
-      $how_to_do_fixed = str_replace( "&nbsp;", " 
",$control_item->get_how_to_do() );
-      $control_item->set_how_to_do( $how_to_do_fixed );
-                       
+                       $what_to_do_fixed = str_replace( "&nbsp;", " 
",$control_item->get_what_to_do() );
+                       $control_item->set_what_to_do( $what_to_do_fixed );
+
+               $how_to_do_fixed = str_replace( "&nbsp;", " 
",$control_item->get_how_to_do() );
+                       $control_item->set_how_to_do( $how_to_do_fixed );
+
                        $data = array
                        (
                                'editable'                              => true,
@@ -241,15 +251,20 @@
                        );
 
                        $this->use_yui_editor(array('what_to_do','how_to_do'));
-                       
+
                        phpgwapi_jquery::load_widget('core');
                        self::add_javascript('controller', 'controller', 
'ajax.js');
 
                        self::render_template_xsl('control_item/control_item', 
$data);
                }
-               
+
                public function save()
                {
+                       if(!$this->add && !$this->edit)
+                       {
+                               
$GLOBALS['phpgw']->redirect_link('/index.php',array('menuaction'=> 
'controller.uicontrol_item.index'));
+                       }
+
                        $control_item_id = phpgw::get_var('id');
                        $title = phpgw::get_var('title');
                        $required = phpgw::get_var('required') == 'on' ? true : 
false;
@@ -269,8 +284,8 @@
                        else
                        {
                                $control_item = new controller_control_item();
-                       } 
-                       
+                       }
+
                        $control_item->set_title($title);
                        $control_item->set_required($required);
                        $control_item->set_control_group_id($control_group_id);
@@ -278,61 +293,64 @@
                        $control_item->set_type($type);
                        $control_item->set_what_to_do($what_to_do_txt);
                        $control_item->set_how_to_do($how_to_do_txt);
-      
+
                        if( $control_item->validate() )
                        {
-        $transaction_status = true;
-        
-        $db_control_item = $this->so->get_db();
-        $db_control_item->transaction_begin();
-                               
+                               $transaction_status = true;
+
+                               $db_control_item = $this->so->get_db();
+                               $db_control_item->transaction_begin();
+
                                $saved_control_item_id = 
$this->so->store($control_item);
-        
-        if($saved_control_item_id == 0)
-        {
-          $transaction_status = false;
-        }
-       
-        // Delete item option values
+
+                               if($saved_control_item_id == 0)
+                               {
+                               $transaction_status = false;
+                               }
+
+                               // Delete item option values
                                $delete_status = 
$this->so->delete_option_values( $saved_control_item_id );
-                               
-        if($delete_status == 0)
-        {
-          $transaction_status = false;
-        }
-        
-        if( $transaction_status == true)
-        {
-          $db_control_item->transaction_commit();
-        }
-        else
-        {
-          $db_control_item->transaction_abort();
-        }
-        
-        $option_values = array();
-        $option_values = phpgw::get_var('option_values');
-                       
-        $option_values_array = array();
-        foreach($option_values as $option_value){
-          $control_item_option = new 
controller_control_item_option($option_value, $saved_control_item_id);
-          $option_values_array[] = $control_item_option;
-        }
-      
-        $control_item->set_options_array($option_values_array);
-        
-        // Add new control item option values
+
+                               if($delete_status == 0)
+                               {
+                                       $transaction_status = false;
+                               }
+
+                               if( $transaction_status == true)
+                               {
+                                       $db_control_item->transaction_commit();
+                               }
+                               else
+                               {
+                                       $db_control_item->transaction_abort();
+                               }
+
+                               $option_values = array();
+                               $option_values = 
phpgw::get_var('option_values');
+
+                               $option_values_array = array();
+                               foreach($option_values as $option_value)
+                               {
+                                       $control_item_option = new 
controller_control_item_option($option_value, $saved_control_item_id);
+                                       $option_values_array[] = 
$control_item_option;
+                               }
+
+                               
$control_item->set_options_array($option_values_array);
+
+                               // Add new control item option values
                                if( ($transaction_status) & 
($saved_control_item_id > 0) & ($control_item->get_type() == 
'control_item_type_3' | $control_item->get_type() == 'control_item_type_4'))
                                {
                                        $control_item_options_array = 
$control_item->get_options_array();
-                                       
-                                       foreach($control_item_options_array as 
$control_item_option){
+
+                                       foreach($control_item_options_array as 
$control_item_option)
+                                       {
                                                $control_item_option_id = 
$this->so_control_item_option->store( $control_item_option );
                                        }
                                }
-                               
+
                                $GLOBALS['phpgw']->redirect_link('/index.php', 
array('menuaction' => 'controller.uicontrol_item.view', 'id' => 
$saved_control_item_id));
-                       }else
+                       }
+                       else
                        {
                                $this->edit($control_item);
                        }
@@ -346,7 +364,7 @@
                {
                        //Retrieve the control_item object
                        $control_item_id = (int)phpgw::get_var('id');
-               
+
                        if(isset($control_item_id) && $control_item_id > 0)
                        {
                                $control_item = 
$this->so->get_single_with_options($control_item_id);
@@ -356,26 +374,26 @@
                                
$this->render('permission_denied.php',array('error' => 
lang('invalid_request')));
                                return;
                        }
-                       
+
                        $category = 
execMethod('phpgwapi.categories.return_single', 
$control_item->get_control_area_id());
                        $control_item->set_control_area_name( 
$category[0]['name'] );
-                       
-      // Hack to fix display of &nbsp; char
-      $what_to_do_fixed = str_replace( "&nbsp;", " 
",$control_item->get_what_to_do() );
-      $control_item->set_what_to_do( $what_to_do_fixed );
-      
-      $how_to_do_fixed = str_replace( "&nbsp;", " 
",$control_item->get_how_to_do() );
-      $control_item->set_how_to_do( $how_to_do_fixed );
-                       
+
+                       // Hack to fix display of &nbsp; char
+                       $what_to_do_fixed = str_replace( "&nbsp;", " 
",$control_item->get_what_to_do() );
+                       $control_item->set_what_to_do( $what_to_do_fixed );
+
+                       $how_to_do_fixed = str_replace( "&nbsp;", " 
",$control_item->get_how_to_do() );
+                       $control_item->set_how_to_do( $how_to_do_fixed );
+
                        $data = array
                        (
                                'control_item'  => $control_item,
-                               'view'                                  => true
+                               'view'                  => true
                        );
-                       
+
                        self::render_template_xsl('control_item/control_item', 
$data);
                }
-               
+
                public function query()
                {
                        $params = array(
@@ -385,7 +403,7 @@
                                'sort'  => phpgw::get_var('sort'),
                                'filters' => $filters
                        );
-                       
+
                        if(phpgw::get_var('sort_dir'))
                        {
                                $params['dir'] = phpgw::get_var('sort_dir');
@@ -398,13 +416,13 @@
                        $ctrl_area = phpgw::get_var('control_areas');
                        if(isset($ctrl_area) && $ctrl_area > 0)
                        {
-                               $filters['control_areas'] = $ctrl_area; 
+                               $filters['control_areas'] = $ctrl_area;
                        }
-                       
+
                        $ctrl_group = phpgw::get_var('control_groups');
                        if(isset($ctrl_group) && $ctrl_group > 0)
                        {
-                               $filters['control_groups'] = $ctrl_group; 
+                               $filters['control_groups'] = $ctrl_group;
                        }
 
 

Modified: branches/Version-1_0-branch/controller/inc/class.uidocument.inc.php
===================================================================
--- branches/Version-1_0-branch/controller/inc/class.uidocument.inc.php 
2013-05-07 08:11:24 UTC (rev 11093)
+++ branches/Version-1_0-branch/controller/inc/class.uidocument.inc.php 
2013-05-07 08:14:01 UTC (rev 11094)
@@ -38,6 +38,12 @@
         private $so;
         private $so_procedure;
 
+           private $read;
+           private $add;
+           private $edit;
+           private $delete;
+
+
         public $public_functions = array
         (
                                'query'                                         
=> true,
@@ -53,6 +59,10 @@
             parent::__construct();
             $this->so = controller_sodocument::get_instance();
             $this->so_procedure = controller_soprocedure::get_instance();
+                       $this->read    = 
$GLOBALS['phpgw']->acl->check('.control', PHPGW_ACL_READ, 'controller');//1 
+                       $this->add     = 
$GLOBALS['phpgw']->acl->check('.control', PHPGW_ACL_ADD, 'controller');//2 
+                       $this->edit    = 
$GLOBALS['phpgw']->acl->check('.control', PHPGW_ACL_EDIT, 'controller');//4 
+                       $this->delete  = 
$GLOBALS['phpgw']->acl->check('.control', PHPGW_ACL_DELETE, 'controller');//8 
         }
 
         public function query()
@@ -96,7 +106,8 @@
             
             //Serialize the documents found
             $rows = array();
-            foreach ($result_objects as $result) {
+            foreach ($result_objects as $result)
+            {
                 if(isset($result))
                 {
                     $rows[] = $result->serialize();
@@ -206,6 +217,14 @@
             
             if($_SERVER['REQUEST_METHOD'] == 'POST')
             {
+                               if(!$this->add && !$this->edit)
+                               {
+                                       phpgwapi_cache::message_set('No 
access', 'error');
+                            $GLOBALS['phpgw']->redirect_link('/index.php', 
array('menuaction' => 'controller.uidocument.show', 
+                                                                               
                                        'procedure_id' => $procedure->get_id(), 
+                                                                               
                                        'tab' => 'documents'));
+ 
+                               }
                 //Create a document object
                 $document = new controller_document();
                 $document->set_title(phpgw::get_var('document_title'));
@@ -291,6 +310,15 @@
             $document = $this->so->get_single($document_id);
             
             $procedure_id = intval(phpgw::get_var('procedure_id'));
+ 
+                       if(!$this->delete)
+                       {
+                               phpgwapi_cache::message_set('No access', 
'error');
+                               $GLOBALS['phpgw']->redirect_link('/index.php', 
array('menuaction' => 'controller.uidocument.show', 
+                                                                               
                                                        'procedure_id' => 
$procedure_id,
+                                                                               
                                                        'tab' => 'documents'));
+                       }
+ 
             $procedure = $this->so_procedure->get_single($procedure_id);
 
             $document_properties = $this->get_type_and_id($document);

Modified: branches/Version-1_0-branch/controller/inc/class.uiprocedure.inc.php
===================================================================
--- branches/Version-1_0-branch/controller/inc/class.uiprocedure.inc.php        
2013-05-07 08:11:24 UTC (rev 11093)
+++ branches/Version-1_0-branch/controller/inc/class.uiprocedure.inc.php        
2013-05-07 08:14:01 UTC (rev 11094)
@@ -42,6 +42,11 @@
                private $so_control_group_list;
                private $so_control_group;
 
+           private $read;
+           private $add;
+           private $edit;
+           private $delete;
+
                public $public_functions = array
                (
                        'index'                                                 
=>      true,
@@ -65,6 +70,11 @@
 
                        $GLOBALS['phpgw_info']['flags']['menu_selection'] = 
"controller::procedure";
                        
+                       $this->read    = 
$GLOBALS['phpgw']->acl->check('.control', PHPGW_ACL_READ, 'controller');//1 
+                       $this->add     = 
$GLOBALS['phpgw']->acl->check('.control', PHPGW_ACL_ADD, 'controller');//2 
+                       $this->edit    = 
$GLOBALS['phpgw']->acl->check('.control', PHPGW_ACL_EDIT, 'controller');//4 
+                       $this->delete  = 
$GLOBALS['phpgw']->acl->check('.control', PHPGW_ACL_DELETE, 'controller');//8 
+
                        $config = CreateObject('phpgwapi.config','controller');
                        $config->read();
                        $this->_category_acl = 
isset($config->config_data['acl_at_control_area']) && 
$config->config_data['acl_at_control_area'] == 1 ? true : false;
@@ -180,6 +190,12 @@
 
                        if(isset($_POST['save_procedure'])) // The user has 
pressed the save button
                        {
+                               if(!$this->add && !$this->edit)
+                               {
+                                       phpgwapi_cache::message_set('No 
access', 'error');
+                                       
$GLOBALS['phpgw']->redirect_link('/index.php', array('menuaction' => 
'controller.uiprocedure.view', 'id' => $procedure_id));
+                               }
+
                                if(isset($procedure)) // Edit procedure
                                {
                                        $description_txt = 
phpgw::get_var('description','html');
@@ -238,6 +254,12 @@
                        }
                        else if(isset($_POST['revisit_procedure'])) // The user 
has pressed the revisit button
                        {
+                               if(!$this->add && !$this->edit)
+                               {
+                                       phpgwapi_cache::message_set('No 
access', 'error');
+                                       
$GLOBALS['phpgw']->redirect_link('/index.php', array('menuaction' => 
'controller.uiprocedure.view', 'id' => $procedure_id));
+                               }
+
                                $old_procedure = 
$this->so->get_single($procedure_id);
                                if(isset($procedure)) // Edit procedure
                                {
@@ -533,7 +555,8 @@
                        }
                }
 
-               public function view_procedures_for_control(){
+               public function view_procedures_for_control()
+               {
                        $control_id = phpgw::get_var('control_id');
                        $location_code = phpgw::get_var('location_code');
                        
@@ -567,7 +590,8 @@
                        
self::render_template_xsl('procedure/view_procedures_for_control', $data);
                }
                
-               public function print_procedure(){
+               public function print_procedure()
+               {
                        $procedure_id = phpgw::get_var('procedure_id');
                        $location_code = phpgw::get_var('location_code');
                        $control_id = phpgw::get_var('control_id');
@@ -590,7 +614,8 @@
                                'dateformat'                    => 
$GLOBALS['phpgw_info']['user']['preferences']['common']['dateformat']
                        );
                        
-                       if( !empty($control_group_id) ){
+                       if( !empty($control_group_id) )
+                       {
                                $control_group = 
$this->so_control_group->get_single($control_group_id);
                                $data['control_group'] = 
$control_group->toArray(); 
                        }
@@ -693,7 +718,7 @@
 
                }
 
-                       public function add_actions(&$value, $key, $params)
+               public function add_actions(&$value, $key, $params)
                {
                        //Defining new columns
                        $value['ajax'] = array();

Modified: 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrCollections.php
===================================================================
--- 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrCollections.php
      2013-05-07 08:11:24 UTC (rev 11093)
+++ 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrCollections.php
      2013-05-07 08:14:01 UTC (rev 11094)
@@ -6,12 +6,12 @@
 
 class HTMLPurifier_AttrCollections
 {
-    
+
     /**
      * Associative array of attribute collections, indexed by name
      */
     public $info = array();
-    
+
     /**
      * Performs all expansions on internal data for use by other inclusions
      * It also collects all attribute collection extensions from
@@ -45,7 +45,7 @@
             $this->expandIdentifiers($this->info[$name], $attr_types);
         }
     }
-    
+
     /**
      * Takes a reference to an attribute associative array and performs
      * all inclusions specified by the zero index.
@@ -72,7 +72,7 @@
         }
         unset($attr[0]);
     }
-    
+
     /**
      * Expands all string identifiers in an attribute array by replacing
      * them with the appropriate values inside HTMLPurifier_AttrTypes
@@ -80,17 +80,17 @@
      * @param $attr_types HTMLPurifier_AttrTypes instance
      */
     public function expandIdentifiers(&$attr, $attr_types) {
-        
+
         // because foreach will process new elements we add, make sure we
         // skip duplicates
         $processed = array();
-        
+
         foreach ($attr as $def_i => $def) {
             // skip inclusions
             if ($def_i === 0) continue;
-            
+
             if (isset($processed[$def_i])) continue;
-            
+
             // determine whether or not attribute is required
             if ($required = (strpos($def_i, '*') !== false)) {
                 // rename the definition
@@ -98,21 +98,21 @@
                 $def_i = trim($def_i, '*');
                 $attr[$def_i] = $def;
             }
-            
+
             $processed[$def_i] = true;
-            
+
             // if we've already got a literal object, move on
             if (is_object($def)) {
                 // preserve previous required
                 $attr[$def_i]->required = ($required || 
$attr[$def_i]->required);
                 continue;
             }
-            
+
             if ($def === false) {
                 unset($attr[$def_i]);
                 continue;
             }
-            
+
             if ($t = $attr_types->get($def)) {
                 $attr[$def_i] = $t;
                 $attr[$def_i]->required = $required;
@@ -120,8 +120,9 @@
                 unset($attr[$def_i]);
             }
         }
-        
+
     }
-    
+
 }
 
+// vim: et sw=4 sts=4

Modified: 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/AlphaValue.php
===================================================================
--- 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/AlphaValue.php
       2013-05-07 08:11:24 UTC (rev 11093)
+++ 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/AlphaValue.php
       2013-05-07 08:14:01 UTC (rev 11094)
@@ -2,11 +2,11 @@
 
 class HTMLPurifier_AttrDef_CSS_AlphaValue extends 
HTMLPurifier_AttrDef_CSS_Number
 {
-    
+
     public function __construct() {
         parent::__construct(false); // opacity is non-negative, but we will 
clamp it
     }
-    
+
     public function validate($number, $config, $context) {
         $result = parent::validate($number, $config, $context);
         if ($result === false) return $result;
@@ -15,5 +15,7 @@
         if ($float > 1.0) $result = '1';
         return $result;
     }
-    
+
 }
+
+// vim: et sw=4 sts=4

Modified: 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Background.php
===================================================================
--- 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Background.php
       2013-05-07 08:11:24 UTC (rev 11093)
+++ 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Background.php
       2013-05-07 08:14:01 UTC (rev 11094)
@@ -6,13 +6,13 @@
  */
 class HTMLPurifier_AttrDef_CSS_Background extends HTMLPurifier_AttrDef
 {
-    
+
     /**
      * Local copy of component validators.
      * @note See HTMLPurifier_AttrDef_Font::$info for a similar impl.
      */
     protected $info;
-    
+
     public function __construct($config) {
         $def = $config->getCSSDefinition();
         $this->info['background-color'] = $def->info['background-color'];
@@ -21,29 +21,29 @@
         $this->info['background-attachment'] = 
$def->info['background-attachment'];
         $this->info['background-position'] = $def->info['background-position'];
     }
-    
+
     public function validate($string, $config, $context) {
-        
+
         // regular pre-processing
         $string = $this->parseCDATA($string);
         if ($string === '') return false;
-        
+
         // munge rgb() decl if necessary
         $string = $this->mungeRgb($string);
-        
+
         // assumes URI doesn't have spaces in it
-        $bits = explode(' ', strtolower($string)); // bits to process
-        
+        $bits = explode(' ', $string); // bits to process
+
         $caught = array();
         $caught['color']    = false;
         $caught['image']    = false;
         $caught['repeat']   = false;
         $caught['attachment'] = false;
         $caught['position'] = false;
-        
+
         $i = 0; // number of catches
         $none = false;
-        
+
         foreach ($bits as $bit) {
             if ($bit === '') continue;
             foreach ($caught as $key => $status) {
@@ -64,23 +64,24 @@
                 break;
             }
         }
-        
+
         if (!$i) return false;
         if ($caught['position'] !== false) {
             $caught['position'] = $this->info['background-position']->
                 validate($caught['position'], $config, $context);
         }
-        
+
         $ret = array();
         foreach ($caught as $value) {
             if ($value === false) continue;
             $ret[] = $value;
         }
-        
+
         if (empty($ret)) return false;
         return implode(' ', $ret);
-        
+
     }
-    
+
 }
 
+// vim: et sw=4 sts=4

Modified: 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/BackgroundPosition.php
===================================================================
--- 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/BackgroundPosition.php
       2013-05-07 08:11:24 UTC (rev 11093)
+++ 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/BackgroundPosition.php
       2013-05-07 08:14:01 UTC (rev 11094)
@@ -7,7 +7,7 @@
         [
             <percentage> | <length> | left | center | right
         ]
-        [ 
+        [
             <percentage> | <length> | top | center | bottom
         ]?
     ] |
@@ -28,10 +28,10 @@
 
 /* QuirksMode says:
     keyword + length/percentage must be ordered correctly, as per W3C
-    
+
     Internet Explorer and Opera, however, support arbitrary ordering. We
     should fix it up.
-    
+
     Minor issue though, not strictly necessary.
 */
 
@@ -43,27 +43,28 @@
  */
 class HTMLPurifier_AttrDef_CSS_BackgroundPosition extends HTMLPurifier_AttrDef
 {
-    
+
     protected $length;
     protected $percentage;
-    
+
     public function __construct() {
         $this->length     = new HTMLPurifier_AttrDef_CSS_Length();
         $this->percentage = new HTMLPurifier_AttrDef_CSS_Percentage();
     }
-    
+
     public function validate($string, $config, $context) {
         $string = $this->parseCDATA($string);
         $bits = explode(' ', $string);
-        
+
         $keywords = array();
         $keywords['h'] = false; // left, right
         $keywords['v'] = false; // top, bottom
-        $keywords['c'] = false; // center
+        $keywords['ch'] = false; // center (first word)
+        $keywords['cv'] = false; // center (second word)
         $measures = array();
-        
+
         $i = 0;
-        
+
         $lookup = array(
             'top' => 'v',
             'bottom' => 'v',
@@ -71,55 +72,62 @@
             'right' => 'h',
             'center' => 'c'
         );
-        
+
         foreach ($bits as $bit) {
             if ($bit === '') continue;
-            
+
             // test for keyword
             $lbit = ctype_lower($bit) ? $bit : strtolower($bit);
             if (isset($lookup[$lbit])) {
                 $status = $lookup[$lbit];
+                if ($status == 'c') {
+                    if ($i == 0) {
+                        $status = 'ch';
+                    } else {
+                        $status = 'cv';
+                    }
+                }
                 $keywords[$status] = $lbit;
                 $i++;
             }
-            
+
             // test for length
             $r = $this->length->validate($bit, $config, $context);
             if ($r !== false) {
                 $measures[] = $r;
                 $i++;
             }
-            
+
             // test for percentage
             $r = $this->percentage->validate($bit, $config, $context);
             if ($r !== false) {
                 $measures[] = $r;
                 $i++;
             }
-            
+
         }
-        
+
         if (!$i) return false; // no valid values were caught
-        
-        
+
         $ret = array();
-        
+
         // first keyword
         if     ($keywords['h'])     $ret[] = $keywords['h'];
+        elseif ($keywords['ch']) {
+            $ret[] = $keywords['ch'];
+            $keywords['cv'] = false; // prevent re-use: center = center center
+        }
         elseif (count($measures))   $ret[] = array_shift($measures);
-        elseif ($keywords['c']) {
-            $ret[] = $keywords['c'];
-            $keywords['c'] = false; // prevent re-use: center = center center
-        }
-        
+
         if     ($keywords['v'])     $ret[] = $keywords['v'];
+        elseif ($keywords['cv'])    $ret[] = $keywords['cv'];
         elseif (count($measures))   $ret[] = array_shift($measures);
-        elseif ($keywords['c'])     $ret[] = $keywords['c'];
-        
+
         if (empty($ret)) return false;
         return implode(' ', $ret);
-        
+
     }
-    
+
 }
 
+// vim: et sw=4 sts=4

Modified: 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Border.php
===================================================================
--- 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Border.php
   2013-05-07 08:11:24 UTC (rev 11093)
+++ 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Border.php
   2013-05-07 08:14:01 UTC (rev 11094)
@@ -5,19 +5,19 @@
  */
 class HTMLPurifier_AttrDef_CSS_Border extends HTMLPurifier_AttrDef
 {
-    
+
     /**
      * Local copy of properties this property is shorthand for.
      */
     protected $info = array();
-    
+
     public function __construct($config) {
         $def = $config->getCSSDefinition();
         $this->info['border-width'] = $def->info['border-width'];
         $this->info['border-style'] = $def->info['border-style'];
         $this->info['border-top-color'] = $def->info['border-top-color'];
     }
-    
+
     public function validate($string, $config, $context) {
         $string = $this->parseCDATA($string);
         $string = $this->mungeRgb($string);
@@ -37,6 +37,7 @@
         }
         return rtrim($ret);
     }
-    
+
 }
 
+// vim: et sw=4 sts=4

Modified: 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Color.php
===================================================================
--- 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Color.php
    2013-05-07 08:11:24 UTC (rev 11093)
+++ 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Color.php
    2013-05-07 08:14:01 UTC (rev 11094)
@@ -5,18 +5,18 @@
  */
 class HTMLPurifier_AttrDef_CSS_Color extends HTMLPurifier_AttrDef
 {
-    
+
     public function validate($color, $config, $context) {
-        
+
         static $colors = null;
-        if ($colors === null) $colors = $config->get('Core', 'ColorKeywords');
-        
+        if ($colors === null) $colors = $config->get('Core.ColorKeywords');
+
         $color = trim($color);
         if ($color === '') return false;
-        
+
         $lower = strtolower($color);
         if (isset($colors[$lower])) return $colors[$lower];
-        
+
         if (strpos($color, 'rgb(') !== false) {
             // rgb literal handling
             $length = strlen($color);
@@ -68,10 +68,11 @@
             if ($length !== 3 && $length !== 6) return false;
             if (!ctype_xdigit($hex)) return false;
         }
-        
+
         return $color;
-        
+
     }
-    
+
 }
 
+// vim: et sw=4 sts=4

Modified: 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Composite.php
===================================================================
--- 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Composite.php
        2013-05-07 08:11:24 UTC (rev 11093)
+++ 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Composite.php
        2013-05-07 08:14:01 UTC (rev 11094)
@@ -2,7 +2,7 @@
 
 /**
  * Allows multiple validators to attempt to validate attribute.
- * 
+ *
  * Composite is just what it sounds like: a composite of many validators.
  * This means that multiple HTMLPurifier_AttrDef objects will have a whack
  * at the string.  If one of them passes, that's what is returned.  This is
@@ -11,20 +11,20 @@
  */
 class HTMLPurifier_AttrDef_CSS_Composite extends HTMLPurifier_AttrDef
 {
-    
+
     /**
      * List of HTMLPurifier_AttrDef objects that may process strings
      * @todo Make protected
      */
     public $defs;
-    
+
     /**
      * @param $defs List of HTMLPurifier_AttrDef objects
      */
     public function __construct($defs) {
         $this->defs = $defs;
     }
-    
+
     public function validate($string, $config, $context) {
         foreach ($this->defs as $i => $def) {
             $result = $this->defs[$i]->validate($string, $config, $context);
@@ -32,6 +32,7 @@
         }
         return false;
     }
-    
+
 }
 
+// vim: et sw=4 sts=4

Modified: 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/DenyElementDecorator.php
===================================================================
--- 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/DenyElementDecorator.php
     2013-05-07 08:11:24 UTC (rev 11093)
+++ 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/DenyElementDecorator.php
     2013-05-07 08:14:01 UTC (rev 11094)
@@ -5,8 +5,8 @@
  */
 class HTMLPurifier_AttrDef_CSS_DenyElementDecorator extends 
HTMLPurifier_AttrDef
 {
-    protected $def, $element;
-    
+    public $def, $element;
+
     /**
      * @param $def Definition to wrap
      * @param $element Element to deny
@@ -24,3 +24,5 @@
         return $this->def->validate($string, $config, $context);
     }
 }
+
+// vim: et sw=4 sts=4

Modified: 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Filter.php
===================================================================
--- 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Filter.php
   2013-05-07 08:11:24 UTC (rev 11093)
+++ 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Filter.php
   2013-05-07 08:14:01 UTC (rev 11094)
@@ -7,13 +7,13 @@
  */
 class HTMLPurifier_AttrDef_CSS_Filter extends HTMLPurifier_AttrDef
 {
-    
+
     protected $intValidator;
-    
+
     public function __construct() {
         $this->intValidator = new HTMLPurifier_AttrDef_Integer();
     }
-    
+
     public function validate($value, $config, $context) {
         $value = $this->parseCDATA($value);
         if ($value === 'none') return $value;
@@ -48,5 +48,7 @@
         $ret_function = "$function($ret_parameters)";
         return $ret_function;
     }
-    
+
 }
+
+// vim: et sw=4 sts=4

Modified: 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Font.php
===================================================================
--- 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Font.php
     2013-05-07 08:11:24 UTC (rev 11093)
+++ 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Font.php
     2013-05-07 08:14:01 UTC (rev 11094)
@@ -5,17 +5,17 @@
  */
 class HTMLPurifier_AttrDef_CSS_Font extends HTMLPurifier_AttrDef
 {
-    
+
     /**
      * Local copy of component validators.
-     * 
+     *
      * @note If we moved specific CSS property definitions to their own
      *       classes instead of having them be assembled at run time by
      *       CSSDefinition, this wouldn't be necessary.  We'd instantiate
      *       our own copies.
      */
     protected $info = array();
-    
+
     public function __construct($config) {
         $def = $config->getCSSDefinition();
         $this->info['font-style']   = $def->info['font-style'];
@@ -25,9 +25,9 @@
         $this->info['line-height']  = $def->info['line-height'];
         $this->info['font-family']  = $def->info['font-family'];
     }
-    
+
     public function validate($string, $config, $context) {
-        
+
         static $system_fonts = array(
             'caption' => true,
             'icon' => true,
@@ -36,27 +36,27 @@
             'small-caption' => true,
             'status-bar' => true
         );
-        
+
         // regular pre-processing
         $string = $this->parseCDATA($string);
         if ($string === '') return false;
-        
+
         // check if it's one of the keywords
         $lowercase_string = strtolower($string);
         if (isset($system_fonts[$lowercase_string])) {
             return $lowercase_string;
         }
-        
+
         $bits = explode(' ', $string); // bits to process
         $stage = 0; // this indicates what we're looking for
         $caught = array(); // which stage 0 properties have we caught?
         $stage_1 = array('font-style', 'font-variant', 'font-weight');
         $final = ''; // output
-        
+
         for ($i = 0, $size = count($bits); $i < $size; $i++) {
             if ($bits[$i] === '') continue;
             switch ($stage) {
-                
+
                 // attempting to catch font-style, font-variant or font-weight
                 case 0:
                     foreach ($stage_1 as $validator_name) {
@@ -72,7 +72,7 @@
                     // all three caught, continue on
                     if (count($caught) >= 3) $stage = 1;
                     if ($r !== false) break;
-                
+
                 // attempting to catch font-size and perhaps line-height
                 case 1:
                     $found_slash = false;
@@ -126,7 +126,7 @@
                         break;
                     }
                     return false;
-                
+
                 // attempting to catch font-family
                 case 2:
                     $font_family =
@@ -143,6 +143,7 @@
         }
         return false;
     }
-    
+
 }
 
+// vim: et sw=4 sts=4

Modified: 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/FontFamily.php
===================================================================
--- 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/FontFamily.php
       2013-05-07 08:11:24 UTC (rev 11093)
+++ 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/FontFamily.php
       2013-05-07 08:14:01 UTC (rev 11094)
@@ -2,11 +2,43 @@
 
 /**
  * Validates a font family list according to CSS spec
- * @todo whitelisting allowed fonts would be nice
  */
 class HTMLPurifier_AttrDef_CSS_FontFamily extends HTMLPurifier_AttrDef
 {
-    
+
+    protected $mask = null;
+
+    public function __construct() {
+        $this->mask = '_- ';
+        for ($c = 'a'; $c <= 'z'; $c++) $this->mask .= $c;
+        for ($c = 'A'; $c <= 'Z'; $c++) $this->mask .= $c;
+        for ($c = '0'; $c <= '9'; $c++) $this->mask .= $c; // cast-y, but 
should be fine
+        // special bytes used by UTF-8
+        for ($i = 0x80; $i <= 0xFF; $i++) {
+            // We don't bother excluding invalid bytes in this range,
+            // because the our restriction of well-formed UTF-8 will
+            // prevent these from ever occurring.
+            $this->mask .= chr($i);
+        }
+
+        /*
+            PHP's internal strcspn implementation is
+            O(length of string * length of mask), making it inefficient
+            for large masks.  However, it's still faster than
+            preg_match 8)
+          for (p = s1;;) {
+            spanp = s2;
+            do {
+              if (*spanp == c || p == s1_end) {
+                return p - s1;
+              }
+            } while (spanp++ < (s2_end - 1));
+            c = *++p;
+          }
+         */
+        // possible optimization: invert the mask.
+    }
+
     public function validate($string, $config, $context) {
         static $generic_names = array(
             'serif' => true,
@@ -15,8 +47,8 @@
             'fantasy' => true,
             'cursive' => true
         );
-        
-        $string = $this->parseCDATA($string);
+        $allowed_fonts = $config->get('CSS.AllowedFonts');
+
         // assume that no font names contain commas in them
         $fonts = explode(',', $string);
         $final = '';
@@ -25,7 +57,9 @@
             if ($font === '') continue;
             // match a generic name
             if (isset($generic_names[$font])) {
-                $final .= $font . ', ';
+                if ($allowed_fonts === null || isset($allowed_fonts[$font])) {
+                    $final .= $font . ', ';
+                }
                 continue;
             }
             // match a quoted name
@@ -35,29 +69,129 @@
                 $quote = $font[0];
                 if ($font[$length - 1] !== $quote) continue;
                 $font = substr($font, 1, $length - 2);
-                // double-backslash processing is buggy
-                $font = str_replace("\\$quote", $quote, $font); // de-escape 
quote
-                $font = str_replace("\\\n", "\n", $font);       // de-escape 
newlines
             }
+
+            $font = $this->expandCSSEscape($font);
+
             // $font is a pure representation of the font name
-            
-            if (ctype_alnum($font)) {
+
+            if ($allowed_fonts !== null && !isset($allowed_fonts[$font])) {
+                continue;
+            }
+
+            if (ctype_alnum($font) && $font !== '') {
                 // very simple font, allow it in unharmed
                 $final .= $font . ', ';
                 continue;
             }
-            
-            // complicated font, requires quoting
-            
-            // armor single quotes and new lines
-            $font = str_replace("'", "\\'", $font);
-            $font = str_replace("\n", "\\\n", $font);
+
+            // bugger out on whitespace.  form feed (0C) really
+            // shouldn't show up regardless
+            $font = str_replace(array("\n", "\t", "\r", "\x0C"), ' ', $font);
+
+            // Here, there are various classes of characters which need
+            // to be treated differently:
+            //  - Alphanumeric characters are essentially safe.  We
+            //    handled these above.
+            //  - Spaces require quoting, though most parsers will do
+            //    the right thing if there aren't any characters that
+            //    can be misinterpreted
+            //  - Dashes rarely occur, but they fairly unproblematic
+            //    for parsing/rendering purposes.
+            //  The above characters cover the majority of Western font
+            //  names.
+            //  - Arbitrary Unicode characters not in ASCII.  Because
+            //    most parsers give little thought to Unicode, treatment
+            //    of these codepoints is basically uniform, even for
+            //    punctuation-like codepoints.  These characters can
+            //    show up in non-Western pages and are supported by most
+            //    major browsers, for example: "MS 明朝" is a
+            //    legitimate font-name
+            //    <http://ja.wikipedia.org/wiki/MS_明朝>.  See
+            //    the CSS3 spec for more examples:
+            //    
<http://www.w3.org/TR/2011/WD-css3-fonts-20110324/localizedfamilynames.png>
+            //    You can see live samples of these on the Internet:
+            //    <http://www.google.co.jp/search?q=font-family+MS+明朝|ゴシック>
+            //    However, most of these fonts have ASCII equivalents:
+            //    for example, 'MS Mincho', and it's considered
+            //    professional to use ASCII font names instead of
+            //    Unicode font names.  Thanks Takeshi Terada for
+            //    providing this information.
+            //  The following characters, to my knowledge, have not been
+            //  used to name font names.
+            //  - Single quote.  While theoretically you might find a
+            //    font name that has a single quote in its name (serving
+            //    as an apostrophe, e.g. Dave's Scribble), I haven't
+            //    been able to find any actual examples of this.
+            //    Internet Explorer's cssText translation (which I
+            //    believe is invoked by innerHTML) normalizes any
+            //    quoting to single quotes, and fails to escape single
+            //    quotes.  (Note that this is not IE's behavior for all
+            //    CSS properties, just some sort of special casing for
+            //    font-family).  So a single quote *cannot* be used
+            //    safely in the font-family context if there will be an
+            //    innerHTML/cssText translation.  Note that Firefox 3.x
+            //    does this too.
+            //  - Double quote.  In IE, these get normalized to
+            //    single-quotes, no matter what the encoding.  (Fun
+            //    fact, in IE8, the 'content' CSS property gained
+            //    support, where they special cased to preserve encoded
+            //    double quotes, but still translate unadorned double
+            //    quotes into single quotes.)  So, because their
+            //    fixpoint behavior is identical to single quotes, they
+            //    cannot be allowed either.  Firefox 3.x displays
+            //    single-quote style behavior.
+            //  - Backslashes are reduced by one (so \\ -> \) every
+            //    iteration, so they cannot be used safely.  This shows
+            //    up in IE7, IE8 and FF3
+            //  - Semicolons, commas and backticks are handled properly.
+            //  - The rest of the ASCII punctuation is handled properly.
+            // We haven't checked what browsers do to unadorned
+            // versions, but this is not important as long as the
+            // browser doesn't /remove/ surrounding quotes (as IE does
+            // for HTML).
+            //
+            // With these results in hand, we conclude that there are
+            // various levels of safety:
+            //  - Paranoid: alphanumeric, spaces and dashes(?)
+            //  - International: Paranoid + non-ASCII Unicode
+            //  - Edgy: Everything except quotes, backslashes
+            //  - NoJS: Standards compliance, e.g. sod IE. Note that
+            //    with some judicious character escaping (since certain
+            //    types of escaping doesn't work) this is theoretically
+            //    OK as long as innerHTML/cssText is not called.
+            // We believe that international is a reasonable default
+            // (that we will implement now), and once we do more
+            // extensive research, we may feel comfortable with dropping
+            // it down to edgy.
+
+            // Edgy: alphanumeric, spaces, dashes, underscores and Unicode.  
Use of
+            // str(c)spn assumes that the string was already well formed
+            // Unicode (which of course it is).
+            if (strspn($font, $this->mask) !== strlen($font)) {
+                continue;
+            }
+
+            // Historical:
+            // In the absence of innerHTML/cssText, these ugly
+            // transforms don't pose a security risk (as \\ and \"
+            // might--these escapes are not supported by most browsers).
+            // We could try to be clever and use single-quote wrapping
+            // when there is a double quote present, but I have choosen
+            // not to implement that.  (NOTE: you can reduce the amount
+            // of escapes by one depending on what quoting style you use)
+            // $font = str_replace('\\', '\\5C ', $font);
+            // $font = str_replace('"',  '\\22 ', $font);
+            // $font = str_replace("'",  '\\27 ', $font);
+
+            // font possibly with spaces, requires quoting
             $final .= "'$font', ";
         }
         $final = rtrim($final, ', ');
         if ($final === '') return false;
         return $final;
     }
-    
+
 }
 
+// vim: et sw=4 sts=4

Copied: 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Ident.php
 (from rev 11093, 
trunk/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Ident.php)
===================================================================
--- 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Ident.php
                            (rev 0)
+++ 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Ident.php
    2013-05-07 08:14:01 UTC (rev 11094)
@@ -0,0 +1,24 @@
+<?php
+
+/**
+ * Validates based on {ident} CSS grammar production
+ */
+class HTMLPurifier_AttrDef_CSS_Ident extends HTMLPurifier_AttrDef
+{
+
+    public function validate($string, $config, $context) {
+
+        $string = trim($string);
+
+        // early abort: '' and '0' (strings that convert to false) are invalid
+        if (!$string) return false;
+
+        $pattern = '/^(-?[A-Za-z_][A-Za-z_\-0-9]*)$/';
+        if (!preg_match($pattern, $string)) return false;
+        return $string;
+
+    }
+
+}
+
+// vim: et sw=4 sts=4

Modified: 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/ImportantDecorator.php
===================================================================
--- 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/ImportantDecorator.php
       2013-05-07 08:11:24 UTC (rev 11093)
+++ 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/ImportantDecorator.php
       2013-05-07 08:14:01 UTC (rev 11094)
@@ -5,8 +5,8 @@
  */
 class HTMLPurifier_AttrDef_CSS_ImportantDecorator extends HTMLPurifier_AttrDef
 {
-    protected $def, $allow;
-    
+    public $def, $allow;
+
     /**
      * @param $def Definition to wrap
      * @param $allow Whether or not to allow !important
@@ -36,3 +36,5 @@
         return $string;
     }
 }
+
+// vim: et sw=4 sts=4

Modified: 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Length.php
===================================================================
--- 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Length.php
   2013-05-07 08:11:24 UTC (rev 11093)
+++ 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Length.php
   2013-05-07 08:14:01 UTC (rev 11094)
@@ -5,48 +5,43 @@
  */
 class HTMLPurifier_AttrDef_CSS_Length extends HTMLPurifier_AttrDef
 {
-    
+
+    protected $min, $max;
+
     /**
-     * Valid unit lookup table.
-     * @warning The code assumes all units are two characters long.  Be careful
-     *          if we have to change this behavior!
+     * @param HTMLPurifier_Length $max Minimum length, or null for no bound. 
String is also acceptable.
+     * @param HTMLPurifier_Length $max Maximum length, or null for no bound. 
String is also acceptable.
      */
-    protected $units = array('em' => true, 'ex' => true, 'px' => true, 'in' => 
true,
-         'cm' => true, 'mm' => true, 'pt' => true, 'pc' => true);
-    /**
-     * Instance of HTMLPurifier_AttrDef_Number to defer number validation to
-     */
-    protected $number_def;
-    
-    /**
-     * @param $non_negative Bool indication whether or not negative values are
-     *                      allowed.
-     */
-    public function __construct($non_negative = false) {
-        $this->number_def = new HTMLPurifier_AttrDef_CSS_Number($non_negative);
+    public function __construct($min = null, $max = null) {
+        $this->min = $min !== null ? HTMLPurifier_Length::make($min) : null;
+        $this->max = $max !== null ? HTMLPurifier_Length::make($max) : null;
     }
-    
-    public function validate($length, $config, $context) {
-        
-        $length = $this->parseCDATA($length);
-        if ($length === '') return false;
-        if ($length === '0') return '0';
-        $strlen = strlen($length);
-        if ($strlen === 1) return false; // impossible!
-        
-        // we assume all units are two characters
-        $unit = substr($length, $strlen - 2);
-        if (!ctype_lower($unit)) $unit = strtolower($unit);
-        $number = substr($length, 0, $strlen - 2);
-        
-        if (!isset($this->units[$unit])) return false;
-        
-        $number = $this->number_def->validate($number, $config, $context);
-        if ($number === false) return false;
-        
-        return $number . $unit;
-        
+
+    public function validate($string, $config, $context) {
+        $string = $this->parseCDATA($string);
+
+        // Optimizations
+        if ($string === '') return false;
+        if ($string === '0') return '0';
+        if (strlen($string) === 1) return false;
+
+        $length = HTMLPurifier_Length::make($string);
+        if (!$length->isValid()) return false;
+
+        if ($this->min) {
+            $c = $length->compareTo($this->min);
+            if ($c === false) return false;
+            if ($c < 0) return false;
+        }
+        if ($this->max) {
+            $c = $length->compareTo($this->max);
+            if ($c === false) return false;
+            if ($c > 0) return false;
+        }
+
+        return $length->toString();
     }
-    
+
 }
 
+// vim: et sw=4 sts=4

Modified: 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/ListStyle.php
===================================================================
--- 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/ListStyle.php
        2013-05-07 08:11:24 UTC (rev 11093)
+++ 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/ListStyle.php
        2013-05-07 08:14:01 UTC (rev 11094)
@@ -6,37 +6,37 @@
  */
 class HTMLPurifier_AttrDef_CSS_ListStyle extends HTMLPurifier_AttrDef
 {
-    
+
     /**
      * Local copy of component validators.
      * @note See HTMLPurifier_AttrDef_CSS_Font::$info for a similar impl.
      */
     protected $info;
-    
+
     public function __construct($config) {
         $def = $config->getCSSDefinition();
         $this->info['list-style-type']     = $def->info['list-style-type'];
         $this->info['list-style-position'] = $def->info['list-style-position'];
         $this->info['list-style-image'] = $def->info['list-style-image'];
     }
-    
+
     public function validate($string, $config, $context) {
-        
+
         // regular pre-processing
         $string = $this->parseCDATA($string);
         if ($string === '') return false;
-        
+
         // assumes URI doesn't have spaces in it
         $bits = explode(' ', strtolower($string)); // bits to process
-        
+
         $caught = array();
         $caught['type']     = false;
         $caught['position'] = false;
         $caught['image']    = false;
-        
+
         $i = 0; // number of catches
         $none = false;
-        
+
         foreach ($bits as $bit) {
             if ($i >= 3) return; // optimization bit
             if ($bit === '') continue;
@@ -54,24 +54,25 @@
                 break;
             }
         }
-        
+
         if (!$i) return false;
-        
+
         $ret = array();
-        
+
         // construct type
         if ($caught['type']) $ret[] = $caught['type'];
-        
+
         // construct image
         if ($caught['image']) $ret[] = $caught['image'];
-        
+
         // construct position
         if ($caught['position']) $ret[] = $caught['position'];
-        
+
         if (empty($ret)) return false;
         return implode(' ', $ret);
-        
+
     }
-    
+
 }
 
+// vim: et sw=4 sts=4

Modified: 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Multiple.php
===================================================================
--- 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Multiple.php
 2013-05-07 08:11:24 UTC (rev 11093)
+++ 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Multiple.php
 2013-05-07 08:14:01 UTC (rev 11094)
@@ -2,30 +2,30 @@
 
 /**
  * Framework class for strings that involve multiple values.
- * 
+ *
  * Certain CSS properties such as border-width and margin allow multiple
  * lengths to be specified.  This class can take a vanilla border-width
  * definition and multiply it, usually into a max of four.
- * 
+ *
  * @note Even though the CSS specification isn't clear about it, inherit
  *       can only be used alone: it will never manifest as part of a multi
  *       shorthand declaration.  Thus, this class does not allow inherit.
  */
 class HTMLPurifier_AttrDef_CSS_Multiple extends HTMLPurifier_AttrDef
 {
-    
+
     /**
      * Instance of component definition to defer validation to.
      * @todo Make protected
      */
     public $single;
-    
+
     /**
      * Max number of values allowed.
      * @todo Make protected
      */
     public $max;
-    
+
     /**
      * @param $single HTMLPurifier_AttrDef to multiply
      * @param $max Max number of values allowed (usually four)
@@ -34,7 +34,7 @@
         $this->single = $single;
         $this->max = $max;
     }
-    
+
     public function validate($string, $config, $context) {
         $string = $this->parseCDATA($string);
         if ($string === '') return false;
@@ -52,6 +52,7 @@
         if ($final === '') return false;
         return rtrim($final);
     }
-    
+
 }
 
+// vim: et sw=4 sts=4

Modified: 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Number.php
===================================================================
--- 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Number.php
   2013-05-07 08:11:24 UTC (rev 11093)
+++ 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Number.php
   2013-05-07 08:14:01 UTC (rev 11094)
@@ -5,26 +5,30 @@
  */
 class HTMLPurifier_AttrDef_CSS_Number extends HTMLPurifier_AttrDef
 {
-    
+
     /**
      * Bool indicating whether or not only positive values allowed.
      */
     protected $non_negative = false;
-    
+
     /**
      * @param $non_negative Bool indicating whether negatives are forbidden
      */
     public function __construct($non_negative = false) {
         $this->non_negative = $non_negative;
     }
-    
+
+    /**
+     * @warning Some contexts do not pass $config, $context. These
+     *          variables should not be used without checking 
HTMLPurifier_Length
+     */
     public function validate($number, $config, $context) {
-        
+
         $number = $this->parseCDATA($number);
-        
+
         if ($number === '') return false;
         if ($number === '0') return '0';
-        
+
         $sign = '';
         switch ($number[0]) {
             case '-':
@@ -33,32 +37,33 @@
             case '+':
                 $number = substr($number, 1);
         }
-        
+
         if (ctype_digit($number)) {
             $number = ltrim($number, '0');
             return $number ? $sign . $number : '0';
         }
-        
+
         // Period is the only non-numeric character allowed
         if (strpos($number, '.') === false) return false;
-        
+
         list($left, $right) = explode('.', $number, 2);
-        
+
         if ($left === '' && $right === '') return false;
         if ($left !== '' && !ctype_digit($left)) return false;
-        
+
         $left  = ltrim($left,  '0');
         $right = rtrim($right, '0');
-        
+
         if ($right === '') {
             return $left ? $sign . $left : '0';
         } elseif (!ctype_digit($right)) {
             return false;
         }
-        
+
         return $sign . $left . '.' . $right;
-        
+
     }
-    
+
 }
 
+// vim: et sw=4 sts=4

Modified: 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Percentage.php
===================================================================
--- 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Percentage.php
       2013-05-07 08:11:24 UTC (rev 11093)
+++ 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/Percentage.php
       2013-05-07 08:14:01 UTC (rev 11094)
@@ -5,35 +5,36 @@
  */
 class HTMLPurifier_AttrDef_CSS_Percentage extends HTMLPurifier_AttrDef
 {
-    
+
     /**
      * Instance of HTMLPurifier_AttrDef_CSS_Number to defer number validation
      */
     protected $number_def;
-    
+
     /**
      * @param Bool indicating whether to forbid negative values
      */
     public function __construct($non_negative = false) {
         $this->number_def = new HTMLPurifier_AttrDef_CSS_Number($non_negative);
     }
-    
+
     public function validate($string, $config, $context) {
-        
+
         $string = $this->parseCDATA($string);
-        
+
         if ($string === '') return false;
         $length = strlen($string);
         if ($length === 1) return false;
         if ($string[$length - 1] !== '%') return false;
-        
+
         $number = substr($string, 0, $length - 1);
         $number = $this->number_def->validate($number, $config, $context);
-        
+
         if ($number === false) return false;
         return "$number%";
-        
+
     }
-    
+
 }
 
+// vim: et sw=4 sts=4

Modified: 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/TextDecoration.php
===================================================================
--- 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/TextDecoration.php
   2013-05-07 08:11:24 UTC (rev 11093)
+++ 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/TextDecoration.php
   2013-05-07 08:14:01 UTC (rev 11094)
@@ -7,16 +7,19 @@
  */
 class HTMLPurifier_AttrDef_CSS_TextDecoration extends HTMLPurifier_AttrDef
 {
-    
+
     public function validate($string, $config, $context) {
-        
+
         static $allowed_values = array(
             'line-through' => true,
             'overline' => true,
-            'underline' => true
+            'underline' => true,
         );
-        
+
         $string = strtolower($this->parseCDATA($string));
+
+        if ($string === 'none') return $string;
+
         $parts = explode(' ', $string);
         $final = '';
         foreach ($parts as $part) {
@@ -27,8 +30,9 @@
         $final = rtrim($final);
         if ($final === '') return false;
         return $final;
-        
+
     }
-    
+
 }
 
+// vim: et sw=4 sts=4

Modified: 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/URI.php
===================================================================
--- 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/URI.php
      2013-05-07 08:11:24 UTC (rev 11093)
+++ 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS/URI.php
      2013-05-07 08:14:01 UTC (rev 11094)
@@ -11,45 +11,51 @@
  */
 class HTMLPurifier_AttrDef_CSS_URI extends HTMLPurifier_AttrDef_URI
 {
-    
+
     public function __construct() {
         parent::__construct(true); // always embedded
     }
-    
+
     public function validate($uri_string, $config, $context) {
         // parse the URI out of the string and then pass it onto
         // the parent object
-        
+
         $uri_string = $this->parseCDATA($uri_string);
         if (strpos($uri_string, 'url(') !== 0) return false;
         $uri_string = substr($uri_string, 4);
         $new_length = strlen($uri_string) - 1;
         if ($uri_string[$new_length] != ')') return false;
         $uri = trim(substr($uri_string, 0, $new_length));
-        
+
         if (!empty($uri) && ($uri[0] == "'" || $uri[0] == '"')) {
             $quote = $uri[0];
             $new_length = strlen($uri) - 1;
             if ($uri[$new_length] !== $quote) return false;
             $uri = substr($uri, 1, $new_length - 1);
         }
-        
-        $keys   = array(  '(',   ')',   ',',   ' ',   '"',   "'");
-        $values = array('\\(', '\\)', '\\,', '\\ ', '\\"', "\\'");
-        $uri = str_replace($values, $keys, $uri);
-        
+
+        $uri = $this->expandCSSEscape($uri);
+
         $result = parent::validate($uri, $config, $context);
-        
+
         if ($result === false) return false;
-        
-        // escape necessary characters according to CSS spec
-        // except for the comma, none of these should appear in the
-        // URI at all
-        $result = str_replace($keys, $values, $result);
-        
-        return "url($result)";
-        
+
+        // extra sanity check; should have been done by URI
+        $result = str_replace(array('"', "\\", "\n", "\x0c", "\r"), "", 
$result);
+
+        // suspicious characters are ()'; we're going to percent encode
+        // them for safety.
+        $result = str_replace(array('(', ')', "'"), array('%28', '%29', 
'%27'), $result);
+
+        // there's an extra bug where ampersands lose their escaping on
+        // an innerHTML cycle, so a very unlucky query parameter could
+        // then change the meaning of the URL.  Unfortunately, there's
+        // not much we can do about that...
+
+        return "url(\"$result\")";
+
     }
-    
+
 }
 
+// vim: et sw=4 sts=4

Modified: 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS.php
===================================================================
--- 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS.php
  2013-05-07 08:11:24 UTC (rev 11093)
+++ 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/CSS.php
  2013-05-07 08:14:01 UTC (rev 11094)
@@ -13,22 +13,28 @@
  */
 class HTMLPurifier_AttrDef_CSS extends HTMLPurifier_AttrDef
 {
-    
+
     public function validate($css, $config, $context) {
-        
+
         $css = $this->parseCDATA($css);
-        
+
         $definition = $config->getCSSDefinition();
-        
+
         // we're going to break the spec and explode by semicolons.
         // This is because semicolon rarely appears in escaped form
         // Doing this is generally flaky but fast
         // IT MIGHT APPEAR IN URIs, see HTMLPurifier_AttrDef_CSSURI
         // for details
-        
+
         $declarations = explode(';', $css);
         $propvalues = array();
-        
+
+        /**
+         * Name of the current CSS property being validated.
+         */
+        $property = false;
+        $context->register('CurrentCSSProperty', $property);
+
         foreach ($declarations as $declaration) {
             if (!$declaration) continue;
             if (!strpos($declaration, ':')) continue;
@@ -60,19 +66,22 @@
             if ($result === false) continue;
             $propvalues[$property] = $result;
         }
-        
+
+        $context->destroy('CurrentCSSProperty');
+
         // procedure does not write the new CSS simultaneously, so it's
         // slightly inefficient, but it's the only way of getting rid of
         // duplicates. Perhaps config to optimize it, but not now.
-        
+
         $new_declarations = '';
         foreach ($propvalues as $prop => $value) {
             $new_declarations .= "$prop:$value;";
         }
-        
+
         return $new_declarations ? $new_declarations : false;
-        
+
     }
-    
+
 }
 
+// vim: et sw=4 sts=4

Copied: 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/Clone.php
 (from rev 11093, 
trunk/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/Clone.php)
===================================================================
--- 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/Clone.php
                                (rev 0)
+++ 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/Clone.php
        2013-05-07 08:14:01 UTC (rev 11094)
@@ -0,0 +1,28 @@
+<?php
+
+/**
+ * Dummy AttrDef that mimics another AttrDef, BUT it generates clones
+ * with make.
+ */
+class HTMLPurifier_AttrDef_Clone extends HTMLPurifier_AttrDef
+{
+    /**
+     * What we're cloning
+     */
+    protected $clone;
+
+    public function __construct($clone) {
+        $this->clone = $clone;
+    }
+
+    public function validate($v, $config, $context) {
+        return $this->clone->validate($v, $config, $context);
+    }
+
+    public function make($string) {
+        return clone $this->clone;
+    }
+
+}
+
+// vim: et sw=4 sts=4

Modified: 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/Enum.php
===================================================================
--- 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/Enum.php
 2013-05-07 08:11:24 UTC (rev 11093)
+++ 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/Enum.php
 2013-05-07 08:14:01 UTC (rev 11094)
@@ -9,19 +9,19 @@
  */
 class HTMLPurifier_AttrDef_Enum extends HTMLPurifier_AttrDef
 {
-    
+
     /**
      * Lookup table of valid values.
      * @todo Make protected
      */
     public $valid_values   = array();
-    
+
     /**
      * Bool indicating whether or not enumeration is case sensitive.
      * @note In general this is always case insensitive.
      */
     protected $case_sensitive = false; // values according to W3C spec
-    
+
     /**
      * @param $valid_values List of valid values
      * @param $case_sensitive Bool indicating whether or not case sensitive
@@ -32,7 +32,7 @@
         $this->valid_values = array_flip($valid_values);
         $this->case_sensitive = $case_sensitive;
     }
-    
+
     public function validate($string, $config, $context) {
         $string = trim($string);
         if (!$this->case_sensitive) {
@@ -40,10 +40,10 @@
             $string = ctype_lower($string) ? $string : strtolower($string);
         }
         $result = isset($this->valid_values[$string]);
-        
+
         return $result ? $string : false;
     }
-    
+
     /**
      * @param $string In form of comma-delimited list of case-insensitive
      *      valid values. Example: "foo,bar,baz". Prepend "s:" to make
@@ -59,6 +59,7 @@
         $values = explode(',', $string);
         return new HTMLPurifier_AttrDef_Enum($values, $sensitive);
     }
-    
+
 }
 
+// vim: et sw=4 sts=4

Modified: 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/Bool.php
===================================================================
--- 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/Bool.php
    2013-05-07 08:11:24 UTC (rev 11093)
+++ 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/Bool.php
    2013-05-07 08:14:01 UTC (rev 11094)
@@ -5,23 +5,24 @@
  */
 class HTMLPurifier_AttrDef_HTML_Bool extends HTMLPurifier_AttrDef
 {
-    
+
     protected $name;
     public $minimized = true;
-    
+
     public function __construct($name = false) {$this->name = $name;}
-    
+
     public function validate($string, $config, $context) {
         if (empty($string)) return false;
         return $this->name;
     }
-    
+
     /**
      * @param $string Name of attribute
      */
     public function make($string) {
         return new HTMLPurifier_AttrDef_HTML_Bool($string);
     }
-    
+
 }
 
+// vim: et sw=4 sts=4

Copied: 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/Class.php
 (from rev 11093, 
trunk/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/Class.php)
===================================================================
--- 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/Class.php
                           (rev 0)
+++ 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/Class.php
   2013-05-07 08:14:01 UTC (rev 11094)
@@ -0,0 +1,34 @@
+<?php
+
+/**
+ * Implements special behavior for class attribute (normally NMTOKENS)
+ */
+class HTMLPurifier_AttrDef_HTML_Class extends 
HTMLPurifier_AttrDef_HTML_Nmtokens
+{
+    protected function split($string, $config, $context) {
+        // really, this twiddle should be lazy loaded
+        $name = $config->getDefinition('HTML')->doctype->name;
+        if ($name == "XHTML 1.1" || $name == "XHTML 2.0") {
+            return parent::split($string, $config, $context);
+        } else {
+            return preg_split('/\s+/', $string);
+        }
+    }
+    protected function filter($tokens, $config, $context) {
+        $allowed = $config->get('Attr.AllowedClasses');
+        $forbidden = $config->get('Attr.ForbiddenClasses');
+        $ret = array();
+        foreach ($tokens as $token) {
+            if (
+                ($allowed === null || isset($allowed[$token])) &&
+                !isset($forbidden[$token]) &&
+                // We need this O(n) check because of PHP's array
+                // implementation that casts -0 to 0.
+                !in_array($token, $ret, true)
+            ) {
+                $ret[] = $token;
+            }
+        }
+        return $ret;
+    }
+}

Modified: 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/Color.php
===================================================================
--- 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/Color.php
   2013-05-07 08:11:24 UTC (rev 11093)
+++ 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/Color.php
   2013-05-07 08:14:01 UTC (rev 11094)
@@ -5,27 +5,29 @@
  */
 class HTMLPurifier_AttrDef_HTML_Color extends HTMLPurifier_AttrDef
 {
-    
+
     public function validate($string, $config, $context) {
-        
+
         static $colors = null;
-        if ($colors === null) $colors = $config->get('Core', 'ColorKeywords');
-        
+        if ($colors === null) $colors = $config->get('Core.ColorKeywords');
+
         $string = trim($string);
-        
+
         if (empty($string)) return false;
-        if (isset($colors[$string])) return $colors[$string];
+        $lower = strtolower($string);
+        if (isset($colors[$lower])) return $colors[$lower];
         if ($string[0] === '#') $hex = substr($string, 1);
         else $hex = $string;
-        
+
         $length = strlen($hex);
         if ($length !== 3 && $length !== 6) return false;
         if (!ctype_xdigit($hex)) return false;
         if ($length === 3) $hex = 
$hex[0].$hex[0].$hex[1].$hex[1].$hex[2].$hex[2];
-        
+
         return "#$hex";
-        
+
     }
-    
+
 }
 
+// vim: et sw=4 sts=4

Modified: 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/FrameTarget.php
===================================================================
--- 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/FrameTarget.php
     2013-05-07 08:11:24 UTC (rev 11093)
+++ 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/FrameTarget.php
     2013-05-07 08:14:01 UTC (rev 11094)
@@ -5,16 +5,17 @@
  */
 class HTMLPurifier_AttrDef_HTML_FrameTarget extends HTMLPurifier_AttrDef_Enum
 {
-    
+
     public $valid_values = false; // uninitialized value
     protected $case_sensitive = false;
-    
+
     public function __construct() {}
-    
+
     public function validate($string, $config, $context) {
-        if ($this->valid_values === false) $this->valid_values = 
$config->get('Attr', 'AllowedFrameTargets');
+        if ($this->valid_values === false) $this->valid_values = 
$config->get('Attr.AllowedFrameTargets');
         return parent::validate($string, $config, $context);
     }
-    
+
 }
 
+// vim: et sw=4 sts=4

Modified: 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/ID.php
===================================================================
--- 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/ID.php
      2013-05-07 08:11:24 UTC (rev 11093)
+++ 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/ID.php
      2013-05-07 08:14:01 UTC (rev 11094)
@@ -11,35 +11,45 @@
 
 class HTMLPurifier_AttrDef_HTML_ID extends HTMLPurifier_AttrDef
 {
-    
-    // ref functionality disabled, since we also have to verify
-    // whether or not the ID it refers to exists
-    
+
+    // selector is NOT a valid thing to use for IDREFs, because IDREFs
+    // *must* target IDs that exist, whereas selector #ids do not.
+
+    /**
+     * Determines whether or not we're validating an ID in a CSS
+     * selector context.
+     */
+    protected $selector;
+
+    public function __construct($selector = false) {
+        $this->selector = $selector;
+    }
+
     public function validate($id, $config, $context) {
-        
-        if (!$config->get('Attr', 'EnableID')) return false;
-        
+
+        if (!$this->selector && !$config->get('Attr.EnableID')) return false;
+
         $id = trim($id); // trim it first
-        
+
         if ($id === '') return false;
-        
-        $prefix = $config->get('Attr', 'IDPrefix');
+
+        $prefix = $config->get('Attr.IDPrefix');
         if ($prefix !== '') {
-            $prefix .= $config->get('Attr', 'IDPrefixLocal');
+            $prefix .= $config->get('Attr.IDPrefixLocal');
             // prevent re-appending the prefix
             if (strpos($id, $prefix) !== 0) $id = $prefix . $id;
-        } elseif ($config->get('Attr', 'IDPrefixLocal') !== '') {
+        } elseif ($config->get('Attr.IDPrefixLocal') !== '') {
             trigger_error('%Attr.IDPrefixLocal cannot be used unless '.
                 '%Attr.IDPrefix is set', E_USER_WARNING);
         }
-        
-        //if (!$this->ref) {
+
+        if (!$this->selector) {
             $id_accumulator =& $context->get('IDAccumulator');
             if (isset($id_accumulator->ids[$id])) return false;
-        //}
-        
+        }
+
         // we purposely avoid using regex, hopefully this is faster
-        
+
         if (ctype_alpha($id)) {
             $result = true;
         } else {
@@ -50,20 +60,21 @@
               );
             $result = ($trim === '');
         }
-        
-        $regexp = $config->get('Attr', 'IDBlacklistRegexp');
+
+        $regexp = $config->get('Attr.IDBlacklistRegexp');
         if ($regexp && preg_match($regexp, $id)) {
             return false;
         }
-        
-        if (/*!$this->ref && */$result) $id_accumulator->add($id);
-        
+
+        if (!$this->selector && $result) $id_accumulator->add($id);
+
         // if no change was made to the ID, return the result
         // else, return the new id if stripping whitespace made it
         //     valid, or return false.
         return $result ? $id : false;
-        
+
     }
-    
+
 }
 
+// vim: et sw=4 sts=4

Modified: 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/Length.php
===================================================================
--- 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/Length.php
  2013-05-07 08:11:24 UTC (rev 11093)
+++ 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/Length.php
  2013-05-07 08:14:01 UTC (rev 11094)
@@ -2,39 +2,40 @@
 
 /**
  * Validates the HTML type length (not to be confused with CSS's length).
- * 
+ *
  * This accepts integer pixels or percentages as lengths for certain
  * HTML attributes.
  */
 
 class HTMLPurifier_AttrDef_HTML_Length extends HTMLPurifier_AttrDef_HTML_Pixels
 {
-    
+
     public function validate($string, $config, $context) {
-        
+
         $string = trim($string);
         if ($string === '') return false;
-        
+
         $parent_result = parent::validate($string, $config, $context);
         if ($parent_result !== false) return $parent_result;
-        
+
         $length = strlen($string);
         $last_char = $string[$length - 1];
-        
+
         if ($last_char !== '%') return false;
-        
+
         $points = substr($string, 0, $length - 1);
-        
+
         if (!is_numeric($points)) return false;
-        
+
         $points = (int) $points;
-        
+
         if ($points < 0) return '0%';
         if ($points > 100) return '100%';
-        
+
         return ((string) $points) . '%';
-        
+
     }
-    
+
 }
 
+// vim: et sw=4 sts=4

Modified: 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/LinkTypes.php
===================================================================
--- 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/LinkTypes.php
       2013-05-07 08:11:24 UTC (rev 11093)
+++ 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/LinkTypes.php
       2013-05-07 08:14:01 UTC (rev 11094)
@@ -8,10 +8,10 @@
  */
 class HTMLPurifier_AttrDef_HTML_LinkTypes extends HTMLPurifier_AttrDef
 {
-    
+
     /** Name config attribute to pull. */
     protected $name;
-    
+
     public function __construct($name) {
         $configLookup = array(
             'rel' => 'AllowedRel',
@@ -24,15 +24,15 @@
         }
         $this->name = $configLookup[$name];
     }
-    
+
     public function validate($string, $config, $context) {
-        
-        $allowed = $config->get('Attr', $this->name);
+
+        $allowed = $config->get('Attr.' . $this->name);
         if (empty($allowed)) return false;
-        
+
         $string = $this->parseCDATA($string);
         $parts = explode(' ', $string);
-        
+
         // lookup to prevent duplicates
         $ret_lookup = array();
         foreach ($parts as $part) {
@@ -40,16 +40,14 @@
             if (!isset($allowed[$part])) continue;
             $ret_lookup[$part] = true;
         }
-        
+
         if (empty($ret_lookup)) return false;
-        
-        $ret_array = array();
-        foreach ($ret_lookup as $part => $bool) $ret_array[] = $part;
-        $string = implode(' ', $ret_array);
-        
+        $string = implode(' ', array_keys($ret_lookup));
+
         return $string;
-        
+
     }
-    
+
 }
 
+// vim: et sw=4 sts=4

Modified: 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/MultiLength.php
===================================================================
--- 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/MultiLength.php
     2013-05-07 08:11:24 UTC (rev 11093)
+++ 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/MultiLength.php
     2013-05-07 08:14:01 UTC (rev 11094)
@@ -2,39 +2,40 @@
 
 /**
  * Validates a MultiLength as defined by the HTML spec.
- * 
+ *
  * A multilength is either a integer (pixel count), a percentage, or
  * a relative number.
  */
 class HTMLPurifier_AttrDef_HTML_MultiLength extends 
HTMLPurifier_AttrDef_HTML_Length
 {
-    
+
     public function validate($string, $config, $context) {
-        
+
         $string = trim($string);
         if ($string === '') return false;
-        
+
         $parent_result = parent::validate($string, $config, $context);
         if ($parent_result !== false) return $parent_result;
-        
+
         $length = strlen($string);
         $last_char = $string[$length - 1];
-        
+
         if ($last_char !== '*') return false;
-        
+
         $int = substr($string, 0, $length - 1);
-        
+
         if ($int == '') return '*';
         if (!is_numeric($int)) return false;
-        
+
         $int = (int) $int;
-        
+
         if ($int < 0) return false;
         if ($int == 0) return '0';
         if ($int == 1) return '*';
         return ((string) $int) . '*';
-        
+
     }
-    
+
 }
 
+// vim: et sw=4 sts=4

Modified: 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/Nmtokens.php
===================================================================
--- 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/Nmtokens.php
        2013-05-07 08:11:24 UTC (rev 11093)
+++ 
branches/Version-1_0-branch/phpgwapi/inc/htmlpurifier/HTMLPurifier/AttrDef/HTML/Nmtokens.php
        2013-05-07 08:14:01 UTC (rev 11094)
@@ -2,46 +2,51 @@
 
 /**
  * Validates contents based on NMTOKENS attribute type.
- * @note The only current use for this is the class attribute in HTML
- * @note Could have some functionality factored out into Nmtoken class
- * @warning We cannot assume this class will be used only for 'class'
- *          attributes. Not sure how to hook in magic behavior, then.
  */
 class HTMLPurifier_AttrDef_HTML_Nmtokens extends HTMLPurifier_AttrDef
 {
-    
+
     public function validate($string, $config, $context) {
-        
+
         $string = trim($string);
-        
+

@@ Diff output truncated at 153600 characters. @@



reply via email to

[Prev in Thread] Current Thread [Next in Thread]