Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.createrepo/META-INF/MANIFEST.MF4
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.createrepo/src/org/eclipse/linuxtools/internal/rpm/createrepo/Messages.java24
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.createrepo/src/org/eclipse/linuxtools/internal/rpm/createrepo/form/ImportRPMsPage.java23
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.createrepo/src/org/eclipse/linuxtools/internal/rpm/createrepo/form/MainOverviewPage.java68
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.createrepo/src/org/eclipse/linuxtools/internal/rpm/createrepo/form/MetadataPage.java260
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.createrepo/src/org/eclipse/linuxtools/internal/rpm/createrepo/form/RepoFormEditor.java2
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.createrepo/src/org/eclipse/linuxtools/internal/rpm/createrepo/messages.properties21
7 files changed, 296 insertions, 106 deletions
diff --git a/rpm/org.eclipse.linuxtools.rpm.createrepo/META-INF/MANIFEST.MF b/rpm/org.eclipse.linuxtools.rpm.createrepo/META-INF/MANIFEST.MF
index f38a9a4a2c..0d289581ef 100644
--- a/rpm/org.eclipse.linuxtools.rpm.createrepo/META-INF/MANIFEST.MF
+++ b/rpm/org.eclipse.linuxtools.rpm.createrepo/META-INF/MANIFEST.MF
@@ -8,10 +8,10 @@ Bundle-Activator: org.eclipse.linuxtools.internal.rpm.createrepo.Activator
Bundle-Vendor: %Bundle-Vendor
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime,
- org.eclipse.core.resources;bundle-version="3.8.101",
org.eclipse.ui.ide;bundle-version="3.9.1",
org.eclipse.ui.editors;bundle-version="3.8.100",
org.eclipse.ui.forms;bundle-version="3.6.1",
- org.eclipse.ui.console;bundle-version="3.5.200"
+ org.eclipse.ui.console;bundle-version="3.5.200",
+ org.eclipse.core.resources
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Bundle-ActivationPolicy: lazy
diff --git a/rpm/org.eclipse.linuxtools.rpm.createrepo/src/org/eclipse/linuxtools/internal/rpm/createrepo/Messages.java b/rpm/org.eclipse.linuxtools.rpm.createrepo/src/org/eclipse/linuxtools/internal/rpm/createrepo/Messages.java
index 7ea69f7839..e3357068ca 100644
--- a/rpm/org.eclipse.linuxtools.rpm.createrepo/src/org/eclipse/linuxtools/internal/rpm/createrepo/Messages.java
+++ b/rpm/org.eclipse.linuxtools.rpm.createrepo/src/org/eclipse/linuxtools/internal/rpm/createrepo/Messages.java
@@ -75,17 +75,31 @@ public final class Messages {
/****/
public static String ImportRPMsPage_buttonRemoveRPMs;
/****/
- public static String ImportRPMsPage_buttonDeleteRPMs;
- /****/
public static String ImportRPMsPage_buttonCreateRepo;
/****/
public static String ImportRPMsPage_errorRefreshingTree;
- // MainOverviewPage
+ // MetadataPage
+ /****/
+ public static String MetadataPage_title;
+ /****/
+ public static String MetadataPage_formHeaderText;
+ /****/
+ public static String MetadataPage_sectionTitleRevision;
+ /****/
+ public static String MetadataPage_sectionInstructionRevision;
+ /****/
+ public static String MetadataPage_labelRevision;
+ /****/
+ public static String MetadataPage_sectionTitleTags;
+ /****/
+ public static String MetadataPage_sectionInstructionTags;
+ /****/
+ public static String MetadataPage_buttonAddTag;
/****/
- public static String MainOverviewPage_title;
+ public static String MetadataPage_buttonEditTag;
/****/
- public static String MainOverviewPage_formHeaderText;
+ public static String MetadataPage_buttonRemoveTag;
static {
// initialize resource bundle
diff --git a/rpm/org.eclipse.linuxtools.rpm.createrepo/src/org/eclipse/linuxtools/internal/rpm/createrepo/form/ImportRPMsPage.java b/rpm/org.eclipse.linuxtools.rpm.createrepo/src/org/eclipse/linuxtools/internal/rpm/createrepo/form/ImportRPMsPage.java
index 201eb4fd44..1a954adb67 100644
--- a/rpm/org.eclipse.linuxtools.rpm.createrepo/src/org/eclipse/linuxtools/internal/rpm/createrepo/form/ImportRPMsPage.java
+++ b/rpm/org.eclipse.linuxtools.rpm.createrepo/src/org/eclipse/linuxtools/internal/rpm/createrepo/form/ImportRPMsPage.java
@@ -119,10 +119,6 @@ public class ImportRPMsPage extends FormPage {
toolkit).addSelectionListener(new RemoveButtonListener());
createSpace(buttonList);
- createPushButton(buttonList, Messages.ImportRPMsPage_buttonDeleteRPMs,
- toolkit).addSelectionListener(new DeleteButtonListener());
- createSpace(buttonList);
-
createPushButton(buttonList, Messages.ImportRPMsPage_buttonCreateRepo,
toolkit).addSelectionListener(new CreaterepoButtonListener());
@@ -257,25 +253,6 @@ public class ImportRPMsPage extends FormPage {
}
/**
- * Handle the delete button execution on the Import RPMs page.
- */
- public class DeleteButtonListener extends SelectionAdapter {
- /*
- * (non-Javadoc)
- * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
- */
- @Override
- public void widgetSelected(SelectionEvent e) { }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.swt.events.SelectionAdapter#widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent)
- */
- @Override
- public void widgetDefaultSelected(SelectionEvent e) { }
- }
-
- /**
* Handle the createrepo button execution on the Import RPMs page.
*/
public class CreaterepoButtonListener extends SelectionAdapter {
diff --git a/rpm/org.eclipse.linuxtools.rpm.createrepo/src/org/eclipse/linuxtools/internal/rpm/createrepo/form/MainOverviewPage.java b/rpm/org.eclipse.linuxtools.rpm.createrepo/src/org/eclipse/linuxtools/internal/rpm/createrepo/form/MainOverviewPage.java
deleted file mode 100644
index 142234cb87..0000000000
--- a/rpm/org.eclipse.linuxtools.rpm.createrepo/src/org/eclipse/linuxtools/internal/rpm/createrepo/form/MainOverviewPage.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2013 Red Hat Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Neil Guzman - initial API and implementation
- *******************************************************************************/
-package org.eclipse.linuxtools.internal.rpm.createrepo.form;
-
-import org.eclipse.jface.action.ToolBarManager;
-import org.eclipse.linuxtools.internal.rpm.createrepo.Activator;
-import org.eclipse.linuxtools.internal.rpm.createrepo.Messages;
-import org.eclipse.ui.forms.IManagedForm;
-import org.eclipse.ui.forms.editor.FormEditor;
-import org.eclipse.ui.forms.editor.FormPage;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.ScrolledForm;
-import org.eclipse.ui.menus.IMenuService;
-
-/**
- * This page will allow the user to view/edit some of the repo
- * xml metadata (i.e., repo, revision, etc.).
- *
- * For now this page would allow customization of the createrepo
- * command, but it would be better to have it done through
- * preferences.
- */
-public class MainOverviewPage extends FormPage {
-
- private FormToolkit toolkit;
- private ScrolledForm form;
-
- private static final String MENU_URI = "toolbar:formsToolbar"; //$NON-NLS-1$
- private static final String HEADER_ICON = "/icons/repository_rep.gif"; //$NON-NLS-1$
-
- /** Default constructor. */
- public MainOverviewPage(FormEditor editor) {
- super(editor, Messages.MainOverviewPage_title, Messages.MainOverviewPage_title);
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.ui.forms.editor.FormPage#createFormContent(org.eclipse.ui.forms.IManagedForm)
- */
- @Override
- protected void createFormContent(IManagedForm managedForm) {
- // setting up the form page
- super.createFormContent(managedForm);
- toolkit = managedForm.getToolkit();
- form = managedForm.getForm();
- form.setText(Messages.MainOverviewPage_formHeaderText);
- toolkit = managedForm.getToolkit();
- form = managedForm.getForm();
- form.setText(Messages.MainOverviewPage_formHeaderText);
- form.setImage(Activator.getImageDescriptor(HEADER_ICON).createImage());
- ToolBarManager toolbarManager = (ToolBarManager) form.getToolBarManager();
- toolkit.decorateFormHeading(form.getForm());
-
- // add the menuContribution from MANIFEST.MF to the form
- IMenuService menuService = (IMenuService) getSite().getService(IMenuService.class);
- menuService.populateContributionManager(toolbarManager, MENU_URI);
- toolbarManager.update(true);
- }
-
-}
diff --git a/rpm/org.eclipse.linuxtools.rpm.createrepo/src/org/eclipse/linuxtools/internal/rpm/createrepo/form/MetadataPage.java b/rpm/org.eclipse.linuxtools.rpm.createrepo/src/org/eclipse/linuxtools/internal/rpm/createrepo/form/MetadataPage.java
new file mode 100644
index 0000000000..8f23ab2ed8
--- /dev/null
+++ b/rpm/org.eclipse.linuxtools.rpm.createrepo/src/org/eclipse/linuxtools/internal/rpm/createrepo/form/MetadataPage.java
@@ -0,0 +1,260 @@
+/*******************************************************************************
+ * Copyright (c) 2013 Red Hat Inc. and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Neil Guzman - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.linuxtools.internal.rpm.createrepo.form;
+
+import org.eclipse.jface.action.ToolBarManager;
+import org.eclipse.linuxtools.internal.rpm.createrepo.Activator;
+import org.eclipse.linuxtools.internal.rpm.createrepo.Messages;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.ui.forms.IManagedForm;
+import org.eclipse.ui.forms.editor.FormEditor;
+import org.eclipse.ui.forms.editor.FormPage;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.ScrolledForm;
+import org.eclipse.ui.forms.widgets.Section;
+import org.eclipse.ui.menus.IMenuService;
+
+/**
+ * This page will allow the user to view/edit some of the repo
+ * xml metadata (i.e., repo, revision, etc.).
+ */
+public class MetadataPage extends FormPage {
+
+ private FormToolkit toolkit;
+ private ScrolledForm form;
+
+ private Text revisionTxt;
+ private Tree tagsTree;
+ private Composite buttonList;
+
+ private static final String MENU_URI = "toolbar:formsToolbar"; //$NON-NLS-1$
+ private static final String HEADER_ICON = "/icons/repository_rep.gif"; //$NON-NLS-1$
+
+ /** Default constructor. */
+ public MetadataPage(FormEditor editor) {
+ super(editor, Messages.MetadataPage_title, Messages.MetadataPage_title);
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.forms.editor.FormPage#createFormContent(org.eclipse.ui.forms.IManagedForm)
+ */
+ @Override
+ protected void createFormContent(IManagedForm managedForm) {
+ // setting up the form page
+ super.createFormContent(managedForm);
+ GridLayout layout = new GridLayout();
+ GridData data = new GridData();
+ toolkit = managedForm.getToolkit();
+ form = managedForm.getForm();
+ form.setText(Messages.MetadataPage_formHeaderText);
+ form.setImage(Activator.getImageDescriptor(HEADER_ICON).createImage());
+ ToolBarManager toolbarManager = (ToolBarManager) form.getToolBarManager();
+ toolkit.decorateFormHeading(form.getForm());
+
+ // add the menuContribution from MANIFEST.MF to the form
+ IMenuService menuService = (IMenuService) getSite().getService(IMenuService.class);
+ menuService.populateContributionManager(toolbarManager, MENU_URI);
+ toolbarManager.update(true);
+
+ layout = new GridLayout();
+ layout.marginWidth = 6; layout.marginHeight = 12;
+ form.getBody().setLayout(layout);
+
+ //--------------------------------- REVISION SECTION START ----------
+ // Section and its client area to manage updating revision info
+ Section revSection = toolkit.createSection(form.getBody(), Section.DESCRIPTION
+ | Section.TITLE_BAR);
+ layout = new GridLayout();
+ data = new GridData();
+ data.verticalAlignment = GridData.FILL;
+ data.horizontalAlignment = GridData.FILL;
+ data.grabExcessHorizontalSpace = true;
+ revSection.setText(Messages.MetadataPage_sectionTitleRevision);
+ revSection.setDescription(Messages.MetadataPage_sectionInstructionRevision);
+ revSection.setLayoutData(data);
+
+ // the client area containing the editing fields
+ Composite sectionClient = toolkit.createComposite(revSection);
+ layout = new GridLayout(2, false);
+ layout.marginWidth = 1; layout.marginHeight = 7;
+ sectionClient.setLayout(layout);
+
+ revisionTxt = createTextFieldWithLabel(sectionClient, Messages.MetadataPage_labelRevision);
+ revSection.setClient(sectionClient);
+ //---------- REVISION SECTION END
+
+ //--------------------------------- TAGS SECTION START ----------
+ // Section and its client area to manage tags
+ Section tagSection = toolkit.createSection(form.getBody(), Section.DESCRIPTION
+ | Section.TITLE_BAR);
+ layout = new GridLayout();
+ tagSection.setText(Messages.MetadataPage_sectionTitleTags);
+ tagSection.setDescription(Messages.MetadataPage_sectionInstructionTags);
+ tagSection.setLayoutData(expandComposite());
+
+ // the client area containing the tags
+ Composite sectionClientTags = toolkit.createComposite(tagSection);
+ layout = new GridLayout(2, false);
+ layout.marginWidth = 1; layout.marginHeight = 7;
+ sectionClientTags.setLayout(layout);
+
+ // TODO: create custom tree to handle tags in specific categories (distro, content, repo)
+ tagsTree = toolkit.createTree(sectionClientTags, SWT.BORDER | SWT.MULTI | SWT.HORIZONTAL
+ | SWT.VERTICAL | SWT.LEFT_TO_RIGHT | SWT.SMOOTH);
+ tagsTree.setLayoutData(expandComposite());
+
+ // everything to do with the buttons
+ buttonList = toolkit.createComposite(sectionClientTags);
+ layout = new GridLayout();
+ data = new GridData(SWT.BEGINNING, SWT.FILL, false, true);
+ layout.marginWidth = 0; layout.marginHeight = 0;
+ buttonList.setLayout(layout);
+ buttonList.setLayoutData(data);
+ createPushButton(buttonList, Messages.MetadataPage_buttonAddTag,
+ toolkit).addSelectionListener(new AddTagButtonListener());
+ createPushButton(buttonList, Messages.MetadataPage_buttonEditTag,
+ toolkit).addSelectionListener(new EditTagButtonListener());
+ createPushButton(buttonList, Messages.MetadataPage_buttonRemoveTag,
+ toolkit).addSelectionListener(new RemoveTagButtonListener());
+ tagSection.setClient(sectionClientTags);
+ //---------- TAGS SECTION END
+
+ managedForm.refresh();
+ }
+
+ /**
+ * Make a GridData that expands to fill both horizontally
+ * and vertically.
+ *
+ * @return The created GridData.
+ */
+ private GridData expandComposite() {
+ GridData data = new GridData();
+ data.verticalAlignment = GridData.FILL;
+ data.horizontalAlignment = GridData.FILL;
+ data.grabExcessHorizontalSpace = true;
+ data.grabExcessVerticalSpace = true;
+ return data;
+ }
+ /**
+ * Create a push style button.
+ *
+ * @param parent The parent the button will belong to.
+ * @param buttonText The text show on the button.
+ * @param toolkit The form toolkit used in creating a button.
+ * @return The button created.
+ */
+ private Button createPushButton(Composite parent, String buttonText, FormToolkit toolkit) {
+ Button button = toolkit.createButton(parent, buttonText, SWT.PUSH | SWT.FLAT
+ | SWT.CENTER | SWT.LEFT_TO_RIGHT);
+ button.setFont(parent.getFont());
+ GridData gd = new GridData(SWT.FILL, SWT.BEGINNING, true, false);
+ button.setLayoutData(gd);
+ return button;
+ }
+
+ /**
+ * Create a text field with a label.
+ *
+ * @param parent The parent of the text field and label.
+ * @param labelName The name on the label.
+ * @return The newly created text field.
+ */
+ protected Text createTextFieldWithLabel(Composite parent, String labelName) {
+ GridData layoutData = new GridData();
+ // create the label
+ Label respositoryBaseURLLbl = new Label(parent, SWT.NONE);
+ respositoryBaseURLLbl.setText(labelName);
+ layoutData = new GridData();
+ layoutData.horizontalAlignment = GridData.BEGINNING;
+ layoutData.verticalAlignment = GridData.CENTER;
+ // create the text field
+ Text textField = new Text(parent, SWT.SINGLE);
+ layoutData = new GridData();
+ layoutData.horizontalIndent = 50;
+ layoutData.grabExcessHorizontalSpace = true;
+ layoutData.horizontalAlignment = GridData.FILL;
+ layoutData.verticalAlignment = GridData.CENTER;
+ // achieve flat look (don't put SWT.BORDER)
+ textField.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER);
+ toolkit.paintBordersFor(parent);
+ textField.setLayoutData(layoutData);
+ return textField;
+ }
+
+ /**
+ * Handle the add button execution on the Metadata page.
+ */
+ public class AddTagButtonListener extends SelectionAdapter {
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
+ */
+ @Override
+ public void widgetSelected(SelectionEvent e) { }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.swt.events.SelectionAdapter#widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent)
+ */
+ @Override
+ public void widgetDefaultSelected(SelectionEvent e) { }
+ }
+
+ /**
+ * Handle the edit button execution on the Metadata page.
+ */
+ public class EditTagButtonListener extends SelectionAdapter {
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
+ */
+ @Override
+ public void widgetSelected(SelectionEvent e) { }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.swt.events.SelectionAdapter#widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent)
+ */
+ @Override
+ public void widgetDefaultSelected(SelectionEvent e) { }
+ }
+
+ /**
+ * Handle the remove button execution on the Metadata page.
+ */
+ public class RemoveTagButtonListener extends SelectionAdapter {
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
+ */
+ @Override
+ public void widgetSelected(SelectionEvent e) { }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.swt.events.SelectionAdapter#widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent)
+ */
+ @Override
+ public void widgetDefaultSelected(SelectionEvent e) { }
+ }
+
+}
diff --git a/rpm/org.eclipse.linuxtools.rpm.createrepo/src/org/eclipse/linuxtools/internal/rpm/createrepo/form/RepoFormEditor.java b/rpm/org.eclipse.linuxtools.rpm.createrepo/src/org/eclipse/linuxtools/internal/rpm/createrepo/form/RepoFormEditor.java
index 34b7648fb0..2410fbfdb3 100644
--- a/rpm/org.eclipse.linuxtools.rpm.createrepo/src/org/eclipse/linuxtools/internal/rpm/createrepo/form/RepoFormEditor.java
+++ b/rpm/org.eclipse.linuxtools.rpm.createrepo/src/org/eclipse/linuxtools/internal/rpm/createrepo/form/RepoFormEditor.java
@@ -109,7 +109,7 @@ public class RepoFormEditor extends FormEditor {
*/
void createPage1() {
try {
- FormPage composite = new MainOverviewPage(this);
+ FormPage composite = new MetadataPage(this);
addPage(composite);
} catch (PartInitException e) {
Activator.logError(Messages.RepoFormEditor_errorInitializingForm, e);
diff --git a/rpm/org.eclipse.linuxtools.rpm.createrepo/src/org/eclipse/linuxtools/internal/rpm/createrepo/messages.properties b/rpm/org.eclipse.linuxtools.rpm.createrepo/src/org/eclipse/linuxtools/internal/rpm/createrepo/messages.properties
index 7dcdcd36c6..721aa4fc90 100644
--- a/rpm/org.eclipse.linuxtools.rpm.createrepo/src/org/eclipse/linuxtools/internal/rpm/createrepo/messages.properties
+++ b/rpm/org.eclipse.linuxtools.rpm.createrepo/src/org/eclipse/linuxtools/internal/rpm/createrepo/messages.properties
@@ -45,13 +45,20 @@ ImportRPMsPage_sectionInstruction= \
1. Add the RPMs to create a YUM repository the file system. \n\
\ (via dragging from workspace or importing from the file system) \n\
2. Create the repository.
-ImportRPMsPage_buttonImportRPMs=Import RPMs
-ImportRPMsPage_buttonRemoveRPMs=Remove RPMs
-ImportRPMsPage_buttonDeleteRPMs=Delete RPMs
-ImportRPMsPage_buttonCreateRepo=Create Repo
+ImportRPMsPage_buttonImportRPMs=&Import RPMs
+ImportRPMsPage_buttonRemoveRPMs=&Remove RPMs
+ImportRPMsPage_buttonCreateRepo=&Create Repo
ImportRPMsPage_errorRefreshingTree=Error while refreshing the RPM tree. Problem due to trying to get the \
RPMs in the content folder.
-# MainOverviewPage
-MainOverviewPage_title=Metadata
-MainOverviewPage_formHeaderText=Execution and Metadata
+# MetadataPage
+MetadataPage_title=Metadata
+MetadataPage_formHeaderText=Repository Tags and Revision
+MetadataPage_sectionTitleRevision=Revision
+MetadataPage_sectionInstructionRevision=Update the repository revision number. Changes take effect after execution.
+MetadataPage_labelRevision=&Revision:
+MetadataPage_sectionTitleTags=Tags
+MetadataPage_sectionInstructionTags=Add or remove as many tags per category as needed. Changes take effect after execution.
+MetadataPage_buttonAddTag=&Add
+MetadataPage_buttonEditTag=&Edit
+MetadataPage_buttonRemoveTag=&Remove

Back to the top