From: <pb...@fe...> - 2013-02-03 09:13:05
|
Author: pboy Date: 2013-02-03 09:12:51 +0000 (Sun, 03 Feb 2013) New Revision: 2482 Modified: releases/2.0.0/ccm-cms/src/com/arsdigita/cms/CMSResources.properties releases/2.0.0/ccm-cms/src/com/arsdigita/cms/CMSResources_de.properties releases/2.0.0/ccm-cms/src/com/arsdigita/cms/CMSResources_en_GB.properties releases/2.0.0/ccm-cms/src/com/arsdigita/cms/CMSResources_fr.properties releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ImageAsset.java releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/ContenttypesResources.properties releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/ContenttypesResources_de.properties releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/GenericContact.java releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/GenericOrganizationalUnitBundle.java releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericOrganizationalUnitPersonAddForm.java releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericPersonAliasDeleteForm.java releases/2.0.0/ccm-cms/src/com/arsdigita/cms/dispatcher/BaseImage.java releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ContentSectionPage.java releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImageBrowser.java releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImageDisplay.java releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImagesPane.java releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ItemSearchFlatBrowsePane.java releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/folder/CMSFolderResources.properties releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/folder/CMSFolderResources_de.properties releases/2.0.0/ccm-cms/web/assets/xinha/plugins/OpenCCM/images/images.html releases/2.0.0/ccm-cms/web/assets/xinha/plugins/OpenCCM/images/images.js releases/2.0.0/ccm-cms/web/assets/xinha/plugins/OpenCCM/lang/de.js releases/2.0.0/ccm-cms/web/assets/xinha/plugins/OpenCCM/lang/en.js Log: * Backport r2461 (Improved alias handling, fixed publication process, new CreatePane to add members of organisational units, on behalf of JensP) * Backport new Image tab (on behalf of quasimodo) Modified: releases/2.0.0/ccm-cms/src/com/arsdigita/cms/CMSResources.properties =================================================================== --- releases/2.0.0/ccm-cms/src/com/arsdigita/cms/CMSResources.properties 2013-02-03 08:56:16 UTC (rev 2481) +++ releases/2.0.0/ccm-cms/src/com/arsdigita/cms/CMSResources.properties 2013-02-03 09:12:51 UTC (rev 2482) @@ -1111,3 +1111,4 @@ cms.ui.clear=Clear cms.ui.item_search.create.folder_missing=No folder selected +cms.ui.images_links= Modified: releases/2.0.0/ccm-cms/src/com/arsdigita/cms/CMSResources_de.properties =================================================================== --- releases/2.0.0/ccm-cms/src/com/arsdigita/cms/CMSResources_de.properties 2013-02-03 08:56:16 UTC (rev 2481) +++ releases/2.0.0/ccm-cms/src/com/arsdigita/cms/CMSResources_de.properties 2013-02-03 09:12:51 UTC (rev 2482) @@ -1104,3 +1104,4 @@ cms.ui.type.minimum_number_of_values_bigger_than_maximum_number_of_values=Maximaler Wert kleiner als minimaler Wert cms.ui.type.minimummaximum_number_of_values_cannot_be_negative=Keine negativen Werte erlaubt cms.ui.item_search.create.folder_missing=kein Ordner ausgew\u00e4hlt +cms.ui.images_links= Modified: releases/2.0.0/ccm-cms/src/com/arsdigita/cms/CMSResources_en_GB.properties =================================================================== --- releases/2.0.0/ccm-cms/src/com/arsdigita/cms/CMSResources_en_GB.properties 2013-02-03 08:56:16 UTC (rev 2481) +++ releases/2.0.0/ccm-cms/src/com/arsdigita/cms/CMSResources_en_GB.properties 2013-02-03 09:12:51 UTC (rev 2482) @@ -50,3 +50,4 @@ cms.ui.clear= cms.ui.item_search.create.folder_missing= +cms.ui.images_links= Modified: releases/2.0.0/ccm-cms/src/com/arsdigita/cms/CMSResources_fr.properties =================================================================== --- releases/2.0.0/ccm-cms/src/com/arsdigita/cms/CMSResources_fr.properties 2013-02-03 08:56:16 UTC (rev 2481) +++ releases/2.0.0/ccm-cms/src/com/arsdigita/cms/CMSResources_fr.properties 2013-02-03 09:12:51 UTC (rev 2482) @@ -67,7 +67,7 @@ cms.contenttypes.ui.there_are_no_events=Il n'y a aucun \u00e9venement cms.contenttypes.ui.title=Titre cms.contenttypes.ui.view_image=voir l'image - + # Package com.arsdigita.cms.dispatcher # ===================================== cms.dispatcher.cannot_find_domain_object=Impossible de trouver le domaine objet @@ -77,7 +77,7 @@ cms.dispatcher.not_implemented=Non impl\u00e9ment\u00e9 cms.dispatcher.unknown_context=Contexte inconnu - + # Package com.arsdigita.cms.formbuilder # ===================================== cms.formbuilder.cannot_create_acsobject=Impossible de cr\u00e9er l'ACSObject @@ -86,13 +86,13 @@ cms.formbuilder.roll_me_back=TRANSLATE THIS: Roll me back (cms.formbuilder.roll_me_back) cms.formbuilder.css=Cascading Style Sheet (CSS) Class Attribute - + # Package com.arsdigita.cms.installer # ===================================== cms.installer.approval=Approbation cms.installer.article=Article cms.installer.authoring=Ecriture -cms.installer.cannot_find_cms_package_type=Impossible de trouver le type package CMS +cms.installer.cannot_find_cms_package_type=Impossible de trouver le type package CMS cms.installer.cannot_find_content_type=Impossible de trouver le type de contenu cms.installer.cannot_find_file=Impossible de trouver le fichier cms.installer.cannot_find_group_for_email=Impossible de trouver le groupe pour l'email @@ -109,7 +109,7 @@ cms.installer.simple_publication=Publication simple cms.installer.template=Gabarit - + # Package com.arsdigita.cms.lifecycle # =================================== cms.lifecycle.could_not_fetch_lifecycle=Impossible de trouver le cycle de vie @@ -135,10 +135,10 @@ cms.publishToFile.publish_to_file_setlocalrequestpassword_could_not_be_created=La publication du fichier pour la demande de mot de passe ne peut pas \u00eatre cr\u00e9\u00e9e cms.publishToFile.publishsource_sourcebase_must_end_in_=L'\u00e9dition source doit se terminer par '/' cms.publishToFile.server=Server -cms.publishToFile.unable_to_find_closing_for_tag=Impossible de trouver '>' pour la fermeture du tag +cms.publishToFile.unable_to_find_closing_for_tag=Impossible de trouver '>' pour la fermeture du tag cms.publishToFile.unable_to_get_contentitem=Impossible de trouve le contenu de l'\u00e9l\u00e9ment - + # Package com.arsdigita.cms.ui # ============================ cms.ui.actions=actions @@ -196,7 +196,7 @@ cms.ui.no_items_matched_the_search=Pas d'\u00e9l\u00e9ment trouv\u00e9 dans la recherche - + # Package com.arsdigita.cms.ui.authoring # ====================================== cms.ui.authoring.an_item_with_this_name_already_exists=Un \u00e9l\u00e9ment de ce nom existe d\u00e9j\u00e0 @@ -236,12 +236,12 @@ cms.ui.authoring.upload_image=T\u00e9l\u00e9charger l'image cms.ui.authoring.workflow=TRANSLATE THIS: Select a Workflow (cms.ui.authoring.workflow) - + # Package com.arsdigita.cms.ui.authoringkit # ========================================= cms.ui.authoringkit.authoring_kit_for=Kit d'\u00e9criture pour cms.ui.authoringkit.component=Composant -cms.ui.authoringkit.content_type_id=Type de contenu ID# +cms.ui.authoringkit.content_type_id=Type de contenu ID# cms.ui.authoringkit.create_component=Cr\u00e9er le composant cms.ui.authoringkit.createcomponent=Cr\u00e9er le composant cms.ui.authoringkit.current_row_does_not_exists=La ligne en cours n'exsite pas @@ -251,7 +251,7 @@ cms.ui.authoringkit.ordering=Commande cms.ui.authoringkit.submission_cancelled=Soumission annul\u00e9e - + # Package com.arsdigita.cms.ui.category # ===================================== cms.ui.category.add_a_subcategory=Ajouter une sous-rubrique @@ -294,7 +294,7 @@ cms.ui.category.url=URL # cms.ui.category.use_custom_permissions=Utiliser les droits personnalis\u00e9s - + # Package com.arsdigita.cms.ui.cse # ================================ cms.ui.cse.authorName=Author @@ -305,17 +305,17 @@ cms.ui.cse.editLink=edit cms.ui.cse.endDateTime=Live Until - + # Package com.arsdigita.cms.ui.folder # =================================== cms.ui.folder.cancelled=Annul\u00e9 cms.ui.folder.cannot_find_a_root_folder=Impossible de trouver le r\u00e9pertoire racine -cms.ui.folder.na=N/A +cms.ui.folder.na=N/A cms.ui.folder.no_source_items_specified=Pas d'\u00e9l\u00e9ment source sp\u00e9cifi\u00e9 cms.ui.folder.parent=Parent Folder cms.ui.folder.rename=Rename folder - + # Package com.arsdigita.cms.ui.formbuilder # ======================================== cms.ui.formbuilder.description=Description @@ -323,7 +323,7 @@ cms.ui.formbuilder.oh_no_you_dont=non, vous ne pouvez pas cms.ui.formbuilder.title=Titre - + # Package com.arsdigita.cms.ui.item # ================================= cms.ui.item.access_denied=Acc\u00e8s refus\u00e9 @@ -345,7 +345,7 @@ cms.ui.item.the_current_row_does_not_exists=La ligne en cours n'exsite pas cms.ui.item.unpublish=D\u00e9publier - + # Package com.arsdigita.cms.ui.lifecycle # ====================================== cms.ui.lifecycle.add=Create new lifecycle @@ -372,7 +372,7 @@ cms.ui.lifecycle.phases=Etapes cms.ui.lifecycle.start_delay=D\u00e9lai de d\u00e9but - + # Package com.arsdigita.cms.ui.permissions # ======================================== cms.ui.permissions.add_administrator=Ajouter un administrateur @@ -421,7 +421,7 @@ cms.ui.staff.no_usersgroups_were_selected=Pas d'utilisateur/groupe s\u00e9l\u00e9ctionn\u00e9 cms.ui.staff.not_a_role_adminstrator=Pas d'administrateur de r\u00f4le cms.ui.staff.not_an_administrator_for_roles=pas un administrateur pour les r\u00f4les -cms.ui.staff.not_an_administrator_for_this_role=pas un administrateur pour ce r\u00f4le +cms.ui.staff.not_an_administrator_for_this_role=pas un administrateur pour ce r\u00f4le cms.ui.staff.out_of_bounds=En dehors de la plage cms.ui.staff.privileges=Droits accord\u00e9s cms.ui.staff.privileges=Droits accord\u00e9s @@ -581,3 +581,4 @@ cms.ui.clear= cms.ui.item_search.create.folder_missing= +cms.ui.images_links= Modified: releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ImageAsset.java =================================================================== --- releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ImageAsset.java 2013-02-03 08:56:16 UTC (rev 2481) +++ releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ImageAsset.java 2013-02-03 09:12:51 UTC (rev 2482) @@ -52,6 +52,7 @@ * * @author Jack Chung * @author Stanislav Freidin + * @author Sören Bernstein <sbe...@qu...> * * @version $Id$ */ Modified: releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/ContenttypesResources.properties =================================================================== --- releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/ContenttypesResources.properties 2013-02-03 08:56:16 UTC (rev 2481) +++ releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/ContenttypesResources.properties 2013-02-03 09:12:51 UTC (rev 2482) @@ -145,3 +145,5 @@ cms.contenttypes.ui.person.select_contact.no_contact_selected=No contact selected. cms.contenttypes.ui.person.select_contact.no_suitable_language_variant=The selected contact item is not avilable in the language of the current item. cms.contenttypes.ui.person.select_contact.already_added=The selected contact has already been added to current item. +cms.contenttypes.ui.person.alias.delete.label=Delete +cms.contenttypes.ui.person.alias.delete.confirm=Are you sure to remove the alias? Modified: releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/ContenttypesResources_de.properties =================================================================== --- releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/ContenttypesResources_de.properties 2013-02-03 08:56:16 UTC (rev 2481) +++ releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/ContenttypesResources_de.properties 2013-02-03 09:12:51 UTC (rev 2482) @@ -156,3 +156,5 @@ cms.contenttypes.ui.person.select_contact.no_contact_selected=Kein Kontakt ausgew\u00e4hlt. cms.contenttypes.ui.person.select_contact.no_suitable_language_variant=Das ausgew\u00e4hlte Kontakt-Item ist nicht in der Sprache des aktuellen Items verf\u00fcgbar. cms.contenttypes.ui.person.select_contact.already_added=Das ausgew\u00e4hlte Kontakt-Item wurde dem aktuellen Item bereits hinzugef\u00fcgt. +cms.contenttypes.ui.person.alias.delete.label=L\u00f6schen +cms.contenttypes.ui.person.alias.delete.confirm=Sind Sie sicher, dass Sie das Alias entfernen wollen? Modified: releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/GenericContact.java =================================================================== --- releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/GenericContact.java 2013-02-03 08:56:16 UTC (rev 2481) +++ releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/GenericContact.java 2013-02-03 09:12:51 UTC (rev 2482) @@ -65,6 +65,7 @@ s_config.load(); logger.debug("Static initializer finished"); } + /** * Data object type for this domain object */ @@ -326,8 +327,7 @@ } } - StringTokenizer keys = s_config.getContactEntryKeys(); - + StringTokenizer keys = s_config.getContactEntryKeys(); Element contactKeysElem = element.newChildElement("contactEntryKeys"); while(keys.hasMoreElements()) { contactKeysElem.newChildElement("entryKey").setText(keys.nextToken()); @@ -350,4 +350,5 @@ generators.add(this); return generators; } + } Modified: releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/GenericOrganizationalUnitBundle.java =================================================================== --- releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/GenericOrganizationalUnitBundle.java 2013-02-03 08:56:16 UTC (rev 2481) +++ releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/GenericOrganizationalUnitBundle.java 2013-02-03 09:12:51 UTC (rev 2482) @@ -355,7 +355,7 @@ link.set( GenericOrganizationalUnitSuperiorCollection.SUPERIOR_ORGAUNIT_ORDER, subOrgaUnits.get( - GenericOrganizationalUnitSuperiorCollection.SUPERIOR_ORGAUNIT_ORDER)); + GenericOrganizationalUnitSuperiorCollection.LINK_SUPERIOR_ORGAUNIT_ORDER)); link.save(); } Modified: releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericOrganizationalUnitPersonAddForm.java =================================================================== --- releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericOrganizationalUnitPersonAddForm.java 2013-02-03 08:56:16 UTC (rev 2481) +++ releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericOrganizationalUnitPersonAddForm.java 2013-02-03 09:12:51 UTC (rev 2482) @@ -81,7 +81,7 @@ findByAssociatedObjectType(getPersonType())); /*m_itemSearch.getItemField().addValidationListener( new NotNullValidationListener());*/ - m_itemSearch.setDisableCreatePane(true); + m_itemSearch.setDisableCreatePane(false); add(this.m_itemSearch); selectedPersonNameLabel = new Label(""); Modified: releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericPersonAliasDeleteForm.java =================================================================== --- releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericPersonAliasDeleteForm.java 2013-02-03 08:56:16 UTC (rev 2481) +++ releases/2.0.0/ccm-cms/src/com/arsdigita/cms/contenttypes/ui/GenericPersonAliasDeleteForm.java 2013-02-03 09:12:51 UTC (rev 2482) @@ -30,16 +30,18 @@ final GenericPersonAliasPropertiesStep step) { super(ID, itemModel); addSaveCancelSection(); + addProcessListener(this); } @Override public void addWidgets() { add(new Label((String) ContenttypesGlobalizationUtil.globalize( - "cms.contenttypes.ui.person.alias.delete.label").localize())); + "cms.contenttypes.ui.person.alias.delete.confirm").localize())); } @Override public void init(final FormSectionEvent fse) throws FormProcessException { + //Nothing } @Override @@ -51,6 +53,11 @@ person.unsetAlias(); } } + + @Override + public void validate(final FormSectionEvent event) throws FormProcessException { + //Nothing + } @Override public void addSaveCancelSection() { Modified: releases/2.0.0/ccm-cms/src/com/arsdigita/cms/dispatcher/BaseImage.java =================================================================== --- releases/2.0.0/ccm-cms/src/com/arsdigita/cms/dispatcher/BaseImage.java 2013-02-03 08:56:16 UTC (rev 2481) +++ releases/2.0.0/ccm-cms/src/com/arsdigita/cms/dispatcher/BaseImage.java 2013-02-03 09:12:51 UTC (rev 2482) @@ -71,8 +71,6 @@ public BaseImage(boolean download) { m_imageId = new BigDecimalParameter(IMAGE_ID); m_oid = new OIDParameter(OID_PARAM); -// m_transactionID = new BigDecimalParameter(TRANSACTION_ID); -// m_objectID = new BigDecimalParameter(OBJECT_ID); m_download = download; if (m_download) { @@ -154,15 +152,9 @@ // Fetch and validate the image ID OID oid = null; BigDecimal imageId = null; -// BigDecimal transactionID = null; -// BigDecimal objectID = null; try { oid = (OID) m_oid.transformValue(request); imageId = (BigDecimal) m_imageId.transformValue(request); -// transactionID = -// (BigDecimal) m_transactionID.transformValue(request); -// objectID = -// (BigDecimal) m_objectID.transformValue(request); } catch (Exception e) { response.sendError(HttpServletResponse.SC_BAD_REQUEST, e.toString()); @@ -177,26 +169,9 @@ oid = new OID(ImageAsset.BASE_DATA_OBJECT_TYPE, imageId); } -// Transaction transaction = null; -// GenericArticle article = null; - // XXX: add back rollback - /*if (transactionID != null) { - try { - transaction = - new Transaction(transactionID); - // we have a transaction so let's see if we have an article - if (objectID != null) { - article = new GenericArticle(objectID); - article.rollBackTo(transaction); - } - } catch (DataObjectNotFoundException e) { - s_log.warn("Unable to locate transaction " + transactionID); - // this is non-critical so we just continue - } - }*/ ImageAsset image = null; -// if (article == null) { + try { Asset a = (Asset) DomainObjectFactory.newInstance(oid); @@ -212,30 +187,7 @@ "no ImageAsset with oid " + oid); return; } -// } -// if (image.getMimeType() == null) { -// response.sendError(HttpServletResponse.SC_NOT_FOUND, -// "MIME type not found for ImageAsset " + imageId); -// } - - // Not until permissions are properly assigned to assets - //checkUserAccess(request, response, actx, image); - -// response.setContentType(image.getMimeType().getMimeType()); - -/* Quasimodo: on demand resizing of images - int width; - int height; - - width = Integer.parseInt(request.getParameter("width")); - height = Integer.parseInt(request.getParameter("height")); - - if(width || height) { - - } -*/ - setHeaders(response, image); send(response, image); } Modified: releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ContentSectionPage.java =================================================================== --- releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ContentSectionPage.java 2013-02-03 08:56:16 UTC (rev 2481) +++ releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ContentSectionPage.java 2013-02-03 09:12:51 UTC (rev 2482) @@ -133,7 +133,7 @@ private FolderAdminPane m_folderPane; private BrowsePane m_browsePane; private LayoutPanel m_searchPane; - //private ImagesPane m_imagesPane; + private ImagesPane m_imagesPane; private RoleAdminPane m_rolePane; private WorkflowAdminPane m_workflowPane; private LifecycleAdminPane m_lifecyclePane; @@ -166,7 +166,7 @@ m_folderPane = getFolderAdminPane(); m_browsePane = getBrowsePane(); m_searchPane = getSearchPane(); - //m_imagesPane = getImagesPane(); + m_imagesPane = getImagesPane(); m_rolePane = getRoleAdminPane(); m_workflowPane = getWorkflowAdminPane(); m_lifecyclePane = getLifecycleAdminPane(); @@ -249,12 +249,12 @@ return m_searchPane; } -// protected ImagesPane getImagesPane() { -// if(m_imagesPane == null) { -// m_imagesPane = new ImagesPane(); -// } -// return m_imagesPane; -// } + protected ImagesPane getImagesPane() { + if(m_imagesPane == null) { + m_imagesPane = new ImagesPane(); + } + return m_imagesPane; + } protected RoleAdminPane getRoleAdminPane() { if (m_rolePane == null) { @@ -375,7 +375,7 @@ //tab(pane, "cms.ui.folders", getFolderAdminPane()); tab(pane, "cms.ui.browse", getBrowsePane()); tab(pane, "cms.ui.search", getSearchPane()); - //tab(pane, "cms.ui.images", getImagesPane()); + tab(pane, "cms.ui.images", getImagesPane()); tab(pane, "cms.ui.roles", getRoleAdminPane()); tab(pane, "cms.ui.workflows", getWorkflowAdminPane()); tab(pane, "cms.ui.lifecycles", getLifecycleAdminPane()); @@ -414,8 +414,8 @@ if (pane == m_searchPane) { m_searchPane.reset(state); -// } else if (pane == m_imagesPane) { -// m_imagesPane.reset(state); + } else if (pane == m_imagesPane) { + m_imagesPane.reset(state); } else if (pane == m_folderPane) { m_folderPane.reset(state); } else if (pane == m_browsePane) { Modified: releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImageBrowser.java =================================================================== --- releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImageBrowser.java 2013-02-03 08:56:16 UTC (rev 2481) +++ releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImageBrowser.java 2013-02-03 09:12:51 UTC (rev 2482) @@ -83,7 +83,7 @@ * Construct a new ImageBrowser with default mode. * * @param builder the {@link ImageBrowserModelBuilder} that will supply this - * component with its {@link ImageBrowserModel} during each request + * component with its {@link ImageBrowserModel} during each request */ public ImageBrowser(ImageBrowserModelBuilder b) { @@ -94,14 +94,14 @@ * Construct a new ImageBrowser with requested mode. * * @param builder the {@link ImageBrowserModelBuilder} that will supply this - * component with its {@link ImageBrowserModel} during each request - * @param mode the component mode (see {@link ImageComponent}) + * component with its {@link ImageBrowserModel} during each request + * @param mode the component mode (see {@link ImageComponent}) */ public ImageBrowser(ImageBrowserModelBuilder b, int mode) { super(new BuilderAdapter(b), HEADERS); m_mode = mode; setThumbnailSize(CMS.getConfig().getImageBrowserThumbnailMaxWidth(), - CMS.getConfig().getImageBrowserThumbnailMaxHeight()); + CMS.getConfig().getImageBrowserThumbnailMaxHeight()); m_builder = b; getHeader().setDefaultRenderer(new DefaultTableCellRenderer(false)); @@ -123,9 +123,9 @@ } public int getNumColumns() { - return m_numColumns; + return m_numColumns; } - + /** * @return the size, in pixels, of the thumbnail images */ @@ -151,6 +151,7 @@ /** * @param state The current page state + * * @return the {@link ImageBrowserModel} used in the current request */ public ImageBrowserModel getImageBrowserModel(PageState state) { @@ -187,29 +188,14 @@ boolean isSelected, Object key, int row, int column) { ImageAsset a = (ImageAsset) value; - // String url = Utilities.getImageURL(a); + String url = Service.getImageURL(a); + // Sets url paramter to resize the images server-side + String resizeParam = "&maxWidth=" + new Double(m_thumbSize.getWidth()).intValue() + "&maxHeight=" + new Double(m_thumbSize.getHeight()).intValue(); - Image img = new Image(URL.getDispatcherPath() + url); + Image img = new Image(URL.getDispatcherPath() + url + resizeParam, a.getName()); img.setBorder("0"); - img.setAlt(a.getName()); - BigDecimal width = a.getWidth(), height = a.getHeight(); - int w, h; - - if (width == null || height == null) { - w = (int) m_thumbSize.getWidth(); - h = (int) m_thumbSize.getHeight(); - } else { - Dimension d = ImageSizer.getScaledSize( - width.intValue(), height.intValue(), (int) m_thumbSize.getWidth(), (int) m_thumbSize.getHeight()); - w = (int) d.getWidth(); - h = (int) d.getHeight(); - } - - img.setWidth(Integer.toString(w)); - img.setHeight(Integer.toString(h)); - return new Link(img, url); } } @@ -265,7 +251,7 @@ } } - + // can delete image because it's not in use if (canDelete) { return super.getComponent(table, state, value, isSelected, key, row, column); @@ -309,7 +295,7 @@ @Override public int getColumnCount() { - return ((ImageBrowser)m_model).getNumColumns(); + return ((ImageBrowser) m_model).getNumColumns(); // return ImageBrowser.s_numColumns; } @@ -359,7 +345,7 @@ return m.getMimeType(); case ImageBrowser.LINK: - return "select"; + return "select"; case ImageBrowser.DELETE: return "delete"; Modified: releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImageDisplay.java =================================================================== --- releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImageDisplay.java 2013-02-03 08:56:16 UTC (rev 2481) +++ releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImageDisplay.java 2013-02-03 09:12:51 UTC (rev 2482) @@ -24,12 +24,10 @@ import com.arsdigita.cms.ImageAsset; import com.arsdigita.cms.ItemSelectionModel; import com.arsdigita.cms.Service; -// import com.arsdigita.cms.dispatcher.Utilities; import com.arsdigita.mimetypes.MimeType; import com.arsdigita.util.Assert; import com.arsdigita.web.URL; import com.arsdigita.xml.Element; - import java.math.BigDecimal; Modified: releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImagesPane.java =================================================================== --- releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImagesPane.java 2013-02-03 08:56:16 UTC (rev 2481) +++ releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ImagesPane.java 2013-02-03 09:12:51 UTC (rev 2482) @@ -5,6 +5,7 @@ package com.arsdigita.cms.ui; import com.arsdigita.bebop.Component; +import com.arsdigita.bebop.FormModel; import com.arsdigita.bebop.Label; import com.arsdigita.bebop.List; import com.arsdigita.bebop.ListPanel; @@ -16,16 +17,17 @@ import com.arsdigita.bebop.SegmentedPanel; import com.arsdigita.bebop.SegmentedPanel.Segment; import com.arsdigita.bebop.SimpleContainer; -import com.arsdigita.bebop.SingleSelectionModel; import com.arsdigita.bebop.event.ChangeEvent; import com.arsdigita.bebop.event.ChangeListener; import com.arsdigita.bebop.list.ListModel; import com.arsdigita.bebop.list.ListModelBuilder; +import com.arsdigita.bebop.parameters.ParameterModel; import com.arsdigita.bebop.parameters.StringParameter; import com.arsdigita.cms.util.GlobalizationUtil; import com.arsdigita.toolbox.ui.ActionGroup; import com.arsdigita.toolbox.ui.LayoutPanel; import com.arsdigita.toolbox.ui.Section; +import com.arsdigita.util.Assert; import com.arsdigita.util.LockableImpl; import java.util.ArrayList; import java.util.HashMap; @@ -47,14 +49,15 @@ private ListPanel m_listPanel; final private SegmentedPanel m_body; private HashMap<String, Segment> m_bodySegments = new HashMap(); - private final SingleSelectionModel m_model; + private final ResettableParameterSingleSelectionModel m_model; private final List m_links; + private final LinksSection m_modes; public ImagesPane() { super(); - m_model = new ParameterSingleSelectionModel(new StringParameter(List.SELECTED)); - + m_model = new ResettableParameterSingleSelectionModel(new StringParameter(List.SELECTED)); + m_model.setDefaultSelection(ImageComponent.LIBRARY); m_model.addChangeListener(new ImageAdminSelectionListener()); m_links = new List(new ImageAdminListModelBuilder()); @@ -63,8 +66,8 @@ final SimpleContainer left = new SimpleContainer(); setLeft(left); - final LinksSection staff = new LinksSection(); - left.add(staff); + m_modes = new LinksSection(); + left.add(m_modes); m_body = new SegmentedPanel(); setBody(m_body); @@ -81,7 +84,6 @@ final ImageLibraryComponent library = new ImageLibraryComponent(ImageComponent.ADMIN_IMAGES); library.getForm().addInitListener(m_adminListener); library.getForm().addProcessListener(m_adminListener); - library.addUploadLink(m_adminListener); selectors.put(ImageComponent.LIBRARY, library); m_bodySegments.put(ImageComponent.LIBRARY, m_body.addSegment( new Label(GlobalizationUtil.globalize("cms.ui.image_library")), @@ -107,69 +109,77 @@ while (keys.hasNext()) { String key = keys.next(); - page.setVisibleDefault(m_bodySegments.get(key), ImageComponent.LIBRARY.equals(key)); -// for (int index = 0; index < m_bodySegments.get(key).size(); index++) { - -// Component component = m_bodySegments.get(key).get(index); -// page.setVisibleDefault(component, ImageComponent.LIBRARY.equals(key)); -// } + page.setVisibleDefault(m_bodySegments.get(key), m_model.getDefaultSelection().equals(key)); } - // final Map componentsMap = m_imageComponent.getComponentsMap(); - // - // final Iterator keyIter = componentsMap.keySet().iterator(); - // while (keyIter.hasNext()) { - // final Object key = keyIter.next(); - // final Component component = (Component) componentsMap.get(key); - // - // page.setVisibleDefault(component, ImageComponent.LIBRARY.equals(key)); - // } - // page.addComponentStateParam(this, m_imageComponentKey); } /** * Resets this pane and all its resettable components. - * + * * @param state Page state */ @Override public final void reset(final PageState state) { super.reset(state); + m_model.reset(state); + this.setActiveImageComponent(state, m_model.getDefaultSelection()); + } + + public final void setActiveImageComponent(PageState state, String activeComp) { + Iterator<String> keys = m_bodySegments.keySet().iterator(); + m_imageComponent.setSelectedKey(state, activeComp); while (keys.hasNext()) { + String key = keys.next(); - state.setVisible(m_bodySegments.get(key), ImageComponent.LIBRARY.equals(key)); + final boolean visibility = key.equals(activeComp); + state.setVisible(m_bodySegments.get(key), visibility); for (int index = 0; index < m_bodySegments.get(key).size(); index++) { Component component = m_bodySegments.get(key).get(index); -// state.setVisible(component, ImageComponent.LIBRARY.equals(key)); + // Reset all components if they are of type Resettable - if (component instanceof Resettable) { ((Resettable) component).reset(state); } + + // Set visibility + component.setVisible(state, visibility); } } + } + private class ResettableParameterSingleSelectionModel extends ParameterSingleSelectionModel + implements Resettable { -// final Map componentsMap = m_imageComponent.getComponentsMap(); -// m_imageComponent.setSelectedKey(state, ImageComponent.LIBRARY); -// final Iterator keyIter = componentsMap.keySet().iterator(); -// while (keyIter.hasNext()) { -// final Object key = keyIter.next(); -// final Component component = (Component) componentsMap.get(key); -// -// state.setVisible(component, ImageComponent.LIBRARY.equals(key)); -// -// // Reset all components if they are of type Resettable -// if (component instanceof Resettable) { -// ((Resettable) component).reset(state); -// } -// } + private String defaultKey; + + public ResettableParameterSingleSelectionModel(ParameterModel m) { + super(m); + } + + public void setDefaultSelection(String selKey) { + this.defaultKey = selKey; + } + + public String getDefaultSelection() { + return defaultKey; + } + + public void reset(PageState state) { + + if (Assert.isEnabled()) { + final FormModel model = state.getPage().getStateModel(); + Assert.isTrue(model.containsFormParam(getStateParameter())); + } + + state.setValue(getStateParameter(), this.defaultKey); + } } private class ImageAdminListModel implements ListModel { @@ -212,13 +222,11 @@ final PageState state = e.getPageState(); -// getBody().reset(state); - if (m_model.isSelected(state)) { S_LOG.debug("The selection model is selected; displaying " + "the item pane"); -// getBody().push(state, getItemPane()); + ImagesPane.this.setActiveImageComponent(state, state.getControlEventValue()); } } } @@ -234,4 +242,4 @@ group.setSubject(m_links); } } -} +} \ No newline at end of file Modified: releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ItemSearchFlatBrowsePane.java =================================================================== --- releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ItemSearchFlatBrowsePane.java 2013-02-03 08:56:16 UTC (rev 2481) +++ releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/ItemSearchFlatBrowsePane.java 2013-02-03 09:12:51 UTC (rev 2482) @@ -182,6 +182,7 @@ collection.set(state, session.retrieve(type.getClassName())); } ((DataCollection)collection.get(state)).addFilter("version = 'draft'"); + ((DataCollection)collection.get(state)).addFilter("section is not null"); final String query = (String) state.getValue(queryParam); if ((query != null) && !query.isEmpty()) { Modified: releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/folder/CMSFolderResources.properties =================================================================== --- releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/folder/CMSFolderResources.properties 2013-02-03 08:56:16 UTC (rev 2481) +++ releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/folder/CMSFolderResources.properties 2013-02-03 09:12:51 UTC (rev 2482) @@ -70,5 +70,5 @@ cms.ui.folder.filter.all=All cms.ui.folder.filter=Filter for work cms.ui.folder.filter_do=Filter -cms.ui.folder.languages= +cms.ui.folder.languages=Languages cms.ui.folder.delete_confirmation=Permanently delete this item? Modified: releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/folder/CMSFolderResources_de.properties =================================================================== --- releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/folder/CMSFolderResources_de.properties 2013-02-03 08:56:16 UTC (rev 2481) +++ releases/2.0.0/ccm-cms/src/com/arsdigita/cms/ui/folder/CMSFolderResources_de.properties 2013-02-03 09:12:51 UTC (rev 2482) @@ -66,5 +66,5 @@ cms.ui.folder.filter.all=Alle cms.ui.folder.filter=Nach Begriff filtern cms.ui.folder.filter_do=Filtern -cms.ui.folder.languages= +cms.ui.folder.languages=Sprachen cms.ui.folder.delete_confirmation=Wollen Sie dieses Content-Item l\u00f6schen? Modified: releases/2.0.0/ccm-cms/web/assets/xinha/plugins/OpenCCM/images/images.html =================================================================== --- releases/2.0.0/ccm-cms/web/assets/xinha/plugins/OpenCCM/images/images.html 2013-02-03 08:56:16 UTC (rev 2481) +++ releases/2.0.0/ccm-cms/web/assets/xinha/plugins/OpenCCM/images/images.html 2013-02-03 09:12:51 UTC (rev 2482) @@ -121,7 +121,7 @@ </label> <div class="value"> <select size="1" name="[alignment]" id="[alignment]" title="_(Positioning of this image)"> - <option value="" ><l10n>Not set</l10n></option> + <option value="none" ><l10n>Not set</l10n></option> <option value="left" ><l10n>Left</l10n></option> <option value="center"><l10n>Center</l10n></option> <option value="right" ><l10n>Right</l10n></option> @@ -133,18 +133,16 @@ <div class="value"> <input type="checkbox" name="[caption]" id="[caption]" title="_(Show caption)" checked="checked"/> </div> - <label class="key" for="[zoom]"> - <l10n>Enable Zoom:</l10n> + <label class="key" for="[fancybox]"> + <l10n>Fancybox:</l10n> </label> <div class="value"> - <input type="checkbox" name="[zoom]" id="[zoom]" title="_(Enable zoom)"/> + <select size="1" name="[fancybox]" id="[fancybox]" title="_()"> + <option value="none" ><l10n>None</l10n></option> + <option value="imageZoom" ><l10n>Zoom</l10n></option> + <option value="imageGallery"><l10n>Gallery</l10n></option> + </select> </div> - <label class="key" for="[gallery]"> - <l10n>Enable Gallery:</l10n> - </label> - <div class="value"> - <input type="checkbox" name="[gallery]" id="[gallery]" title="_(Enable gallery)"/> - </div> </fieldset> <fieldset id="[dimensions]"> Modified: releases/2.0.0/ccm-cms/web/assets/xinha/plugins/OpenCCM/images/images.js =================================================================== --- releases/2.0.0/ccm-cms/web/assets/xinha/plugins/OpenCCM/images/images.js 2013-02-03 08:56:16 UTC (rev 2481) +++ releases/2.0.0/ccm-cms/web/assets/xinha/plugins/OpenCCM/images/images.js 2013-02-03 09:12:51 UTC (rev 2482) @@ -17,8 +17,11 @@ width : "", height : "", caption : "", - zoom : "", - gallery : "", + + alignment : "", + caption : "", + fancybox : "", + aspect : "" }; @@ -33,7 +36,7 @@ this.image = image; - if(image && image.tagName.toLowerCase() == "img") + if (image && image.tagName.toLowerCase() == "img") { data.src = this.editor.fixRelativeLinks(image.getAttribute("src")); data.alt = image.getAttribute("alt"); @@ -42,35 +45,50 @@ data.width = image.getAttribute("width"); data.height = image.getAttribute("height"); - if(image.parentNode.tagName.toLowerCase() == "div") + if (image.parentNode.tagName.toLowerCase() == "div") { // Parent node is not a link, so there is not zoom or gallery function - data.alignment = image.parentNode.getAttribute("class").substring(image.parentNode.getAttribute("class").indexOf(" ")); + alignment = image.parentNode.getAttribute("class"); + if (alignment != "image none") + { + data.alignment = alignment.substring(alignment.indexOf(" ") + 1); + } + else + { + data.alignment = "none"; + } data.caption = (image.nextSibling.tagName.toLowerCase() == "span" && image.nextSibling.firstChild) ? image.nextSibling.firstChild.nodeValue : ""; - data.zoom = ""; - data.gallery = ""; + + data.fancybox = "none"; // data.galleryName = ""; } else { // Parent node is a link - data.alignment = image.parentNode.parentNode.getAttribute("class").substring(image.parentNode.getAttribute("class").indexOf(" ")); - data.zoom = (image.parentNode.getAttribute("class") == "imageZoom") ? "on" : ""; - data.gallery = (image.parentNode.getAttribute("class") == "imageGallery") ? "on" : ""; + alignment = image.parentNode.parentNode.getAttribute("class"); + if (alignment != "image none") + { + data.alignment = alignment.substring(alignment.indexOf(" ") + 1); + } + else + { + data.alignment="none"; + } + + data.fancybox = image.parentNode.getAttribute("class"); // data.galleryName = (image.parentNode.getAttribute("class") == "imageGallery") ? image.parentNode.getAttribute("rel") : ""; data.caption = (image.parentNode.nextSibling.tagName.toLowerCase() == "span" && image.parentNode.nextSibling.firstChild) ? image.parentNode.nextSibling.firstChild.nodeValue : ""; } - + // Calculate aspect ratio data.aspect = data.width / data.height; } else { - data.alignment = ""; + data.alignment = "none"; // data.caption = ""; - data.zoom = ""; - data.gallery = ""; + data.fancybox = "none"; // data.galleryName = ""; } @@ -151,7 +169,6 @@ href : "", rel : "", class : "" - }; var divAttr = @@ -181,20 +198,18 @@ } // Read form values for link - if(values.zoom || values.gallery) + if(values.fancybox.value == "imageZoom") { linkAttr.href = values.src; - if(values.zoom) - { - linkAttr.rel = ""; - linkAttr.class = "imageZoom"; - } + linkAttr.rel = ""; + linkAttr.class = "imageZoom"; + } - else if(values.gallery) - { - linkAttr.rel = "imageGallery"; - linkAttr.class = "imageGallery"; - } + else if(values.fancybox.value == "imageGallery") + { + linkAttr.href = values.src; + linkAttr.rel = "imageGallery"; + linkAttr.class = "imageGallery"; } // Read form values for div @@ -240,7 +255,7 @@ // the folling has to be done for both cases // insert link, if fancybox features are activated - if(values.zoom || values.gallery) + if(values.fancybox.value != "none") { link = document.createElement("a"); for(var attr in linkAttr) @@ -256,7 +271,7 @@ { img.setAttribute(attr, imgAttr[attr]); } - if(values.zoom || values.gallery) + if(values.fancybox.value != "none") { link.appendChild(img); } @@ -358,11 +373,15 @@ { if(dialog.getElementById(dialog.id["preview"]).style.display == "block") { + + // Recalculate height of preview dialog.getElementById(dialog.id["preview"]).style.height = Math.min(Math.max(0, dialog.height - this._getCombinedComponentHeight() - 20), Math.round((window.innerHeight * 0.8) - this._getCombinedComponentHeight())) + "px"; // Resize preview image this.resizePreview(dialog); } + dialog.width = Math.min(Math.max(10, dialog.width), Math.round((window.innerWidth * 0.8))); + dialog.height = Math.min(Math.max(10, dialog.height), Math.round((window.innerHeight * 0.8))); }; OpenCCM.prototype.resizePreview = function(dialog) @@ -374,16 +393,21 @@ var maxHeight = previewElem.offsetHeight && previewElem.offsetHeight - 15 < Math.round((window.innerHeight * 0.8) - this._getCombinedComponentHeight()) ? previewElem.offsetHeight - 15 : Math.round((window.innerHeight * 0.8) - this._getCombinedComponentHeight()); - + dialog.getElementById(dialog.id["ipreview"]).style.width = "auto"; dialog.getElementById(dialog.id["ipreview"]).style.height = "auto"; var width = parseInt(dialog.getElementById(dialog.id["ipreview"]).width,10); var height = parseInt(dialog.getElementById(dialog.id["ipreview"]).height,10); - var zoom = Math.min(maxWidth / width, - maxHeight / height); - +// alert("W: " + maxWidth +" "+ width + "H: " + maxHeight +" "+ height); + + var zoom = height > 0 + ? Math.min(maxWidth / width, maxHeight / height) + : maxWidth / width; + +// alert("Zoom: " + zoom); + var w = dialog.getElementById(dialog.id["ipreview"]).style.width = Math.round(width * zoom) + "px"; var h = dialog.getElementById(dialog.id["ipreview"]).style.height = Math.round(height * zoom) + "px"; }; Modified: releases/2.0.0/ccm-cms/web/assets/xinha/plugins/OpenCCM/lang/de.js =================================================================== --- releases/2.0.0/ccm-cms/web/assets/xinha/plugins/OpenCCM/lang/de.js 2013-02-03 08:56:16 UTC (rev 2481) +++ releases/2.0.0/ccm-cms/web/assets/xinha/plugins/OpenCCM/lang/de.js 2013-02-03 09:12:51 UTC (rev 2482) @@ -3,4 +3,19 @@ { "OpenCCMInsertLink" : "Link einfügen / bearbeiten", "OpenCCMInsertImage" : "Bild einfügen / bearbeiten", + "Name:" : "Name:", + "Alternate:" : "Alt-Text", + "Title:" : "Titel:", + "Layout" : "Darstellung", + "Alignment:" : "Ausrichtung:", + "Center" : "zentriert", + "Show Caption:" : "Zeige Bildunterschrift:", + "Fancybox" : "Fancybox:", + "Disabled" : "Deaktiviert", + "Zoom" : "Zoom", + "Gallery" : "Gallerie", + "Dimension" : "Dimensionen", + "Width:" : "Breite:", + "Height:" : "Höhe:", + "Preview" : "Vorschau" } Modified: releases/2.0.0/ccm-cms/web/assets/xinha/plugins/OpenCCM/lang/en.js =================================================================== --- releases/2.0.0/ccm-cms/web/assets/xinha/plugins/OpenCCM/lang/en.js 2013-02-03 08:56:16 UTC (rev 2481) +++ releases/2.0.0/ccm-cms/web/assets/xinha/plugins/OpenCCM/lang/en.js 2013-02-03 09:12:51 UTC (rev 2482) @@ -3,4 +3,19 @@ { "OpenCCMInsertLink" : "Create / modify link", "OpenCCMInsertImage" : "Insert / modify image", + "Name:" : "Name:", + "Alternate:" : "Alternate", + "Title:" : "Title:", + "Layout" : "Layout", + "Alignment:" : "Alignment:", + "Center" : "zentriert", + "Show Caption:" : "Show Caption:", + "Fancybox" : "Fancybox:", + "Disabled" : "Disabled", + "Zoom" : "Zoom", + "Gallery" : "Gallery", + "Dimension" : "Dimension", + "Width:" : "Width:", + "Height:" : "Height:", + "Preview" : "Preview" } |