diff --git a/src/main/java/se/su/dsv/scipro/SciProApplication.java b/src/main/java/se/su/dsv/scipro/SciProApplication.java index 3660cc412f..12aca9930f 100644 --- a/src/main/java/se/su/dsv/scipro/SciProApplication.java +++ b/src/main/java/se/su/dsv/scipro/SciProApplication.java @@ -42,7 +42,6 @@ import se.su.dsv.scipro.admin.pages.settings.AdminGeneralSettingsPage; import se.su.dsv.scipro.admin.pages.settings.AdminPeerSettingsPage; import se.su.dsv.scipro.admin.pages.settings.AdminServerEnvironmentSettingsPage; import se.su.dsv.scipro.basepages.DemoPage; -import se.su.dsv.scipro.basepages.Inte; import se.su.dsv.scipro.basepages.errorpages.AccessDeniedPage; import se.su.dsv.scipro.basepages.errorpages.CustomErrorPageFactory; import se.su.dsv.scipro.basepages.errorpages.InternalErrorPage; @@ -62,10 +61,6 @@ import se.su.dsv.scipro.json.pages.JsonSentMessagePage; import se.su.dsv.scipro.json.pages.JsonSetReadPage; import se.su.dsv.scipro.json.pages.JsonSetStatusPage; import se.su.dsv.scipro.json.pages.JsonStatusPage; -import se.su.dsv.scipro.knol.resource.page.BookmarkableCategoryResourcePage; -import se.su.dsv.scipro.knol.resource.page.BookmarkableResourcePage; -import se.su.dsv.scipro.knol.resource.page.BookmarkableTagResourcePage; -import se.su.dsv.scipro.knol.resource.page.ResourcePage; import se.su.dsv.scipro.log.pages.ProjectLogPage; import se.su.dsv.scipro.log.pages.SupervisorLogPage; import se.su.dsv.scipro.loginlogout.pages.LoginPage; @@ -172,7 +167,6 @@ public class SciProApplication extends RepositoryApplication implements IThemabl mountBookmarkablePage("login", LoginPage.class); mountBookmarkablePage("logout", LogoutPage.class); mountBookmarkablePage("demo", DemoPage.class); - mountBookmarkablePage("inte", Inte.class); /* * Pop-up pages @@ -194,14 +188,6 @@ public class SciProApplication extends RepositoryApplication implements IThemabl mountBookmarkablePage("json/status", JsonStatusPage.class); mountBookmarkablePage("json/setstatus", JsonSetStatusPage.class); - /* - * Resource pages - */ - mountBookmarkablePage("resource", ResourcePage.class); - mountBookmarkablePage("resource/category", BookmarkableCategoryResourcePage.class); - mountBookmarkablePage("resource/resource", BookmarkableResourcePage.class); - mountBookmarkablePage("resource/tag", BookmarkableTagResourcePage.class); - /* * Admin pages */ diff --git a/src/main/java/se/su/dsv/scipro/basepages/Inte.java b/src/main/java/se/su/dsv/scipro/basepages/Inte.java deleted file mode 100644 index 58e5ab1790..0000000000 --- a/src/main/java/se/su/dsv/scipro/basepages/Inte.java +++ /dev/null @@ -1,29 +0,0 @@ -package se.su.dsv.scipro.basepages; - -import org.apache.wicket.PageParameters; -import org.apache.wicket.model.Model; - -import se.su.dsv.scipro.knol.resource.page.StaticImage; - -public class Inte extends PublicPage { - - private StaticImage firstImage, secondImage; - - - public Inte(final PageParameters pp){ - super(pp); - - firstImage = new StaticImage("firstImage", new Model<String>( - "images/icons/bullet_ball_glass_green.png")); - secondImage = new StaticImage("secondImage", new Model<String>( - "images/icons/bullet_ball_glass_yellow.png")); - - - add(firstImage); - add(secondImage); - - secondImage.setVisible(false); - - - } -} diff --git a/src/main/java/se/su/dsv/scipro/knol/resource/model/CategoryModel.java b/src/main/java/se/su/dsv/scipro/knol/resource/model/CategoryModel.java deleted file mode 100644 index 687dd266ef..0000000000 --- a/src/main/java/se/su/dsv/scipro/knol/resource/model/CategoryModel.java +++ /dev/null @@ -1,37 +0,0 @@ -/** - * - */ -package se.su.dsv.scipro.knol.resource.model; - -import java.util.Collection; - -import org.apache.wicket.IClusterable; - -import se.su.dsv.scipro.data.dataobjects.Category; - -/** - * @author Johan Aschan - aschan@dsv.su.se - * - */ -public class CategoryModel implements IClusterable { - - private String categoryName; - private Category selectedCategory; - - public String getCategoryName() { - return categoryName; - } - - public void setCategoryName(String categoryName) { - this.categoryName = categoryName; - } - - public Category getCategory() { - return selectedCategory; - } - - public void setCategory(Category category) { - this.selectedCategory = category; - } - -} diff --git a/src/main/java/se/su/dsv/scipro/knol/resource/model/ResourceModel.java b/src/main/java/se/su/dsv/scipro/knol/resource/model/ResourceModel.java deleted file mode 100644 index fdd093940e..0000000000 --- a/src/main/java/se/su/dsv/scipro/knol/resource/model/ResourceModel.java +++ /dev/null @@ -1,75 +0,0 @@ -/** - * - */ -package se.su.dsv.scipro.knol.resource.model; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - -import org.apache.wicket.IClusterable; - -import se.su.dsv.scipro.data.dataobjects.Category; -import se.su.dsv.scipro.data.dataobjects.Tag; -import se.su.dsv.scipro.data.dataobjects.User; - -/** - * @author Johan Aschan - aschan@dsv.su.se - * - */ -public class ResourceModel implements IClusterable { - - private String info; - private String link; - private String linkName; - private String embedCode; - private String tags; - private Collection<Category> selectedCategoryCollection; - - - - public String getEmbedCode() { - return embedCode; - } - public void setEmbedCode(String embedCode) { - this.embedCode = embedCode; - } - public String getInfo() { - return info; - } - public String getLink() { - return link; - } - public String getLinkName() { - return linkName; - } - - - public String getTags() { - return tags; - } - public void setTags(String tags) { - this.tags = tags; - } - public void setInfo(String info) { - this.info = info; - } - public void setLink(String link) { - this.link = link; - } - public void setLinkName(String linkName) { - this.linkName = linkName; - } - public Collection<Category> getSelectedCategoryCollection() { - return selectedCategoryCollection; - } - public void setSelectedCategoryCollection( - Collection<Category> selectedCategoryCollection) { - this.selectedCategoryCollection = selectedCategoryCollection; - } - - - - - -} diff --git a/src/main/java/se/su/dsv/scipro/knol/resource/page/BookmarkableCategoryResourcePage.html b/src/main/java/se/su/dsv/scipro/knol/resource/page/BookmarkableCategoryResourcePage.html deleted file mode 100644 index 36f9b93a63..0000000000 --- a/src/main/java/se/su/dsv/scipro/knol/resource/page/BookmarkableCategoryResourcePage.html +++ /dev/null @@ -1,12 +0,0 @@ -<!DOCTYPE html> -<html xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd"> -<body> - <wicket:extend> - - - <div wicket:id="bookMarkTagPanel"></div> - - - </wicket:extend> -</body> -</html> \ No newline at end of file diff --git a/src/main/java/se/su/dsv/scipro/knol/resource/page/BookmarkableCategoryResourcePage.java b/src/main/java/se/su/dsv/scipro/knol/resource/page/BookmarkableCategoryResourcePage.java deleted file mode 100644 index 563d11d3db..0000000000 --- a/src/main/java/se/su/dsv/scipro/knol/resource/page/BookmarkableCategoryResourcePage.java +++ /dev/null @@ -1,46 +0,0 @@ -/** - * - */ -package se.su.dsv.scipro.knol.resource.page; - -import java.util.List; - -import org.apache.wicket.PageParameters; -import org.apache.wicket.markup.html.link.BookmarkablePageLink; - -import se.su.dsv.scipro.basepages.MenuPage; -import se.su.dsv.scipro.data.dataobjects.Category; -import se.su.dsv.scipro.data.dataobjects.Tag; -import se.su.dsv.scipro.knol.resource.panels.ResourceBookmarkableCategoryPanel; -import se.su.dsv.scipro.knol.resource.panels.ResourceBookmarkableTagPanel; - -/** - * @author Johan Aschan - aschan@dsv.su.se - * - */ -public class BookmarkableCategoryResourcePage extends MenuPage { - - public BookmarkableCategoryResourcePage(PageParameters pp) { - super(pp); - add(new ResourceBookmarkableCategoryPanel("bookMarkTagPanel", pp)); - } - - public static BookmarkablePageLink<Void> getBookmarkablePageLink(String id, - List<Category> categoryList) { - String category = ""; - boolean first = true; - for (Category t : categoryList) { - if (first) { - category += t.getId(); - first = false; - } else{ - category += "+" + t.getId(); - } - } - - PageParameters pp = new PageParameters(); - pp.add("c", category); - return new BookmarkablePageLink<Void>(id, - BookmarkableCategoryResourcePage.class, pp); - } -} diff --git a/src/main/java/se/su/dsv/scipro/knol/resource/page/BookmarkableResourcePage.html b/src/main/java/se/su/dsv/scipro/knol/resource/page/BookmarkableResourcePage.html deleted file mode 100644 index 0c290bef65..0000000000 --- a/src/main/java/se/su/dsv/scipro/knol/resource/page/BookmarkableResourcePage.html +++ /dev/null @@ -1,12 +0,0 @@ -<!DOCTYPE html> -<html xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd"> -<body> - <wicket:extend> - - - <div wicket:id="bookMarkPanel"></div> - - - </wicket:extend> -</body> -</html> \ No newline at end of file diff --git a/src/main/java/se/su/dsv/scipro/knol/resource/page/BookmarkableResourcePage.java b/src/main/java/se/su/dsv/scipro/knol/resource/page/BookmarkableResourcePage.java deleted file mode 100644 index 06704f6572..0000000000 --- a/src/main/java/se/su/dsv/scipro/knol/resource/page/BookmarkableResourcePage.java +++ /dev/null @@ -1,29 +0,0 @@ -/** - * - */ -package se.su.dsv.scipro.knol.resource.page; - -import org.apache.wicket.PageParameters; -import org.apache.wicket.markup.html.link.BookmarkablePageLink; - -import se.su.dsv.scipro.basepages.MenuPage; -import se.su.dsv.scipro.data.dataobjects.Resource; -import se.su.dsv.scipro.knol.resource.panels.ResourceBookmarkablePanel; - -/** - * @author Johan Aschan - aschan@dsv.su.se - * - */ -public class BookmarkableResourcePage extends MenuPage{ - - public BookmarkableResourcePage(PageParameters pp) { - super(pp); - add(new ResourceBookmarkablePanel("bookMarkPanel", pp)); - } - - public static BookmarkablePageLink<Void> getBookmarkablePageLink(String id, Resource resource){ - PageParameters pp = new PageParameters(); - pp.put("r", resource.getId()); - return new BookmarkablePageLink<Void>(id, BookmarkableResourcePage.class, pp); - } -} diff --git a/src/main/java/se/su/dsv/scipro/knol/resource/page/BookmarkableTagResourcePage.html b/src/main/java/se/su/dsv/scipro/knol/resource/page/BookmarkableTagResourcePage.html deleted file mode 100644 index 36f9b93a63..0000000000 --- a/src/main/java/se/su/dsv/scipro/knol/resource/page/BookmarkableTagResourcePage.html +++ /dev/null @@ -1,12 +0,0 @@ -<!DOCTYPE html> -<html xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd"> -<body> - <wicket:extend> - - - <div wicket:id="bookMarkTagPanel"></div> - - - </wicket:extend> -</body> -</html> \ No newline at end of file diff --git a/src/main/java/se/su/dsv/scipro/knol/resource/page/BookmarkableTagResourcePage.java b/src/main/java/se/su/dsv/scipro/knol/resource/page/BookmarkableTagResourcePage.java deleted file mode 100644 index f34cf40cd2..0000000000 --- a/src/main/java/se/su/dsv/scipro/knol/resource/page/BookmarkableTagResourcePage.java +++ /dev/null @@ -1,43 +0,0 @@ -/** - * - */ -package se.su.dsv.scipro.knol.resource.page; - -import java.util.List; - -import org.apache.wicket.PageParameters; -import org.apache.wicket.markup.html.link.BookmarkablePageLink; - -import se.su.dsv.scipro.basepages.MenuPage; -import se.su.dsv.scipro.data.dataobjects.Tag; -import se.su.dsv.scipro.knol.resource.panels.ResourceBookmarkableTagPanel; - -/** - * @author Johan Aschan - aschan@dsv.su.se - * - */ -public class BookmarkableTagResourcePage extends MenuPage { - - public BookmarkableTagResourcePage(PageParameters pp) { - super(pp); - add(new ResourceBookmarkableTagPanel("bookMarkTagPanel", pp)); - } - - public static BookmarkablePageLink<Void> getBookmarkablePageLink(String id, - List<Tag> tagList) { - String tag = ""; - boolean first = true; - for (Tag t : tagList) { - if (first) { - tag += t.getId(); - first = false; - } else{ - tag += "+" + t.getId(); - } - } - PageParameters pp = new PageParameters(); - pp.add("t", tag); - return new BookmarkablePageLink<Void>(id, - BookmarkableTagResourcePage.class, pp); - } -} diff --git a/src/main/java/se/su/dsv/scipro/knol/resource/page/HtmlWebMarkupContainer.java b/src/main/java/se/su/dsv/scipro/knol/resource/page/HtmlWebMarkupContainer.java deleted file mode 100644 index 45c5aeb277..0000000000 --- a/src/main/java/se/su/dsv/scipro/knol/resource/page/HtmlWebMarkupContainer.java +++ /dev/null @@ -1,42 +0,0 @@ -/** - * - */ -package se.su.dsv.scipro.knol.resource.page; - -import org.apache.wicket.markup.ComponentTag; -import org.apache.wicket.markup.MarkupStream; -import org.apache.wicket.markup.html.WebMarkupContainer; - -/** - * @author Johan Aschan - aschan@dsv.su.se - * - */ -public class HtmlWebMarkupContainer extends WebMarkupContainer { - - private String html; - - public HtmlWebMarkupContainer(String id, String html) { - super(id); - this.html = html; - } - - - - public String getHtml() { - return html; - } - - - - public void setHtml(String html) { - this.html = html; - } - - - - @Override - protected void onComponentTagBody(MarkupStream markupStream, - ComponentTag openTag) { - replaceComponentTagBody(markupStream, openTag, html); - } -} diff --git a/src/main/java/se/su/dsv/scipro/knol/resource/page/ResourcePage.html b/src/main/java/se/su/dsv/scipro/knol/resource/page/ResourcePage.html deleted file mode 100644 index b5d9cd2508..0000000000 --- a/src/main/java/se/su/dsv/scipro/knol/resource/page/ResourcePage.html +++ /dev/null @@ -1,8 +0,0 @@ -<!DOCTYPE html> -<html xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd"> -<body> - <wicket:extend> - <div wicket:id="resourcesPanel"></div> - </wicket:extend> -</body> -</html> \ No newline at end of file diff --git a/src/main/java/se/su/dsv/scipro/knol/resource/page/ResourcePage.java b/src/main/java/se/su/dsv/scipro/knol/resource/page/ResourcePage.java deleted file mode 100644 index db79c985c6..0000000000 --- a/src/main/java/se/su/dsv/scipro/knol/resource/page/ResourcePage.java +++ /dev/null @@ -1,27 +0,0 @@ -/** - * - */ -package se.su.dsv.scipro.knol.resource.page; - -import org.apache.wicket.PageParameters; - -import se.su.dsv.scipro.basepages.MenuPage; -import se.su.dsv.scipro.knol.resource.panels.ResourcesPanel; -import se.su.dsv.scipro.security.auth.Authorization; -import se.su.dsv.scipro.security.auth.roles.Roles; - -/** - * @author Johan Aschan - aschan@dsv.su.se - * - */ -@Authorization(authorizedRoles={Roles.SYSADMIN}) //TODO Hidden for initial deployment -public class ResourcePage extends MenuPage { - - public static final String MAIN_MENU_LABEL = "Resources"; - - public ResourcePage(PageParameters pp) { - super(pp); - add(new ResourcesPanel("resourcesPanel")); - } - -} diff --git a/src/main/java/se/su/dsv/scipro/knol/resource/page/StaticImage.java b/src/main/java/se/su/dsv/scipro/knol/resource/page/StaticImage.java deleted file mode 100644 index c7d80e0b71..0000000000 --- a/src/main/java/se/su/dsv/scipro/knol/resource/page/StaticImage.java +++ /dev/null @@ -1,27 +0,0 @@ -/** - * - */ -package se.su.dsv.scipro.knol.resource.page; - -import org.apache.wicket.markup.ComponentTag; -import org.apache.wicket.markup.html.WebComponent; -import org.apache.wicket.model.IModel; - -/** - * @author Johan Aschan - aschan@dsv.su.se - * - */ -public class StaticImage extends WebComponent { - - public StaticImage(String id, IModel model) { - super(id, model); - } - - protected void onComponentTag(ComponentTag tag) { - super.onComponentTag(tag); - checkComponentTag(tag, "img"); - tag.put("src", getDefaultModelObjectAsString()); - // since Wicket 1.4 you need to use getDefaultModelObjectAsString() instead of getModelObjectAsString() - } - -} \ No newline at end of file diff --git a/src/main/java/se/su/dsv/scipro/knol/resource/panels/FileResourcePanel.html b/src/main/java/se/su/dsv/scipro/knol/resource/panels/FileResourcePanel.html deleted file mode 100644 index 002c2ac0e1..0000000000 --- a/src/main/java/se/su/dsv/scipro/knol/resource/panels/FileResourcePanel.html +++ /dev/null @@ -1,26 +0,0 @@ -<!DOCTYPE html> -<html xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd"> -<body> -<wicket:panel> - - <div><span wicket:id="feedbackPanel">[Feedback goes here]</span></div> - <form wicket:id="uploadForm"> - <div><input wicket:id="fileInput" id="fileInput" type="file" /></div> - <div><input type="submit" value="Upload!" name="upload" /></div> - <span wicket:id="progress">[[ajax upload progressbar]]</span> - </form> - <table wicket:id="listFiles"> - <tr wicket:id="content"> -<!-- <td><a href="delete" wicket:id="delete"><span--> -<!-- wicket:id="deleteIcon" /></a></td>--> - <td><span wicket:id="name">name</span></td> - <td><a href="#" wicket:id="open">Open</a></td> - - <td><a href="#" wicket:id="download">Download</a></td> - - </tr> - </table> -</wicket:panel> - -</body> -</html> \ No newline at end of file diff --git a/src/main/java/se/su/dsv/scipro/knol/resource/panels/FileResourcePanel.java b/src/main/java/se/su/dsv/scipro/knol/resource/panels/FileResourcePanel.java deleted file mode 100644 index 13a41b760f..0000000000 --- a/src/main/java/se/su/dsv/scipro/knol/resource/panels/FileResourcePanel.java +++ /dev/null @@ -1,124 +0,0 @@ -package se.su.dsv.scipro.knol.resource.panels; - -import java.util.List; - -import org.apache.wicket.extensions.ajax.markup.html.form.upload.UploadProgressBar; -import org.apache.wicket.markup.html.WebMarkupContainer; -import org.apache.wicket.markup.html.basic.Label; -import org.apache.wicket.markup.html.form.Form; -import org.apache.wicket.markup.html.form.upload.FileUpload; -import org.apache.wicket.markup.html.form.upload.FileUploadField; -import org.apache.wicket.markup.html.panel.FeedbackPanel; -import org.apache.wicket.markup.html.panel.Panel; -import org.apache.wicket.markup.repeater.RepeatingView; -import org.apache.wicket.spring.injection.annot.SpringBean; -import org.apache.wicket.util.lang.Bytes; - -import se.su.dsv.scipro.data.dao.interfaces.UserDao; -import se.su.dsv.scipro.data.dataobjects.FileDescription; -import se.su.dsv.scipro.data.dataobjects.Resource; -import se.su.dsv.scipro.repository.FileRepository; -import se.su.dsv.scipro.repository.SortOrder; -import se.su.dsv.scipro.repository.components.FileDownloadLink; -import se.su.dsv.scipro.repository.components.FileOpenLink; - -public class FileResourcePanel extends Panel{ - - private static final long serialVersionUID = 5500371345065598841L; - - protected Bytes maxFileSize = Bytes.megabytes(100); - - @SpringBean - protected FileRepository fileRepository; - @SpringBean - protected UserDao userDao; - - protected FileUploadForm fuf; - - protected Resource resource; - - protected WebMarkupContainer listFiles; - protected WebMarkupContainer tableHead; - - public FileResourcePanel(String id, Resource resource) { - super(id); - add(new FeedbackPanel("feedbackPanel")); - this.resource = resource; - - listFiles = new WebMarkupContainer("listFiles"); - add(listFiles); - reloadFiles(); - - fuf = new FileUploadForm("uploadForm"); - add(fuf); - fuf.add(new UploadProgressBar("progress", fuf)); //TODO seems to be broken in some browsers like Chrome - if(resource == null || resource.getId() == null) - fuf.setVisible(false); - - } - - private void reloadFiles() { - listFiles.removeAll(); - List<FileDescription> items = fileRepository.searchFiles(fileRepository.getResourcePath(resource.getId()),false); - - if(items.isEmpty()) - listFiles.setVisible(false); - else - listFiles.setVisible(true); - - fileRepository.sortFileDescriptions(items, SortOrder.Name); - - RepeatingView contents = new RepeatingView("content"); - listFiles.add(contents); - for (final FileDescription desc : items) { - WebMarkupContainer inner = new WebMarkupContainer(contents.newChildId()); - - inner.add(new Label("name", desc.getName())); - - inner.add(new FileDownloadLink("download", desc )); - inner.add(new FileOpenLink("open", desc)); - - contents.add(inner); - }//for - }//reloadFiles - - - - private class FileUploadForm extends Form<Void> { - private static final long serialVersionUID = 1L; - private FileUploadField fileUploadField; - - public FileUploadForm(String id) { - super(id); - setMultiPart(true); - - // Add one file input field - add(fileUploadField = new FileUploadField("fileInput")); - - setMaxSize(maxFileSize); - } - - @Override - protected void onSubmit() { - final FileUpload upload = fileUploadField.getFileUpload(); - if(resource == null){ - error("File resource was null, this was not meant to happen!"); - } else { - if(resource.getId() == null){ - error("File resource id was null, this was not meant to happen!"); - } - else { - String absolutePath = fileRepository.getResourcePath(resource.getId()); - fileRepository.storeFile(upload, absolutePath); - } - } - setRedirect(true); - - reloadFiles(); - - //This might have to be changed into something better using page parameters etc. - setResponsePage(getPage()); - } - } - -} diff --git a/src/main/java/se/su/dsv/scipro/knol/resource/panels/ResourceBookmarkableCategoryPanel.html b/src/main/java/se/su/dsv/scipro/knol/resource/panels/ResourceBookmarkableCategoryPanel.html deleted file mode 100644 index 57402d02cc..0000000000 --- a/src/main/java/se/su/dsv/scipro/knol/resource/panels/ResourceBookmarkableCategoryPanel.html +++ /dev/null @@ -1,13 +0,0 @@ -<!DOCTYPE html> -<html xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd"> -<body> -<wicket:panel> - - <h2>Resources</h2> - <div wicket:id="tagHeader" class="larger"></div> - <a href="#" wicket:id="showAll">Show All</a> - <div wicket:id="resourceListPanel"></div> -</wicket:panel> - -</body> -</html> \ No newline at end of file diff --git a/src/main/java/se/su/dsv/scipro/knol/resource/panels/ResourceBookmarkableCategoryPanel.java b/src/main/java/se/su/dsv/scipro/knol/resource/panels/ResourceBookmarkableCategoryPanel.java deleted file mode 100644 index 9b01b7c9fc..0000000000 --- a/src/main/java/se/su/dsv/scipro/knol/resource/panels/ResourceBookmarkableCategoryPanel.java +++ /dev/null @@ -1,101 +0,0 @@ -/** - * - */ -package se.su.dsv.scipro.knol.resource.panels; - -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; -import java.util.StringTokenizer; - -import org.apache.wicket.PageParameters; -import org.apache.wicket.RestartResponseException; -import org.apache.wicket.ajax.AjaxRequestTarget; -import org.apache.wicket.ajax.markup.html.AjaxLink; -import org.apache.wicket.markup.html.basic.Label; -import org.apache.wicket.markup.html.panel.Panel; -import org.apache.wicket.spring.injection.annot.SpringBean; - -import se.su.dsv.scipro.SciProApplication; -import se.su.dsv.scipro.data.dao.interfaces.CategoryDao; -import se.su.dsv.scipro.data.dao.interfaces.ResourceDao; -import se.su.dsv.scipro.data.dao.interfaces.TagDao; -import se.su.dsv.scipro.data.dataobjects.Category; -import se.su.dsv.scipro.data.dataobjects.Resource; -import se.su.dsv.scipro.data.dataobjects.Tag; -import se.su.dsv.scipro.data.enums.ResourceType; -import se.su.dsv.scipro.knol.resource.page.ResourcePage; - -/** - * @author Johan Aschan - aschan@dsv.su.se - * - */ -public class ResourceBookmarkableCategoryPanel extends Panel { - - private static final long serialVersionUID = 1L; - - @SpringBean - private ResourceDao resourceDao; - - @SpringBean - private CategoryDao categoryDao; - - - public ResourceBookmarkableCategoryPanel(String id, PageParameters pp) { - super(id); - add(new AjaxLink<Tag>("showAll") { - - private static final long serialVersionUID = 1L; - - @Override - public void onClick(AjaxRequestTarget target) { - - setResponsePage(ResourcePage.class); - } - }); - List<Category> categoryList = new ArrayList<Category>(); - String categories = pp.getString("c"); - String tagHeader = "Filtered by categories: "; - boolean first = true; - if (categories == null) { - failAndRedirect(); - } else { - StringTokenizer stringTokenizer = new StringTokenizer(categories, - "+"); - - while (stringTokenizer.hasMoreTokens()) { - String tagString = stringTokenizer.nextToken().trim(); - Category category = categoryDao.load(Long.valueOf(tagString)); - if (category != null) { - if (!categoryList.contains(category)) { - categoryList.add(category); - if (first) { - tagHeader += category.getCategoryName(); - first = false; - } else - tagHeader += ", " + category.getCategoryName(); - } - } else { - failAndRedirect(); - } - - } - - } - add(new Label("tagHeader", tagHeader)); - Set<Resource> resourceList = new HashSet<Resource>(); - for (Category category : categoryList) { - resourceList.addAll(resourceDao.findResourcesByCategory(category)); - } - add(new ResourceListPanel("resourceListPanel", new ArrayList<Resource>( - resourceList), ResourceType.TAGVIEW)); - - } - - private void failAndRedirect() { - throw new RestartResponseException(SciProApplication.get() - .getApplicationSettings().getAccessDeniedPage()); - } - -} \ No newline at end of file diff --git a/src/main/java/se/su/dsv/scipro/knol/resource/panels/ResourceBookmarkablePanel.html b/src/main/java/se/su/dsv/scipro/knol/resource/panels/ResourceBookmarkablePanel.html deleted file mode 100644 index 5eac0feb1f..0000000000 --- a/src/main/java/se/su/dsv/scipro/knol/resource/panels/ResourceBookmarkablePanel.html +++ /dev/null @@ -1,11 +0,0 @@ -<!DOCTYPE html> -<html xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd"> -<body> -<wicket:panel> - - <h2>Resource</h2> - <div wicket:id="resourceListPanel"></div> -</wicket:panel> - -</body> -</html> \ No newline at end of file diff --git a/src/main/java/se/su/dsv/scipro/knol/resource/panels/ResourceBookmarkablePanel.java b/src/main/java/se/su/dsv/scipro/knol/resource/panels/ResourceBookmarkablePanel.java deleted file mode 100644 index e3717f09b9..0000000000 --- a/src/main/java/se/su/dsv/scipro/knol/resource/panels/ResourceBookmarkablePanel.java +++ /dev/null @@ -1,59 +0,0 @@ -/** - * - */ -package se.su.dsv.scipro.knol.resource.panels; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.wicket.PageParameters; -import org.apache.wicket.RestartResponseException; -import org.apache.wicket.markup.html.panel.Panel; -import org.apache.wicket.spring.injection.annot.SpringBean; - -import se.su.dsv.scipro.SciProApplication; -import se.su.dsv.scipro.data.dao.interfaces.ResourceDao; -import se.su.dsv.scipro.data.dataobjects.Resource; -import se.su.dsv.scipro.data.enums.ResourceType; - -/** - * @author Johan Aschan - aschan@dsv.su.se - * - */ -public class ResourceBookmarkablePanel extends Panel { - - private static final long serialVersionUID = 1L; - - - @SpringBean - private ResourceDao resourceDao; - - - private Resource resource; - - - public ResourceBookmarkablePanel(String id, PageParameters pp) { - super(id); - Long resId = pp.getAsLong("r"); - - if (resId == null) { - failAndRedirect(); - } else { - - resource = resourceDao.load(resId); - if (resource == null) - failAndRedirect(); - } - List<Resource> resourceList = new ArrayList<Resource>(); - resourceList.add(resource); - add(new ResourceListPanel("resourceListPanel", resourceList, ResourceType.PERMALINK)); - - } - - private void failAndRedirect() { - throw new RestartResponseException(SciProApplication.get() - .getApplicationSettings().getAccessDeniedPage()); - } - - -} diff --git a/src/main/java/se/su/dsv/scipro/knol/resource/panels/ResourceBookmarkableTagPanel.html b/src/main/java/se/su/dsv/scipro/knol/resource/panels/ResourceBookmarkableTagPanel.html deleted file mode 100644 index 57402d02cc..0000000000 --- a/src/main/java/se/su/dsv/scipro/knol/resource/panels/ResourceBookmarkableTagPanel.html +++ /dev/null @@ -1,13 +0,0 @@ -<!DOCTYPE html> -<html xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd"> -<body> -<wicket:panel> - - <h2>Resources</h2> - <div wicket:id="tagHeader" class="larger"></div> - <a href="#" wicket:id="showAll">Show All</a> - <div wicket:id="resourceListPanel"></div> -</wicket:panel> - -</body> -</html> \ No newline at end of file diff --git a/src/main/java/se/su/dsv/scipro/knol/resource/panels/ResourceBookmarkableTagPanel.java b/src/main/java/se/su/dsv/scipro/knol/resource/panels/ResourceBookmarkableTagPanel.java deleted file mode 100644 index 8e22e4f518..0000000000 --- a/src/main/java/se/su/dsv/scipro/knol/resource/panels/ResourceBookmarkableTagPanel.java +++ /dev/null @@ -1,97 +0,0 @@ -/** - * - */ -package se.su.dsv.scipro.knol.resource.panels; - -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; -import java.util.StringTokenizer; - -import org.apache.wicket.PageParameters; -import org.apache.wicket.RestartResponseException; -import org.apache.wicket.ajax.AjaxRequestTarget; -import org.apache.wicket.ajax.markup.html.AjaxLink; -import org.apache.wicket.markup.html.basic.Label; -import org.apache.wicket.markup.html.panel.Panel; -import org.apache.wicket.spring.injection.annot.SpringBean; - -import se.su.dsv.scipro.SciProApplication; -import se.su.dsv.scipro.data.dao.interfaces.ResourceDao; -import se.su.dsv.scipro.data.dao.interfaces.TagDao; -import se.su.dsv.scipro.data.dataobjects.Resource; -import se.su.dsv.scipro.data.dataobjects.Tag; -import se.su.dsv.scipro.data.enums.ResourceType; -import se.su.dsv.scipro.knol.resource.page.ResourcePage; - -/** - * @author Johan Aschan - aschan@dsv.su.se - * - */ -public class ResourceBookmarkableTagPanel extends Panel { - - private static final long serialVersionUID = 1L; - - @SpringBean - private ResourceDao resourceDao; - - @SpringBean - private TagDao tagDao; - - - public ResourceBookmarkableTagPanel(String id, PageParameters pp) { - super(id); - add(new AjaxLink<Tag>("showAll") { - - private static final long serialVersionUID = 1L; - - @Override - public void onClick(AjaxRequestTarget target) { - - setResponsePage(ResourcePage.class); - } - }); - List<Tag> tagList = new ArrayList<Tag>(); - String tags = pp.getString("t"); - String tagHeader = "Filtered by tags: "; - boolean first = true; - if (tags == null) { - failAndRedirect(); - } else { - StringTokenizer stringTokenizer = new StringTokenizer(tags, "+"); - - while (stringTokenizer.hasMoreTokens()) { - String tagString = stringTokenizer.nextToken().trim(); - Tag tag = tagDao.load(Long.valueOf(tagString)); - if (null != tag) { - if (!tagList.contains(tag)) { - tagList.add(tag); - if (first) { - tagHeader += tag.getTag(); - first = false; - } else - tagHeader += ", " + tag.getTag(); - } - } else { - failAndRedirect(); - } - - } - - } - add(new Label("tagHeader", tagHeader)); - Set<Resource> resourceList = new HashSet<Resource>(); - for (Tag tag : tagList) { - resourceList.addAll(resourceDao.findResourcesByTag(tag)); - } - add(new ResourceListPanel("resourceListPanel", new ArrayList<Resource>(resourceList), ResourceType.TAGVIEW)); - - } - - private void failAndRedirect() { - throw new RestartResponseException(SciProApplication.get() - .getApplicationSettings().getAccessDeniedPage()); - } - -} \ No newline at end of file diff --git a/src/main/java/se/su/dsv/scipro/knol/resource/panels/ResourceListPanel.html b/src/main/java/se/su/dsv/scipro/knol/resource/panels/ResourceListPanel.html deleted file mode 100644 index 363edf028d..0000000000 --- a/src/main/java/se/su/dsv/scipro/knol/resource/panels/ResourceListPanel.html +++ /dev/null @@ -1,177 +0,0 @@ -<!DOCTYPE html> -<html xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd"> -<body> -<wicket:panel> - - <div wicket:id="listContainer"> - <table wicket:id = "link-item" class = "link-resource-border"> - - <tr> - <td class="rating-cell"> - <div class = "centered" ><a href="#" wicket:id="upLink"><img wicket:id="upLinkIcon"/></a></div> - <div class = "centered larger-rate-number" wicket:id="rate"></div> - <div class = "centered" ><a href="#" wicket:id="downLink"><img wicket:id="downLinkIcon" /></a></div> - </td> - <td> - - <a href="#" target="new" wicket:id="link" class="larger"></a> - <span wicket:id="heading" class="larger"></span> - <div class = "right-corner-resource"> - <div class = "resource-icon"> - <a href="#" wicket:id="editResource"><img src="images/icons/edit_16x16.png" " alt="Edit" title="Edit"/></a> - <a href="#" wicket:id="deleteResource"><img src="images/icons/delete_16x16.png" alt="Delete" title="Delete"/></a> - </div> - <div class = "smaller"> - <strong>Created: </strong> <span wicket:id="date"></span> - <br/> - <strong>Created by: </strong> <span wicket:id="user"></span> - </div> - - </div> - <div><a href="#" target="new" wicket:id="linkAddress"></a></div> - <div wicket:id="embedCode"></div> - - - - <div wicket:id="info" class = "info-resource"></div> - <div><strong>Categories: </strong> <span wicket:id="category-item"><a href="#" wicket:id="tag"><span wicket:id="tagName"></span></a> </span></div> - <strong>Tags: </strong> <span wicket:id="tag-item"><a href="#" wicket:id="tag"><span wicket:id="tagName"></span></a> </span> - <div ><a href="#" wicket:id="bookmark">Permalink</a></div> - - - <div><a href="#" wicket:id="showComments"><span wicket:id="commentNumber"></span></a></div> - - </td> - - - </tr> - <tr> - <td class="rating-cell"></td> - <td colspan ="2"><div wicket:id="container"><div wicket:id="commentThread"></div></div></td> - </tr> - </table> - <div wicket:id ="navigator"></div> - </div> - - <div wicket:id="editLinkDialog"> - <div wicket:id="editLinkDialogContainer"> - <form wicket:id="editLinkResourceForm"> - <div wicket:id="feedbackContainer" class ="span-8 last"> - <div wicket:id="feedbackPanel"> - </div> - </div> - <div class ="span-6 last"> - <strong>Link Name:</strong> - </div> - <div class ="span-6 last"> - <input type="text" wicket:id="linkName" class ="span-6"/> - </div> - <div class ="span-6 last"> - <strong>Link Address:</strong> - </div> - <div class ="span-6 last"> - <input type="text" wicket:id="link" class ="span-6" /> - </div> - <div class ="span-6 last"> - <strong>Info:</strong> - </div> - <div class ="span-6 last"> - <textarea wicket:id="info" ></textarea> - </div> - <div class ="span-6 last"> - <strong>Categories:</strong> - </div> - <div class ="span-6 last"> - <select wicket:id="selectedCategoryCollection" class ="span-8 last"></select> - </div> - <div class ="span-6 last"> - <strong>Tags:</strong> - </div> - - - <div class ="span-6 last"> - Separate by comma. - </div> - <div class ="span-6 last"> - <input type="text" wicket:id="tags" class ="span-6" /> - </div> - <div class ="span-6 last"> - <strong>Delete tags:</strong> - </div> - <div wicket:id="tagListContainer" class ="span-6 last"> - <span wicket:id="tag-item"> - <span wicket:id="tagContainer"> - <span wicket:id="tag"></span> - <a href="#" wicket:id="deleteTag"><img src="images/icons/delete_16x16.png" alt="Delete" title="Delete"/></a> - </span> - </span> - - </div> - <div class ="span-6 last edit-button"><input type="submit" wicket:id="submitButton" /> </div> - </form> - </div> - </div> - - <div wicket:id="editEmbedDialog"> - <div wicket:id="editEmbedDialogContainer"> - <form wicket:id="editEmbedResourceForm"> - <div wicket:id="feedbackContainer" class ="span-8 last"> - <div wicket:id="feedbackPanel"> - </div> - </div> - <div class ="span-6 last"> - <strong>Heading:</strong> - </div> - <div class ="span-6 last"> - <input type="text" wicket:id="linkName" class ="span-6"/> - </div> - <div class ="span-6 last"> - <strong>Embed Code:</strong> - </div> - <div class ="span-8 last"> - Disclaimer: no security checks at the moment. - </div> - <div class ="span-6 last"> - <textarea wicket:id="embedCode" ></textarea> - </div> - <div class ="span-6 last"> - <strong>Info:</strong> - </div> - <div class ="span-6 last"> - <textarea wicket:id="info" ></textarea> - </div> - <div class ="span-6 last"> - <strong>Categories:</strong> - </div> - <div class ="span-6 last"> - <select wicket:id="selectedCategoryCollection" class ="span-8 last"></select> - </div> - <div class ="span-6 last"> - <strong>Add tags:</strong> - </div> - <div class ="span-6 last"> - Separate by comma. - </div> - <div class ="span-6 last"> - <input type="text" wicket:id="tags" class ="span-6" /> - </div> - <div class ="span-6 last"> - <strong>Delete tags:</strong> - </div> - <div wicket:id="tagListContainerEmbed" class ="span-8 last"> - <span wicket:id="tag-embed-item"> - <span wicket:id="tagEmbedContainer"> - <span wicket:id="tagEmbed"></span> - <a href="#" wicket:id="deleteTagEmbed"><img src="images/icons/delete_16x16.png" alt="Delete" title="Delete"/></a> - </span> - </span> - - </div> - <div class ="span-6 last edit-button"><input type="submit" wicket:id="submitButton" /> </div> - </form> - </div> - </div> -</wicket:panel> - -</body> -</html> \ No newline at end of file diff --git a/src/main/java/se/su/dsv/scipro/knol/resource/panels/ResourceListPanel.java b/src/main/java/se/su/dsv/scipro/knol/resource/panels/ResourceListPanel.java deleted file mode 100644 index 454054c8a1..0000000000 --- a/src/main/java/se/su/dsv/scipro/knol/resource/panels/ResourceListPanel.java +++ /dev/null @@ -1,1134 +0,0 @@ -/** - * - */ -package se.su.dsv.scipro.knol.resource.panels; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.Date; -import java.util.List; -import java.util.StringTokenizer; - -import org.apache.wicket.IClusterable; -import org.apache.wicket.ajax.AjaxRequestTarget; -import org.apache.wicket.ajax.IAjaxCallDecorator; -import org.apache.wicket.ajax.calldecorator.AjaxCallDecorator; -import org.apache.wicket.ajax.markup.html.AjaxLink; -import org.apache.wicket.ajax.markup.html.form.AjaxButton; -import org.apache.wicket.behavior.AttributeAppender; -import org.apache.wicket.markup.html.WebMarkupContainer; -import org.apache.wicket.markup.html.basic.Label; -import org.apache.wicket.markup.html.form.Form; -import org.apache.wicket.markup.html.form.IChoiceRenderer; -import org.apache.wicket.markup.html.form.ListMultipleChoice; -import org.apache.wicket.markup.html.form.TextArea; -import org.apache.wicket.markup.html.form.TextField; -import org.apache.wicket.markup.html.link.ExternalLink; -import org.apache.wicket.markup.html.list.ListItem; -import org.apache.wicket.markup.html.list.ListView; -import org.apache.wicket.markup.html.list.PageableListView; -import org.apache.wicket.markup.html.panel.Panel; -import org.apache.wicket.model.CompoundPropertyModel; -import org.apache.wicket.model.Model; -import org.apache.wicket.model.util.ListModel; -import org.apache.wicket.spring.injection.annot.SpringBean; -import org.apache.wicket.validation.validator.UrlValidator; -import org.odlabs.wiquery.ui.dialog.Dialog; - -import se.su.dsv.scipro.SciProSession; -import se.su.dsv.scipro.commentthread.panels.CommentThreadPanel; -import se.su.dsv.scipro.components.FormFeedbackPanel; -import se.su.dsv.scipro.data.dao.interfaces.CategoryDao; -import se.su.dsv.scipro.data.dao.interfaces.CommentThreadDao; -import se.su.dsv.scipro.data.dao.interfaces.RatableDao; -import se.su.dsv.scipro.data.dao.interfaces.RatingDao; -import se.su.dsv.scipro.data.dao.interfaces.ResourceDao; -import se.su.dsv.scipro.data.dao.interfaces.TagDao; -import se.su.dsv.scipro.data.dao.interfaces.UserDao; -import se.su.dsv.scipro.data.dataobjects.Category; -import se.su.dsv.scipro.data.dataobjects.CommentThread; -import se.su.dsv.scipro.data.dataobjects.Rating; -import se.su.dsv.scipro.data.dataobjects.Recipient; -import se.su.dsv.scipro.data.dataobjects.Resource; -import se.su.dsv.scipro.data.dataobjects.Tag; -import se.su.dsv.scipro.data.enums.RatingValue; -import se.su.dsv.scipro.data.enums.ResourceType; -import se.su.dsv.scipro.knol.resource.model.ResourceModel; -import se.su.dsv.scipro.knol.resource.page.BookmarkableCategoryResourcePage; -import se.su.dsv.scipro.knol.resource.page.BookmarkableResourcePage; -import se.su.dsv.scipro.knol.resource.page.BookmarkableTagResourcePage; -import se.su.dsv.scipro.knol.resource.page.HtmlWebMarkupContainer; -import se.su.dsv.scipro.knol.resource.page.ResourcePage; -import se.su.dsv.scipro.knol.resource.page.StaticImage; -import se.su.dsv.scipro.message.panels.CustomPagingNavigator; -import se.su.dsv.scipro.security.auth.MetaDataActionStrategy; -import se.su.dsv.scipro.security.auth.roles.Roles; -import se.su.dsv.scipro.util.DateFormatter; - -/** - * @author Johan Aschan - aschan@dsv.su.se - * - */ -public class ResourceListPanel extends Panel { - - private static final long serialVersionUID = 1L; - - @SpringBean - private RatingDao ratingDao; - - @SpringBean - private UserDao userDao; - - @SpringBean - private TagDao tagDao; - - @SpringBean - private ResourceDao resourceDao; - - @SpringBean - private CommentThreadDao commentThreadDao; - - @SpringBean - private CategoryDao categoryDao; - - @SpringBean - private RatableDao ratableDao; - - private WebMarkupContainer listContainer; - - private PageableListView<Resource> linkListView; - - private WebMarkupContainer linkDialogContainer, embedDialogContainer, - editLinkDialogContainer, editEmbedDialogContainer; - private Dialog linkDialog, embedDialog, editLinkDialog, editEmbedDialog; - - private int point; - private CustomPagingNavigator pagingNavigator; - private Resource editResource; - private TextField<String> linkAddress; - private TextField<String> linkName; - private TextField<String> linkNameEmbed; - private TextArea<String> info; - private TextArea<String> infoEmbed; - private EditLinkResourceForm editLinkResourceForm; - private EditEmbedResourceForm editEmbedResourceForm; - private TextArea<String> embedTextArea; - private List<Resource> resourcesList; - private ResourceType resourceType; - private ListMultipleChoice<Category> linkEditCategorySelectList, embedEditCategorySelectList; - - public ResourceListPanel(String id, List<Resource> resourceList, - ResourceType resourceType) { - super(id); - this.resourceType = resourceType; - this.resourcesList = resourceList; - listContainer = new WebMarkupContainer("listContainer"); - loadListView(resourceList); - listContainer.add(linkListView); - listContainer.setOutputMarkupId(true); - listContainer.add(pagingNavigator = new CustomPagingNavigator( - "navigator", linkListView) { - - private static final long serialVersionUID = 1L; - - @Override - public boolean isVisible() { - return linkListView.size() > 0; - } - }); - - add(listContainer); - editLinkDialogContainer = new WebMarkupContainer( - "editLinkDialogContainer"); - editLinkDialog = new Dialog("editLinkDialog"); - editLinkDialog.setModal(true); - editLinkDialog.setAutoOpen(false); - editLinkDialog.setWidth(470); - editLinkDialog.add(editLinkDialogContainer); - editLinkDialogContainer.setOutputMarkupId(true); - editLinkDialogContainer - .add(editLinkResourceForm = new EditLinkResourceForm( - "editLinkResourceForm")); - add(editLinkDialog); - - editEmbedDialogContainer = new WebMarkupContainer( - "editEmbedDialogContainer"); - editEmbedDialog = new Dialog("editEmbedDialog"); - editEmbedDialog.setModal(true); - editEmbedDialog.setAutoOpen(false); - editEmbedDialog.setWidth(470); - editEmbedDialog.add(editEmbedDialogContainer); - editEmbedDialogContainer.setOutputMarkupId(true); - editEmbedDialogContainer - .add(editEmbedResourceForm = new EditEmbedResourceForm( - "editEmbedResourceForm")); - add(editEmbedDialog); - - } - - public void loadListView(List<Resource> resourceList) { - if (resourceList == null) { - resourceList = resourceDao.findAll(); - } - listContainer.removeAll(); - Collections.sort(resourceList, new Comparator<Resource>() { - @Override - public int compare(Resource o1, Resource o2) { - return Integer.valueOf(ratableDao.getRating(o2)).compareTo( - Integer.valueOf(ratableDao.getRating(o1))); - } - }); - linkListView = new PageableListView<Resource>("link-item", - resourceList, 20) { - - - private static final long serialVersionUID = 1L; - - @Override - protected void populateItem(final ListItem<Resource> item) { - final Resource resource = resourceDao.reLoad(item - .getModelObject()); - - item.add(new DateFormatter(DateFormatter.FORMAT.EXTENDED).createFormattedDateLabel("date", resource.getDateCreated())); - item.add(new Label("user", resource.getCreator().getFirstName() - + " " + resource.getCreator().getLastName())); - new AddRateButton(item); - if (resource.getHeading() == null) { - item.add(new ExternalLink("link", resource.getLink(), - resource.getLink()) { - /** - * - */ - private static final long serialVersionUID = 1L; - - @Override - public boolean isVisible() { - return resource.getEmbedCode() == null; - } - }); - } else { - item.add(new ExternalLink("link", resource.getLink(), - resource.getHeading()) { - /** - * - */ - private static final long serialVersionUID = 1L; - - @Override - public boolean isVisible() { - return resource.getEmbedCode() == null; - } - }); - } - item.add(new Label("heading", resource.getHeading()) { - /** - * - */ - private static final long serialVersionUID = 1L; - - @Override - public boolean isVisible() { - return resource.getEmbedCode() != null; - } - }); - item.add(new ExternalLink("linkAddress", resource.getLink(), - resource.getLink()) { - /** - * - */ - private static final long serialVersionUID = 1L; - - @Override - public boolean isVisible() { - return resource.getEmbedCode() == null; - } - }); - - item.add(new Label("info", resource.getInfo())); - String tags = ""; - - int count = 0; - for (Tag tag : resource.getTagList()) { - if (count == 0) { - tags = tag.getTag(); - count++; - } else { - tags += ", " + tag.getTag(); - } - } - - final int commentSize; - /* - * TODO Needs rewrite, - */ - CommentThread commentThread = commentThreadDao.getCommentThread(resource); - if(commentThread == null) - commentSize = 0; - else - commentSize = commentThread.getComments().size(); //TODO Implement with query instead - /* - if (commentThreadDao.getCommentThreadByClassAndId(resource - .getClass().getCanonicalName(), resource.getId()) == null) { - commentSize = 0; - } else { - commentSize = commentThreadDao - .getCommentThreadByClassAndId( - resource.getClass().getCanonicalName(), - resource.getId()).getComments().size(); - } - */ - - item.add(new ListView<Category>("category-item", resource.getCategoryList()) { - - /** - * - */ - private static final long serialVersionUID = 1L; - - @Override - protected void populateItem(final ListItem<Category> item) { - final Category category = item.getModelObject(); - List<Category> categoryList = new ArrayList<Category>(); - categoryList.add(category); - item.add(BookmarkableCategoryResourcePage - .getBookmarkablePageLink("tag", categoryList).add( - new Label("tagName", category.getCategoryName()))); - - } - - }); - item.add(new ListView<Tag>("tag-item", resource.getTagList()) { - - /** - * - */ - private static final long serialVersionUID = 1L; - - @Override - protected void populateItem(final ListItem<Tag> item) { - final Tag tag = item.getModelObject(); - List<Tag> tagList = new ArrayList<Tag>(); - tagList.add(tag); - item.add(BookmarkableTagResourcePage - .getBookmarkablePageLink("tag", tagList).add( - new Label("tagName", tag.getTag()))); - - } - - }); - - item.add(BookmarkableResourcePage.getBookmarkablePageLink( - "bookmark", resource)); - String comments = " Comments"; - if (commentSize == 1) { - comments = " Comment"; - } - final Label comment = new Label("commentNumber", commentSize - + comments); - - comment.setOutputMarkupId(true); - final WebMarkupContainer webMarkupContainer = new WebMarkupContainer("container"); - webMarkupContainer.setOutputMarkupPlaceholderTag(true); - item.add(webMarkupContainer); - - CommentThreadPanel ctp = new CommentThreadPanel("commentThread", resource, 5); - ctp.setOutputMarkupPlaceholderTag(true); - webMarkupContainer.add(ctp); - - webMarkupContainer.setVisible(false); - - item.add(new AjaxLink<String>("showComments", - new Model<String>("Show Comments")) { - - /** - * - */ - private static final long serialVersionUID = 1L; - private boolean clicked = false; - - @Override - public void onClick(AjaxRequestTarget target) { - clicked = !clicked; - if (clicked) { - comment.setDefaultModelObject("Hide comments"); - } else { - - CommentThread commentThread = commentThreadDao.getCommentThread(resourceDao.reLoad(resource)); - int commentSize = 0; - if(commentThread != null) - commentSize = commentThread.getComments().size(); - - String comments = " Comments"; - if (commentSize == 1) { - comments = " Comment"; - } - comment.setDefaultModelObject(commentSize + comments); - } - webMarkupContainer.removeAll(); - webMarkupContainer.add(new CommentThreadPanel("commentThread", resourceDao.reLoad(resource), 5)); - webMarkupContainer.setVisible(clicked); - target.addComponent(webMarkupContainer); - target.addComponent(comment); - } - - }.add(comment)); - item.add(new AjaxLink<Void>("deleteResource") { - - /** - * - */ - private static final long serialVersionUID = 1L; - @Override - public void onClick(AjaxRequestTarget target) { - Resource link2 = resourceDao.reLoad(resource); - resourceDao.delete(link2); - if (resourceType.equals(ResourceType.TAGVIEW)) { - resourcesList.remove(link2); - loadListView(resourcesList); - } else { - setResponsePage(ResourcePage.class); - } - listContainer.removeAll(); - listContainer.add(pagingNavigator); - listContainer.add(linkListView); - target.addComponent(listContainer); - - } - - @Override - public boolean isVisible() { - Resource link2 = resourceDao.reLoad(resource); - if (link2.getCreator().equals( - userDao.load(SciProSession.get().getUser() - .getId()))) { - return true; - - } else { - MetaDataActionStrategy.authorize(this, Roles.ADMIN, - true); - return true; - } - } - @Override - protected IAjaxCallDecorator getAjaxCallDecorator() { - return new AjaxCallDecorator() { - private static final long serialVersionUID = 8989126586010432130L; - - /* (non-Javadoc) - * @see org.apache.wicket.ajax.calldecorator.AjaxCallDecorator#decorateScript(java.lang.CharSequence) - */ - @Override - public CharSequence decorateScript(CharSequence script) { - String ret = "if(!confirm('Do you really want to delete?')) return false; " + script; - return ret; - } - }; - } - - }); - - item.add(new AjaxLink<Recipient>("editResource") { - - /** - * - */ - private static final long serialVersionUID = 1L; - - @Override - public void onClick(AjaxRequestTarget target) { - editResource = resourceDao.reLoad(resource); - if (resource.getEmbedCode() == null) { - info.setDefaultModelObject(editResource.getInfo()); - editLinkResourceForm.loadTagView(editResource); - linkEditCategorySelectList.setDefaultModelObject(editResource.getCategoryList()); - linkAddress.setDefaultModelObject(editResource - .getLink()); - linkName.setDefaultModelObject(editResource - .getHeading()); - target.addComponent(editLinkDialog); - editLinkDialog.open(target); - } else { - linkNameEmbed.setDefaultModelObject(editResource - .getHeading()); - infoEmbed.setDefaultModelObject(editResource - .getInfo()); - embedEditCategorySelectList.setDefaultModelObject(editResource.getCategoryList()); - editEmbedResourceForm.loadTagView(editResource); - embedTextArea.setDefaultModelObject(editResource - .getEmbedCode()); - target.addComponent(editEmbedDialog); - editEmbedDialog.open(target); - } - } - - @Override - public boolean isVisible() { - Resource link2 = resourceDao.reLoad(resource); - if (link2.getCreator().equals( - userDao.load(SciProSession.get().getUser() - .getId()))) { - return true; - - } else { - MetaDataActionStrategy.authorize(this, Roles.ADMIN, - true); - return true; - } - } - - }); - item.add(new HtmlWebMarkupContainer("embedCode", resource - .getEmbedCode()) { - /** - * - */ - private static final long serialVersionUID = 1L; - - @Override - public boolean isVisible() { - return resource.getEmbedCode() != null; - } - - }); - }; - - }; - - listContainer.add(linkListView); - - if (pagingNavigator != null) { - listContainer.add(pagingNavigator); - } - } - - private class AddRateButton implements IClusterable { - - /** - * - */ - private static final long serialVersionUID = 1L; - private AjaxLink<String> ajaxLinkUp, ajaxLinkDown; - - public AddRateButton(ListItem<Resource> item) { - super(); - addRateButton(item); - } - - public void addRateButton(final ListItem<Resource> item) { - - final Resource resource = item.getModelObject(); - - final StaticImage upArrowIcon; - final StaticImage upArrowGlowIcon; - final StaticImage downArrowIcon; - final StaticImage downArrowGlowIcon; - if (!resourceType.equals(ResourceType.NORMAL)) { - upArrowIcon = new StaticImage("upLinkIcon", new Model<String>( - "../../../images/icons/arrow-up.png")); - upArrowIcon.add(new AttributeAppender("class", - new Model<String>("icon-32"), " ")); - upArrowIcon.add(new AttributeAppender("alt", new Model<String>( - "up"), " ")); - upArrowGlowIcon = new StaticImage("upLinkIcon", - new Model<String>( - "../../../images/icons/arrow-up-glow.png")); - upArrowGlowIcon.add(new AttributeAppender("class", - new Model<String>("icon-32"), " ")); - upArrowGlowIcon.add(new AttributeAppender("alt", - new Model<String>("up"), " ")); - downArrowIcon = new StaticImage("downLinkIcon", - new Model<String>("../../../images/icons/arrow-down.png")); - downArrowIcon.add(new AttributeAppender("class", - new Model<String>("icon-32"), " ")); - downArrowIcon.add(new AttributeAppender("alt", - new Model<String>("down"), " ")); - downArrowGlowIcon = new StaticImage("downLinkIcon", - new Model<String>( - "../../../images/icons/arrow-down-glow.png")); - downArrowGlowIcon.add(new AttributeAppender("class", - new Model<String>("icon-32"), " ")); - downArrowGlowIcon.add(new AttributeAppender("alt", - new Model<String>("down"), " ")); - } else { - upArrowIcon = new StaticImage("upLinkIcon", new Model<String>( - "images/icons/arrow-up.png")); - upArrowIcon.add(new AttributeAppender("class", - new Model<String>("icon-32"), " ")); - upArrowIcon.add(new AttributeAppender("alt", new Model<String>( - "up"), " ")); - upArrowGlowIcon = new StaticImage("upLinkIcon", - new Model<String>("images/icons/arrow-up-glow.png")); - upArrowGlowIcon.add(new AttributeAppender("class", - new Model<String>("icon-32"), " ")); - upArrowGlowIcon.add(new AttributeAppender("alt", - new Model<String>("up"), " ")); - downArrowIcon = new StaticImage("downLinkIcon", - new Model<String>("images/icons/arrow-down.png")); - downArrowIcon.add(new AttributeAppender("class", - new Model<String>("icon-32"), " ")); - downArrowIcon.add(new AttributeAppender("alt", - new Model<String>("down"), " ")); - downArrowGlowIcon = new StaticImage("downLinkIcon", - new Model<String>("images/icons/arrow-down-glow.png")); - downArrowGlowIcon.add(new AttributeAppender("class", - new Model<String>("icon-32"), " ")); - downArrowGlowIcon.add(new AttributeAppender("alt", - new Model<String>("down"), " ")); - } - - final Label pointLabel; - item.add(pointLabel = new Label("rate", ratableDao - .getRating(resource) + "")); - pointLabel.setOutputMarkupId(true); - ajaxLinkUp = new AjaxLink<String>("upLink", new Model<String>("Up")) { - - /** - * - */ - private static final long serialVersionUID = 1L; - - @Override - public void onClick(AjaxRequestTarget target) { - Resource resourc = resourceDao.reLoad(resource); - List<Rating> ratingList = resourc.getRatingList(); - boolean rated = false; - Rating rating = null; - for (Rating r : ratingList) { - if (r.getUser().equals(SciProSession.get().getUser())) { - rating = r; - rated = true; - break; - } - } - - if (rating == null) { - rating = new Rating(); - rating.setUser(SciProSession.get().getUser()); - } - removeAll(); - if (rated && rating.getRatingValue() == RatingValue.UP) { - ratingList.remove(rating); - resource.setRatingList(ratingList); - resourceDao.save(resource); - rating = ratingDao.reLoad(rating); - ratingDao.delete(rating); - add(upArrowIcon); - } else { - resource.setRatingList(ratingList); - rating.setRatingValue(RatingValue.UP); - rating = ratingDao.save(rating); - ratingList.add(rating); - ajaxLinkDown.removeAll(); - ajaxLinkDown.add(downArrowIcon); - add(upArrowGlowIcon); - - } - resourc = resourceDao.save(resourc); - point = ratableDao.getRating(resourc); - target.addComponent(this); - target.addComponent(ajaxLinkDown); - pointLabel.setDefaultModelObject(point); - target.addComponent(pointLabel); - } - - }; - if (isRated(RatingValue.UP, resource)) - ajaxLinkUp.add(upArrowGlowIcon); - else - ajaxLinkUp.add(upArrowIcon); - - item.add(ajaxLinkUp); - ajaxLinkUp.setOutputMarkupId(true); - - ajaxLinkDown = new AjaxLink<String>("downLink", new Model<String>( - "Down")) { - - /** - * - */ - private static final long serialVersionUID = 1L; - - @Override - public void onClick(AjaxRequestTarget target) { - Resource resourc = resourceDao.reLoad(resource); - List<Rating> ratingList = resourc.getRatingList(); - boolean rated = false; - Rating rating = null; - for (Rating r : ratingList) { - if (r.getUser().equals(SciProSession.get().getUser())) { - rating = r; - rated = true; - break; - } - } - if (rating == null) { - rating = new Rating(); - rating.setUser(SciProSession.get().getUser()); - } - this.removeAll(); - if (rated && rating.getRatingValue() == RatingValue.DOWN) { - ratingList.remove(rating); - resource.setRatingList(ratingList); - resourceDao.save(resourc); - rating = ratingDao.reLoad(rating); - ratingDao.delete(rating); - add(downArrowIcon); - - } else { - rating.setRatingValue(RatingValue.DOWN); - rating = ratingDao.save(rating); - ratingList.add(rating); - add(downArrowGlowIcon); - ajaxLinkUp.removeAll(); - ajaxLinkUp.add(upArrowIcon); - } - - resourc = resourceDao.save(resourc); - point = ratableDao.getRating(resourc); - pointLabel.setDefaultModelObject(point); - target.addComponent(pointLabel); - target.addComponent(this); - target.addComponent(ajaxLinkUp); - } - }; - ajaxLinkDown.setOutputMarkupId(true); - if (isRated(RatingValue.DOWN, resource)) - ajaxLinkDown.add(downArrowGlowIcon); - - else - ajaxLinkDown.add(downArrowIcon); - item.add(ajaxLinkDown); - - } - - public boolean isRated(RatingValue ratingValue, Resource resource) { - for (Rating r : resource.getRatingList()) { - if (r.getUser().equals(SciProSession.get().getUser())) { - if (r.getRatingValue().equals(ratingValue)) { - return true; - } - return false; - - } - } - return false; - } - } - - private class EditLinkResourceForm extends Form<ResourceModel> { - - /** - * - */ - private static final long serialVersionUID = 1L; - private ListView<Tag> tagListView; - private List<Tag> tagList; - private WebMarkupContainer tagListContainer; - - public EditLinkResourceForm(String name) { - super(name, new CompoundPropertyModel<ResourceModel>( - new ResourceModel())); - final WebMarkupContainer feedbackContainer = new WebMarkupContainer( - "feedbackContainer"); - feedbackContainer.setOutputMarkupId(true); - WebMarkupContainer feedbackPanel = new FormFeedbackPanel<ResourceModel>( - "feedbackPanel", this); - feedbackContainer.add(feedbackPanel); - add(feedbackContainer); - loadTagView(editResource); - tagListContainer = new WebMarkupContainer("tagListContainer"); - tagListContainer.setOutputMarkupId(true); - add(tagListContainer); - tagListContainer.add(tagListView); - editLinkDialog.setTitle("Edit Link Resource"); - UrlValidator urlValidator = new UrlValidator(); - linkAddress = new TextField<String>("link"); - linkAddress.add(urlValidator); - - final TextField<String> tags = new TextField<String>("tags"); - linkAddress.setRequired(true); - - add(linkName = new TextField<String>("linkName")); - add(linkAddress); - linkName.setRequired(true); - add(info = new TextArea<String>("info")); - info.setRequired(true); - add(tags); - - IChoiceRenderer<Category> choiceRenderer = new IChoiceRenderer<Category>() { - - /** - * - */ - private static final long serialVersionUID = 1L; - - // Implement dispay here - public Object getDisplayValue(Category category) { - return category.getCategoryName(); - } - - @Override - public String getIdValue(Category category, int arg1) { - return category.getId().toString(); - } - - }; - - linkEditCategorySelectList = new ListMultipleChoice<Category>( - "selectedCategoryCollection", new ListModel<Category>( - categoryDao.findAll()), choiceRenderer) { - private static final long serialVersionUID = -7117603450416845711L; - - }; - - linkEditCategorySelectList.setRequired(true); - linkEditCategorySelectList.setOutputMarkupId(true); - add(linkEditCategorySelectList); - - add(new AjaxButton("submitButton", new Model<String>( - "Save Resource")) { - - /** - * - */ - private static final long serialVersionUID = 1L; - - @Override - protected void onSubmit(AjaxRequestTarget target, Form<?> form) { - editResource = resourceDao.reLoad(editResource); - Resource link = editResource; - ResourceModel resourceModel = ((ResourceModel) form - .getModelObject()); - - String tags = resourceModel.getTags(); - if (tags != null) { - StringTokenizer stringTokenizer = new StringTokenizer( - tags, ","); - - while (stringTokenizer.hasMoreTokens()) { - String tagString = stringTokenizer.nextToken() - .trim(); - if (null != tagDao.findExactTagQuery(tagString)) { - if (!tagList.contains(tagDao - .findExactTagQuery(tagString))) { - tagList.add(tagDao - .findExactTagQuery(tagString)); - } - } else if (!tagString.equals("")) { - Tag tag = new Tag(); - tagString = tagString.toLowerCase(); - tag.setTag(tagString); - - tag = tagDao.save(tag); - tagList.add(tag); - } - - } - } - - link.setInfo(resourceModel.getInfo()); - link.setLink(resourceModel.getLink()); - link.setCreator(SciProSession.get().getUser()); - link.setCategoryList(new ArrayList<Category>(resourceModel.getSelectedCategoryCollection())); - link.setTagList(tagList); - link.setLastModified(new Date()); - if (resourceModel.getLinkName() != null) { - link.setHeading(resourceModel.getLinkName()); - } - resourceDao.save(link); - - resourceModel.setLink(""); - resourceModel.setLinkName(""); - resourceModel.setTags(""); - resourceModel.setInfo(""); - - if (!resourceType.equals(ResourceType.NORMAL)) { - loadListView(resourcesList); - } else { - loadListView(resourceDao.findAll()); - } - - target.addComponent(listContainer); - editLinkDialog.close(target); - } - - @Override - protected void onError(final AjaxRequestTarget target, - final Form<?> form) { - target.addComponent(feedbackContainer); - } - }); - - } - - public void loadTagView(final Resource resource) { - final Resource resource2 = resourceDao.reLoad(resource); - tagList = new ArrayList<Tag>(); - - if (resource2 != null) { - tagList = resource2.getTagList(); - tagListContainer.remove(tagListView); - } - - tagListView = new ListView<Tag>("tag-item", tagList) { - - /** - * - */ - private static final long serialVersionUID = 1L; - - @Override - protected void populateItem(final ListItem<Tag> item) { - final Tag tag = item.getModelObject(); - final WebMarkupContainer tagContainer = new WebMarkupContainer( - "tagContainer"); - tagContainer.setOutputMarkupId(true); - final Label label; - tagContainer.add(label = new Label("tag", tag.getTag())); - label.setOutputMarkupId(true); - - final AjaxLink<Void> deleteLink; - tagContainer - .add(deleteLink = new AjaxLink<Void>("deleteTag") { - - /** - * - */ - private static final long serialVersionUID = 1L; - @Override - public void onClick(AjaxRequestTarget target) { - tagList.remove(tag); - target.addComponent(tagListContainer); - } - @Override - protected IAjaxCallDecorator getAjaxCallDecorator() { - return new AjaxCallDecorator() { - private static final long serialVersionUID = 8989126586010432130L; - - /* (non-Javadoc) - * @see org.apache.wicket.ajax.calldecorator.AjaxCallDecorator#decorateScript(java.lang.CharSequence) - */ - @Override - public CharSequence decorateScript(CharSequence script) { - String ret = "if(!confirm('Do you really want to delete?')) return false; " + script; - return ret; - } - }; - } - }); - deleteLink.setOutputMarkupId(true); - item.add(tagContainer); - } - }; - if (resource2 != null) { - tagListContainer.add(tagListView); - } - - } - } - - private class EditEmbedResourceForm extends Form<ResourceModel> { - - /** - * - */ - private static final long serialVersionUID = 1L; - private ListView<Tag> tagListView; - private List<Tag> tagList; - private WebMarkupContainer tagListContainer; - - public EditEmbedResourceForm(String name) { - super(name, new CompoundPropertyModel<ResourceModel>( - new ResourceModel())); - final WebMarkupContainer feedbackContainer = new WebMarkupContainer( - "feedbackContainer"); - feedbackContainer.setOutputMarkupId(true); - WebMarkupContainer feedbackPanel = new FormFeedbackPanel<ResourceModel>( - "feedbackPanel", this); - feedbackContainer.add(feedbackPanel); - add(feedbackContainer); - loadTagView(editResource); - tagListContainer = new WebMarkupContainer("tagListContainerEmbed"); - tagListContainer.setOutputMarkupId(true); - add(tagListContainer); - tagListContainer.add(tagListView); - editEmbedDialog.setTitle("Edit Embed Resource"); - add(linkNameEmbed = new TextField<String>("linkName")); - linkNameEmbed.setRequired(true); - add(embedTextArea = new TextArea<String>("embedCode")); - embedTextArea.setRequired(true); - add(infoEmbed = new TextArea<String>("info")); - infoEmbed.setRequired(true); - - IChoiceRenderer<Category> choiceRenderer = new IChoiceRenderer<Category>() { - - /** - * - */ - private static final long serialVersionUID = 1L; - - // Implement dispay here - public Object getDisplayValue(Category category) { - return category.getCategoryName(); - } - - @Override - public String getIdValue(Category category, int arg1) { - return category.getId().toString(); - } - - }; - - embedEditCategorySelectList = new ListMultipleChoice<Category>( - "selectedCategoryCollection", new ListModel<Category>( - categoryDao.findAll()), choiceRenderer) { - private static final long serialVersionUID = -7117603450416845711L; - - }; - - embedEditCategorySelectList.setRequired(true); - embedEditCategorySelectList.setOutputMarkupId(true); - add(embedEditCategorySelectList); - - final TextField<String> tags = new TextField<String>("tags"); - add(tags); - - add(new AjaxButton("submitButton", new Model<String>( - "Save Resource")) { - - /** - * - */ - private static final long serialVersionUID = 1L; - - @Override - protected void onSubmit(AjaxRequestTarget target, Form<?> form) { - editResource = resourceDao.reLoad(editResource); - Resource link = editResource; - ResourceModel resourceModel = ((ResourceModel) form - .getModelObject()); - - String tags = resourceModel.getTags(); - if (tags != null) { - StringTokenizer stringTokenizer = new StringTokenizer( - tags, ","); - - while (stringTokenizer.hasMoreTokens()) { - String tagString = stringTokenizer.nextToken() - .trim(); - if (null != tagDao.findExactTagQuery(tagString)) { - if (!tagList.contains(tagDao - .findExactTagQuery(tagString))) { - tagList.add(tagDao - .findExactTagQuery(tagString)); - } - } else if (!tagString.equals("")) { - Tag tag = new Tag(); - tagString = tagString.toLowerCase(); - tag.setTag(tagString); - - tag = tagDao.save(tag); - tagList.add(tag); - } - - } - } - link.setCategoryList(new ArrayList<Category>(resourceModel.getSelectedCategoryCollection())); - link.setHeading(resourceModel.getLinkName()); - link.setEmbedCode(resourceModel.getEmbedCode()); - link.setInfo(resourceModel.getInfo()); - link.setCreator(SciProSession.get().getUser()); - link.setTagList(tagList); - - link.setLastModified(new Date()); - if (resourceModel.getLinkName() != null) { - link.setHeading(resourceModel.getLinkName()); - } - resourceDao.save(link); - - resourceModel.setLink(""); - resourceModel.setLinkName(""); - resourceModel.setTags(""); - resourceModel.setInfo(""); - - if (!resourceType.equals(ResourceType.NORMAL)) { - loadListView(resourcesList); - } else { - loadListView(resourceDao.findAll()); - } - - target.addComponent(listContainer); - editEmbedDialog.close(target); - } - - @Override - protected void onError(final AjaxRequestTarget target, - final Form<?> form) { - target.addComponent(feedbackContainer); - } - }); - - } - - public void loadTagView(final Resource resource) { - final Resource resource2 = resourceDao.reLoad(resource); - tagList = new ArrayList<Tag>(); - - if (resource2 != null) { - tagList = resource2.getTagList(); - tagListContainer.remove(tagListView); - } - - tagListView = new ListView<Tag>("tag-embed-item", tagList) { - - /** - * - */ - private static final long serialVersionUID = 1L; - - @Override - protected void populateItem(final ListItem<Tag> item) { - final Tag tag = item.getModelObject(); - final WebMarkupContainer tagContainer = new WebMarkupContainer( - "tagEmbedContainer"); - tagContainer.setOutputMarkupId(true); - tagContainer.add(new Label("tagEmbed", tag.getTag())); - tagContainer.add(new AjaxLink<Void>("deleteTagEmbed") { - - /** - * - */ - private static final long serialVersionUID = 1L; - @Override - public void onClick(AjaxRequestTarget target) { - tagList.remove(tag); - target.addComponent(tagListContainer); - } - @Override - protected IAjaxCallDecorator getAjaxCallDecorator() { - return new AjaxCallDecorator() { - private static final long serialVersionUID = 8989126586010432130L; - - /* (non-Javadoc) - * @see org.apache.wicket.ajax.calldecorator.AjaxCallDecorator#decorateScript(java.lang.CharSequence) - */ - @Override - public CharSequence decorateScript(CharSequence script) { - String ret = "if(!confirm('Do you really want to delete?')) return false; " + script; - return ret; - } - }; - } - }); - item.add(tagContainer); - } - }; - if (resource2 != null) { - tagListContainer.add(tagListView); - } - - } - } - -} diff --git a/src/main/java/se/su/dsv/scipro/knol/resource/panels/ResourceListPanel.properties b/src/main/java/se/su/dsv/scipro/knol/resource/panels/ResourceListPanel.properties deleted file mode 100644 index dcc105770c..0000000000 --- a/src/main/java/se/su/dsv/scipro/knol/resource/panels/ResourceListPanel.properties +++ /dev/null @@ -1,11 +0,0 @@ -editLinkDialog.editLinkDialogContainer.editLinkResourceForm.link=Link Address -editLinkDialog.editLinkDialogContainer.editLinkResourceForm.linkName=Link Name -editLinkDialog.editLinkDialogContainer.editLinkResourceForm.info=Info -editLinkDialog.editLinkDialogContainer.editLinkResourceForm.tags=Tags -editLinkDialog.editLinkDialogContainer.editLinkResourceForm.selectedCategoryCollection=Categories -editEmbedDialog.editEmbedDialogContainer.editEmbedResourceForm.linkName=Heading -editEmbedDialog.editEmbedDialogContainer.editEmbedResourceForm.embedCode=Embed Code -editEmbedDialog.editEmbedDialogContainer.editEmbedResourceForm.info=Info -editEmbedDialog.editEmbedDialogContainer.editEmbedResourceForm.tags=Tags -editEmbedDialog.editEmbedDialogContainer.editEmbedResourceForm.selectedCategoryCollection=Categories -Required='${label}' is required \ No newline at end of file diff --git a/src/main/java/se/su/dsv/scipro/knol/resource/panels/ResourcesPanel.html b/src/main/java/se/su/dsv/scipro/knol/resource/panels/ResourcesPanel.html deleted file mode 100644 index 53444cecd4..0000000000 --- a/src/main/java/se/su/dsv/scipro/knol/resource/panels/ResourcesPanel.html +++ /dev/null @@ -1,170 +0,0 @@ -<!DOCTYPE html> -<html xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd"> -<body> -<wicket:panel> - - - <h2>Resources</h2> - <div><a href="#" wicket:id="addLinkResource">Add Link Resource</a></div> - <div><a href="#" wicket:id="addEmbedResource">Add Embed Resource</a></div> - <div><a href="#" wicket:id="addCategories">Add Categories</a></div> - <div><a href="#" wicket:id="adminCategories">Edit Categories</a></div> - - <div wicket:id="container"> - <div wicket:id="resourceListPanel"></div> - </div> - <div wicket:id="dialog"> - <div wicket:id="dialogContainer"> - <form wicket:id="resourceForm"> - <div wicket:id="feedbackContainer" class ="span-8 last"> - <div wicket:id="feedbackPanel"> - </div> - </div> - <div class ="span-6 last"> - <strong>Link Name:</strong> - </div> - <div class ="span-6 last"> - <input type="text" wicket:id="linkName" class ="span-6"/> - </div> - <div class ="span-6 last"> - <strong>Link Address:</strong> - </div> - <div class ="span-6 last"> - <input type="text" wicket:id="link" class ="span-6" /> - </div> - <div class ="span-6 last"> - <strong>Info:</strong> - </div> - <div class ="span-6 last"> - <textarea wicket:id="info" ></textarea> - </div> - <div class ="span-6 last"> - <strong>Categories:</strong> - </div> - <div class ="span-6 last"> - <select wicket:id="selectedCategoryCollection" class ="span-8 last"></select> - </div> - <div class ="span-6 last"> - <strong>Tags:</strong> - </div> - <div class ="span-6 last"> - Separate by comma. - </div> - <div class ="span-6 last"> - <input type="text" wicket:id="tags" class ="span-6" /> - </div> - <div class ="span-6 last"><input type="submit" wicket:id="submitButton" /> </div> - </form> - </div> - </div> - <div wicket:id="embedDialog"> - <div wicket:id="embedDialogContainer"> - <form wicket:id="embedResourceForm"> - <div wicket:id="feedbackContainer" class ="span-8 last"> - <div wicket:id="feedbackPanel"></div> - </div> - <div class ="span-6 last"> - <strong>Heading:</strong> - </div> - <div class ="span-6 last"> - <input type="text" wicket:id="linkName" class ="span-6"/> - </div> - <div class ="span-6 last"> - <strong>Embed Code:</strong> - </div> - <div class ="span-8 last"> - Disclaimer: no security checks at the moment. - </div> - <div class ="span-6 last"> - <textarea wicket:id="embedCode" ></textarea> - </div> - <div class ="span-6 last"> - <strong>Info:</strong> - </div> - <div class ="span-6 last"> - <textarea wicket:id="info" ></textarea> - </div> - <div class ="span-6 last"> - <strong>Categories:</strong> - </div> - <div class ="span-6 last"> - <select wicket:id="selectedCategoryCollection" class ="span-8 last"></select> - </div> - <div class ="span-6 last"> - <strong>Tags:</strong> - </div> - <div class ="span-6 last"> - Separate by comma. - </div> - <div class ="span-6 last"> - <input type="text" wicket:id="tags" class ="span-6" /> - </div> - <div class ="span-6 last"><input type="submit" wicket:id="submitButton" /> </div> - </form> - </div> - </div> - - <div wicket:id="adminCategoriesDialog"> - <div wicket:id="adminCategoriesContainer"> - <form wicket:id="adminCategoriesForm"> - <div wicket:id="feedbackContainer" class ="span-8 last"> - <div wicket:id="feedbackPanel"></div> - </div> - <div class ="span-6 last"> - <strong>Categories:</strong> - </div> - <div class ="span-8 last"> - <select wicket:id="selectedCategory" class ="span-8 last"></select> - </div> - <div class ="span-6 last"> - <strong>Category Name:</strong> - </div> - <div class ="span-6 last"> - <input type="text" wicket:id="categoryName" class ="span-6" /> - </div> - <div> - - </div> - <div class ="span-6 last"> - <input type="submit" wicket:id="editButton" /> - <input type="submit" wicket:id="deleteCategory" /> - </div> - <div class ="span-6 last"> - <input type="submit" wicket:id="closeButton" /> - </div> - </form> - </div> - </div> - - <div wicket:id="addCategoriesDialog"> - <div wicket:id="addCategoriesContainer"> - <form wicket:id="addCategoriesForm"> - <div wicket:id="feedbackContainer" class ="span-8 last"> - <div wicket:id="feedbackPanel"></div> - </div> - <div class ="span-6 last"> - <strong>Categories:</strong> - </div> - <div class ="span-8 last"> - <select wicket:id="selectedCategory" class ="span-8 last"></select> - </div> - <div class ="span-6 last"> - <strong>Category Name:</strong> - </div> - <div class ="span-6 last"> - <input type="text" wicket:id="categoryName" class ="span-6" /> - </div> - - <div class ="span-6 last"><input type="submit" wicket:id="addButton" /> - </div> - <div class ="span-6 last"> - <input type="submit" wicket:id="closeButton" /> - </div> - </form> - </div> - </div> - -</wicket:panel> - -</body> -</html> \ No newline at end of file diff --git a/src/main/java/se/su/dsv/scipro/knol/resource/panels/ResourcesPanel.java b/src/main/java/se/su/dsv/scipro/knol/resource/panels/ResourcesPanel.java deleted file mode 100644 index 02a0fbeb6d..0000000000 --- a/src/main/java/se/su/dsv/scipro/knol/resource/panels/ResourcesPanel.java +++ /dev/null @@ -1,749 +0,0 @@ -/** - * - */ -package se.su.dsv.scipro.knol.resource.panels; - -import java.util.ArrayList; -import java.util.List; -import java.util.StringTokenizer; - -import org.apache.wicket.ajax.AjaxRequestTarget; -import org.apache.wicket.ajax.IAjaxCallDecorator; -import org.apache.wicket.ajax.calldecorator.AjaxCallDecorator; -import org.apache.wicket.ajax.form.OnChangeAjaxBehavior; -import org.apache.wicket.ajax.markup.html.AjaxLink; -import org.apache.wicket.ajax.markup.html.form.AjaxButton; -import org.apache.wicket.markup.html.WebMarkupContainer; -import org.apache.wicket.markup.html.form.Form; -import org.apache.wicket.markup.html.form.IChoiceRenderer; -import org.apache.wicket.markup.html.form.ListChoice; -import org.apache.wicket.markup.html.form.ListMultipleChoice; -import org.apache.wicket.markup.html.form.TextArea; -import org.apache.wicket.markup.html.form.TextField; -import org.apache.wicket.markup.html.panel.Panel; -import org.apache.wicket.model.CompoundPropertyModel; -import org.apache.wicket.model.Model; -import org.apache.wicket.model.util.ListModel; -import org.apache.wicket.spring.injection.annot.SpringBean; -import org.apache.wicket.validation.validator.UrlValidator; -import org.odlabs.wiquery.core.javascript.JsScopeContext; -import org.odlabs.wiquery.ui.core.JsScopeUiEvent; -import org.odlabs.wiquery.ui.dialog.Dialog; - -import se.su.dsv.scipro.SciProSession; -import se.su.dsv.scipro.components.FormFeedbackPanel; -import se.su.dsv.scipro.data.dao.interfaces.CategoryDao; -import se.su.dsv.scipro.data.dao.interfaces.ResourceDao; -import se.su.dsv.scipro.data.dao.interfaces.TagDao; -import se.su.dsv.scipro.data.dataobjects.Category; -import se.su.dsv.scipro.data.dataobjects.Resource; -import se.su.dsv.scipro.data.dataobjects.Tag; -import se.su.dsv.scipro.data.enums.ResourceType; -import se.su.dsv.scipro.knol.resource.model.CategoryModel; -import se.su.dsv.scipro.knol.resource.model.ResourceModel; -import se.su.dsv.scipro.knol.resource.page.ResourcePage; -import se.su.dsv.scipro.security.auth.MetaDataActionStrategy; -import se.su.dsv.scipro.security.auth.roles.Roles; - -/** - * @author Johan Aschan - aschan@dsv.su.se - * - */ -public class ResourcesPanel extends Panel { - - private static final long serialVersionUID = 1L; - - @SpringBean - private TagDao tagDao; - - @SpringBean - private ResourceDao resourceDao; - - @SpringBean - private CategoryDao categoryDao; - - private WebMarkupContainer linkDialogContainer, embedDialogContainer, - editCategoriesContainer, container, addCategoriesContainer; - private Dialog linkDialog, embedDialog, editCategoriesDialog, - addCategoriesDialog; - - private TextField<String> linkNameEmbed; - private ResourceListPanel resourceListPanel; - - public ResourcesPanel(String id) { - super(id); - container = new WebMarkupContainer("container"); - container.setOutputMarkupId(true); - container - .add(resourceListPanel = new ResourceListPanel( - "resourceListPanel", resourceDao.findAll(), - ResourceType.NORMAL)); - add(container); - resourceListPanel.setOutputMarkupId(true); - linkDialogContainer = new WebMarkupContainer("dialogContainer"); - linkDialog = new Dialog("dialog"); - linkDialog.setModal(true); - linkDialog.setAutoOpen(false); - linkDialog.setWidth(470); - linkDialog.add(linkDialogContainer); - add(linkDialog); - linkDialogContainer.setOutputMarkupId(true); - linkDialogContainer.add(new AddLinkResourceForm("resourceForm")); - - embedDialogContainer = new WebMarkupContainer("embedDialogContainer"); - embedDialog = new Dialog("embedDialog"); - embedDialog.setModal(true); - embedDialog.setAutoOpen(false); - embedDialog.setWidth(470); - embedDialog.add(embedDialogContainer); - add(embedDialog); - embedDialogContainer.setOutputMarkupId(true); - embedDialogContainer.add(new AddEmbedResourceForm("embedResourceForm")); - - editCategoriesContainer = new WebMarkupContainer( - "adminCategoriesContainer"); - editCategoriesDialog = new Dialog("adminCategoriesDialog"); - editCategoriesDialog.setModal(true); - editCategoriesDialog.setAutoOpen(false); - editCategoriesDialog.setWidth(470); - // editCategoriesDialog.setHeight(340); - editCategoriesDialog.setCloseEvent(new JsScopeUiEvent() { - - private static final long serialVersionUID = 1L; - - @Override - protected void execute(JsScopeContext scopeContext) { - scopeContext.append("window.location.reload()"); - - } - }); - editCategoriesDialog.add(editCategoriesContainer); - add(editCategoriesDialog); - editCategoriesContainer.setOutputMarkupId(true); - editCategoriesContainer.add(new EditCategoriesForm( - "adminCategoriesForm")); - - addCategoriesContainer = new WebMarkupContainer( - "addCategoriesContainer"); - addCategoriesDialog = new Dialog("addCategoriesDialog"); - addCategoriesDialog.setModal(true); - addCategoriesDialog.setAutoOpen(false); - addCategoriesDialog.setWidth(470); - // addCategoriesDialog.setHeight(340); - addCategoriesDialog.setCloseEvent(new JsScopeUiEvent() { - - private static final long serialVersionUID = 1L; - - @Override - protected void execute(JsScopeContext scopeContext) { - scopeContext.append("window.location.reload()"); - - } - }); - addCategoriesDialog.add(addCategoriesContainer); - add(addCategoriesDialog); - addCategoriesContainer.setOutputMarkupId(true); - addCategoriesContainer.add(new AddCategoriesForm("addCategoriesForm")); - - add(new AjaxLink<String>("addLinkResource", new Model<String>( - "Add Link Resource")) { - - - private static final long serialVersionUID = 1L; - - @Override - public void onClick(AjaxRequestTarget target) { - target.addComponent(linkDialog); - linkDialog.open(target); - } - }); - - add(new AjaxLink<String>("addEmbedResource", new Model<String>( - "Add Link Resource")) { - - - private static final long serialVersionUID = 1L; - - @Override - public void onClick(AjaxRequestTarget target) { - target.addComponent(embedDialog); - embedDialog.open(target); - } - - @Override - public boolean isVisible(){ - return false; //TODO Made invisible for initial deployment because it allows dangerous code to be pasted - } - }); - AjaxLink<String> editCategories, addCategories; - add(editCategories = new AjaxLink<String>("adminCategories") { - - private static final long serialVersionUID = 1L; - - @Override - public void onClick(AjaxRequestTarget target) { - target.addComponent(editCategoriesDialog); - editCategoriesDialog.open(target); - } - - }); - - add(addCategories = new AjaxLink<String>("addCategories") { - - private static final long serialVersionUID = 1L; - - @Override - public void onClick(AjaxRequestTarget target) { - target.addComponent(addCategoriesDialog); - addCategoriesDialog.open(target); - } - }); - MetaDataActionStrategy.authorize(editCategories, Roles.ADMIN, true); - MetaDataActionStrategy.authorize(addCategories, Roles.ADMIN, true); - } - - private class AddLinkResourceForm extends Form<ResourceModel> { - - private static final long serialVersionUID = 1L; - - public AddLinkResourceForm(String name) { - super(name, new CompoundPropertyModel<ResourceModel>( - new ResourceModel())); - final WebMarkupContainer feedbackContainer = new WebMarkupContainer( - "feedbackContainer"); - feedbackContainer.setOutputMarkupId(true); - WebMarkupContainer feedbackPanel = new FormFeedbackPanel<ResourceModel>( - "feedbackPanel", this); - feedbackContainer.add(feedbackPanel); - add(feedbackContainer); - linkDialog.setTitle("Add Link Resource"); - - final TextArea<String> info; - final TextField<String> linkName; - UrlValidator urlValidator = new UrlValidator(); - final TextField<String> linkAddress = new TextField<String>("link"); - linkAddress.add(urlValidator); - final TextField<String> tags = new TextField<String>("tags"); - tags.setRequired(true); - linkAddress.setRequired(true); - - add(linkName = new TextField<String>("linkName")); - add(linkAddress); - add(info = new TextArea<String>("info")); - info.setRequired(true); - - IChoiceRenderer<Category> choiceRenderer = new IChoiceRenderer<Category>() { - - private static final long serialVersionUID = 1L; - - // Implement dispay here - public Object getDisplayValue(Category category) { - return category.getCategoryName(); - } - - @Override - public String getIdValue(Category category, int arg1) { - return category.getId().toString(); - } - - }; - - final ListMultipleChoice<Category> categorySelectList = new ListMultipleChoice<Category>( - "selectedCategoryCollection", new ListModel<Category>( - categoryDao.findAll()), choiceRenderer) { - private static final long serialVersionUID = -7117603450416845711L; - - }; - - categorySelectList.setRequired(true); - categorySelectList.setOutputMarkupId(true); - add(categorySelectList); - - add(tags); - - linkName.setRequired(true); - add(new AjaxButton("submitButton", new Model<String>( - "Save Resource")) { - - - private static final long serialVersionUID = 1L; - - @Override - protected void onSubmit(AjaxRequestTarget target, Form<?> form) { - Resource link = new Resource(); - ResourceModel resourceModel = ((ResourceModel) form - .getModelObject()); - - String tags = resourceModel.getTags(); - - List<Tag> tagList = new ArrayList<Tag>(); - if (tags != null) { - StringTokenizer stringTokenizer = new StringTokenizer( - tags, ","); - - while (stringTokenizer.hasMoreTokens()) { - String tagString = stringTokenizer.nextToken() - .trim(); - if (null != tagDao.findExactTagQuery(tagString)) { - tagList.add(tagDao.findExactTagQuery(tagString)); - } else if (!tagString.equals("")) { - Tag tag = new Tag(); - tagString = tagString.toLowerCase(); - tag.setTag(tagString); - - tag = tagDao.save(tag); - tagList.add(tag); - } - - } - } - link.setCategoryList(new ArrayList<Category>(resourceModel - .getSelectedCategoryCollection())); - link.setInfo(resourceModel.getInfo()); - link.setLink(resourceModel.getLink()); - link.setCreator(SciProSession.get().getUser()); - link.setTagList(tagList); - if (resourceModel.getLinkName() != null) { - link.setHeading(resourceModel.getLinkName()); - } - resourceDao.save(link); - resourceModel.setLink(""); - resourceModel.setLinkName(""); - resourceModel.setTags(""); - resourceModel.setInfo(""); - linkDialog.close(target); - setResponsePage(ResourcePage.class); - } - - @Override - protected void onError(final AjaxRequestTarget target, - final Form<?> form) { - target.addComponent(feedbackContainer); - } - }); - - } - } - - private class AddEmbedResourceForm extends Form<ResourceModel> { - - private static final long serialVersionUID = 1L; - - public AddEmbedResourceForm(String name) { - super(name, new CompoundPropertyModel<ResourceModel>( - new ResourceModel())); - final WebMarkupContainer feedbackContainer = new WebMarkupContainer( - "feedbackContainer"); - feedbackContainer.setOutputMarkupId(true); - - WebMarkupContainer feedbackPanel = new FormFeedbackPanel<ResourceModel>( - "feedbackPanel", this); - feedbackContainer.add(feedbackPanel); - add(feedbackContainer); - - embedDialog.setTitle("Add Embed Resource"); - add(linkNameEmbed = new TextField<String>("linkName")); - linkNameEmbed.setRequired(true); - final TextArea<String> embedTextArea; - add(embedTextArea = new TextArea<String>("embedCode")); - embedTextArea.setRequired(true); - final TextArea<String> info; - add(info = new TextArea<String>("info")); - info.setRequired(true); - final TextField<String> tags = new TextField<String>("tags"); - tags.setRequired(true); - - IChoiceRenderer<Category> choiceRenderer = new IChoiceRenderer<Category>() { - - private static final long serialVersionUID = 1L; - - // Implement dispay here - public Object getDisplayValue(Category category) { - return category.getCategoryName(); - } - - @Override - public String getIdValue(Category category, int arg1) { - return category.getId().toString(); - } - - }; - - final ListMultipleChoice<Category> categorySelectList = new ListMultipleChoice<Category>( - "selectedCategoryCollection", new ListModel<Category>( - categoryDao.findAll()), choiceRenderer) { - private static final long serialVersionUID = -7117603450416845711L; - - }; - - categorySelectList.setRequired(true); - categorySelectList.setOutputMarkupId(true); - add(categorySelectList); - add(tags); - - add(new AjaxButton("submitButton", new Model<String>( - "Save Resource")) { - - - private static final long serialVersionUID = 1L; - - @Override - protected void onSubmit(AjaxRequestTarget target, Form<?> form) { - Resource link; - - link = new Resource(); - - ResourceModel resourceModel = ((ResourceModel) form - .getModelObject()); - - String tags = resourceModel.getTags(); - - List<Tag> tagList = new ArrayList<Tag>(); - if (tags != null) { - StringTokenizer stringTokenizer = new StringTokenizer( - tags, ","); - - while (stringTokenizer.hasMoreTokens()) { - String tagString = stringTokenizer.nextToken() - .trim(); - if (null != tagDao.findExactTagQuery(tagString)) { - tagList.add(tagDao.findExactTagQuery(tagString)); - } else if (!tagString.equals("")) { - Tag tag = new Tag(); - tagString = tagString.toLowerCase(); - tag.setTag(tagString); - - tag = tagDao.save(tag); - tagList.add(tag); - } - - } - } - link.setHeading(resourceModel.getLinkName()); - link.setEmbedCode(resourceModel.getEmbedCode()); - link.setInfo(resourceModel.getInfo()); - link.setCategoryList(new ArrayList<Category>(resourceModel - .getSelectedCategoryCollection())); - link.setCreator(SciProSession.get().getUser()); - link.setTagList(tagList); - if (resourceModel.getLinkName() != null) { - link.setHeading(resourceModel.getLinkName()); - } - resourceDao.save(link); - - resourceModel.setLink(""); - resourceModel.setLinkName(""); - resourceModel.setTags(""); - resourceModel.setInfo(""); - embedDialog.close(target); - setResponsePage(ResourcePage.class); - } - - @Override - protected void onError(final AjaxRequestTarget target, - final Form<?> form) { - target.addComponent(feedbackContainer); - } - }); - - } - - } - - private class EditCategoriesForm extends Form<CategoryModel> { - - private static final long serialVersionUID = 1L; - private Category category; - - public EditCategoriesForm(String name) { - super(name, new CompoundPropertyModel<CategoryModel>( - new CategoryModel())); - final WebMarkupContainer feedbackContainer = new WebMarkupContainer( - "feedbackContainer"); - feedbackContainer.setOutputMarkupId(true); - WebMarkupContainer feedbackPanel = new FormFeedbackPanel<CategoryModel>( - "feedbackPanel", this); - feedbackContainer.add(feedbackPanel); - add(feedbackContainer); - - editCategoriesDialog.setTitle("Edit Categories"); - final TextField<String> categoryName = new TextField<String>( - "categoryName"); - add(categoryName); - IChoiceRenderer<Category> choiceRenderer = new IChoiceRenderer<Category>() { - - private static final long serialVersionUID = 1L; - - // Implement dispay here - public Object getDisplayValue(Category category) { - return category.getCategoryName(); - } - - @Override - public String getIdValue(Category category, int arg1) { - return category.getId().toString(); - } - - }; - - final ListChoice<Category> categorySelectList = new ListChoice<Category>( - "selectedCategory", new ListModel<Category>( - categoryDao.findAll()), choiceRenderer) { - - private static final long serialVersionUID = 1L; - - @Override - protected CharSequence getDefaultChoice(Object selected) { - return ""; - } - - }; - - categorySelectList.setOutputMarkupId(true); - - OnChangeAjaxBehavior userSelectBehaviour = new OnChangeAjaxBehavior() { - - private static final long serialVersionUID = 3412906970812300312L; - - @Override - protected void onUpdate(AjaxRequestTarget target) { - category = categoryDao.reLoad(getModelObject() - .getCategory()); - if (category != null) { - getModelObject().setCategoryName( - category.getCategoryName()); - target.addComponent(editCategoriesContainer); - } - } - }; - - add(new AjaxButton("deleteCategory", new Model<String>( - "Delete Category")) { - - - private static final long serialVersionUID = 1L; - - @Override - protected void onSubmit(AjaxRequestTarget target, Form<?> form) { - if (category != null) { - category = categoryDao.reLoad(category); - for (Resource resource : resourceDao - .findResourcesByCategory(category)) { - - List<Category> categoryList = resource - .getCategoryList(); - categoryList.remove(category); - resource.setCategoryList(categoryList); - resourceDao.save(resource); - } - categoryDao.delete(category); - - categorySelectList.setChoices(categoryDao.findAll()); - EditCategoriesForm.this.getModelObject() - .setCategoryName(""); - target.addComponent(editCategoriesContainer); - info("Category deleted"); - } else { - error("No category selected"); - } - } - - @Override - protected IAjaxCallDecorator getAjaxCallDecorator() { - return new AjaxCallDecorator() { - private static final long serialVersionUID = 8989126586010432130L; - - /* - * (non-Javadoc) - * - * @see - * org.apache.wicket.ajax.calldecorator.AjaxCallDecorator - * #decorateScript(java.lang.CharSequence) - */ - @Override - public CharSequence decorateScript(CharSequence script) { - String ret = "if(!confirm('Do you really want to delete?')) return false; " - + script; - return ret; - } - }; - } - - @Override - protected void onError(final AjaxRequestTarget target, - final Form<?> form) { - target.addComponent(feedbackContainer); - } - }); - categorySelectList.add(userSelectBehaviour); - add(categorySelectList); - - add(new AjaxButton("editButton", new Model<String>("Save Edit")) { - - - private static final long serialVersionUID = 1L; - - @Override - protected void onSubmit(AjaxRequestTarget target, Form<?> form) { - if (category == null) { - error("No category selected"); - } else if (EditCategoriesForm.this.getModelObject() - .getCategoryName() == null) { - error("Category must have a name"); - } else if (categoryDao - .reLoad(category) - .getCategoryName() - .equals(EditCategoriesForm.this.getModelObject() - .getCategoryName())) { - error("No change"); - } else { - category = categoryDao.reLoad(category); - category.setCategoryName(EditCategoriesForm.this - .getModelObject().getCategoryName()); - categoryDao.save(category); - info("Category changed"); - categorySelectList.setChoices(categoryDao.findAll()); - target.addComponent(editCategoriesContainer); - } - } - - @Override - protected void onError(final AjaxRequestTarget target, - final Form<?> form) { - target.addComponent(feedbackContainer); - } - - }); - - add(new AjaxButton("closeButton", new Model<String>("Close")) { - - private static final long serialVersionUID = 1L; - - @Override - protected void onSubmit(AjaxRequestTarget target, Form<?> form) { - editCategoriesDialog.close(target); - setResponsePage(ResourcePage.class); - } - - @Override - protected void onError(final AjaxRequestTarget target, - final Form<?> form) { - target.addComponent(feedbackContainer); - } - }); - - } - } - - private class AddCategoriesForm extends Form<CategoryModel> { - - private static final long serialVersionUID = 1L; - - public AddCategoriesForm(String name) { - super(name, new CompoundPropertyModel<CategoryModel>( - new CategoryModel())); - final WebMarkupContainer feedbackContainer = new WebMarkupContainer( - "feedbackContainer"); - feedbackContainer.setOutputMarkupId(true); - WebMarkupContainer feedbackPanel = new FormFeedbackPanel<CategoryModel>( - "feedbackPanel", this); - feedbackContainer.add(feedbackPanel); - add(feedbackContainer); - - addCategoriesDialog.setTitle("Add Categories"); - final TextField<String> categoryName = new TextField<String>( - "categoryName"); - add(categoryName); - IChoiceRenderer<Category> choiceRenderer = new IChoiceRenderer<Category>() { - - private static final long serialVersionUID = 1L; - - // Implement dispay here - public Object getDisplayValue(Category category) { - return category.getCategoryName(); - } - - @Override - public String getIdValue(Category category, int arg1) { - return category.getId().toString(); - } - - }; - - final ListChoice<Category> categorySelectList = new ListChoice<Category>( - "selectedCategory", new ListModel<Category>( - categoryDao.findAll()), choiceRenderer) { - - private static final long serialVersionUID = 1L; - - @Override - protected CharSequence getDefaultChoice(Object selected) { - return ""; - } - - }; - - categorySelectList.setOutputMarkupId(true); - - add(categorySelectList); - - add(new AjaxButton("addButton", new Model<String>("Add Category")) { - - - private static final long serialVersionUID = 1L; - - @Override - protected void onSubmit(AjaxRequestTarget target, Form<?> form) { - CategoryModel categoryModel = (CategoryModel) form - .getModelObject(); - - if (categoryModel.getCategoryName() == null) { - error("Category must have a name"); - } else { - Category category = categoryDao - .findExactCategoryQuery(categoryModel - .getCategoryName()); - if (category == null) { - Category cat = new Category(); - cat.setCategoryName(categoryModel.getCategoryName()); - categoryDao.save(cat); - categorySelectList - .setChoices(categoryDao.findAll()); - AddCategoriesForm.this.getModelObject() - .setCategoryName(""); - target.addComponent(addCategoriesContainer); - info("Category added"); - } else { - error("Category already exists"); - } - } - } - - @Override - protected void onError(final AjaxRequestTarget target, - final Form<?> form) { - target.addComponent(feedbackContainer); - } - }); - - add(new AjaxButton("closeButton", new Model<String>("Close")) { - - private static final long serialVersionUID = 1L; - - @Override - protected void onSubmit(AjaxRequestTarget target, Form<?> form) { - addCategoriesDialog.close(target); - setResponsePage(ResourcePage.class); - } - - @Override - protected void onError(final AjaxRequestTarget target, - final Form<?> form) { - target.addComponent(feedbackContainer); - } - }); - - } - - } -} diff --git a/src/main/java/se/su/dsv/scipro/knol/resource/panels/ResourcesPanel.properties b/src/main/java/se/su/dsv/scipro/knol/resource/panels/ResourcesPanel.properties deleted file mode 100644 index 24c5640321..0000000000 --- a/src/main/java/se/su/dsv/scipro/knol/resource/panels/ResourcesPanel.properties +++ /dev/null @@ -1,11 +0,0 @@ -dialog.dialogContainer.resourceForm.link=Link Address -dialog.dialogContainer.resourceForm.linkName=Link Name -dialog.dialogContainer.resourceForm.info=Info -dialog.dialogContainer.resourceForm.tags=Tags -dialog.dialogContainer.resourceForm.selectedCategoryCollection = Categories -embedDialog.embedDialogContainer.embedResourceForm.linkName=Heading -embedDialog.embedDialogContainer.embedResourceForm.embedCode=Embed Code -embedDialog.embedDialogContainer.embedResourceForm.info=Info -embedDialog.embedDialogContainer.embedResourceForm.tags=Tags -embedDialog.embedDialogContainer.embedResourceForm.selectedCategoryCollection=Categories -Required='${label}' is required \ No newline at end of file