Skip to content

Commit

Permalink
Merge branch 'release/2.16.2'
Browse files Browse the repository at this point in the history
  • Loading branch information
vmalloc committed Apr 15, 2019
2 parents 95856fb + 5b1282c commit c88f714
Show file tree
Hide file tree
Showing 31 changed files with 217 additions and 93 deletions.
9 changes: 9 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
# Changelog

## Version 2.16.2

* Add optional compact view for tests - can be toggled both from the results bar and through the 'c'
keyboard shortcut
* Session overview in test view is now a user preference that can be set to show or hide the session
details by default
* Restored accidentally removed metadata links for tests
* Bug fixes

## Version 2.16.1

* UI fixes and corrections
Expand Down
1 change: 1 addition & 0 deletions flask_app/app.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ DEFAULT_PREFERENCES:
time_format: "DD/MM/YYYY HH:mm:ss"
start_page: 'default'
show_avatars: false
show_tes_session_overviews: false

display_names:
subject: subject
Expand Down
2 changes: 1 addition & 1 deletion integration_tests/ui/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -117,5 +117,5 @@ def assert_no_element(self, css_selector):
def find_session_link(self, session):
self.driver.refresh()
return self.driver.find_element_by_xpath(
f"//div[@data-session-id='{session.id}']"
f"//a[@data-session-id='{session.id}']"
)
3 changes: 3 additions & 0 deletions scripts/travis_version_fix.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,6 @@

with open('flask_app/__version__.py', 'w') as f:
print(f'__version__ = "{version}"', file=f)

