delete all projects
This commit is contained in:
parent
30d764f8a5
commit
4f67c632d0
@ -0,0 +1,60 @@
|
||||
/*
|
||||
*
|
||||
* Copyright 2010, Google Inc. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are permitted
|
||||
* provided that the following conditions are met:
|
||||
*
|
||||
* Redistributions of source code must retain the above copyright notice, this list of conditions
|
||||
* and the following disclaimer. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the documentation and/or other
|
||||
* materials provided with the distribution. Neither the name of Google Inc. nor the names of its
|
||||
* contributors may be used to endorse or promote products derived from this software without
|
||||
* specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
|
||||
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
|
||||
* WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
|
||||
package com.google.refine.commands.project;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import com.google.refine.ProjectManager;
|
||||
import com.google.refine.commands.Command;
|
||||
|
||||
public class DeleteAllProjectsCommand extends Command {
|
||||
|
||||
@Override
|
||||
public void doPost(HttpServletRequest request, HttpServletResponse response)
|
||||
throws ServletException, IOException {
|
||||
response.setHeader("Content-Type", "application/json");
|
||||
|
||||
try {
|
||||
String projectsParam = request.getParameter("projects");
|
||||
|
||||
String[] projects = projectsParam.split(",");
|
||||
if (projects.length > 1) {
|
||||
for (int i = 1; i < projects.length; i++) {
|
||||
long projectID = Long.parseLong(projects[i]);
|
||||
ProjectManager.singleton.deleteProject(projectID);
|
||||
}
|
||||
}
|
||||
respond(response, "{ \"code\" : \"ok\" }");
|
||||
|
||||
} catch (Exception e) {
|
||||
respondException(response, e);
|
||||
}
|
||||
}
|
||||
}
|
@ -71,6 +71,7 @@ function registerCommands() {
|
||||
RS.registerCommand(module, "set-metaData", new Packages.com.google.refine.commands.project.SetProjectMetadataCommand());
|
||||
|
||||
RS.registerCommand(module, "delete-project", new Packages.com.google.refine.commands.project.DeleteProjectCommand());
|
||||
RS.registerCommand(module, "delete-all-projects", new Packages.com.google.refine.commands.project.DeleteAllProjectsCommand());
|
||||
RS.registerCommand(module, "rename-project", new Packages.com.google.refine.commands.project.RenameProjectCommand());
|
||||
RS.registerCommand(module, "set-project-metadata", new Packages.com.google.refine.commands.project.SetProjectMetadataCommand());
|
||||
|
||||
|
@ -136,6 +136,8 @@ Refine.OpenProjectUI.prototype._renderProjects = function(data) {
|
||||
$("#no-project-message").clone().show().appendTo(container);
|
||||
} else {
|
||||
Refine.selectActionArea('open-project');
|
||||
|
||||
|
||||
|
||||
var table = $(
|
||||
'<table class="tablesorter-blue list-table"><thead><tr>' +
|
||||
@ -159,6 +161,30 @@ Refine.OpenProjectUI.prototype._renderProjects = function(data) {
|
||||
})() +
|
||||
'</tr></thead><tbody></tbody></table>'
|
||||
).appendTo(container)[0];
|
||||
|
||||
var allProjIds = "";
|
||||
$.each(projects, function(i) {
|
||||
allProjIds = allProjIds + "," + projects[i].id;
|
||||
});
|
||||
$('<a/>').attr("href", "").html($.i18n._('core-index-open')["delete-all-proj"]).addClass("header-delete-all").click(function() {
|
||||
if (window.confirm($.i18n._('core-index-open')["del-body"]+ "\"?")) {
|
||||
$.ajax({
|
||||
type : "POST",
|
||||
url : "command/core/delete-all-projects",
|
||||
data : {
|
||||
"projects" : allProjIds
|
||||
},
|
||||
dataType : "json",
|
||||
success : function(data) {
|
||||
if (data && typeof data.code != 'undefined' && data.code == "ok") {
|
||||
self._fetchProjects();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
return false;
|
||||
}).appendTo(table);
|
||||
|
||||
|
||||
var renderProject = function(project) {
|
||||
var tr = table.getElementsByTagName('tbody')[0].insertRow(table.rows.length - 1);
|
||||
|
Loading…
Reference in New Issue
Block a user