/*\r
- * Copyright 2007, 2008, 2009 Electronic Business Systems Ltd.\r
+ * Copyright 2007, 2008, 2009, 2010 Electronic Business Systems Ltd.\r
*\r
* This file is part of GSS.\r
*\r
\r
import com.google.gwt.core.client.GWT;\r
import com.google.gwt.dom.client.NativeEvent;\r
+import com.google.gwt.event.dom.client.ChangeEvent;\r
+import com.google.gwt.event.dom.client.ChangeHandler;\r
import com.google.gwt.event.dom.client.ClickEvent;\r
import com.google.gwt.event.dom.client.ClickHandler;\r
import com.google.gwt.event.dom.client.KeyCodes;\r
+import com.google.gwt.event.dom.client.KeyDownEvent;\r
+import com.google.gwt.event.dom.client.KeyDownHandler;\r
import com.google.gwt.http.client.URL;\r
import com.google.gwt.i18n.client.DateTimeFormat;\r
import com.google.gwt.json.client.JSONArray;\r
inner.add(permPanel, "Sharing");\r
inner.selectTab(0);\r
\r
+ final Label folderNameNote = new Label("Please note that slashes ('/') are not allowed in folder names.", true);\r
+ folderNameNote.setVisible(false);\r
+ folderNameNote.setStylePrimaryName("gss-readForAllNote");\r
+\r
FlexTable generalTable = new FlexTable();\r
generalTable.setText(0, 0, "Name");\r
generalTable.setText(1, 0, "Parent");\r
generalTable.setText(3, 0, "Last modified");\r
folderName.setText(create ? "" : folder.getName());\r
generalTable.setWidget(0, 1, folderName);\r
+ folderName.addChangeHandler(new ChangeHandler() {\r
+ \r
+ @Override\r
+ public void onChange(ChangeEvent event) {\r
+ if(folderName.getText().contains("/"))\r
+ folderNameNote.setVisible(true);\r
+ else\r
+ folderNameNote.setVisible(false); \r
+ \r
+ }\r
+ });\r
+\r
+\r
if (create)\r
generalTable.setText(1, 1, folder.getName());\r
else if(folder.getParentName() == null)\r
generalTable.setText(1, 1, "-");\r
else\r
generalTable.setText(1, 1, folder.getParentName());\r
+ generalTable.setWidget(0, 2, folderNameNote);\r
generalTable.setText(2, 1, folder.getOwner());\r
DateTimeFormat formatter = DateTimeFormat.getFormat("d/M/yyyy h:mm a");\r
if(folder.getModificationDate() != null)\r
okLabel = "Update";\r
Button ok = new Button(okLabel, new ClickHandler() {\r
@Override\r
- public void onClick(ClickEvent event) {\r
-\r
- createOrUpdateFolder();\r
+ public void onClick(ClickEvent event) { \r
+ if(folderName.getText().contains("/"))\r
+ folderNameNote.setVisible(true);\r
+ else {\r
+ folderNameNote.setVisible(false);\r
+ createOrUpdateFolder();\r
+ closeDialog();\r
+ }\r
\r
- closeDialog();\r
}\r
- });\r
+ }); \r
buttons.add(ok);\r
buttons.setCellHorizontalAlignment(ok, HasHorizontalAlignment.ALIGN_CENTER);\r
// Create the 'Cancel' button, along with a listener that hides the\r
permButtons.setSpacing(8);\r
permButtons.addStyleName("gss-TabPanelBottom");\r
\r
- final Label readForAllNote = new Label("When this option is enabled, the file will be readable" +\r
+ final Label readForAllNote = new Label("When this option is enabled, the folder will be readable" +\r
" by everyone. By checking this option, you are certifying that you have the right to " +\r
- "distribute this file and that it does not violate the Terms of Use.", true);\r
+ "distribute this folder's contents and that it does not violate the Terms of Use.", true);\r
readForAllNote.setVisible(false);\r
readForAllNote.setStylePrimaryName("gss-readForAllNote");\r
\r
\r
});\r
path.setText(folder.getUri());\r
- path.setTitle("Use this link for sharing the file via e-mail, IM, etc. (crtl-C/cmd-C to copy to system clipboard)");\r
+ path.setTitle("Use this link for sharing the folder via e-mail, IM, etc. (crtl-C/cmd-C to copy to system clipboard)");\r
path.setWidth("100%");\r
path.setReadOnly(true);\r
pathPanel.setWidth("100%");\r
* @param _folderName the name of the folder to create\r
*/\r
private void createFolder() {\r
+ String name = folderName.getText();\r
+ if (!GSS.isValidResourceName(name)) {\r
+ GSS.get().displayError("The folder name '" + name + "' is invalid");\r
+ return;\r
+ }\r
PostCommand ep = new PostCommand(folder.getUri() + "?new=" +\r
- URL.encodeComponent(folderName.getText()), "", 201) {\r
+ URL.encodeComponent(name), "", 201) {\r
\r
@Override\r
public void onComplete() {\r