Joseph Schorr
17a0bc0fab
Fix CSS formatting of tag history display to not overflow
...
Fixes https://jira.prod.coreos.systems/browse/QS-59
2017-11-13 16:37:57 -05:00
Joseph Schorr
0217ef34ea
Trim Dockerfile commands to fix UI
...
Docker is (for some reason) adding an extra space, so trim the command before parsing
Fixes https://jira.prod.coreos.systems/browse/QS-57
2017-11-10 13:29:55 -05:00
Joseph Schorr
091b937ee3
Fix handling of promises for title and description of pages in Quay
...
We were not correctly waiting for the `scope` on page to be filled before trying to calculate the title, and the logic for description was broken as well.
2017-11-08 16:14:14 -05:00
Joseph Schorr
5380238919
Fix tag column width on smaller displays
...
We change how we selectively hide columns to give more room to the tag column
2017-11-08 15:58:34 -05:00
Joseph Schorr
703a64cd6a
Add pull by digest to the fetch tag dialog
2017-10-25 15:02:39 -04:00
Joseph Schorr
86e4539c04
Add ability to copy the full SHA256 or V1ID for an image
...
Clicking the little (SHA256) or (V1ID) bubble next to the ID will now show a dialog with a copy box.
2017-10-25 14:56:59 -04:00
Joseph Schorr
f4433920c1
Fix bug in reading the updated_tags
on a notification
...
It is no longer an Object, but an array
2017-10-24 15:24:33 -04:00
Joseph Schorr
1d593274dc
Fix build links in notifications
...
Fixes https://jira.prod.coreos.systems/browse/QS-33
2017-10-20 14:03:51 -04:00
Joseph Schorr
8081b8424f
Further NPE fix in tag signing display
...
Fixes https://jira.prod.coreos.systems/browse/QS-37
2017-10-17 13:13:19 -04:00
Joseph Schorr
ff3dac613a
Fix bug in entity search that caused all robots and teams to be non-lazy loaded
...
Should help immensely with repository page load time
Fixes https://coreosdev.atlassian.net/browse/QS-30
2017-10-09 15:44:46 -04:00
Joseph Schorr
a7f02c5451
Handle NPE in tag signing display
2017-10-09 14:07:16 -04:00
Joseph Schorr
563f6b5187
Make update user throbber show if user is not yet loaded
2017-10-09 14:03:11 -04:00
Joseph Schorr
38748576a1
Fix NPE in updateuser code
...
Fixes https://sentry.io/coreos/frontend-production/issues/364782088/
2017-10-09 14:02:36 -04:00
Joseph Schorr
3b4296f580
Add missing var
2017-10-06 14:36:02 -04:00
Joseph Schorr
9bbc73af1d
Forgot to close tabs, which caused bizarre dialog behavior
2017-10-06 13:51:02 -04:00
josephschorr
3bef21253d
Merge pull request #2695 from coreos-inc/oidc-internal-auth
...
OIDC internal auth support
2017-10-02 16:51:17 -04:00
Joseph Schorr
f8f0c3e6ae
Add documentation in the QE setup tool to show OIDC callback URLs
2017-09-28 14:58:43 -04:00
Joseph Schorr
82ff85b125
Add ability for users to change their name and company information
2017-09-26 16:58:04 -04:00
Alec Merdler
ad61df66c5
Merge pull request #2846 from alecmerdler/QUAY-682
...
Optimize Webpack JS Bundle Size
2017-09-18 16:47:30 -04:00
josephschorr
fa954466f7
Merge pull request #2867 from coreos-inc/invite-only
...
Add support for invite-only user creation
2017-09-15 14:29:50 -04:00
Joseph Schorr
ff80dad5b8
Add invitation required messaging
2017-09-15 11:42:09 -04:00
Joseph Schorr
6a8e57a353
Add superuser config for the invite-only feature
2017-09-14 16:28:39 -04:00
Joseph Schorr
804d3c46c3
Add feature flag to allow users to be created only if invited to join a team
...
Allows for open user creation, but only if extended an invitation by someone who already has access
2017-09-14 16:28:39 -04:00
Joseph Schorr
9a4c87795f
Fix contacts setup in superuser panel
...
Adds a missing import
2017-09-14 15:40:11 -04:00
Joseph Schorr
c105123ad4
Add superuser config for prefix autocomplete setting
2017-09-12 15:57:57 -04:00
Joseph Schorr
ed897c7cb0
Change OIDC engine to not be federated
...
We don't need linking, just the ability to perform lookup
2017-09-12 12:26:41 -04:00
Joseph Schorr
bc82edb2d1
Add ability to configure OIDC internal auth engine via superuser panel
2017-09-12 12:23:52 -04:00
Joseph Schorr
e724125459
Add support for using OIDC tokens via the Docker CLI
2017-09-12 12:23:22 -04:00
josephschorr
46e1bd9c75
Merge pull request #2850 from coreos-inc/jpmc-features
...
Features for JPMC
2017-08-16 14:29:00 -04:00
Joseph Schorr
c85942b15c
quay-require and ng-class don't work well together
...
Fixes captcha display
2017-08-08 11:16:41 -04:00
Joseph Schorr
650dbe5f5b
Add config to enable "public" namespaces
...
These are namespaces that will be displayed in the repo list view, regardless of whether the user is a member.
2017-08-07 15:59:06 -04:00
Joseph Schorr
dff4207a89
Add feature flag to enable viewing builds and build logs for public repos
2017-08-07 15:24:36 -04:00
Alec Merdler
6dae6c4f82
whitelisted moment.js locales to reduce bundle size
2017-08-02 15:46:14 -04:00
Alec Merdler
82a08a942e
removed Rickshaw dependency used by dead code
2017-08-02 10:27:44 -04:00
Alec Merdler
41c12c853c
use Webpack code-splitting to dynamically import Highlight.js languages as they are detected by Showdown Markdown extension
2017-08-01 15:36:54 -04:00
Alec Merdler
8dc2a99926
refactored Markdown components to reduce bundle size
2017-08-01 10:55:05 -04:00
Antoine Legrand
fc8ba8b84e
test yarn e2e
2017-07-28 15:03:35 +02:00
Alec Merdler
25f514a03d
fixed status bar not showing
2017-07-26 11:24:12 -04:00
Joseph Schorr
ec71d787af
Add config option to enable self-service team syncing
2017-07-21 11:16:19 -04:00
Alec Merdler
b11a51b62e
fixed overflowing release name in application view
2017-07-20 11:23:52 -04:00
josephschorr
a6db05e8b5
Merge pull request #2718 from coreos-inc/tag-expiration
...
Formal tag expiration support
2017-07-19 17:48:11 -04:00
josephschorr
b8e5a21736
Merge pull request #2663 from coreos-inc/multi-instance-su-panel
...
Disable debug logs in superuser panel when under multiple instances
2017-07-19 17:28:05 -04:00
Joseph Schorr
05194664a9
Better typing on expiration status view
2017-07-19 17:13:49 -04:00
Joseph Schorr
a8b340feb6
Have tag ops dialog set the expiration date to the current date for the tag, by default
2017-07-19 17:13:49 -04:00
Joseph Schorr
1d600abc5d
Fix bug in date time picker that prevents subsequent selection
2017-07-19 17:13:49 -04:00
Joseph Schorr
7d4fed6892
Change error message when trying to pull a deleted or expired tag
...
Will let the users know they can recover the tag via time machine
Note: This was tested with the Docker protocol, but the new error code is *technically* out of spec; we should make sure its okay.
2017-07-19 17:13:48 -04:00
Joseph Schorr
99d7fde8ee
Add UI for viewing and changing the expiration of tags
2017-07-19 17:13:48 -04:00
Joseph Schorr
977539bf08
Abstract out an expiration status view into its own component
2017-07-19 17:13:48 -04:00
josephschorr
3b73695c04
Merge pull request #2724 from coreos-inc/multistage-build-ui
...
Add support for multistage Docker build in build UI
2017-07-19 09:30:22 -04:00
Alec Merdler
0cbe3bdf73
Merge pull request #2785 from alecmerdler/QUAY-542
...
Use Repository Description in Web Search Results for Quay.io
2017-07-17 10:48:20 -04:00
Alec Merdler
a9c2ea608d
update application and repository views to set <meta> description to improve search results
2017-07-14 14:03:49 -04:00
Alec Merdler
6f1e8ae9b2
Merge pull request #2781 from alecmerdler/QUAY-734
...
Manual Build Trigger UI Fix
2017-07-14 14:01:27 -04:00
Alec Merdler
2814df482b
display branchtag regex when manually invoking build triggers to avoid confusion when multiple triggers
2017-07-14 13:30:02 -04:00
Evan Cordell
45bf7efc84
Merge branch 'master' into no-signing-whitelist
2017-07-12 15:50:32 -04:00
Evan Cordell
75c1533aec
Revert "Only show signing UI when namespace is explicitly whitelisted"
...
85d382cd84
2017-07-12 15:48:35 -04:00
alecmerdler
5e41de5370
maintain fixed-width columns when filtering cor-table
2017-07-12 14:02:55 -04:00
josephschorr
96d1fd128d
Merge pull request #2757 from coreos-inc/joseph.schorr/QUAY-606/logarchive-georep
...
Add support for QE customers to enable log rotation
2017-07-12 00:30:04 +03:00
Ben Spoon
aa5bf227b8
Change helm registry url to github from coreos.com
2017-07-11 09:53:58 -07:00
Joseph Schorr
a13235c032
Fix typo
2017-07-10 18:35:51 +03:00
Evan Cordell
939ddfd1d7
Merge v2.4.0-release into cherrypick-2.4.0
2017-07-10 10:25:18 -04:00
Joseph Schorr
661c0e6432
Add superuser configuration for action log rotation
2017-07-10 13:22:29 +03:00
Evan Cordell
3e3e25bb5a
Switch to new markdown editor everywhere
2017-07-05 17:35:26 -04:00
alecmerdler
41e7e559a6
added TSLint for TypeScript code style checking, fixed associated errors
2017-06-27 11:37:13 -07:00
Alec Merdler
e45ffb39d1
Merge pull request #2726 from alecmerdler/fix-cor-tabs-back-button
...
Fix UI Tabs To Play Nicely with Browser Back Button
2017-06-26 16:55:14 -07:00
alecmerdler
f78e1fb679
added end-to-end tests for cor-tabs in image repo view
2017-06-26 16:53:42 -07:00
alecmerdler
8c03a6be31
cor-tab-panel emits first registered tab ID if active tab is undefined
...
adding e2e tests for cor-tabs
2017-06-26 16:53:12 -07:00
alecmerdler
74ebf2a94b
prevent invalid entity create form submission using enter key
2017-06-23 15:12:52 -07:00
Joseph Schorr
e0a1e05c52
Fix Dockerfile command view for FROM
with as
clause
2017-06-23 16:04:05 -04:00
Joseph Schorr
09e9b5cb53
Add support for multi-step phase delimitation in build logs view
2017-06-23 16:00:22 -04:00
Joseph Schorr
1d60414a23
Cleanup display of image commands to be better shared
...
Also moves the work into a TS component
2017-06-23 14:53:02 -04:00
Joseph Schorr
7f436bb54a
Remove unused image-info-sidebar directive
2017-06-23 14:38:26 -04:00
alecmerdler
f5c1ae0719
fixed AngularJS escaping '?' character in URL
2017-06-23 11:27:07 -07:00
Joseph Schorr
62d7cb234c
Move DockerfileCommand component into TS
2017-06-23 14:22:28 -04:00
Joseph Schorr
255bebcc92
Remove unused Dockerfile view directive
2017-06-23 13:32:11 -04:00
Joseph Schorr
70f26754b8
Add missing Dockerfile command colors
2017-06-23 13:21:41 -04:00
alecmerdler
31d518f3e1
added Protractor for end-to-end testing
2017-06-22 22:16:05 -07:00
alecmerdler
675127e0da
fixed background CSS in setup
2017-06-22 19:12:15 -07:00
Joseph Schorr
6ae81ae50b
Fix URI lib import in setup tool
...
Move to web pack broke this
2017-06-22 16:14:11 -04:00
alecmerdler
a46083ad57
fixed footer service status alignment
2017-06-16 14:15:27 -07:00
Jimmy Zelinskie
e028e159c0
add app registry config to setup tool: default off
2017-06-16 15:44:00 -04:00
Alec Merdler
ed2e32fb39
Merge pull request #2702 from alecmerdler/fix-app-view-settings-layout
...
Fix App Settings View Layout Styling
2017-06-14 13:05:03 -07:00
alecmerdler
7cd1e5208a
fix app settings view layout styling
2017-06-14 12:42:35 -07:00
alecmerdler
5aa18456b7
removed ngReact module dependency
2017-06-14 12:30:21 -07:00
Alec Merdler
9c49093d2a
Merge pull request #2700 from alecmerdler/karma-headless-chrome
...
Use Headless Chrome for Unit Tests
2017-06-14 12:04:36 -07:00
alecmerdler
e1210cd6df
removed PhantomJS in favor of ChromeHeadless and upgraded Karma, removed Karma tests from Dockerfile
2017-06-13 17:04:07 -07:00
Evan Cordell
b6d423a50d
Merge pull request #2687 from ecordell/enable-builds-trust
...
Re-enable builds and tag modification when signing is enabled
2017-06-13 11:20:04 -04:00
Evan Cordell
7b3cb9c8b7
Re-enable builds and tag operations in the UI
2017-06-13 09:56:47 -04:00
alecmerdler
9dfab42c0a
remove React code, node-sass, and sass-loader dependencies
2017-06-08 11:19:25 -07:00
alecmerdler
1f9c3b142d
fixed infinite cycle by removing getPattern function in favor of field.regex
2017-06-05 14:16:00 -07:00
Alec Merdler
c9cc2d9fdd
Merge pull request #2681 from alecmerdler/fix-cor-cookie-tabs
...
Fix CorCookieTabs Panel Undefined
2017-06-05 10:10:57 -07:00
alecmerdler
cfcdcde1bc
remove one-time binding to prevent binding to empty string
2017-06-02 20:27:52 -07:00
alecmerdler
1339331de7
subscribe to activeTab changes in ngAfterContentInit to ensure panel exists
2017-06-02 20:17:42 -07:00
alecmerdler
9da1487bbc
improve cor-tabs architecture
2017-06-02 18:03:30 -07:00
Erica
ca5f588c44
Merge pull request #2672 from coreos-inc/FIX-user-service-async
...
fix(user-service): make sync calls to update user async
2017-05-26 17:55:07 -04:00
josephschorr
e3445a5723
Merge pull request #2669 from coreos-inc/app-repo-view
...
Add messaging if viewing a repo via the wrong path
2017-05-26 17:22:36 -04:00
EvB
20284f57f3
fix(user-service): make sync calls to update user async
2017-05-26 17:18:05 -04:00
alecmerdler
d5e35156e0
ensure @Input bindings are not undefined before executing trigger logic
2017-05-26 12:53:23 -07:00
Joseph Schorr
8c56a86280
Add messaging if viewing a repo via the wrong path
2017-05-25 16:04:38 -04:00
alecmerdler
3068e874b7
avoid filtering by sorting fields
2017-05-25 12:47:02 -07:00
Alec Merdler
f759784262
Merge pull request #2667 from alecmerdler/no-flash-clipboard
...
Copy-to-Clipboard Without Flash
2017-05-25 11:57:38 -07:00
alecmerdler
062c1a1626
added copy-to-clipboard directive that does not require Flash
2017-05-25 11:48:43 -07:00
Alec Merdler
abebeef9dc
Merge pull request #2666 from alecmerdler/fix-cor-table-pagination
...
Fix CorTableComponent Pagination Error
2017-05-25 11:26:36 -07:00
alecmerdler
e53ade6bd4
added default maxDisplayCount for cor-table to fix pagination NaN error
2017-05-24 21:43:25 -07:00
Alec Merdler
c61e212ecd
Merge pull request #2665 from alecmerdler/fix-trigger-build-source
...
Fixed Build Source in Custom Git Trigger
2017-05-24 15:18:47 -07:00
alecmerdler
3fb4d0750b
fixed build_source validation in custom git trigger
2017-05-24 15:12:17 -07:00
josephschorr
2ec43483a8
Merge pull request #2662 from coreos-inc/direct-login
...
Enable toggling of the direct login feature in the superuser panel
2017-05-24 16:51:43 -04:00
alecmerdler
cdcb944543
replace reference to global classes with ES6 modules
2017-05-24 13:37:30 -07:00
Joseph Schorr
9518f1d045
Disable debug logs in superuser panel when under multiple instances
...
They don't work anyway (since logs will be loaded from random instances), so we just disable them
2017-05-24 14:34:29 -04:00
Joseph Schorr
2b9873483a
Enable toggling of the direct login feature in the superuser panel
...
Allows superusers to disable login to the UI via credentials if at least one OIDC provider is configured
2017-05-24 12:57:55 -04:00
josephschorr
8e8470890a
Merge pull request #2653 from coreos-inc/new-signing-ui
...
Implement updated UI for displaying the signing status of a tag, now …
2017-05-24 11:31:52 -04:00
alecmerdler
13439e0ca7
add header to clarify optional robot selection during build trigger setup
2017-05-23 14:50:34 -07:00
Joseph Schorr
51485a5006
Review fixes: rename type names and add better coloring
2017-05-23 15:31:42 -04:00
Charlton Austin
e52041fc87
Merge pull request #2630 from charltonaustin/refresh_the_user_management_page_and_not_have_weird_errors_145041479
...
fix(entity-search.js): fix reload namespace
2017-05-23 13:12:39 -04:00
Charlton Austin
9729ac3cbb
fix(entity-search.js): fix reload namespace
...
before if you reloaded the say the team owners tab you would get
an error this now watches the namespace and updates it
[TESTING -> tested against prod like data with local docker build]
Issue: https://www.pivotaltracker.com/story/show/145041479
- [ ] It works!
- [ ] Comments provide sufficient explanations for the next contributor
- [ ] Tests cover changes and corner cases
- [ ] Follows Quay syntax patterns and format
2017-05-23 12:48:11 -04:00
Alec Merdler
bfe4a050c4
Merge pull request #2658 from alecmerdler/webpack-overhaul
...
Replace Grunt with Webpack as Front-End Build Tool
2017-05-22 14:31:37 -07:00
Alec Merdler
97256841bd
Refactor Manage Trigger to Single Workflow ( #2577 )
...
* Refactor Manage Trigger to Single Workflow
2017-05-22 13:59:12 -07:00
alecmerdler
2e133d2b9c
replaced Grunt with Webpack as front-end build tool
2017-05-22 12:00:51 -07:00
Joseph Schorr
c33ed8f597
Implement updated UI for displaying the signing status of a tag, now that we support multiple delegations
...
The icon now represents the status of the multiple delegations, and we show each delegation in the "Expanded" view.
2017-05-22 11:18:32 -04:00
Charlton Austin
a71f60a9c1
Merge pull request #2652 from charltonaustin/failing_repository_notifications_to_be_disabled_after_n_failures_in_a_row_144646649
...
Failing repository notifications to be disabled after n failures in a row 144646649
2017-05-22 09:30:53 -04:00
Charlton Austin
993f2a174c
feat(full-stack): disable notifications after 3 failures
...
This stops notifications from firing over and over again if they are repeatedly failing.
[TESTING -> locally with docker compose, DATABASE MIGRATION -> there is a single migration]
Issue: https://www.pivotaltracker.com/story/show/b144646649n
- [ ] It works!
- [ ] Comments provide sufficient explanations for the next contributor
- [ ] Tests cover changes and corner cases
- [ ] Follows Quay syntax patterns and format
2017-05-19 16:58:46 -04:00
Alec Merdler
86bcbd1225
Merge pull request #2650 from alecmerdler/fix-external-notification
...
Fix External Notification Modal UI
2017-05-18 23:12:19 -07:00
alecmerdler
0103b65ed1
hide existing Markdown content while editing
2017-05-17 18:00:31 -07:00
alecmerdler
5a963873cf
fixed external notification email modal
2017-05-17 16:43:56 -07:00
Kenny Lee Sin Cheong
afc13140c4
Show build logs timestamps by default
...
Show timestanps in build logs when quay.showBuildLogTimestamps is not set
2017-05-16 23:59:14 -04:00
Jimmy Zelinskie
702cdf59ff
Merge pull request #2637 from jzelinskie/audit-apps
...
Audit Logs for Apps
2017-05-16 17:06:25 -04:00
Alec Merdler
2cc77b00bc
Merge pull request #2645 from alecmerdler/fix-markdown-view
...
Fixed Markdown Issues
2017-05-16 13:31:25 -07:00
alecmerdler
a7aa87d490
fixed overflow in markdown-view component and old usage of Markdown global
2017-05-16 13:12:03 -07:00
Jimmy Zelinskie
d7564fd627
add app metadata fields to usage logs component
2017-05-16 15:54:02 -04:00
Jimmy Zelinskie
f4f67c8c62
app-public-view: add Audit Logs tab
2017-05-16 15:54:02 -04:00
Evan Cordell
61b7bfa90f
Rename Quay Content Trust to Quay Trust
2017-05-16 07:40:20 -04:00
Evan Cordell
50141c735b
Merge pull request #2640 from ecordell/fix-k8s-secret
...
Fix kubernetes secret generation
2017-05-15 17:22:16 -04:00
Charlton Austin
faa6b0c3a6
fix(custom git trigger): fixed init
...
correctly added in default parameters for config
[TESTING -> locally with docker]
Issue: https://www.pivotaltracker.com/story/show/145071887
- [ ] It works!
- [ ] Comments provide sufficient explanations for the next contributor
- [ ] Tests cover changes and corner cases
- [ ] Follows Quay syntax patterns and format
2017-05-15 13:37:00 -05:00
Evan Cordell
c413e349ef
Fix kubernetes secret generation
2017-05-15 11:10:21 -04:00
Alec Merdler
6b54279bb7
Markdown Overhaul ( #2624 )
...
Rebuilt Markdown editor/views into new components
2017-05-10 14:18:37 -07:00
alecmerdler
d048542288
ixed race condition for retrieving image security scan on vulnerability view
2017-05-10 10:36:27 -07:00
Alec Merdler
977ae7a809
Merge pull request #2633 from alecmerdler/fix-typeahead-template
...
Fix jQuery Typeahead Template Bug
2017-05-09 13:14:10 -07:00
alecmerdler
481daff85d
jQuery typeahead suggestion template needs to be valid HTML markup
2017-05-09 12:25:21 -07:00
Joseph Schorr
c4e3a5e0a7
Fix apps view for mobile
...
Fixes https://www.pivotaltracker.com/story/show/144543995
2017-05-08 21:17:24 -04:00
Joseph Schorr
43619b6745
Switch app repo view to use cor-tabs, now that it supports horizontal tabs
2017-05-08 16:48:24 -04:00
Joseph Schorr
ea13469d9d
Add support for horizontal tabs into cor-tabs
2017-05-08 16:46:46 -04:00
Evan Cordell
85d382cd84
Only show signing UI when namespace is explicitly whitelisted
2017-05-08 13:50:07 -04:00
Joseph Schorr
3d1197c6af
Fix NPE in cor tab panel
2017-05-05 16:31:04 -04:00
Joseph Schorr
aa53dc0f66
Add missing colon onto bindings
2017-05-05 16:30:34 -04:00
Charlton Austin
339aeb59f1
Merge pull request #2625 from charltonaustin/fix_robot_display_error
...
fix(frontend): fixed changing location
2017-05-05 15:27:45 -04:00
josephschorr
f228ebdc22
Merge pull request #2591 from coreos-inc/cor-tabs
...
Change cor-tabs to be a TypeScript and Angular "neu" component
2017-05-05 15:13:44 -04:00
Charlton Austin
6e533e3627
fix(frontend): fixed changing location
...
before we were setting the location on the window when we should have been just using Angular $location service instead
[TESTING -> tested locally with docker compose and a complete build]
- [ ] It works!
- [ ] Comments provide sufficient explanations for the next contributor
- [ ] Tests cover changes and corner cases
- [ ] Follows Quay syntax patterns and format
2017-05-05 15:10:06 -04:00
Charlton Austin
a6b7560fdc
fix(static): add in init
...
not sure what happened to the init from before
[testing -> tested locally with docker build]
- [ ] It works!
- [ ] Comments provide sufficient explanations for the next contributor
- [ ] Tests cover changes and corner cases
- [ ] Follows Quay syntax patterns and format
2017-05-04 16:40:40 -04:00
Joseph Schorr
b11239f3bf
Change cor-tabs to be a TypeScript and Angular "neu" component
...
We no longer use bootstrap tabs code in this version
This is in prep for changing the tab style
2017-05-04 15:43:21 -04:00
Alec Merdler
b21af5c1b8
Merge pull request #2621 from alecmerdler/fix-status-service
...
Fix JS StatusService Error
2017-05-04 12:01:29 -07:00
alecmerdler
4715560e55
return no-op status service if billing is not enabled
2017-05-04 11:56:46 -07:00