diff --git a/web/app/controllers/api/v1/Dataset.java b/web/app/controllers/api/v1/Dataset.java index 5037f1683e..e535a5c17e 100644 --- a/web/app/controllers/api/v1/Dataset.java +++ b/web/app/controllers/api/v1/Dataset.java @@ -675,7 +675,10 @@ public class Dataset extends Controller if(req.isArray()) { for(int i = 0; i < req.size(); i++) { JsonNode obj = req.get(i); - Boolean isSuccess = DatasetsDAO.assignColumnComment(datasetId, columnId, obj.get("commentId").asInt()); + Boolean isSuccess = DatasetsDAO.assignColumnComment( + obj.get("datasetId").asInt(), + obj.get("columnId").asInt(), + obj.get("commentId").asInt()); ObjectNode itemResponse = Json.newObject(); if(isSuccess) { itemResponse.put("success", "true"); @@ -688,8 +691,10 @@ public class Dataset extends Controller res.add(itemResponse); } } else { - Logger.error("Comment ID: " + req.get("commentId")); - Boolean isSuccess = DatasetsDAO.assignColumnComment(datasetId, columnId, req.get("commentId").asInt()); + Boolean isSuccess = DatasetsDAO.assignColumnComment( + datasetId, + columnId, + req.get("commentId").asInt()); ObjectNode itemResponse = Json.newObject(); if(isSuccess) { itemResponse.put("success", "true"); @@ -721,7 +726,7 @@ public class Dataset extends Controller return ok(result); } - public static Result getSimilarColumnComments(int datasetId, int columnId) { + public static Result getSimilarColumnComments(Long datasetId, int columnId) { ObjectNode result = Json.newObject(); result.put("similar", Json.toJson(DatasetsDAO.similarColumnComments(datasetId, columnId))); return ok(result); diff --git a/web/app/dao/DatasetsDAO.java b/web/app/dao/DatasetsDAO.java index d7e8dba10e..fd545a3842 100644 --- a/web/app/dao/DatasetsDAO.java +++ b/web/app/dao/DatasetsDAO.java @@ -290,10 +290,10 @@ public class DatasetsDAO extends AbstractMySQLOpenSourceDAO "SELECT UPPER(field_name) FROM dict_field_detail WHERE field_id = ?"; private final static String GET_SIMILAR_COMMENTS_BY_FIELD_NAME = - "SELECT count(*) as count, fd.dataset_id, " + - "fd.default_comment_id as comment_id, fc.comment FROM dict_field_detail fd LEFT JOIN " + - "field_comments fc ON fc.id = fd.default_comment_id WHERE UPPER(fd.field_name) = ? " + - "AND fd.default_comment_id IS NOT NULL GROUP BY fd.default_comment_id ORDER BY count DESC"; + "SELECT count(*) as count, f.comment_id, c.comment FROM dict_field_detail d " + + "JOIN dict_dataset_field_comment f on d.field_id = f.field_id and d.dataset_id = f.dataset_id " + + "JOIN field_comments c on c.id = f.comment_id WHERE d.field_name = ? and f.is_default = 1 " + + "GROUP BY f.comment_id, c.comment ORDER BY count DESC"; private final static String SET_COLUMN_COMMENT_TO_FALSE = "UPDATE dict_dataset_field_comment " + "SET is_default = false WHERE dataset_id = ? AND field_id = ? AND is_default = true"; @@ -1466,7 +1466,7 @@ public class DatasetsDAO extends AbstractMySQLOpenSourceDAO return result; } - public static List similarColumnComments(int datasetId, int columnId) + public static List similarColumnComments(Long datasetId, int columnId) { List comments = new ArrayList(); List> rows = null; @@ -1478,7 +1478,7 @@ public class DatasetsDAO extends AbstractMySQLOpenSourceDAO columnId); } catch(DataAccessException e) { Logger.error("Dataset similarColumnComments - get field name for columnId, datasetId = " + - Integer.toString(datasetId) + " columnId = " + Integer.toString(columnId)); + Long.toString(datasetId) + " columnId = " + Integer.toString(columnId)); Logger.error("Exception = " + e.getMessage()); return comments; } @@ -1494,12 +1494,12 @@ public class DatasetsDAO extends AbstractMySQLOpenSourceDAO sc.count = (Long)row.get("count"); sc.commentId = (Long)row.get("comment_id"); sc.comment = (String)row.get("comment"); - sc.datasetId = (Long)row.get("dataset_id"); + sc.datasetId = datasetId; comments.add(sc); } } catch(DataAccessException e) { Logger.error("Dataset similarColumnComments - get comments by field name, datasetId = " + - Integer.toString(datasetId) + " columnId = " + Integer.toString(columnId)); + Long.toString(datasetId) + " columnId = " + Integer.toString(columnId)); Logger.error("Exception = " + e.getMessage()); return comments; } diff --git a/web/app/views/index.scala.html b/web/app/views/index.scala.html index 1210fc5427..2751f89bac 100644 --- a/web/app/views/index.scala.html +++ b/web/app/views/index.scala.html @@ -56,7 +56,7 @@ - - - - + + diff --git a/web/conf/routes b/web/conf/routes index 6e750ccdbd..dd5e50b10b 100644 --- a/web/conf/routes +++ b/web/conf/routes @@ -71,7 +71,7 @@ GET /api/v1/datasets/:id/columns/:columnId/similar controllers.api.v1.D GET /api/v1/datasets/:id/columns/:columnId/comments controllers.api.v1.Dataset.getPagedDatasetColumnComments(id:Int, columnId:Int) -GET /api/v1/datasets/:id/columns/:columnId/comments/similar controllers.api.v1.Dataset.getSimilarColumnComments(id:Int, columnId:Int) +GET /api/v1/datasets/:id/columns/:columnId/comments/similar controllers.api.v1.Dataset.getSimilarColumnComments(id:Long, columnId:Int) POST /api/v1/datasets/:id/columns/:columnId/comments controllers.api.v1.Dataset.postDatasetColumnComment(id:Int, columnId:Int) diff --git a/web/public/javascripts/components/schema-comment.js b/web/public/javascripts/components/schema-comment.js index 96b0a99f4d..9835ee59b9 100644 --- a/web/public/javascripts/components/schema-comment.js +++ b/web/public/javascripts/components/schema-comment.js @@ -222,13 +222,23 @@ App.SchemaCommentComponent = Ember.Component.extend({ col.html = marked(col.comment || "").htmlSafe() col.selected = false }) + var page = _this.get('similarColumns.page'); + if (!page) + { + page = 1; + } + var pageSize = _this.get('similarColumns.pageSize'); + if (!pageSize) + { + pageSize = 10; + } var similarColumns = { - page: _this.get('similarColumns.page'), + page: page, all: columns, count: columns.length, - pageSize: _this.get('similarColumns.pageSize'), - totalPages: Math.ceil(columns.length / _this.get('similarColumns.pageSize')), - data: columns.slice(0,10), + pageSize: pageSize, + totalPages: Math.ceil(columns.length / pageSize), + data: columns.slice(0, pageSize), loading: false } _this.set('similarColumns', similarColumns) @@ -248,7 +258,6 @@ App.SchemaCommentComponent = Ember.Component.extend({ comments.forEach(function(cmnt){ cmnt.html = marked(cmnt.comment || "").htmlSafe() }) - console.log('Similar Comments: ', comments) _this.set('similarComments', comments) } ) @@ -540,6 +549,7 @@ App.SchemaCommentComponent = Ember.Component.extend({ } else { selected.commentId = selectedComment.id } + console.log(selected); this.set("promoteDisabled", true) this.set("promoteLoading, true") var params = @@ -578,7 +588,6 @@ App.SchemaCommentComponent = Ember.Component.extend({ this.getSimilarColumns() }, setTab: function(name) { - console.log('Tab Selected: ', name) this.set('currentTab', name) if(name !== "similar") { $("input[name='selectedComment']:checked").each(function(){ @@ -616,11 +625,28 @@ App.SchemaCommentComponent = Ember.Component.extend({ var page = this.get('similarColumns.page'); var pageSize = this.get('similarColumns.pageSize'); var index = ((page - 1) * pageSize) + idx - console.log('Index: ', index) var all = this.get('similarColumns.all'); Ember.set(all[index], "selected", Ember.get(similar, "selected")); this.set('selectedSimilarColumns', this.getSelected()) this.set('similarColumns.all', all) + }, + selectAllSimilarColumn: function(selected) + { + var columns = this.get('similarColumns.all'); + var model = this.get('similarColumns'); + Ember.set(model, "selectedAll", selected); + for(var i = 0; i < columns.length; i++) + { + Ember.set(columns[i], "selected", selected); + } + if (selected) + { + this.set('selectedSimilarColumns', columns); + } + else + { + this.set('selectedSimilarColumns', []); + } } } }) diff --git a/web/public/stylesheets/main.css b/web/public/stylesheets/main.css index be8f2c6dcc..eb9c65f5b0 100644 --- a/web/public/stylesheets/main.css +++ b/web/public/stylesheets/main.css @@ -665,4 +665,8 @@ table tr td { div.commentsArea td, div.commentsArea th, div.commentsArea table{ border: 1px solid black; +} + +.wh-clickable-icon { + cursor: pointer; } \ No newline at end of file