Commit graph

72 commits

Author SHA1 Message Date
Marc Abramowitz bed7564e95 Remove unused RepositoryController route (#149)
as far as I can tell, there is no `RepositoryController` controller, so
this route is not useful.
2016-12-13 11:13:10 +01:00
Marc Abramowitz 3ad864b388 Handle images with no user properly (#147)
* Uncomment test for no repositoryUser

in `app/app.spec.js`, so I can work on getting this case working.

* Add $log to repository-detail-controller

* Set $scope.repository properly even if no user

Check if `$scope.repositoryUser` is defined and if it's not, set
`$scope.repository` simply to `$scope.repositoryName`.

* Add route for repo with no repositoryUser

* Make tagsPerPage dropdown use query string vars

instead of putting `tagsPerPage` in the route part of the URL, which
makes it difficult to distinguish between `repositoryName` and
`tagsPerPage`, because the routes are too similar.

* Make first/next links use query string vars

instead of putting `tagsPerPage` in the route part of the URL, which
makes it difficult to distinguish between `repositoryName` and
`tagsPerPage`, because the routes are too similar.

* Move defaultTagsPerPage

from `RepositoryListController` to `TagController`.

I think it makes more sense to read `defaultTagsPerPage` in
`TagController` than to do it in `RepositoryListController` and have to
pass it in URLs.

* Fix "Details for repository" for repo w/ no user

* Fix breadcrumb when no repositoryUser

* Remove tagsPerPage/tagPage from repo detail routes

* Update unit tests to use tagsPerPage qs param

Updated the unit tests to page `tagsPerPage` as a query string parameter
rather than in the route.

* Uncomment assertions about scope.reposPerPage

an make them work by casting string to an int with `parseInt`.

* Make /tag work for image with no repositoryUser

* repository-detail.html: Fix breadcrumb link

for case when there is no `repositoryUser`.

* tag-detail.html: Fix breadcrumb link

when image has no `repositoryUser`.

* tag-detail.html: Fix shown docker pull command

when image has no `repositoryUser`.

* tag-detail.html: Show docker pull cmd in code font

I think it looks better.
2016-08-04 17:16:32 +02:00
Jun Li c34f619932 delay tag item showing until its manifest received (#137)
For a tag item, there exists a time interval between receiving its name and its manifest.
That will result in some jitter when loading.

Signed-off-by: lijun <lijun@qiyi.com>
2016-07-20 10:33:29 +02:00
Marc Abramowitz ea2bcd55cd Make "npm test" run Karma tests (#140)
* Make "npm test" run Karma tests

Result is this:

```
$ npm test

> docker-registry-frontend@0.0.2 pretest /Users/marca/dev/git-repos/docker-registry-frontend_2
> npm install

> docker-registry-frontend@0.0.2 postinstall /Users/marca/dev/git-repos/docker-registry-frontend_2
> bower install

> docker-registry-frontend@0.0.2 test /Users/marca/dev/git-repos/docker-registry-frontend_2
> karma start test/karma.conf.js

09 07 2016 13:36:20.771:WARN [karma]: No captured browser, open http://localhost:8080/
09 07 2016 13:36:20.781:INFO [karma]: Karma v1.1.1 server started at http://localhost:8080/
09 07 2016 13:36:20.782:INFO [launcher]: Launching browser PhantomJS with unlimited concurrency
09 07 2016 13:36:20.788:INFO [launcher]: Starting browser PhantomJS
09 07 2016 13:36:21.250:INFO [PhantomJS 2.1.1 (Mac OS X 0.0.0)]: Connected on socket /#Z4MF21dfMgThOi3zAAAA with id 9538616
PhantomJS 2.1.1 (Mac OS X 0.0.0) Controller: MainCtrl should attach a list of awesomeThings to the scope FAILED
	forEach@bower_components/angular/angular.js:326:24
	loadModules@bower_components/angular/angular.js:4115:12
	createInjector@bower_components/angular/angular.js:4041:22
	workFn@bower_components/angular-mocks/angular-mocks.js:2464:60
	loaded@http://localhost:8080/context.js:151:17
	bower_components/angular/angular.js:4155:53
	TypeError: undefined is not an object (evaluating 'scope.awesomeThings') in test/spec/controllers/main.js (line 20)
	test/spec/controllers/main.js:20:17
	loaded@http://localhost:8080/context.js:151:17
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 1 of 1 (1 FAILED) ERROR (0.005 secs / 0.006 secs)
```

Fixes #139

* Make MainController tests work

This makes the `MainController` tests pass.

```
$ npm test

> docker-registry-frontend@0.0.2 pretest /Users/marca/dev/git-repos/docker-registry-frontend_2
> npm install

> docker-registry-frontend@0.0.2 postinstall /Users/marca/dev/git-repos/docker-registry-frontend_2
> bower install

> docker-registry-frontend@0.0.2 test /Users/marca/dev/git-repos/docker-registry-frontend_2
> karma start test/karma.conf.js

09 07 2016 17:06:59.974:WARN [karma]: No captured browser, open http://localhost:8080/
09 07 2016 17:06:59.986:INFO [karma]: Karma v1.1.1 server started at http://localhost:8080/
09 07 2016 17:06:59.986:INFO [launcher]: Launching browser PhantomJS with unlimited concurrency
09 07 2016 17:07:00.133:INFO [launcher]: Starting browser PhantomJS
09 07 2016 17:07:01.051:INFO [PhantomJS 2.1.1 (Mac OS X 0.0.0)]: Connected on socket /#6enEIdsugSVdKVioAAAA with id 62465837
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 1 of 1 SUCCESS (0.004 secs / 0.024 secs)
```

* test/karma.conf.js: Add more files

E.g.:

  - angular-bootstrap,
  - angular-bootstrap-checkbox
  - angular-filter
  - angular-loading-bar
  - angular-moment
  - angular-smart-table

I also alphabetized the list to make it easier to check if something is
already included.

* test/karma.conf.js: Add 'dots' reporter

* Add app/app.spec.js

`app/app.spec.js` contains tests for various routes, which should be
very useful for finding and fixing routing bugs.

See:

  - #97
  - #100
  - #104
  - #121

* Enable junit and spec Karma reporters

* app/app.spec.js: Check scope attributes

* app/app.spec.js: Check scope.appMode

* test/spec/controllers/main.js: Check appVersion & registryHost

* MainController: use registry-services

In `MainController`, depend on the `registry-services` module instead of
the `registry-host-services` module.

* Remove app/services/registry-host-services.js

Remove `app/services/registry-host-services.js` because it seems to be
an older, unused version of `app/services/registry-services.js`

* repository-list-controller: Add dependencies

Specify that the `repository-list-controller` module depends on
`ngRoute` and `ui.bootstrap` modules.

Otherwise controller tests of this module fail.

* $scope.repositories = data;

In `repository-list-controller`, do:

    $scope.repositories = data;

in the promise callback. Otherwise, the new tests in
`app/repository/repository-list-controller.spec.js` fail.

This is because promises get resolved in templates but not in until
tests -- see
http://stackoverflow.com/questions/15048132/angularjs-promise-not-being-resolved-in-unit-test

* Add unit test for RepositoryListController

in `app/repository/repository-list-controller.spec.js`.

      RepositoryListController
        ✓ should attach some keys to the scope

* Gruntfile.js: Use DOCKER_REGISTRY_{HOST,PORT}

Use `DOCKER_REGISTRY_HOST` and `DOCKER_REGISTRY_PORT` environment
variables so that one can specify a custom Docker registry server while
developing, without hacking `Gruntfile.js`.
2016-07-19 08:41:24 +02:00
Arthur De Kimpe d5dd87d1c9 Add image details support with API v2 (#84)
Revert changes on default projet file

Add detailed information for tag listing

Removed useless comments, divs, etc -> refactoring

Prevent bugs from future changes of API

Add digest attribute to Manifest query response

Add basic pagination support to tag listing

Add environment variable for tags per page

Fix bug of image history without config + disabled parent id

Fix tags pagination system - Fetch infos for all pages

add missing comma

 Fetch infos for all pages -> simpler fix

Disable apache directory listing feature

Update tag pagination system to make it feel more like repository pagination system
2016-04-11 09:46:40 +02:00
majinjing3 021f0284b4 Update docker registry api url 2015-12-09 13:37:49 +08:00
Konrad Kleine 4fe173efb1 Fix listing of tags
Previously a lot of useless AJAX request have been made for each tag.
Those requests where necessary in v1 but not in v2 where they don't do
anything.

The tag listing is cleaned up a log.
2015-11-17 13:37:40 +01:00
Konrad Kleine d6fcb56216 Fix path to about view 2015-11-17 13:09:14 +01:00
Konrad Kleine 2010da2a34 Make default number of repositories per page configurable 2015-09-24 10:19:40 +02:00
Konrad Kleine ef70220d0b Show simple list of tags in v2 registry's repository
The current implementation is basic only. Basically all columns have
been removed just to show the tag name and that's it.

This will be adjusted further in the near future.
2015-09-03 17:04:56 +02:00
Konrad Kleine 6db5b073eb List repos in v2 registry with paging (#47 and #7)
We can now navigate forward through all images inside a v2 registry. The
default page size is 10 but it can be changed to some other numbers as
well.

The unused repository selector files have been removed.

The repository list directive was moved to the repository list html
template for simplicity.

The repository list no longer says that it searches for repos but
filters repos on the current page.

The bottom delete repos button has been removed in favor of more space
for the pagination controls.

The pagination works as described here:
https://github.com/docker/distribution/blob/master/docs/spec/api.md#pagination
We take the "Link:" header parameter from the response and extract
portions of it to formulate the next request. As usual, each page is
addressible via the URL.

Note that when changing the number of repositories per page we have no
other way but to go to page 1 and show at max the number of repositories
selected.

There's no way to find out how many repos are there so we cannot provide
page links. Only forward navigation is possible.
2015-09-03 10:44:24 +02:00
Konrad Kleine 3f988e7309 Restructure code
Now all files dealing with repositories reside in app/repository and all
dealing with tag reside in app/tag. That's far more easy to maintain
than having tag files spread across multiple folders.
2015-08-31 15:32:38 +02:00
Konrad Kleine d20042e955 Revert "Add apiVersion flag and ENV_DOCKER_REGISTRY_API_VERSION var"
This reverts commit 2fe27a2902.
2015-08-31 10:55:14 +02:00
Konrad Kleine 2fe27a2902 Add apiVersion flag and ENV_DOCKER_REGISTRY_API_VERSION var 2015-07-23 16:34:56 +02:00
Konrad Kleine 3c3a6f6f08 Revert "fixed deleting repositories doenst always work"
This reverts commit 81be538dfc.

The loop was ignored. See PR #54
2015-07-01 14:07:00 +02:00
Martin Bydzovsky 81be538dfc fixed deleting repositories doenst always work 2015-07-01 10:56:00 +02:00
Konrad Kleine ff69f40ce6 Fix fork link 2015-06-08 15:13:20 +02:00
Konrad Kleine 3807ecf1b8 Migrated from hashbang URL to HTML5 mode
This should greatly simplify how to write and read URLs. Additionally this
should improve SEO compatibility as each site is now recognized as its own
entity. To read more about HTML5 URL mode, see these pages:

* https://docs.angularjs.org/api/ng/provider/$locationProvider
* https://docs.angularjs.org/error/$location/nobase
2015-06-08 14:20:18 +02:00
Pier Fumagalli 53efbaf2cc Inject registryHost value in main scope. 2015-05-20 14:32:37 +09:00
Pier Fumagalli 390c97baad Fix location of JQuery (for Bootstrap). 2015-05-20 14:32:09 +09:00
Pier Fumagalli 8aad820d83 Fix open DIV from kwk/docker-registry-frontend#41 2015-05-20 14:31:34 +09:00
Konrad Kleine 97c9ca0446 Work on #32 - Allow deletion of multiple tags/images at the same time
I did some cleanup and unified the deletion of items (e.g. tags or repos) a bit.
Now, you can select multiple repositories or tags and delete them at once.
Confirmation is done using a modal popup.

Success and error messages will still be prompted for each operation using
toastr notification.

One thing that is still missing is the selection of multiple items using some
automation like a stupid "select all" button.

Also, any selected item remains selected even if it does not show up any longer
due to filtering. That's why the delete buttons explicitly tell the number of
items to be deleted. This can cause issues when paging (not implemented yet) or
filtering.
2015-05-19 14:52:44 +02:00
Konrad Kleine c384684326 Re-added glyphicons and git revision in footer
They were removed by previous modifications by momiael.
2015-05-18 12:49:49 +02:00
Maël Lavault 4bb4fd9c01 Make footer smaller and always sticked to bottom of the window
Signed-off-by: Maël Lavault <mael.lavault@mailz.org>
2015-05-07 17:35:36 +02:00
Konrad Kleine 7bd02170a8 Revert "Animate repository group list items"
This reverts commit f3ecdb8b74.

We had some strange issues with filtering the repository list.
2015-02-17 15:38:21 +01:00
Konrad Kleine f3ecdb8b74 Animate repository group list items 2015-02-04 15:38:43 +01:00
Konrad Kleine 13e23e796f Don't cache app mode 2015-02-04 12:00:32 +01:00
Konrad Kleine 03988213f4 Fix typo: Delete tag -> Delete repository 2015-02-04 11:48:57 +01:00
Konrad Kleine 7afb9d397c Preselect repo (if any) when creating tag 2015-02-04 10:52:09 +01:00
Konrad Kleine f740662ffb Group repositories by username
The repository list now groups all repositories by username.

Due to the grouping sorting becomes an issue and that's why I've removed the
sort button.
2015-02-04 10:25:31 +01:00
Konrad Kleine ab7a9cb5d9 Add missing contoller parameters to controllers used in views. 2015-02-03 12:58:54 +01:00
rinrinne b5717cdb59 Apply browseOnly for create-tag/delete-tag/delete-repository views 2015-02-03 12:58:53 +01:00
rinrinne f206109003 Change attribute name from "browse" to "browseOnly" 2015-02-03 12:58:53 +01:00
rinrinne dbf022534f Adjust documentation and remove unnecessary code 2015-02-03 12:58:53 +01:00
rinrinne fc45482c0f Add browse mode
This patch adds browse mode to hide any administration feature e.g.
delete repository/tag, create tag.
If you run container with "-e ENV_BROWSE_MODE=true", this feature will
be enabled.
2015-02-03 12:58:53 +01:00
Stuart Warren dca48a3977 override host/port for docker pull advice 2015-01-02 10:16:44 +00:00
Konrad Kleine d7220e1d70 Removing obsolete "create tag" view. 2014-12-16 11:21:17 +01:00
Konrad Kleine d9ef280c08 See #5 Sorting based on image time 2014-10-23 16:19:42 +02:00
Konrad Kleine 0861441c37 Added version information to bottom of screen
At the bottom of the screen the docker-registry-frontend will now render the
commit upon the running version is built. The commit is linked to the github
commit page.
2014-10-23 09:54:13 +02:00
Konrad Kleine 6c05b4ff7f Change briefcase symbol to book in create-tag-view 2014-10-22 11:48:50 +02:00
Konrad Kleine 89759290c5 Fix #4 Time Since Image Created 2014-10-22 10:57:29 +02:00
Konrad Kleine 0b13138eb4 Remove additional comma 2014-10-22 09:46:16 +02:00
Konrad Kleine 001afbeb6d Additional cleanups in Dockerfile according to tip from here: http://jonathan.bergknoff.com/journal/building-good-docker-images 2014-10-22 09:31:36 +02:00
Konrad Kleine 12a69c7371 Fix #3 Show total size of all layers for an image 2014-10-22 09:29:50 +02:00
Konrad Kleine 8ec6295636 Human readable image size 2014-10-21 16:29:57 +02:00
Konrad Kleine 48f74695ce Order repositories by name in "create tag" drop-down selection button 2014-10-10 10:00:50 +02:00
Konrad Kleine 90f73d7d5a Cleanup overall HTML and make footer less wide 2014-10-09 10:13:53 +02:00
Konrad Kleine 2e50bd58b4 Add sort capability for repositories and tags.
Also improved the rendering of the filtered and total amount of repositories and
tags
2014-10-07 14:40:25 +02:00
Konrad Kleine 26c41a7839 Transform "Fork me" button to less dominant link
Resolves #2
2014-10-02 09:03:02 +02:00
Konrad Kleine eb36da1526 Better HTML title rendering
Previously the HTML title would render and showed the actual angular expression
for a while.

Thanks to Ralf.
2014-09-30 12:31:19 +02:00