with open('webapp/app/utils/ui_version.js', 'w') as f:
print(f'export default "{version}";', file=f)
2 changes: 2 additions & 0 deletions webapp/app/application/route.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { hash } from "rsvp";
import UI_VERSION from "../utils/ui_version";
import { inject as service } from "@ember/service";
import Route from "@ember/routing/route";
import ApplicationRouteMixin from "ember-simple-auth/mixins/application-route-mixin";
Expand Down Expand Up @@ -55,5 +56,6 @@ export default Route.extend(ApplicationRouteMixin, {
setupController(controller, model) {
controller.setProperties(model);
controller.set("version", model.runtime_config.version);
controller.set("ui_version", UI_VERSION);
},
});
2 changes: 1 addition & 1 deletion webapp/app/application/template.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@
<footer class="footer">
<div class="container text-center">
<p class="text-muted">
Backslash {{version}}
Backslash {{version}} (UI {{ui_version}})
</p>
</div>
</footer>
Expand Down
20 changes: 17 additions & 3 deletions webapp/app/components/keyboard-shortcuts/component.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,11 @@ let _keys = [
action: "toggle_human_times",
description: "Toggles human-readable times",
},
{
key: "c",
action: "toggle_compact_view",
description: "Toggles compact view where available",
},
{ key: "a", action: "filter_none", description: "Show all entities" },
{
key: "f",
Expand Down Expand Up @@ -172,6 +177,16 @@ export default Component.extend({
this.get("display").toggleProperty("humanize_times");
},

toggle_compact_view() {
let approute = getOwner(this).lookup("route:application");
let appcontroller = getOwner(this).lookup("controller:application");
let path = appcontroller.currentPath;
let controller = approute.controllerFor(path);
if (controller.get("compact_view") !== undefined) {
controller.toggleProperty("compact_view");
}
},

filter_only_failed() {
this._do_if_in(_FILTERABLE_VIEWS, function(controller) {
controller.filter_all_except("unsuccessful");
Expand Down Expand Up @@ -201,9 +216,8 @@ export default Component.extend({
let appcontroller = owner.lookup("controller:application");
let current_route = appcontroller.currentPath;
if (current_route.startsWith("session.test.")) {
owner
.lookup("controller:session.test")
.toggleProperty("show_session_overview");
let controller = owner.lookup("controller:session.test");
controller.toggleProperty("show_session_overview");
}
},
},
Expand Down
6 changes: 3 additions & 3 deletions webapp/app/components/query-results/template.hbs
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{{results-nav page=(mut page) has_next=meta.has_more num_pages=meta.num_pages page_size=(mut page_size) filter_controller=filter_controller sort=(mut sort) sort_options=sort_options}}
{{results-nav page=(mut page) has_next=meta.has_more num_pages=meta.num_pages page_size=(mut page_size) filter_controller=filter_controller sort=(mut sort) sort_options=sort_options compact_view=(mut compact_view) show_settings=true}}

{{#each results as |result|}}
{{component (concat result.type "-item") item=result show_subjects=show_subjects session_model=session_model show_user=show_users}}
{{component (concat result.type "-item") item=result show_subjects=show_subjects session_model=session_model show_user=show_users compact_view=compact_view}}
{{else}}
<div class="text-center faint">
No results found
</div>
{{/each}}

{{results-nav page=(mut page) has_next=meta.has_more num_pages=meta.num_pages }}
{{results-nav page=(mut page) has_next=meta.has_more num_pages=meta.num_pages show_settings=false}}
3 changes: 2 additions & 1 deletion webapp/app/components/results-nav/component.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,9 @@ export default Component.extend({
page: 1,
has_next: false,
num_pages: null,

show_settings: true,
filter_controller: null,
compact_view: null,

has_last: notEmpty("num_pages"),
has_prev: gt("page", 1),
Expand Down
51 changes: 33 additions & 18 deletions webapp/app/components/results-nav/template.hbs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{{#if filter_controller}}

{{#bs-dropdown classNames="justify-content-center align-self-center mr-2" closeOnMenuClick=false as |dd|}}
{{#dd.toggle classNames="faint nodecoration"}}{{fa-icon "filter"}} <span class="caret"></span>{{/dd.toggle}}
{{#dd.toggle classNames="faint nodecoration"}}{{fa-icon "filter"}} <span class="d-none d-lg-inline-block">Filter</span> <span class="caret"></span>{{/dd.toggle}}
{{#dd.menu as |menu|}}

{{#each filters as |filter|}}
Expand Down Expand Up @@ -36,23 +36,38 @@
{{/bs-dropdown}}
{{/if}}

{{#bs-dropdown classNames="justify-content-center align-self-center mr-2" as |dd|}}
{{#dd.toggle classNames="faint nodecoration"}}{{fa-icon "cog"}} <span class="d-none d-lg-inline-block">
Settings
</span> <span class="caret"></span>{{/dd.toggle}}
{{#dd.menu as |menu|}}
{{#menu.item}}
<a class="dropdown-item clickable" {{action (toggle "humanize_times" display)}}>
{{#if display.humanize_times}}
{{fa-icon "check" fixedWidth=true}}
{{else}}
{{fa-icon "fw"}}
{{/if}}
Human-friendly times
</a>
{{/menu.item}}
{{/dd.menu}}
{{/bs-dropdown}}
{{#if show_settings}}
{{#bs-dropdown classNames="justify-content-center align-self-center mr-2" as |dd|}}
{{#dd.toggle classNames="faint nodecoration"}}{{fa-icon "cog"}} <span class="d-none d-lg-inline-block">
Settings
</span> <span class="caret"></span>{{/dd.toggle}}
{{#dd.menu as |menu|}}
{{#menu.item}}
<a class="dropdown-item clickable" {{action (toggle "humanize_times" display)}}>
{{#if display.humanize_times}}
{{fa-icon "check" fixedWidth=true}}
{{else}}
{{fa-icon "fw"}}
{{/if}}
Human-friendly times
</a>
{{/menu.item}}

{{#if (exists compact_view)}}
{{#menu.item}}
<a class="dropdown-item clickable" {{action (toggle "compact_view" this)}}>
{{#if compact_view}}
{{fa-icon "check" fixedWidth=true}}
{{else}}
{{fa-icon "fw"}}
{{/if}}
Compact view
</a>
{{/menu.item}}
{{/if}}
{{/dd.menu}}
{{/bs-dropdown}}
{{/if}}

{{#if sort_options}}
{{#bs-dropdown classNames="justify-content-center align-self-center mr-2" as |dd|}}
Expand Down
2 changes: 1 addition & 1 deletion webapp/app/components/session-breakdown/template.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
{{# with (add session.num_failed_tests session.num_error_tests) as |num_errors|}}
<div class="failed">
{{#bs-tooltip}}
{{session.num_errors}} unsuccessful tests
{{num_errors}} unsuccessful tests
{{/bs-tooltip}}
<i class="fa fa-times"></i> {{num_errors}}
</div>
Expand Down
20 changes: 8 additions & 12 deletions webapp/app/components/session-item/component.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,28 +5,24 @@ import Component from "@ember/component";

export default Component.extend({
display: service(),
router: service(),
_router: service("router"),
user_prefs: service(),
classNames: "item session clickable",

tagName: "a",
classNames: "item session clickable d-block nodecoration",
classNameBindings: ["session.status_lowercase"],
show_labels: true,

attributeBindings: ["session.display_id:data-session-id"],
attributeBindings: ["session.display_id:data-session-id", "href"],

session: alias("item"),

in_pdb: oneWay("session.in_pdb"),
interrupted: and("item.finished_running", "item.has_tests_left_to_run"),

mouseUp() {
if (window.getSelection().type == "Range") {
return;
}
return this.get("router").transitionTo(
"session",
this.get("session.display_id")
);
},
href: computed("session.display_id", function() {
return this._router.urlFor("session", this.get("session.display_id"));
}),

has_any_error: computed(
"item.{num_failed_tests,num_error_tests,num_errors}",
Expand Down
42 changes: 30 additions & 12 deletions webapp/app/components/test-item/component.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,25 @@ import { inject as service } from "@ember/service";
import Component from "@ember/component";

export default Component.extend({
router: service(),
_router: service("router"),

tagName: "a",
attributeBindings: ["href"],
classNames: "item test clickable",
classNameBindings: "test.status_lowercase",
classNames: "item test clickable d-block nodecoration",
classNameBindings: ["test.status_lowercase", "compact_view:compact"],
compact_view: false,

session_model: null,
test: oneWay("item"),

href: computed("test.display_id", function() {
return this._router.urlFor(
"session.test",
this.get("test.session_display_id"),
this.get("test.display_id")
);
}),

display_params: computed("test.{parameters,variation}", function() {
let seen = new Set();
let returned = [];
Expand All @@ -28,20 +38,28 @@ export default Component.extend({
for (var key in params) {
if (params.hasOwnProperty(key)) {
if (!seen.has(key)) {
returned.push({ name: key, value: params[key] });
let parts = key.split(".");
let short = key;
let full = null;
if (parts.length > 1) {
short = parts[parts.length - 1];
full = key;
}
returned.push({
name: key,
short_name: short,
full_name: full,
value: params[key],
last: false,
});
seen.add(key);
}
}
}
}
if (returned.length > 0) {
returned[returned.length - 1].last = true;
}
return returned;
}),

mouseUp(e) {
if (window.getSelection().type == "Range") {
return;
}
e.stopPropagation();
return this.get("router").transitionTo("test", this.get("test.display_id"));
},
});
10 changes: 10 additions & 0 deletions webapp/app/components/test-item/component.scss
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,14 @@
text-decoration: underline;
}
}

&:not(.compact) .params.inline {
display: none;
}

&.compact {
.row:not(:first-child) {
display: none;
}
}
}
5 changes: 5 additions & 0 deletions webapp/app/components/test-item/template.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,11 @@
</div>
<div class="col text-truncate">
<strong>{{format-test-name test.info with_filename=false}}</strong>
<span class="inline params text-monospace">
{{#each display_params as |param|}}
<span class="param-name">{{#if param.full_name}}{{#bs-tooltip}}{{param.full_name}}{{/bs-tooltip}}{{/if}}{{param.short_name}}</span>=<code>{{param.value}}</code>{{if (not param.last) ','}}
{{/each}}
</span>
</div>
</div>
<div class="row">
Expand Down
18 changes: 8 additions & 10 deletions webapp/app/components/test-overview/component.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import Component from "@ember/component";
import EmberObject from "@ember/object";
import { computed } from "@ember/object";
import { oneWay } from "@ember/object/computed";
import { inject as service } from "@ember/service";

export default Component.extend({
Expand All @@ -12,8 +13,8 @@ export default Component.extend({
test_metadata: null,
test_model: null,

slash_tags: computed("metadata", function() {
let metadata = this.get("metadata");
slash_tags: computed("test_metadata", function() {
let metadata = this.get("test_metadata");
if (!metadata) {
return null;
}
Expand All @@ -26,7 +27,6 @@ export default Component.extend({
for (const [name, value] of Object.entries(tags.values)) {
returned.push({ name: name, value: value });
}

for (let name of tags.names) {
if (tags.values.hasOwnProperty(name)) {
continue;
Expand All @@ -45,13 +45,11 @@ export default Component.extend({
)) {
let value = metadata[link.key];
if (value) {
returned.push(
EmberObject.create({
name: link.name,
url: value,
icon: link.icon,
})
);
returned.push({
name: link.name,
url: value,
icon: link.icon,
});
}
return returned;
}
Expand Down
Loading

0 comments on commit c88f714

Please sign in to comment.