+
@@ -207,6 +208,7 @@
+
diff --git a/src/main/java/org/github/etcd/viewer/html/node/EtcdNodePanel.java b/src/main/java/org/github/etcd/viewer/html/node/EtcdNodePanel.java
index f947bc9..fc31a08 100644
--- a/src/main/java/org/github/etcd/viewer/html/node/EtcdNodePanel.java
+++ b/src/main/java/org/github/etcd/viewer/html/node/EtcdNodePanel.java
@@ -74,6 +74,8 @@ public int compare(EtcdNode o1, EtcdNode o2) {
private EditNodeModalPanel editNodeModal;
private DeleteNodeModalPanel deleteNodeModal;
+ private AddFileModalPanel addFileModalPanel;
+
private WebMarkupContainer breadcrumbAndActions;
private WebMarkupContainer contents;
@@ -195,6 +197,9 @@ protected void onNodeKeyUpdated(AjaxRequestTarget target) {
protected void onNodedSaved(AjaxRequestTarget target) {
}
+ protected void onFileSaved(AjaxRequestTarget target) {
+ }
+
protected void onNodedDeleted(AjaxRequestTarget target) {
}
@@ -233,6 +238,29 @@ protected void onNodeDeleted(AjaxRequestTarget target) {
EtcdNodePanel.this.onNodedDeleted(target);
}
});
+
+ add(addFileModalPanel = new AddFileModalPanel("addFile",
+ actionModel,
+ registry, updating) {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ protected void onFileSaved(AjaxRequestTarget target) {
+
+ super.onFileSaved(target);
+//
+// PageParameters params = ConvertUtils.getPageParameters(key.getObject());
+// params.add("cluster", registry.getObject());
+//
+// setResponsePage(NavigationPage.class, params);
+//
+// key.setObject(key.getObject());
+
+ target.add(contents, breadcrumbAndActions);
+
+ EtcdNodePanel.this.onFileSaved(target);
+ }
+ });
}
private void createNodeActions() {
@@ -298,6 +326,28 @@ protected void onModalTriggerClick(AjaxRequestTarget target) {
actionModel.setObject(getModelObject());
}
});
+
+ breadcrumbAndActions.add(new TriggerModalLink
("addFile", getModel(),
+ addFileModalPanel) {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ protected void onConfigure() {
+ super.onConfigure();
+ if (EtcdNodePanel.this.getModelObject() != null && EtcdNodePanel.this
+ .getModelObject().isDir()) {
+ add(AttributeModifier.remove("disabled"));
+ } else {
+ add(AttributeAppender.append("disabled", "disabled"));
+ }
+ }
+
+ @Override
+ protected void onModalTriggerClick(AjaxRequestTarget target) {
+ updating.setObject(false);
+ actionModel.setObject(getModelObject());
+ }
+ });
}
private void createBreadcrumb() {
diff --git a/src/main/java/org/github/etcd/viewer/html/pages/NavigationPage.java b/src/main/java/org/github/etcd/viewer/html/pages/NavigationPage.java
index 8320c79..bd1ecd9 100644
--- a/src/main/java/org/github/etcd/viewer/html/pages/NavigationPage.java
+++ b/src/main/java/org/github/etcd/viewer/html/pages/NavigationPage.java
@@ -3,6 +3,7 @@
*/
package org.github.etcd.viewer.html.pages;
+import java.util.Properties;
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.feedback.FeedbackMessage;
@@ -136,9 +137,14 @@ protected void onNodedDeleted(AjaxRequestTarget target) {
@Override
protected void onNodeKeyUpdated(AjaxRequestTarget target) {
super.onNodeKeyUpdated(target);
-
NavigationPage.this.updatePageTitle(target);
}
+
+ @Override
+ protected void onFileSaved(AjaxRequestTarget target) {
+ super.onFileSaved(target);
+ target.add(feedback);
+ }
});
}