Skip to content
Snippets Groups Projects
Commit 5bf33359 authored by Eike Cochu's avatar Eike Cochu
Browse files

updated ui

updated ui style
fixed typo in rest service word resource when extracting returned fields
parent efd121d7
Branches
No related tags found
No related merge requests found
Showing
with 283 additions and 117 deletions
......@@ -275,6 +275,38 @@
},
"buffers":
[
{
"file": "vipra-ui/app/templates/topics/show/index.hbs",
"settings":
{
"buffer_size": 408,
"line_ending": "Unix"
}
},
{
"file": "vipra-ui/app/templates/application.hbs",
"settings":
{
"buffer_size": 1378,
"line_ending": "Unix"
}
},
{
"file": "vipra-ui/app/routes/articles/show.js",
"settings":
{
"buffer_size": 692,
"line_ending": "Unix"
}
},
{
"file": "vipra-ui/app/templates/articles/show.hbs",
"settings":
{
"buffer_size": 699,
"line_ending": "Unix"
}
}
],
"build_system": "",
"build_system_choices":
......@@ -283,18 +315,18 @@
"build_varint": "",
"command_palette":
{
"height": 102.0,
"last_filter": "remove",
"height": 148.0,
"last_filter": "insta",
"selected_items":
[
[
"remove",
"Package Control: Remove Package"
],
[
"insta",
"Package Control: Install Package"
],
[
"remove",
"Package Control: Remove Package"
],
[
"close",
"Project: Close"
......@@ -453,12 +485,37 @@
},
"expanded_folders":
[
"/home/eike/repos/master/ma-impl"
"/home/eike/repos/master/ma-impl",
"/home/eike/repos/master/ma-impl/vipra-ui",
"/home/eike/repos/master/ma-impl/vipra-ui/app",
"/home/eike/repos/master/ma-impl/vipra-ui/app/helpers",
"/home/eike/repos/master/ma-impl/vipra-ui/app/routes",
"/home/eike/repos/master/ma-impl/vipra-ui/app/routes/articles",
"/home/eike/repos/master/ma-impl/vipra-ui/app/templates",
"/home/eike/repos/master/ma-impl/vipra-ui/app/templates/articles",
"/home/eike/repos/master/ma-impl/vipra-ui/app/templates/topics/show"
],
"file_history":
[
"/home/eike/repos/master/ma-impl/vipra-ui/ember-cli-build.js",
"/home/eike/repos/master/ma-impl/vipra-ui/app/templates/articles/menu.hbs",
"/home/eike/repos/master/ma-impl/vipra-ui/app/routes/articles/menu.hbs",
"/home/eike/repos/master/ma-impl/vipra-ui/app/templates/words/index.hbs",
"/home/eike/repos/master/ma-impl/vipra-ui/app/templates/articles/show.hbs",
"/home/eike/repos/master/ma-impl/vipra-ui/app/templates/components/items-list.hbs",
"/home/eike/repos/master/ma-impl/vipra-ui/app/helpers/pluralize.js",
"/home/eike/repos/master/ma-impl/vipra-ui/app/helpers/uppercase.js",
"/home/eike/repos/master/ma-impl/vipra-ui/app/templates/articles/index.hbs",
"/home/eike/repos/master/ma-impl/vipra-ui/app/templates/words_loading.hbs",
"/home/eike/repos/master/ma-impl/vipra-ui/app/styles/app.scss",
"/home/eike/repos/master/ma-impl/vipra-ui/app/templates/application.hbs",
"/home/eike/repos/master/ma-impl/vipra-ui/bower.json",
"/home/eike/repos/master/ma-impl/vipra-ui/app/templates/topics/index.hbs",
"/home/eike/.config/sublime-text-3/Packages/User/Preferences.sublime-settings",
"/home/eike/repos/master/ma-impl/vipra-ui/app/templates/topics.hbs",
"/home/eike/repos/master/ma-impl/vipra-ui/app/templates/words.hbs",
"/home/eike/repos/master/ma-impl/vipra-ui/app/adapters/application.js",
"/home/eike/repos/master/ma-impl/vipra-ui/app/templates/articles.hbs",
"/home/eike/repos/master/ma-impl/vipra-ui/ember-cli-build.js",
"/home/eike/repos/master/ma-impl/vipra-ui/app/templates/index.hbs",
"/home/eike/repos/master/ma-impl/vipra-ui/app/templates/loading.hbs",
"/home/eike/repos/master/ma-impl/vipra-ui/app/styles/app.css",
......@@ -466,37 +523,27 @@
"/home/eike/repos/master/ma-impl/vipra-ui/app/index.html",
"/home/eike/repos/master/ma-impl/vipra-ui/app/routes/words/show.js",
"/home/eike/repos/master/ma-impl/vipra-ui/app/templates/words/show.hbs",
"/home/eike/repos/master/ma-impl/vipra-ui/app/templates/words/index.hbs",
"/home/eike/repos/master/ma-impl/vipra-ui/app/models/word.js",
"/home/eike/repos/master/ma-impl/vipra-ui/app/routes/words/index.js",
"/home/eike/repos/master/ma-impl/vipra-ui/app/templates/topics/index.hbs",
"/home/eike/.config/sublime-text-3/Packages/User/Preferences.sublime-settings",
"/home/eike/repos/master/ma-impl/vipra-ui/app/templates/articles/index.hbs",
"/home/eike/repos/master/ma-impl/vipra-ui/app/components/items-list.js",
"/home/eike/repos/master/ma-impl/vipra-ui/app/templates/components/items-list.hbs",
"/home/eike/repos/master/ma-impl/vipra-ui/app/templates/topics/show/index.hbs",
"/home/eike/repos/master/ma-impl/vipra-ui/app/templates/words.hbs",
"/home/eike/repos/master/ma-impl/vipra-ui/app/router.js",
"/home/eike/repos/master/ma-impl/vipra-ui/app/routes/words",
"/home/eike/repos/master/ma-impl/vipra-ui/app/models/topic.js",
"/home/eike/repos/master/ma-impl/vipra-ui/app/models/article.js",
"/home/eike/repos/master/ma-impl/vm/data/test-10.json",
"/home/eike/repos/master/ma-impl/vipra-ui/app/components/topic-link.js",
"/home/eike/repos/master/ma-impl/vipra-ui/app/templates/articles/show.hbs",
"/home/eike/.local/share/vipra/jgibb/jgibb.twords",
"/home/eike/.local/share/vipra/jgibb/jgibb.tassign",
"/home/eike/Downloads/FRITZ.Box 7490 113.06.30_17.01.16_2147.export",
"/home/eike/repos/master/ma-impl/vm/data/test-1.json",
"/home/eike/repos/master/ma-impl/vm/data/test-2.json",
"/home/eike/repos/master/ma-impl/vipra-ui/app/routes/topics/index.js",
"/home/eike/repos/master/ma-impl/vipra-ui/app/adapters/application.js",
"/home/eike/.local/share/vipra/jgibb/jgibb",
"/home/eike/repos/master/ma-doc/thesis/thesis.tex",
"/home/eike/repos/master/ma-impl/Vagrantfile",
"/home/eike/repos/master/ma-impl/vm/bootstrap.sh",
"/home/eike/repos/master/ma-impl/vm/webapps/ROOT/index.html",
"/home/eike/repos/master/ma-impl/vipra-ui/app/templates/articles.hbs",
"/home/eike/repos/master/ma-impl/vipra-ui/app/templates/topics.hbs",
"/home/eike/repos/master/ma-impl/vipra-ui/app/routes/topics/show/edit.js",
"/home/eike/repos/master/ma-impl/vipra-ui/app/templates/components/topics-list.hbs",
"/home/eike/repos/master/ma-impl/vipra-ui/app/routes/topics/show.js",
......@@ -524,7 +571,6 @@
"/home/eike/repos/master/ma-impl/vipra-cmd.sh",
"/home/eike/repos/master/ma-impl/vipra-cmd/build2.xml",
"/home/eike/repos/master/ma-impl/vipra-ui/README.md",
"/home/eike/repos/master/ma-impl/vipra-ui/bower.json",
"/home/eike/repos/testasd/bower.json",
"/home/eike/repos/master/ma-impl/vipra-ui2/package.json",
"/home/eike/repos/master/ma-impl/vipra-ui/app/routes/articles/list.js",
......@@ -578,13 +624,7 @@
"/home/eike/Repositories/fu/ss15/ma/impl/vipra-ui/app/templates/articles/index.hbs",
"/home/eike/Repositories/fu/ss15/ma/impl/vipra-ui/app/templates/articles/new.hbs",
"/home/eike/Repositories/fu/ss15/ma/impl/vipra-ui/app/routes/article/show.js",
"/home/eike/Repositories/fu/ss15/ma/impl/vipra-ui/app/templates/article.hbs",
"/home/eike/Repositories/fu/ss15/ma/impl/vipra-ui/app/routes/articles.js",
"/home/eike/Repositories/fu/ss15/ma/impl/vipra-ui/app/templates/articles.show.hbs",
"/home/eike/Repositories/fu/ss15/ma/impl/vipra-ui/app/routes/articles.show.js",
"/home/eike/Repositories/fu/ss15/ma/impl/vipra-ui/app/templates/articles/test.hbs",
"/home/eike/Repositories/fu/ss15/ma/impl/vipra-ui/.ember-cli",
"/home/eike/Repositories/fu/ss15/ma/impl/vipra-ui/bower_components/ember-data/ember-data.js"
"/home/eike/Repositories/fu/ss15/ma/impl/vipra-ui/app/templates/article.hbs"
],
"find":
{
......@@ -908,8 +948,129 @@
"groups":
[
{
"selected": 2,
"sheets":
[
{
"buffer": 0,
"file": "vipra-ui/app/templates/topics/show/index.hbs",
"semi_transient": false,
"settings":
{
"buffer_size": 408,
"regions":
{
},
"selection":
[
[
408,
408
]
],
"settings":
{
"syntax": "Packages/Handlebars/grammars/Handlebars.tmLanguage",
"tab_size": 2,
"translate_tabs_to_spaces": true
},
"translation.x": 0.0,
"translation.y": 0.0,
"zoom_level": 1.0
},
"stack_index": 3,
"type": "text"
},
{
"buffer": 1,
"file": "vipra-ui/app/templates/application.hbs",
"semi_transient": false,
"settings":
{
"buffer_size": 1378,
"regions":
{
},
"selection":
[
[
1378,
1378
]
],
"settings":
{
"syntax": "Packages/Handlebars/grammars/Handlebars.tmLanguage",
"tab_size": 2,
"translate_tabs_to_spaces": true
},
"translation.x": 0.0,
"translation.y": 0.0,
"zoom_level": 1.0
},
"stack_index": 1,
"type": "text"
},
{
"buffer": 2,
"file": "vipra-ui/app/routes/articles/show.js",
"semi_transient": false,
"settings":
{
"buffer_size": 692,
"regions":
{
},
"selection":
[
[
692,
692
]
],
"settings":
{
"syntax": "Packages/JavaScriptNext - ES6 Syntax/JavaScriptNext.tmLanguage",
"tab_size": 2,
"translate_tabs_to_spaces": true
},
"translation.x": 0.0,
"translation.y": 0.0,
"zoom_level": 1.0
},
"stack_index": 0,
"type": "text"
},
{
"buffer": 3,
"file": "vipra-ui/app/templates/articles/show.hbs",
"semi_transient": true,
"settings":
{
"buffer_size": 699,
"regions":
{
},
"selection":
[
[
0,
0
]
],
"settings":
{
"syntax": "Packages/Handlebars/grammars/Handlebars.tmLanguage",
"tab_size": 2,
"translate_tabs_to_spaces": true
},
"translation.x": 0.0,
"translation.y": 0.0,
"zoom_level": 1.0
},
"stack_index": 2,
"type": "text"
}
]
}
],
......@@ -1059,12 +1220,12 @@
},
"select_symbol":
{
"height": 375.0,
"height": 263.0,
"last_filter": "",
"selected_items":
[
],
"width": 741.0
"width": 378.0
},
"selected_group": 0,
"settings":
......
......@@ -59,6 +59,8 @@
<zipfileset excludes="META-INF/*.SF" src="/home/eike/.m2/repository/org/hdrhistogram/HdrHistogram/2.1.6/HdrHistogram-2.1.6.jar"/>
<zipfileset excludes="META-INF/*.SF" src="/home/eike/.m2/repository/commons-cli/commons-cli/1.3.1/commons-cli-1.3.1.jar"/>
<zipfileset excludes="META-INF/*.SF" src="/home/eike/.m2/repository/com/twitter/jsr166e/1.1.0/jsr166e-1.1.0.jar"/>
<zipfileset excludes="META-INF/*.SF" src="/home/eike/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.7.0/jackson-databind-2.7.0.jar"/>
<zipfileset excludes="META-INF/*.SF" src="/home/eike/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.7.0/jackson-annotations-2.7.0.jar"/>
<zipfileset excludes="META-INF/*.SF" src="/home/eike/.m2/repository/args4j/args4j/2.0.6/args4j-2.0.6.jar"/>
<zipfileset excludes="META-INF/*.SF" src="/home/eike/.m2/repository/com/googlecode/json-simple/json-simple/1.1.1/json-simple-1.1.1.jar"/>
<zipfileset excludes="META-INF/*.SF" src="/home/eike/.m2/repository/edu/stanford/nlp/stanford-corenlp/3.5.2/stanford-corenlp-3.5.2.jar"/>
......@@ -70,8 +72,10 @@
<zipfileset excludes="META-INF/*.SF" src="/home/eike/.m2/repository/javax/xml/bind/jaxb-api/2.2.7/jaxb-api-2.2.7.jar"/>
<zipfileset excludes="META-INF/*.SF" src="/home/eike/.m2/repository/com/googlecode/efficient-java-matrix-library/ejml/0.23/ejml-0.23.jar"/>
<zipfileset excludes="META-INF/*.SF" src="/home/eike/.m2/repository/javax/json/javax.json-api/1.0/javax.json-api-1.0.jar"/>
<zipfileset excludes="META-INF/*.SF" src="/home/eike/.m2/repository/edu/stanford/nlp/stanford-corenlp/3.5.2/stanford-corenlp-3.5.2-models.jar"/>
<zipfileset excludes="META-INF/*.SF" src="/home/eike/.m2/repository/org/apache/lucene/lucene-core/5.4.0/lucene-core-5.4.0.jar"/>
<zipfileset excludes="META-INF/*.SF" src="/home/eike/.m2/repository/org/apache/lucene/lucene-analyzers-common/5.4.0/lucene-analyzers-common-5.4.0.jar"/>
<zipfileset excludes="META-INF/*.SF" src="/home/eike/.m2/repository/uk/org/lidalia/sysout-over-slf4j/1.0.2/sysout-over-slf4j-1.0.2.jar"/>
<zipfileset excludes="META-INF/*.SF" src="/home/eike/.m2/repository/junit/junit/4.12/junit-4.12.jar"/>
<zipfileset excludes="META-INF/*.SF" src="/home/eike/.m2/repository/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar"/>
</jar>
......
......@@ -38,6 +38,8 @@ import de.vipra.util.ex.DatabaseException;
import de.vipra.util.model.Article;
import de.vipra.util.service.DatabaseService;
import static de.vipra.rest.resource.ResourceHelper.*;
@Path("articles")
public class ArticleResource {
......@@ -171,7 +173,7 @@ public class ArticleResource {
}
private Article getSingle(String id, String[] fields) {
if (fields.length == 0) {
if (fields == null || fields.length == 0) {
Article article = cache.get(id);
if (article == null) {
article = service.getSingle(MongoUtils.objectId(id));
......@@ -183,13 +185,4 @@ public class ArticleResource {
return service.getSingle(MongoUtils.objectId(id), fields);
}
private String[] getFields(String fields) {
if (fields == null)
return null;
fields = fields.trim();
if (fields.length() == 0)
return null;
return fields.split(",");
}
}
package de.vipra.rest.resource;
public class ResourceHelper {
public static String[] getFields(String fields) {
if (fields == null)
return null;
fields = fields.trim();
if (fields.length() == 0)
return null;
return fields.split(",");
}
}
......@@ -32,6 +32,8 @@ import de.vipra.util.ex.DatabaseException;
import de.vipra.util.model.TopicFull;
import de.vipra.util.service.DatabaseService;
import static de.vipra.rest.resource.ResourceHelper.*;
@Path("topics")
public class TopicResource {
......@@ -56,7 +58,7 @@ public class TopicResource {
@GET
@Produces(APIMediaType.APPLICATION_JSONAPI)
public Response getTopics(@QueryParam("skip") Integer skip, @QueryParam("limit") Integer limit,
@QueryParam("sort") @DefaultValue("date") String sortBy, @QueryParam("fields") String fields) {
@QueryParam("sort") @DefaultValue("name") String sortBy, @QueryParam("fields") String fields) {
Wrapper<List<TopicFull>> res = new Wrapper<>();
if (skip != null && limit != null)
......@@ -122,7 +124,7 @@ public class TopicResource {
}
private TopicFull getSingle(String id, String[] fields) {
if (fields.length == 0) {
if (fields == null || fields.length == 0) {
TopicFull topic = cache.get(id);
if (topic == null) {
topic = service.getSingle(MongoUtils.objectId(id));
......@@ -134,13 +136,4 @@ public class TopicResource {
return service.getSingle(MongoUtils.objectId(id), fields);
}
private String[] getFields(String fields) {
if (fields == null)
return null;
fields = fields.trim();
if (fields.length() == 0)
return null;
return fields.split(",");
}
}
......@@ -28,6 +28,8 @@ import de.vipra.util.ex.ConfigException;
import de.vipra.util.model.Word;
import de.vipra.util.service.DatabaseService;
import static de.vipra.rest.resource.ResourceHelper.*;
@Path("words")
public class WordResource {
......@@ -100,7 +102,7 @@ public class WordResource {
}
private Word getSingle(String id, String[] fields) {
if (fields.length > 0) {
if (fields == null || fields.length == 0) {
Word word = cache.get(id);
if (word == null) {
word = service.getSingle(id);
......@@ -112,13 +114,4 @@ public class WordResource {
return service.getSingle(id, fields);
}
private String[] getFields(String fields) {
if (fields == null)
return null;
fields = fields.trim();
if (fields.length() == 0)
return null;
return fields.split(",");
}
}
import DS from 'ember-data';
export default DS.JSONAPIAdapter.extend({
host: `http://${window.location.hostname}:8080`,
host: `http://${window.location.hostname}:8000`,
namespace: 'vipra-rest',
updateRecord(store, type, snapshot) {
var data = {};
......
import Ember from 'ember';
export function pluralize(params) {
let number = params[0],
singular = params[1],
plural = params[2] || singular + 's';
return number === 1 ? singular : plural;
}
export default Ember.Helper.helper(pluralize);
import Ember from 'ember';
export default Ember.Route.extend({
renderTemplate() {
this.render();
},
model(params) {
return Ember.RSVP.hash({
article: this.store.find('article', params.article_id),
......
td {
vertical-align: top;
body {
// for navbar
padding-top: 60px;
}
.word {
......
<nav class="navbar navbar-default">
<nav class="navbar navbar-default navbar-fixed-top">
<div class="container-fluid">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
......@@ -22,9 +22,12 @@
<li>{{#link-to 'words'}}Words{{/link-to}}</li>
</ul>
</li>
{{outlet 'menu-left'}}
</ul>
</div><!-- /.navbar-collapse -->
</div><!-- /.container-fluid -->
</nav>
{{outlet}}
\ No newline at end of file
<div class="container-fluid">
{{outlet}}
</div>
\ No newline at end of file
<h1>Articles</h1>
{{#link-to 'index'}}Top{{/link-to}}
{{#link-to 'articles'}}All{{/link-to}}
<hr>
{{outlet}}
\ No newline at end of file
<h1>Articles</h1>
{{dynamic-high-charts content=model.chartData chartOptions=model.chartOptions}}
<h2>Found articles</h2>
{{debounced-input class='form-control' placeholder='Filter' size='50' value=filter debounce='150'}}
{{debounced-input placeholder='Filter' size='50' value=filter debounce='150'}}
<br>
{{items-list items=model.articles filter=filter route='articles.show'}}
{{items-list items=model.articles filter=filter route='articles.show'}}
\ No newline at end of file
{{outlet}}
\ No newline at end of file
<h2>{{model.article.title}}</h2>
<h2>&laquo;{{model.article.title}}&raquo;</h2>
<h3>Info</h3>
<dl>
<dt>Date</dt>
<dd>{{model.article.date}}</dd>
<dt>URL</dt>
<dd><a href="{{model.article.url}}">{{model.article.url}}</a></dd>
<dt>Word count</dt>
<dd>{{model.article.stats.wordCount}}</dd>
</dl>
<h3>Topics</h3>
{{#each model.article.topics as |topicRef|}}
[{{#topic-link topic=topicRef.topic}} ({{topic-share topicRef.count model.article.stats.wordCount}}%){{/topic-link}}]
{{/each}}
<h3>Statistics</h3>
<table>
<table class="table table-bordered table-condensed">
<tbody>
<tr>
<td>Date</td>
<td>{{model.article.date}}</td>
</tr>
<tr>
<td>URL</td>
<td><a href="{{model.article.url}}">{{model.article.url}}</a></td>
</tr>
<tr>
<td>Topics</td>
<td>
{{#each model.article.topics as |topicRef|}}
[{{#topic-link topic=topicRef.topic}} ({{topic-share topicRef.count model.article.stats.wordCount}}%){{/topic-link}}]
{{/each}}
</td>
</tr>
<tr>
<td>Word count</td>
<td>{{model.article.stats.wordCount}}</td>
</tr>
</tbody>
</table>
<h3>Content</h3>
{{model.article.text}}
\ No newline at end of file
<h1>Topics</h1>
{{#link-to 'index'}}Top{{/link-to}}
{{#link-to 'topics'}}All{{/link-to}}
<hr>
{{outlet}}
\ No newline at end of file
<h2>Found topics</h2>
<h1>Topics</h1>
{{debounced-input placeholder='Filter' size='50' value=filter debounce='150'}}
{{debounced-input class='form-control' placeholder='Filter' size='50' value=filter debounce='150'}}
<br>
{{items-list items=model.topics filter=filter route='topics.show'}}
\ No newline at end of file
{{#link-to 'topics.show.edit'}}Edit{{/link-to}}
<h2>{{model.topic._name}}</h2>
<h3>Words</h3>
<table>
<table class="table table-striped table-bordered table-condensed">
<thead>
<tr>
<th>Word</th>
......@@ -14,7 +10,7 @@
<tbody>
{{#each model.topic.words as |word|}}
<tr>
<td>{{word.word}}</td>
<td>{{#link-to 'words.show' word.word}}{{word.word}}{{/link-to}}</td>
<td>{{word.likeliness}}</td>
</tr>
{{/each}}
......
<h1>Words</h1>
{{#link-to 'index'}}Top{{/link-to}}
{{#link-to 'words'}}All{{/link-to}}
<hr>
{{outlet}}
\ No newline at end of file
<h2>Found words</h2>
<h1>Words</h1>
{{items-list items=model.words filter=filter route='words.show'}}
\ No newline at end of file
<br>
<p>
{{model.words.length}} {{pluralize model.words.length 'Word'}} in the database:
</p>
{{#each model.words as |word|}}
{{#link-to 'words.show' word.id}}{{word.id}}{{/link-to}}
{{/each}}
\ No newline at end of file
{
"name": "vipra-ui",
"dependencies": {
"ember": "2.2.0",
"ember": "2.3.0",
"ember-cli-shims": "0.0.6",
"ember-cli-test-loader": "0.2.1",
"ember-data": "2.2.1",
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment