ccm-cms
* Einige Übersetzungen für ccm-cms, insb. für die neuen Teile * ResultPane für ImageSelectPage hinzugefügt, die das Javascript mit den entscprechenden Parametern ausgibt * DefaultImageModelBuilder provisorisch repariert, so daß der Paginator zurückgesetzt wird. * ImagesPane umgestellt, so daß die beiden Subformulare über die linke Spalte ausgewählt werden können (defekt) Xinha-Plugin * kleine Detail-Verbesserungen * Verknüpfung mit ImageSelectPage * Fenster vergrößert * Fenster sind nun scrollbar git-svn-id: https://svn.libreccm.org/ccm/trunk@1781 8810af33-2d31-482b-a856-94f89814c4dfmaster
parent
16c44cea88
commit
19cd652bbf
|
|
@ -1109,3 +1109,4 @@ cms.ui.images=Images
|
|||
cms.ui.search.create.select_close=Select item and close
|
||||
cms.ui.search.create.select_edit=Select item and edit
|
||||
|
||||
cms.ui.clear=Clear
|
||||
|
|
|
|||
|
|
@ -1100,3 +1100,4 @@ cms.ui.images=Bilder
|
|||
cms.ui.search.create.select_close=Item ausw\u00e4hlen und schlie\u00dfen
|
||||
cms.ui.search.create.select_edit=Item ausw\u00e4hlen und weiter bearbeiten
|
||||
|
||||
cms.ui.clear=Zur\u00fccksetzen
|
||||
|
|
|
|||
|
|
@ -48,3 +48,4 @@ cms.ui.images=Images
|
|||
cms.ui.search.create.select_close=
|
||||
cms.ui.search.create.select_edit=
|
||||
|
||||
cms.ui.clear=
|
||||
|
|
|
|||
|
|
@ -579,3 +579,4 @@ cms.ui.images=Images
|
|||
cms.ui.search.create.select_close=
|
||||
cms.ui.search.create.select_edit=
|
||||
|
||||
cms.ui.clear=
|
||||
|
|
|
|||
|
|
@ -43,24 +43,9 @@ import com.arsdigita.cms.contenttypes.GenericOrganizationalUnitContactCollection
|
|||
import com.arsdigita.cms.contenttypes.util.ContenttypesGlobalizationUtil;
|
||||
import com.arsdigita.cms.dispatcher.ItemResolver;
|
||||
import com.arsdigita.cms.dispatcher.Utilities;
|
||||
import com.arsdigita.domain.DataObjectNotFoundException;
|
||||
import com.arsdigita.cms.util.GlobalizationUtil;
|
||||
|
||||
;import com.arsdigita.globalization.GlobalizationHelper;
|
||||
import com.arsdigita.util.LockableImpl;
|
||||
import java.math.BigDecimal;
|
||||
import org.apache.log4j.Logger;
|
||||
import com.arsdigita.domain.DataObjectNotFoundException;
|
||||
import com.arsdigita.globalization.GlobalizationHelper;
|
||||
|
||||
import com.arsdigita.globalization.GlobalizationHelper;
|
||||
import com.arsdigita.util.LockableImpl;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
import com.arsdigita.util.LockableImpl;
|
||||
import java.math.BigDecimal;
|
||||
import org.apache.log4j.Logger;
|
||||
import com.arsdigita.util.LockableImpl;
|
||||
import java.math.BigDecimal;
|
||||
import org.apache.log4j.Logger;
|
||||
|
|
|
|||
|
|
@ -31,29 +31,33 @@ import com.arsdigita.util.LockableImpl;
|
|||
|
||||
/**
|
||||
* Builds an {@link ImageBrowserModel} by selecting all images which match the
|
||||
* given keyword. The keyword is supplied by the <code>getSelectedKey</code>
|
||||
* method of a <code>SingleSelectionModel</code>. If the keyword is empty
|
||||
* or null, the builder will return an {@link EmptyImageBrowserModel}
|
||||
* given keyword. The keyword is supplied by the
|
||||
* <code>getSelectedKey</code> method of a
|
||||
* <code>SingleSelectionModel</code>. If the keyword is empty or null, the
|
||||
* builder will return an {@link EmptyImageBrowserModel}
|
||||
*
|
||||
* @author Stanislav Freidin (sfreidin@arsdigita.com)
|
||||
* @version $Id: DefaultImageBrowserModelBuilder.java 1940 2009-05-29 07:15:05Z terry $
|
||||
* @author Sören Bernstein (quasimodo) <sbernstein@zes.uni-bremen.de>
|
||||
* @version $Id: DefaultImageBrowserModelBuilder.java 1940 2009-05-29 07:15:05Z
|
||||
* terry $
|
||||
*/
|
||||
public class DefaultImageBrowserModelBuilder extends LockableImpl
|
||||
implements ImageBrowserModelBuilder, PaginationModelBuilder {
|
||||
|
||||
private SingleSelectionModel m_keywordModel;
|
||||
private static ImageBrowserModel EMPTY_MODEL =
|
||||
new EmptyImageBrowserModel();
|
||||
new EmptyImageBrowserModel();
|
||||
private ImageBrowser m_imageBrowser;
|
||||
private RequestLocal m_size;
|
||||
private String m_key;
|
||||
private RequestLocal m_imageColl;
|
||||
private String m_context;
|
||||
|
||||
/**
|
||||
* Construct a new DefaultImageBrowserModelBuilder
|
||||
* Construct a new DefaultImageBrowserModelBuilder
|
||||
*
|
||||
* @param keywordModel The SingleSelectionModel whose getSelectedKey(state)
|
||||
* method returns a string keyword
|
||||
* method returns a string keyword
|
||||
* @param context the context for the retrieved items. Should be
|
||||
* {@link ContentItem#DRAFT} or {@link ContentItem#LIVE}
|
||||
*/
|
||||
|
|
@ -63,19 +67,29 @@ public class DefaultImageBrowserModelBuilder extends LockableImpl
|
|||
m_keywordModel = keywordModel;
|
||||
m_context = context;
|
||||
m_size = new RequestLocal();
|
||||
m_key = "";
|
||||
m_imageColl = new RequestLocal();
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct a new DefaultImageBrowserModelBuilder
|
||||
* Construct a new DefaultImageBrowserModelBuilder
|
||||
*
|
||||
* @param keywordModel The SingleSelectionModel whose getSelectedKey(state)
|
||||
* method returns a string keyword
|
||||
* method returns a string keyword
|
||||
*/
|
||||
public DefaultImageBrowserModelBuilder(SingleSelectionModel keywordModel) {
|
||||
this(keywordModel, ContentItem.DRAFT);
|
||||
}
|
||||
|
||||
public ImageAssetCollection getImageCollectionByKeyword(PageState state) {
|
||||
String key = (String) m_keywordModel.getSelectedKey(state);
|
||||
if (!m_key.equals(key)) {
|
||||
m_key = key;
|
||||
|
||||
}
|
||||
return ReusableImageAsset.getReusableImagesByKeyword(key, m_context);
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct an ImageBrowserModel for the current request
|
||||
*/
|
||||
|
|
@ -84,8 +98,7 @@ public class DefaultImageBrowserModelBuilder extends LockableImpl
|
|||
|
||||
// pass through key even if null -- null key will return all rows in m_context.
|
||||
//ImageAssetCollection c = ReusableImageAsset.getReusableImagesByKeyword(key, m_context);
|
||||
return new DefaultImageBrowserModel((ImageAssetCollection) m_imageColl.
|
||||
get(s));
|
||||
return new DefaultImageBrowserModel((ImageAssetCollection) m_imageColl.get(s));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -106,27 +119,42 @@ public class DefaultImageBrowserModelBuilder extends LockableImpl
|
|||
|
||||
public int getTotalSize(Paginator paginator, PageState state) {
|
||||
|
||||
Integer size = (Integer) m_size.get(state);
|
||||
int size = 0;
|
||||
|
||||
if (size == null) {
|
||||
if (m_size.get(state) == null) {
|
||||
|
||||
String key = (String) m_keywordModel.getSelectedKey(state);
|
||||
ImageAssetCollection c = ReusableImageAsset.
|
||||
getReusableImagesByKeyword(key, m_context);
|
||||
if (c == null) {
|
||||
return 0;
|
||||
|
||||
//HACK: (by Quasimodo)
|
||||
// So, there is something broken. The selectedPage has to be resettet to
|
||||
// 1, if the keyword changes and therefor the imageCollection changes its
|
||||
// size.
|
||||
// Also, setting the imaheCollection range in this method seems to be
|
||||
// wrong, because it changes the funtionality from a getter method to
|
||||
// something more complex.
|
||||
if (m_key == null || (key != null && !m_key.equalsIgnoreCase(key))) {
|
||||
paginator.setSelectedPageNum(state, 1);
|
||||
m_key = key;
|
||||
}
|
||||
|
||||
size = new Integer( (int) ReusableImageAsset.getReusableImagesByKeyword(key, m_context).size());
|
||||
|
||||
c.setRange(new Integer(paginator.getFirst(state)),
|
||||
new Integer(paginator.getLast(state) + 1));
|
||||
|
||||
// End hack
|
||||
|
||||
ImageAssetCollection imageCollection = ReusableImageAsset.getReusableImagesByKeyword(key, m_context);
|
||||
if (imageCollection != null) {
|
||||
size = (int) imageCollection.size();
|
||||
}
|
||||
|
||||
m_size.set(state, size);
|
||||
m_imageColl.set(state, c);
|
||||
|
||||
// This should not be done here.
|
||||
imageCollection.setRange(new Integer(paginator.getFirst(state)),
|
||||
new Integer(paginator.getLast(state) + 1));
|
||||
m_imageColl.set(state, imageCollection);
|
||||
|
||||
} else {
|
||||
size = ((Integer) m_size.get(state)).intValue();
|
||||
}
|
||||
|
||||
return size.intValue();
|
||||
return size;
|
||||
}
|
||||
|
||||
public void setImageBrowser(ImageBrowser ib) {
|
||||
|
|
@ -134,11 +162,11 @@ public class DefaultImageBrowserModelBuilder extends LockableImpl
|
|||
}
|
||||
|
||||
/**
|
||||
* Indicates whether the paginator should be visible,
|
||||
* based on the visibility of the image browser itself.
|
||||
* Indicates whether the paginator should be visible, based on the
|
||||
* visibility of the image browser itself.
|
||||
*
|
||||
* @return true if image browser is visible, or if the
|
||||
* associated image browser is unknown.
|
||||
* @return true if image browser is visible, or if the associated image
|
||||
* browser is unknown.
|
||||
*/
|
||||
public boolean isVisible(PageState state) {
|
||||
return (m_imageBrowser != null) ? m_imageBrowser.isVisible(state) : true;
|
||||
|
|
|
|||
|
|
@ -18,7 +18,6 @@
|
|||
*/
|
||||
package com.arsdigita.cms.ui;
|
||||
|
||||
|
||||
import com.arsdigita.bebop.BoxPanel;
|
||||
import com.arsdigita.bebop.Form;
|
||||
import com.arsdigita.bebop.FormData;
|
||||
|
|
@ -41,12 +40,12 @@ import com.arsdigita.bebop.parameters.StringParameter;
|
|||
import com.arsdigita.cms.ContentItem;
|
||||
import com.arsdigita.cms.util.GlobalizationUtil;
|
||||
|
||||
|
||||
/**
|
||||
* Sticks a form at the top of an {@link ImageBrowser} in order to
|
||||
* search images by keyword
|
||||
* Sticks a form at the top of an {@link ImageBrowser} in order to search images
|
||||
* by keyword
|
||||
*
|
||||
* @author Stanislav Freidin (sfreidin@arsdigita.com)
|
||||
* @author Sören Bernstein (quasimodo) <sbernstein@zes.uni-bremen.de>
|
||||
* @version $Id: ImageChooser.java 1940 2009-05-29 07:15:05Z terry $
|
||||
*/
|
||||
public class ImageChooser extends BoxPanel {
|
||||
|
|
@ -56,11 +55,9 @@ public class ImageChooser extends BoxPanel {
|
|||
private Paginator m_paginator;
|
||||
private StringParameter m_keyword;
|
||||
private SingleSelectionModel m_sel;
|
||||
|
||||
public static final String KEYWORD = "kw";
|
||||
public static int LIST_SIZE = 20;
|
||||
|
||||
|
||||
/**
|
||||
* Construct a new ImageChooser
|
||||
*
|
||||
|
|
@ -74,15 +71,12 @@ public class ImageChooser extends BoxPanel {
|
|||
m_keyword = new StringParameter(KEYWORD);
|
||||
m_sel = new ParameterSingleSelectionModel(m_keyword);
|
||||
m_form = new ImageKeywordForm(m_sel);
|
||||
DefaultImageBrowserModelBuilder modelBuilder =
|
||||
new DefaultImageBrowserModelBuilder(m_sel, context);
|
||||
DefaultImageBrowserModelBuilder modelBuilder = new DefaultImageBrowserModelBuilder(m_sel, context);
|
||||
m_browser = new ImageBrowser(modelBuilder, mode);
|
||||
modelBuilder.setImageBrowser(m_browser);
|
||||
|
||||
|
||||
m_paginator = new Paginator
|
||||
(modelBuilder,
|
||||
LIST_SIZE);
|
||||
m_paginator = new Paginator(modelBuilder, LIST_SIZE);
|
||||
super.add(m_form);
|
||||
super.add(m_paginator);
|
||||
super.add(m_browser);
|
||||
|
|
@ -112,6 +106,7 @@ public class ImageChooser extends BoxPanel {
|
|||
/**
|
||||
* Add the "keyword" parameter to the page state
|
||||
*/
|
||||
@Override
|
||||
public void register(Page p) {
|
||||
p.addComponent(this);
|
||||
p.addComponentStateParam(this, m_keyword);
|
||||
|
|
@ -119,8 +114,7 @@ public class ImageChooser extends BoxPanel {
|
|||
|
||||
/**
|
||||
* Add an action listener to the browser. The inner class
|
||||
* {@link ImageBrowser.LinkActionListener} will probably be
|
||||
* used here.
|
||||
* {@link ImageBrowser.LinkActionListener} will probably be used here.
|
||||
*
|
||||
* @param l the action listener.
|
||||
*/
|
||||
|
|
@ -129,8 +123,8 @@ public class ImageChooser extends BoxPanel {
|
|||
}
|
||||
|
||||
/**
|
||||
* Add a submission listener to the form. The listener will
|
||||
* fire whenever a button on the form is clicked.
|
||||
* Add a submission listener to the form. The listener will fire whenever a
|
||||
* button on the form is clicked.
|
||||
*
|
||||
* @param l the action listener.
|
||||
*/
|
||||
|
|
@ -153,8 +147,8 @@ public class ImageChooser extends BoxPanel {
|
|||
}
|
||||
|
||||
/**
|
||||
* Set the specified keyword. All images matching the keyword
|
||||
* will be displayed in the browser.
|
||||
* Set the specified keyword. All images matching the keyword will be
|
||||
* displayed in the browser.
|
||||
*
|
||||
* @param state The page state
|
||||
* @param word The new keyword
|
||||
|
|
@ -177,7 +171,7 @@ public class ImageChooser extends BoxPanel {
|
|||
* @return the current keyword
|
||||
*/
|
||||
public String getKeyword(PageState state) {
|
||||
return (String)m_sel.getSelectedKey(state);
|
||||
return (String) m_sel.getSelectedKey(state);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -207,29 +201,28 @@ public class ImageChooser extends BoxPanel {
|
|||
* The form which specifies a keyword for the image browser.
|
||||
*/
|
||||
public static class ImageKeywordForm extends Form
|
||||
implements FormProcessListener, FormInitListener {
|
||||
implements FormProcessListener, FormInitListener {
|
||||
|
||||
private SingleSelectionModel m_sel;
|
||||
private SaveCancelSection m_saveCancel;
|
||||
|
||||
public static String WORD = "word";
|
||||
|
||||
/**
|
||||
* Construct a new ImageKeywordForm
|
||||
* @param sel The SingleSelectionModel which the form will use to
|
||||
* set the keyword
|
||||
*
|
||||
* @param sel The SingleSelectionModel which the form will use to set
|
||||
* the keyword
|
||||
*/
|
||||
public ImageKeywordForm(SingleSelectionModel sel) {
|
||||
super("ImageKeywordForm", new BoxPanel(BoxPanel.HORIZONTAL));
|
||||
m_sel = sel;
|
||||
|
||||
add(new Label(GlobalizationUtil.globalize("cms.ui.enter_a_keyword")));
|
||||
TextField t = new TextField(WORD);
|
||||
// allow null keyword field for view all
|
||||
//t.addValidationListener(new NotNullValidationListener("keyword"));
|
||||
add(t);
|
||||
final TextField keyword = new TextField(WORD);
|
||||
add(keyword);
|
||||
m_saveCancel = new SaveCancelSection();
|
||||
m_saveCancel.getSaveButton().setButtonLabel("Search");
|
||||
m_saveCancel.getSaveButton().setButtonLabel(GlobalizationUtil.globalize("cms.ui.search"));
|
||||
m_saveCancel.getCancelButton().setButtonLabel(GlobalizationUtil.globalize("cms.ui.clear"));
|
||||
add(m_saveCancel);
|
||||
|
||||
addProcessListener(this);
|
||||
|
|
@ -241,10 +234,10 @@ public class ImageChooser extends BoxPanel {
|
|||
/**
|
||||
* Set the keyword in the text widget
|
||||
*/
|
||||
public void init(FormSectionEvent e) throws FormProcessException {
|
||||
PageState s = e.getPageState();
|
||||
FormData data = e.getFormData();
|
||||
data.put(WORD, m_sel.getSelectedKey(s));
|
||||
public void init(final FormSectionEvent event) throws FormProcessException {
|
||||
final PageState state = event.getPageState();
|
||||
final FormData data = event.getFormData();
|
||||
data.put(WORD, m_sel.getSelectedKey(state));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -261,10 +254,15 @@ public class ImageChooser extends BoxPanel {
|
|||
return m_sel;
|
||||
}
|
||||
|
||||
public void process(FormSectionEvent e) {
|
||||
FormData data = e.getFormData();
|
||||
PageState state = e.getPageState();
|
||||
m_sel.setSelectedKey(state, (String)data.get(WORD));
|
||||
public void process(final FormSectionEvent event) {
|
||||
final FormData data = event.getFormData();
|
||||
final PageState state = event.getPageState();
|
||||
if (m_saveCancel.getCancelButton().isSelected(state)) {
|
||||
m_sel.clearSelection(event.getPageState());
|
||||
data.put(WORD, null);
|
||||
} else {
|
||||
m_sel.setSelectedKey(state, (String) data.get(WORD));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -81,7 +81,6 @@ public abstract class ImageComponentAbstractListener implements FormInitListener
|
|||
}
|
||||
|
||||
protected void setImageComponent(PageState ps, final String activeKey) {
|
||||
m_imageComponent.setSelectedKey(ps, activeKey);
|
||||
|
||||
if (s_log.isDebugEnabled()) {
|
||||
s_log.debug("Selected component: " + activeKey);
|
||||
|
|
|
|||
|
|
@ -17,18 +17,17 @@ import org.apache.log4j.Logger;
|
|||
*/
|
||||
public class ImageComponentSelectListener extends ImageComponentAbstractListener {
|
||||
|
||||
private static final Logger s_log = Logger.getLogger(ImageComponentSelectListener.class);
|
||||
private static final Logger S_LOG = Logger.getLogger(ImageComponentSelectListener.class);
|
||||
private final ImageSelectResultPane m_resultPane;
|
||||
|
||||
public ImageComponentSelectListener(MapComponentSelectionModel imageComponent) {
|
||||
public ImageComponentSelectListener(MapComponentSelectionModel imageComponent, ImageSelectResultPane resultPane) {
|
||||
super(imageComponent);
|
||||
m_resultPane = resultPane;
|
||||
}
|
||||
|
||||
protected void processImage(FormSectionEvent event, PageState ps, ImageComponent component, ReusableImageAsset image) {
|
||||
// SELECT {
|
||||
String name = image.getDisplayName();
|
||||
BigDecimal id = image.getID();
|
||||
BigDecimal width = image.getWidth();
|
||||
BigDecimal height = image.getHeight();
|
||||
// SELECT }
|
||||
m_resultPane.setResult(image.getDisplayName(), image.getID(), image.getWidth(), image.getHeight());
|
||||
|
||||
m_imageComponent.setSelectedKey(ps, ImageSelectPage.RESULT);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -45,26 +45,26 @@ public class ImageLibraryComponent extends SimpleContainer implements ImageCompo
|
|||
this(ImageComponent.ATTACH_IMAGE);
|
||||
}
|
||||
|
||||
public ImageLibraryComponent(int mode) {
|
||||
public ImageLibraryComponent(final int mode) {
|
||||
m_mode = mode;
|
||||
m_imageID = new BigDecimalParameter("imageID");
|
||||
m_imageModel = new ItemSelectionModel(m_imageID);
|
||||
m_chooser = new ImageChooser(ContentItem.DRAFT, m_mode);
|
||||
m_chooser.addImageActionListener(new ImageBrowser.LinkActionListener() {
|
||||
|
||||
public void deleteClicked(PageState ps, BigDecimal imageID) {
|
||||
ImagesPane.s_log.debug("Clicked delete");
|
||||
ReusableImageAsset image = new ReusableImageAsset(imageID);
|
||||
public void deleteClicked(final PageState state, final BigDecimal imageID) {
|
||||
ImagesPane.S_LOG.debug("Clicked delete");
|
||||
final ReusableImageAsset image = new ReusableImageAsset(imageID);
|
||||
image.delete();
|
||||
}
|
||||
|
||||
public void linkClicked(PageState ps, BigDecimal imageID) {
|
||||
ImagesPane.s_log.debug("Clicked select");
|
||||
public void linkClicked(final PageState state, final BigDecimal imageID) {
|
||||
ImagesPane.S_LOG.debug("Clicked select");
|
||||
try {
|
||||
ReusableImageAsset image = new ReusableImageAsset(imageID);
|
||||
m_imageModel.setSelectedObject(ps, image);
|
||||
final ReusableImageAsset image = new ReusableImageAsset(imageID);
|
||||
m_imageModel.setSelectedObject(state, image);
|
||||
} catch (DataObjectNotFoundException ex) {
|
||||
ImagesPane.s_log.error("Selected non-existant image: " + imageID, ex);
|
||||
ImagesPane.S_LOG.error("Selected non-existant image: " + imageID, ex);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
@ -112,35 +112,35 @@ public class ImageLibraryComponent extends SimpleContainer implements ImageCompo
|
|||
}
|
||||
}
|
||||
|
||||
public ReusableImageAsset getImage(FormSectionEvent event) {
|
||||
PageState ps = event.getPageState();
|
||||
return (ReusableImageAsset) m_imageModel.getSelectedItem(ps);
|
||||
public ReusableImageAsset getImage(final FormSectionEvent event) {
|
||||
final PageState state = event.getPageState();
|
||||
return (ReusableImageAsset) m_imageModel.getSelectedItem(state);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void register(Page p) {
|
||||
super.register(p);
|
||||
p.addComponentStateParam(this, m_imageID);
|
||||
public void register(final Page page) {
|
||||
super.register(page);
|
||||
page.addComponentStateParam(this, m_imageID);
|
||||
}
|
||||
|
||||
public String getCaption(FormSectionEvent event) {
|
||||
PageState ps = event.getPageState();
|
||||
return (String) m_caption.getValue(ps);
|
||||
public String getCaption(final FormSectionEvent event) {
|
||||
final PageState state = event.getPageState();
|
||||
return (String) m_caption.getValue(state);
|
||||
}
|
||||
|
||||
public String getDescription(FormSectionEvent event) {
|
||||
PageState ps = event.getPageState();
|
||||
return (String) m_description.getValue(ps);
|
||||
public String getDescription(final FormSectionEvent event) {
|
||||
final PageState state = event.getPageState();
|
||||
return (String) m_description.getValue(state);
|
||||
}
|
||||
|
||||
public String getTitle(FormSectionEvent event) {
|
||||
PageState ps = event.getPageState();
|
||||
return (String) m_title.getValue(ps);
|
||||
public String getTitle(final FormSectionEvent event) {
|
||||
final PageState state = event.getPageState();
|
||||
return (String) m_title.getValue(state);
|
||||
}
|
||||
|
||||
public String getUseContext(FormSectionEvent event) {
|
||||
PageState ps = event.getPageState();
|
||||
return (String) m_useContext.getValue(ps);
|
||||
public String getUseContext(final FormSectionEvent event) {
|
||||
final PageState state = event.getPageState();
|
||||
return (String) m_useContext.getValue(state);
|
||||
}
|
||||
|
||||
public Form getForm() {
|
||||
|
|
@ -151,20 +151,20 @@ public class ImageLibraryComponent extends SimpleContainer implements ImageCompo
|
|||
return m_saveCancel;
|
||||
}
|
||||
|
||||
public void addUploadLink(ActionListener actionListener) {
|
||||
public void addUploadLink(final ActionListener actionListener) {
|
||||
// Add action link to image upload component
|
||||
if (m_mode != ImageComponent.DISPLAY_ONLY) {
|
||||
ActionLink upload = new ActionLink("Upload new image");
|
||||
final ActionLink upload = new ActionLink("Upload new image");
|
||||
upload.addActionListener(actionListener);
|
||||
add(upload, ColumnPanel.FULL_WIDTH);
|
||||
}
|
||||
}
|
||||
|
||||
// Reset this component
|
||||
public void reset(PageState ps) {
|
||||
public void reset(final PageState state) {
|
||||
// clear selection
|
||||
m_imageModel.clearSelection(ps);
|
||||
m_chooser.clearSelection(ps);
|
||||
m_chooser.clearKeyword(ps);
|
||||
m_imageModel.clearSelection(state);
|
||||
m_chooser.clearSelection(state);
|
||||
m_chooser.clearKeyword(state);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,8 +12,6 @@ import com.arsdigita.bebop.SimpleContainer;
|
|||
import com.arsdigita.bebop.TabbedPane;
|
||||
import com.arsdigita.bebop.event.ActionEvent;
|
||||
import com.arsdigita.bebop.event.ActionListener;
|
||||
import com.arsdigita.bebop.event.RequestEvent;
|
||||
import com.arsdigita.bebop.event.RequestListener;
|
||||
import com.arsdigita.bebop.parameters.BigDecimalParameter;
|
||||
import com.arsdigita.bebop.parameters.StringParameter;
|
||||
import com.arsdigita.cms.CMSConfig;
|
||||
|
|
@ -28,11 +26,13 @@ import org.apache.log4j.Logger;
|
|||
*/
|
||||
public class ImageSelectPage extends CMSPage {
|
||||
|
||||
public static final Logger s_log = Logger.getLogger(ImagesPane.class);
|
||||
private static final Logger S_LOG = Logger.getLogger(ImagesPane.class);
|
||||
|
||||
private final static String XSL_CLASS = "CMS Admin";
|
||||
private TabbedPane m_tabbedPane;
|
||||
private ImageLibraryComponent m_imageLibrary;
|
||||
private ImageUploadComponent m_imageUpload;
|
||||
private ImageSelectResultPane m_resultPane;
|
||||
private BigDecimalParameter m_sectionId;
|
||||
private final StringParameter m_imageComponentKey;
|
||||
private final MapComponentSelectionModel m_imageComponent;
|
||||
|
|
@ -40,9 +40,10 @@ public class ImageSelectPage extends CMSPage {
|
|||
private static final CMSConfig s_conf = CMSConfig.getInstance();
|
||||
private static final boolean LIMIT_TO_CONTENT_SECTION = false;
|
||||
public static final String CONTENT_SECTION = "section_id";
|
||||
public static final String RESULT = "result";
|
||||
|
||||
public ImageSelectPage() {
|
||||
super(GlobalizationUtil.globalize("cms.ui.image_selelect.page_title").localize().toString(), new SimpleContainer());
|
||||
super(GlobalizationUtil.globalize("cms.ui.image_select.page_title").localize().toString(), new SimpleContainer());
|
||||
|
||||
setClassAttr("cms-admin");
|
||||
|
||||
|
|
@ -55,7 +56,8 @@ public class ImageSelectPage extends CMSPage {
|
|||
new ParameterSingleSelectionModel(m_imageComponentKey);
|
||||
m_imageComponent =
|
||||
new MapComponentSelectionModel(componentModel, new HashMap());
|
||||
m_selectListener = new ImageComponentSelectListener(m_imageComponent);
|
||||
|
||||
m_selectListener = new ImageComponentSelectListener(m_imageComponent, getResultPane());
|
||||
|
||||
m_tabbedPane = createTabbedPane();
|
||||
m_tabbedPane.setIdAttr("page-body");
|
||||
|
|
@ -73,9 +75,11 @@ public class ImageSelectPage extends CMSPage {
|
|||
if (m_tabbedPane.getCurrentPane(ps).equals(m_imageUpload)) {
|
||||
m_imageComponent.setSelectedKey(ps, ImageComponent.UPLOAD);
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
add(m_resultPane);
|
||||
|
||||
addGlobalStateParam(m_imageComponentKey);
|
||||
}
|
||||
|
||||
|
|
@ -100,6 +104,13 @@ public class ImageSelectPage extends CMSPage {
|
|||
return m_imageUpload;
|
||||
}
|
||||
|
||||
protected ImageSelectResultPane getResultPane() {
|
||||
if (m_resultPane == null) {
|
||||
m_resultPane = new ImageSelectResultPane();
|
||||
}
|
||||
return m_resultPane;
|
||||
}
|
||||
|
||||
protected TabbedPane createTabbedPane() {
|
||||
TabbedPane pane = new TabbedPane();
|
||||
pane.setClassAttr(XSL_CLASS);
|
||||
|
|
@ -119,7 +130,7 @@ public class ImageSelectPage extends CMSPage {
|
|||
* @param tabName The name of the tab if it's added
|
||||
* @param comp The component to add to the pane
|
||||
*/
|
||||
protected void addToPane(TabbedPane pane, String tabName, Component comp) {
|
||||
protected void addToPane(final TabbedPane pane, final String tabName, final Component comp) {
|
||||
if (comp != null) {
|
||||
pane.addTab(GlobalizationUtil.globalize("cms.ui.image_" + tabName).localize().toString(), comp);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,86 @@
|
|||
/*
|
||||
* To change this template, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package com.arsdigita.cms.ui;
|
||||
|
||||
import com.arsdigita.bebop.PageState;
|
||||
import com.arsdigita.bebop.Resettable;
|
||||
import com.arsdigita.bebop.SimpleContainer;
|
||||
import com.arsdigita.xml.Element;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Sören Bernstein (quasimodo) <sbernstein@zes.uni-bremen.de>
|
||||
*/
|
||||
public class ImageSelectResultPane extends SimpleContainer implements Resettable {
|
||||
|
||||
public static final int UNSET = 0;
|
||||
public static final int CANCEL = 1;
|
||||
public static final int SELECT = 2;
|
||||
int m_state = UNSET;
|
||||
String m_name;
|
||||
BigDecimal m_id;
|
||||
BigDecimal m_width;
|
||||
BigDecimal m_height;
|
||||
|
||||
public ImageSelectResultPane() {
|
||||
super();
|
||||
}
|
||||
|
||||
public void setResult(final String name, final BigDecimal id, final BigDecimal width, final BigDecimal height) {
|
||||
m_name = name;
|
||||
m_id = id;
|
||||
m_width = width;
|
||||
m_height = height;
|
||||
m_state = SELECT;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void generateXML(PageState state, Element parent) {
|
||||
|
||||
if (m_state != UNSET) {
|
||||
|
||||
Element scriptElem = parent.newChildElement("script");
|
||||
scriptElem.addAttribute("type", "text/javascript");
|
||||
scriptElem.addAttribute("eventHandler", "onload");
|
||||
|
||||
StringBuilder script = new StringBuilder(1000);
|
||||
|
||||
script.append("alert(\"SCRIPT\");");
|
||||
|
||||
if (m_state == SELECT) {
|
||||
// script.append("window.opener.document.OpenCCM.imageSet(");
|
||||
script.append("window.openCCM.imageSet(");
|
||||
script.append("{");
|
||||
script.append(" src : \"/theme/mandalay/ccm/cms-service/stream/image/?image_id=");
|
||||
script.append(m_id);
|
||||
script.append("\", ");
|
||||
script.append(" name : \"");
|
||||
script.append(m_name);
|
||||
script.append("\", ");
|
||||
script.append(" width : \"");
|
||||
script.append(m_width);
|
||||
script.append("\", ");
|
||||
script.append(" height : \"");
|
||||
script.append(m_height);
|
||||
script.append("\"");
|
||||
script.append(" });");
|
||||
}
|
||||
|
||||
script.append("self.close();");
|
||||
script.append("return false;");
|
||||
scriptElem.setText(script.toString());
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public void reset(PageState state) {
|
||||
m_name = null;
|
||||
m_id = null;
|
||||
m_width = null;
|
||||
m_height = null;
|
||||
m_state = UNSET;
|
||||
}
|
||||
}
|
||||
|
|
@ -8,7 +8,6 @@ import com.arsdigita.bebop.ColumnPanel;
|
|||
import com.arsdigita.bebop.Form;
|
||||
import com.arsdigita.bebop.FormProcessException;
|
||||
import com.arsdigita.bebop.Label;
|
||||
import com.arsdigita.bebop.MapComponentSelectionModel;
|
||||
import com.arsdigita.bebop.PageState;
|
||||
import com.arsdigita.bebop.SaveCancelSection;
|
||||
import com.arsdigita.bebop.event.FormSectionEvent;
|
||||
|
|
@ -114,7 +113,7 @@ public class ImageUploadComponent extends Form implements ImageComponent {
|
|||
// image.setDescription((String) m_caption.getValue(ps));
|
||||
return image;
|
||||
} catch (IOException ex) {
|
||||
ImagesPane.s_log.error("Error loading image from file", ex);
|
||||
ImagesPane.S_LOG.error("Error loading image from file", ex);
|
||||
throw new FormProcessException(ex.getMessage());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,16 +6,28 @@ package com.arsdigita.cms.ui;
|
|||
|
||||
import com.arsdigita.bebop.Component;
|
||||
import com.arsdigita.bebop.Label;
|
||||
import com.arsdigita.bebop.List;
|
||||
import com.arsdigita.bebop.ListPanel;
|
||||
import com.arsdigita.bebop.MapComponentSelectionModel;
|
||||
import com.arsdigita.bebop.Page;
|
||||
import com.arsdigita.bebop.PageState;
|
||||
import com.arsdigita.bebop.ParameterSingleSelectionModel;
|
||||
import com.arsdigita.bebop.Resettable;
|
||||
import com.arsdigita.bebop.SegmentedPanel;
|
||||
import com.arsdigita.bebop.SimpleComponent;
|
||||
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.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.LockableImpl;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
|
|
@ -28,80 +40,191 @@ import org.apache.log4j.Logger;
|
|||
*/
|
||||
public class ImagesPane extends LayoutPanel implements Resettable {
|
||||
|
||||
public static final Logger s_log = Logger.getLogger(ImagesPane.class);
|
||||
public static final Logger S_LOG = Logger.getLogger(ImagesPane.class);
|
||||
private final StringParameter m_imageComponentKey;
|
||||
private final MapComponentSelectionModel m_imageComponent;
|
||||
private final ImageComponentAdminListener m_adminListener;
|
||||
private ListPanel m_listPanel;
|
||||
final private SegmentedPanel m_body;
|
||||
private HashMap<String, Segment> m_bodySegments = new HashMap();
|
||||
private final SingleSelectionModel m_model;
|
||||
private final List m_links;
|
||||
|
||||
public ImagesPane() {
|
||||
// Left column is empty, this is only to provide the same layout for all
|
||||
// tabs in ContentSectionPage
|
||||
setLeft(new SimpleComponent());
|
||||
super();
|
||||
|
||||
SegmentedPanel body = new SegmentedPanel();
|
||||
setBody(body);
|
||||
m_model = new ParameterSingleSelectionModel(new StringParameter(List.SELECTED));
|
||||
|
||||
m_model.addChangeListener(new ImageAdminSelectionListener());
|
||||
|
||||
m_links = new List(new ImageAdminListModelBuilder());
|
||||
m_links.setSelectionModel(m_model);
|
||||
|
||||
final SimpleContainer left = new SimpleContainer();
|
||||
setLeft(left);
|
||||
|
||||
final LinksSection staff = new LinksSection();
|
||||
left.add(staff);
|
||||
|
||||
m_body = new SegmentedPanel();
|
||||
setBody(m_body);
|
||||
|
||||
m_imageComponentKey = new StringParameter("imageComponent");
|
||||
|
||||
ParameterSingleSelectionModel componentModel = new ParameterSingleSelectionModel(m_imageComponentKey);
|
||||
final ParameterSingleSelectionModel componentModel = new ParameterSingleSelectionModel(m_imageComponentKey);
|
||||
m_imageComponent = new MapComponentSelectionModel(componentModel, new HashMap());
|
||||
|
||||
Map selectors = m_imageComponent.getComponentsMap();
|
||||
final Map selectors = m_imageComponent.getComponentsMap();
|
||||
m_adminListener = new ImageComponentAdminListener(m_imageComponent, this);
|
||||
|
||||
ImageUploadComponent upload = new ImageUploadComponent(ImageComponent.ADMIN_IMAGES);
|
||||
upload.getForm().addInitListener(m_adminListener);
|
||||
upload.getForm().addSubmissionListener(m_adminListener);
|
||||
upload.getForm().addProcessListener(m_adminListener);
|
||||
selectors.put(ImageComponent.UPLOAD, upload);
|
||||
body.addSegment(
|
||||
new Label(GlobalizationUtil.globalize("cms.ui.image_upload")),
|
||||
upload);
|
||||
|
||||
ImageLibraryComponent library = new ImageLibraryComponent(ImageComponent.ADMIN_IMAGES);
|
||||
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);
|
||||
body.addSegment(
|
||||
m_bodySegments.put(ImageComponent.LIBRARY, m_body.addSegment(
|
||||
new Label(GlobalizationUtil.globalize("cms.ui.image_library")),
|
||||
library);
|
||||
library));
|
||||
|
||||
final ImageUploadComponent upload = new ImageUploadComponent(ImageComponent.ADMIN_IMAGES);
|
||||
upload.getForm().addInitListener(m_adminListener);
|
||||
upload.getForm().addSubmissionListener(m_adminListener);
|
||||
upload.getForm().addProcessListener(m_adminListener);
|
||||
selectors.put(ImageComponent.UPLOAD, upload);
|
||||
m_bodySegments.put(ImageComponent.UPLOAD, m_body.addSegment(
|
||||
new Label(GlobalizationUtil.globalize("cms.ui.image_upload")),
|
||||
upload));
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void register(Page page) {
|
||||
public final void register(final Page page) {
|
||||
super.register(page);
|
||||
Map componentsMap = m_imageComponent.getComponentsMap();
|
||||
|
||||
Iterator i = componentsMap.keySet().iterator();
|
||||
while (i.hasNext()) {
|
||||
Object key = i.next();
|
||||
Component component = (Component) componentsMap.get(key);
|
||||
Iterator<String> keys = m_bodySegments.keySet().iterator();
|
||||
|
||||
page.setVisibleDefault(component, ImageComponent.LIBRARY.equals(key));
|
||||
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));
|
||||
// }
|
||||
}
|
||||
|
||||
// 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);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void reset(PageState ps) {
|
||||
super.reset(ps);
|
||||
public final void reset(final PageState state) {
|
||||
super.reset(state);
|
||||
|
||||
Map componentsMap = m_imageComponent.getComponentsMap();
|
||||
m_imageComponent.setSelectedKey(ps, ImageComponent.LIBRARY);
|
||||
Iterator i = componentsMap.keySet().iterator();
|
||||
while (i.hasNext()) {
|
||||
Object key = i.next();
|
||||
Component component = (Component) componentsMap.get(key);
|
||||
Iterator<String> keys = m_bodySegments.keySet().iterator();
|
||||
|
||||
ps.setVisible(component, ImageComponent.LIBRARY.equals(key));
|
||||
while (keys.hasNext()) {
|
||||
String key = keys.next();
|
||||
state.setVisible(m_bodySegments.get(key), ImageComponent.LIBRARY.equals(key));
|
||||
|
||||
// Reset all components if they are of type Resettable
|
||||
if (component instanceof Resettable) {
|
||||
((Resettable) component).reset(ps);
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 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 class ImageAdminListModel implements ListModel {
|
||||
|
||||
private ArrayList<String> m_keys;
|
||||
private int m_index = -1;
|
||||
|
||||
public ImageAdminListModel(ArrayList keys) {
|
||||
m_keys = keys;
|
||||
}
|
||||
|
||||
public boolean next() {
|
||||
return (m_index++ < m_keys.size() - 1);
|
||||
}
|
||||
|
||||
public Object getElement() {
|
||||
return GlobalizationUtil.globalize("cms.ui.image_" + m_keys.get(m_index)).localize();
|
||||
}
|
||||
|
||||
public String getKey() {
|
||||
return m_keys.get(m_index);
|
||||
}
|
||||
}
|
||||
|
||||
private class ImageAdminListModelBuilder extends LockableImpl implements ListModelBuilder {
|
||||
|
||||
public ListModel makeModel(final List list, final PageState state) {
|
||||
ArrayList<String> keys = new ArrayList(2);
|
||||
keys.add(ImageComponent.LIBRARY);
|
||||
keys.add(ImageComponent.UPLOAD);
|
||||
return new ImageAdminListModel(keys);
|
||||
}
|
||||
}
|
||||
|
||||
private class ImageAdminSelectionListener implements ChangeListener {
|
||||
|
||||
public final void stateChanged(final ChangeEvent e) {
|
||||
S_LOG.debug("Selection state changed; I may change "
|
||||
+ "the body's visible pane");
|
||||
|
||||
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());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private class LinksSection extends Section {
|
||||
|
||||
LinksSection() {
|
||||
setHeading(GlobalizationUtil.globalize("cms.ui.images_links"));
|
||||
|
||||
final ActionGroup group = new ActionGroup();
|
||||
setBody(group);
|
||||
|
||||
group.setSubject(m_links);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -286,12 +286,15 @@ OpenCCM.prototype.imageRemove = function() {
|
|||
|
||||
OpenCCM.prototype.imageBrowse = function(window)
|
||||
{
|
||||
this.imageSet({
|
||||
src : "/theme/mandalay/ccm/cms-service/stream/image/?image_id=9001",
|
||||
width : "304",
|
||||
height : "420",
|
||||
name : "Schild.jpg"
|
||||
});
|
||||
var baseURL = window.location.href;
|
||||
var offset = baseURL.lastIndexOf("/");
|
||||
var destURL = baseURL.slice(0, offset+1) + "image_select.jsp";
|
||||
|
||||
// var searchDialog = new Xinha.Dialog(this.editor, destURL, '');//,{width:800, height:600}, {'closable':true});
|
||||
// searchDialog.show();
|
||||
var selectWindow = window.open(destURL, "_blank", "scrollbars=yes,directories=no,toolbar=no,width=800,height=600,status=no,menubar=no");
|
||||
selectWindow.openCCM = this;
|
||||
// return false;
|
||||
};
|
||||
|
||||
OpenCCM.prototype.imageSet = function(imageData)
|
||||
|
|
|
|||
|
|
@ -204,13 +204,13 @@ OpenCCM.prototype.linkRemove = function()
|
|||
|
||||
OpenCCM.prototype.linkBrowse = function(window)
|
||||
{
|
||||
baseURL = window.location.href;//.pathname;
|
||||
offset = baseURL.lastIndexOf("/");
|
||||
destURL = baseURL.slice(0, offset+1) + "search.jsp?useURL=true&widget=getElementById('" + this.dialogs["links"].id["ci_href"] + "')";
|
||||
var baseURL = window.location.href;
|
||||
var offset = baseURL.lastIndexOf("/");
|
||||
var destURL = baseURL.slice(0, offset+1) + "search.jsp?useURL=true&widget=getElementById('" + this.dialogs["links"].id["ci_href"] + "')";
|
||||
|
||||
// var searchDialog = new Xinha.Dialog(this.editor, destURL, '');//,{width:800, height:600}, {'closable':true});
|
||||
// searchDialog.show();
|
||||
window.open(destURL, "_blank", "directories=no,toolbar=no,width=600,height=400,status=no,menubar=no");
|
||||
window.open(destURL, "_blank", "scrollbars=yes,directories=no,toolbar=no,width=800,height=600,status=no,menubar=no");
|
||||
|
||||
return false;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue