* 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.
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>
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`.
* 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`.
* develop/README.md: Fix link
Fix link to develop/docker-compose.yml which had square brackets and
parentheses interchanged.
* develop/README.md: Add YAML syntax highlighting
to `docker-compose.yml` snippet.
* develop/README.md: Fix link to Gruntfile.js
* develop/README.md: Highlight Gruntfile.js
as Javascript.
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
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.