From ec801b24fe1fb8e78871f42241fd96fd7ee0de4a Mon Sep 17 00:00:00 2001 From: Eike Cochu <eike@cochu.com> Date: Tue, 26 Apr 2016 23:56:38 +0200 Subject: [PATCH] added info directive, updated article show table margins --- vipra-ui/app/html/articles/show.html | 15 ++++++---- vipra-ui/app/html/words/show.html | 30 +++++++++++++++++++ vipra-ui/app/js/directives.js | 10 +++++++ vipra-ui/app/less/app.less | 7 +++++ .../java/de/vipra/util/model/BugReport.java | 9 ++++-- .../de/vipra/util/model/SequenceFull.java | 13 ++++++++ .../de/vipra/util/model/TextEntityFull.java | 13 ++++++++ .../de/vipra/util/model/TopicModelFull.java | 14 ++++++++- .../java/de/vipra/util/model/WordFull.java | 29 ++++++++++++++++++ 9 files changed, 131 insertions(+), 9 deletions(-) diff --git a/vipra-ui/app/html/articles/show.html b/vipra-ui/app/html/articles/show.html index 75332857..3cb8fd1f 100644 --- a/vipra-ui/app/html/articles/show.html +++ b/vipra-ui/app/html/articles/show.html @@ -25,7 +25,7 @@ <div class="row"> <div class="col-md-8"> <h3>Info</h3> - <table class="table table-bordered table-condensed table-fixed"> + <table class="table table-bordered table-condensed table-fixed nomargin"> <tbody> <tr> <th class="infocol">ID</th> @@ -46,12 +46,15 @@ </tr> <tr> <th>Word count</th> - <td ng-bind-template="{{::article.stats.wordCount}} ({{::article.stats.processedWordCount}} ↓ {{::Vipra.toPercent(article.stats.reductionRatio)}}%)" ng-attr-title="{{::article.stats.wordCount}} words in this article, {{::article.stats.processedWordCount}} after cleaning ({{::Vipra.toPercent(article.stats.reductionRatio)}}% reduction)"></td> + <td> + <span ng-bind-template="{{::article.stats.wordCount}} ({{::article.stats.processedWordCount}} ↓ {{::Vipra.toPercent(article.stats.reductionRatio)}}%)" ng-attr-title="{{::article.stats.wordCount}} words in this article, {{::article.stats.processedWordCount}} after cleaning ({{::Vipra.toPercent(article.stats.reductionRatio)}}% reduction)"></span> + <info text="Total word count, processed word count (words after reduction) and reduction ratio (processed text share to original text)"/> + </td> </tr> </tbody> </table> <h3>Topics</h3> - <table class="table table-bordered table-condensed table-fixed" ng-show="article.topics.length" ng-cloak> + <table class="table table-bordered table-condensed table-fixed nomargin" ng-show="article.topics.length" ng-cloak> <thead> <tr> <th class="infocol" ng-model="articlesShowModels.topicsSort" sort-by="share">Share</th> @@ -75,10 +78,10 @@ </div> <div class="col-md-4"> <h3>Share</h3> - <div class="pie-chart" id="topic-share" highcharts="topicShare" ng-class="{'pie-small':!article.topics.length}"></div> + <div class="pie-chart" id="topic-share" highcharts="topicShare" ng-class="{'pie-small':!article.topics.length}" style="width:360px;height:220px"></div> </div> </div> - <h3>Similar articles</h3> + <h3>Similar articles <info text="Similar articles are determined based on topic share. Higher topic share results in higher share ratio."/></h3> <table class="table table-bordered table-condensed" ng-show="article.similarArticles.length" ng-cloak> <thead> <tr> @@ -147,7 +150,7 @@ <th ng-model="articlesShowModels.wordsSort" sort-by="id">Word</th> <th ng-model="articlesShowModels.wordsSort" sort-by="count">Count</th> <th>Share</th> - <th>Reduced share</th> + <th>Reduced share <info text="Word share applied on the processed text"/></th> </tr> </thead> <tbody> diff --git a/vipra-ui/app/html/words/show.html b/vipra-ui/app/html/words/show.html index 3742e349..32c26744 100644 --- a/vipra-ui/app/html/words/show.html +++ b/vipra-ui/app/html/words/show.html @@ -3,5 +3,35 @@ <span class="label label-default">Word</span> <h1 ng-bind="::word.id"></h1> </div> + <div> + <ul class="nav nav-tabs" role="tablist"> + <li class="active"> + <a data-target=".tab-info" data-toggle="tab" bs-tab><i class="fa fa-file-text-o"></i></a> + </li> + <li> + <a ui-sref="words.show.topics({id:word.id})"> + Topics + </a> + </li> + <li> + <a ui-sref="words.show.articles({id:word.id})"> + Articles + </a> + </li> + </ul> + <div class="tab-content"> + <div role="tabpanel" class="tab-pane active tab-info"> + <h3>Info</h3> + <table class="table table-bordered table-condensed table-fixed"> + <tbody> + <tr> + <th class="infocol">ID</th> + <td ng-bind="::word.id"></td> + </tr> + </tbody> + </table> + </div> + </div> + </div> </div> <div ng-cloak ui-view></div> \ No newline at end of file diff --git a/vipra-ui/app/js/directives.js b/vipra-ui/app/js/directives.js index f0509848..10007e5e 100644 --- a/vipra-ui/app/js/directives.js +++ b/vipra-ui/app/js/directives.js @@ -454,4 +454,14 @@ }; }]); + app.directive('info', [function() { + return { + scope: { + text: '@' + }, + replace: true, + template: '<i class="fa fa-info info" ng-attr-title="{{::text}}"></i>' + }; + }]); + })(); \ No newline at end of file diff --git a/vipra-ui/app/less/app.less b/vipra-ui/app/less/app.less index bb1ff9da..6cedd5f1 100644 --- a/vipra-ui/app/less/app.less +++ b/vipra-ui/app/less/app.less @@ -11,6 +11,7 @@ body { padding-bottom: 20px; } +.info, .pointer, input[type=checkbox], .checkbox label::before, @@ -564,6 +565,12 @@ entity-menu { color: #555; } +.info { + color: #777; + padding: 0 5px; + font-size: 14px; +} + @-moz-keyframes spin { 100% { -moz-transform: rotateY(360deg); diff --git a/vipra-util/src/main/java/de/vipra/util/model/BugReport.java b/vipra-util/src/main/java/de/vipra/util/model/BugReport.java index d8d138e1..bd3ba267 100644 --- a/vipra-util/src/main/java/de/vipra/util/model/BugReport.java +++ b/vipra-util/src/main/java/de/vipra/util/model/BugReport.java @@ -32,6 +32,9 @@ public class BugReport implements Model<ObjectId>, Serializable { @QueryIgnore(multi = true) private Date created; + @QueryIgnore(multi = true) + private Date modified; + @QueryIgnore(multi = true) private String screenshot; @@ -94,8 +97,10 @@ public class BugReport implements Model<ObjectId>, Serializable { } @PrePersist - private void prePersist() { - created = new Date(); + public void prePersist() { + modified = new Date(); + if (created == null) + created = modified; } } diff --git a/vipra-util/src/main/java/de/vipra/util/model/SequenceFull.java b/vipra-util/src/main/java/de/vipra/util/model/SequenceFull.java index 44222799..dbdfd71a 100644 --- a/vipra-util/src/main/java/de/vipra/util/model/SequenceFull.java +++ b/vipra-util/src/main/java/de/vipra/util/model/SequenceFull.java @@ -1,12 +1,14 @@ package de.vipra.util.model; import java.io.Serializable; +import java.util.Date; import java.util.List; import org.bson.types.ObjectId; import org.mongodb.morphia.annotations.Embedded; import org.mongodb.morphia.annotations.Entity; import org.mongodb.morphia.annotations.Id; +import org.mongodb.morphia.annotations.PrePersist; import org.mongodb.morphia.annotations.Reference; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; @@ -40,6 +42,10 @@ public class SequenceFull implements Model<ObjectId>, Comparable<SequenceFull>, @QueryIgnore(multi = true) private List<SequenceWord> words; + private Date created; + + private Date modified; + @Override public ObjectId getId() { return id; @@ -109,4 +115,11 @@ public class SequenceFull implements Model<ObjectId>, Comparable<SequenceFull>, + topic + ", words=" + words + "]"; } + @PrePersist + public void prePersist() { + modified = new Date(); + if (created == null) + created = modified; + } + } diff --git a/vipra-util/src/main/java/de/vipra/util/model/TextEntityFull.java b/vipra-util/src/main/java/de/vipra/util/model/TextEntityFull.java index 257b3651..2058565e 100644 --- a/vipra-util/src/main/java/de/vipra/util/model/TextEntityFull.java +++ b/vipra-util/src/main/java/de/vipra/util/model/TextEntityFull.java @@ -1,10 +1,12 @@ package de.vipra.util.model; import java.io.Serializable; +import java.util.Date; import java.util.List; import org.mongodb.morphia.annotations.Entity; import org.mongodb.morphia.annotations.Id; +import org.mongodb.morphia.annotations.PrePersist; import org.mongodb.morphia.annotations.Reference; import de.vipra.util.an.QueryIgnore; @@ -25,6 +27,10 @@ public class TextEntityFull implements Model<String>, Serializable { @QueryIgnore(multi = true) private List<String> types; + private Date created; + + private Date modified; + public TextEntityFull() {} public TextEntityFull(final TextEntity textEntity) { @@ -96,4 +102,11 @@ public class TextEntityFull implements Model<String>, Serializable { return true; } + @PrePersist + public void prePersist() { + modified = new Date(); + if (created == null) + created = modified; + } + } diff --git a/vipra-util/src/main/java/de/vipra/util/model/TopicModelFull.java b/vipra-util/src/main/java/de/vipra/util/model/TopicModelFull.java index f527d0ac..7bd55e67 100644 --- a/vipra-util/src/main/java/de/vipra/util/model/TopicModelFull.java +++ b/vipra-util/src/main/java/de/vipra/util/model/TopicModelFull.java @@ -7,6 +7,7 @@ import java.util.List; import org.mongodb.morphia.annotations.Embedded; import org.mongodb.morphia.annotations.Entity; import org.mongodb.morphia.annotations.Id; +import org.mongodb.morphia.annotations.PrePersist; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; @@ -39,6 +40,10 @@ public class TopicModelFull implements Model<String>, Comparable<TopicModelFull> @QueryIgnore(multi = true) private TopicModelConfig modelConfig; + private Date created; + + private Date modified; + public TopicModelFull() {} public TopicModelFull(final String id) { @@ -128,6 +133,13 @@ public class TopicModelFull implements Model<String>, Comparable<TopicModelFull> @Override public int compareTo(final TopicModelFull o) { return id.compareTo(o.getId()); - }; + } + + @PrePersist + public void prePersist() { + modified = new Date(); + if (created == null) + created = modified; + } } diff --git a/vipra-util/src/main/java/de/vipra/util/model/WordFull.java b/vipra-util/src/main/java/de/vipra/util/model/WordFull.java index 504deeef..071156f0 100644 --- a/vipra-util/src/main/java/de/vipra/util/model/WordFull.java +++ b/vipra-util/src/main/java/de/vipra/util/model/WordFull.java @@ -1,9 +1,11 @@ package de.vipra.util.model; import java.io.Serializable; +import java.util.Date; import org.mongodb.morphia.annotations.Entity; import org.mongodb.morphia.annotations.Id; +import org.mongodb.morphia.annotations.PrePersist; import org.mongodb.morphia.annotations.Reference; import de.vipra.util.an.QueryIgnore; @@ -19,6 +21,10 @@ public class WordFull implements Model<String>, Comparable<WordFull>, Serializab @QueryIgnore(multi = true) private TopicModel topicModel; + private Date created; + + private Date modified; + public WordFull() {} public WordFull(final String word) { @@ -43,9 +49,32 @@ public class WordFull implements Model<String>, Comparable<WordFull>, Serializab this.topicModel = topicModel; } + public Date getCreated() { + return created; + } + + public void setCreated(Date created) { + this.created = created; + } + + public Date getModified() { + return modified; + } + + public void setModified(Date modified) { + this.modified = modified; + } + @Override public int compareTo(final WordFull o) { return id.compareTo(o.getId()); } + @PrePersist + public void prePersist() { + modified = new Date(); + if (created == null) + created = modified; + } + } -- GitLab