delete all projects

This commit is contained in:
xseris 2017-11-23 17:36:46 +01:00
parent 30d764f8a5
commit 4f67c632d0
3 changed files with 87 additions and 0 deletions

View File

@ -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);
}
}
}

View File

@ -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());

View File

@ -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);