1
Fork 0

Merge pull request #642 from photoview/fix-615

Make albums sort by direction as well as media does
This commit is contained in:
Viktor Strate Kløvedal 2022-02-07 17:19:12 +01:00 committed by GitHub
commit c98a8c9e17
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
31 changed files with 421 additions and 219 deletions

View File

@ -0,0 +1,24 @@
import { MockedProvider } from '@apollo/client/testing'
import { render, screen } from '@testing-library/react'
import React from 'react'
import { MemoryRouter, Route, Routes } from 'react-router-dom'
import AlbumPage from './AlbumPage'
jest.mock('../../hooks/useScrollPagination')
test('AlbumPage renders', () => {
render(
<MockedProvider mocks={[]}>
<MemoryRouter initialEntries={['/album/1']}>
<Routes>
<Route path="/album/:id" element={<AlbumPage />} />
</Routes>
</MemoryRouter>
</MockedProvider>
)
expect(screen.getByText('Sort')).toBeInTheDocument()
expect(screen.getByLabelText('Sort direction')).toBeInTheDocument()
screen.debug()
})

View File

@ -16,14 +16,16 @@ const ALBUM_QUERY = gql`
$id: ID! $id: ID!
$onlyFavorites: Boolean $onlyFavorites: Boolean
$mediaOrderBy: String $mediaOrderBy: String
$mediaOrderDirection: OrderDirection $orderDirection: OrderDirection
$limit: Int $limit: Int
$offset: Int $offset: Int
) { ) {
album(id: $id) { album(id: $id) {
id id
title title
subAlbums(order: { order_by: "title" }) { subAlbums(
order: { order_by: "title", order_direction: $orderDirection }
) {
id id
title title
thumbnail { thumbnail {
@ -35,10 +37,7 @@ const ALBUM_QUERY = gql`
} }
media( media(
paginate: { limit: $limit, offset: $offset } paginate: { limit: $limit, offset: $offset }
order: { order: { order_by: $mediaOrderBy, order_direction: $orderDirection }
order_by: $mediaOrderBy
order_direction: $mediaOrderDirection
}
onlyFavorites: $onlyFavorites onlyFavorites: $onlyFavorites
) { ) {
id id
@ -86,7 +85,7 @@ function AlbumPage() {
id: albumId, id: albumId,
onlyFavorites, onlyFavorites,
mediaOrderBy: orderParams.orderBy, mediaOrderBy: orderParams.orderBy,
mediaOrderDirection: orderParams.orderDirection, orderDirection: orderParams.orderDirection,
offset: 0, offset: 0,
limit: 200, limit: 200,
}, },

View File

@ -117,7 +117,7 @@ export interface albumQueryVariables {
id: string id: string
onlyFavorites?: boolean | null onlyFavorites?: boolean | null
mediaOrderBy?: string | null mediaOrderBy?: string | null
mediaOrderDirection?: OrderDirection | null orderDirection?: OrderDirection | null
limit?: number | null limit?: number | null
offset?: number | null offset?: number | null
} }

View File

@ -8,17 +8,26 @@
// ==================================================== // ====================================================
export interface Authorize_authorizeUser { export interface Authorize_authorizeUser {
__typename: "AuthorizeResult"; __typename: 'AuthorizeResult'
success: boolean; success: boolean
status: string; /**
token: string | null; * A textual status message describing the result, can be used to show an error message when `success` is false
*/
status: string
/**
* An access token used to authenticate new API requests as the newly authorized user. Is present when success is true
*/
token: string | null
} }
export interface Authorize { export interface Authorize {
authorizeUser: Authorize_authorizeUser; /**
* Authorizes a user and returns a token used to identify the new session
*/
authorizeUser: Authorize_authorizeUser
} }
export interface AuthorizeVariables { export interface AuthorizeVariables {
username: string; username: string
password: string; password: string
} }

View File

@ -8,21 +8,27 @@
// ==================================================== // ====================================================
export interface InitialSetup_initialSetupWizard { export interface InitialSetup_initialSetupWizard {
__typename: "AuthorizeResult"; __typename: 'AuthorizeResult'
success: boolean; success: boolean
status: string; /**
token: string | null; * A textual status message describing the result, can be used to show an error message when `success` is false
*/
status: string
/**
* An access token used to authenticate new API requests as the newly authorized user. Is present when success is true
*/
token: string | null
} }
export interface InitialSetup { export interface InitialSetup {
/** /**
* Registers the initial user, can only be called if initialSetup from SiteInfo is true * Registers the initial user, can only be called if initialSetup from SiteInfo is true
*/ */
initialSetupWizard: InitialSetup_initialSetupWizard | null; initialSetupWizard: InitialSetup_initialSetupWizard | null
} }
export interface InitialSetupVariables { export interface InitialSetupVariables {
username: string; username: string
password: string; password: string
rootPath: string; rootPath: string
} }

View File

@ -8,18 +8,21 @@
// ==================================================== // ====================================================
export interface detachImageFaces_detachImageFaces { export interface detachImageFaces_detachImageFaces {
__typename: "FaceGroup"; __typename: 'FaceGroup'
id: string; id: string
label: string | null; /**
* The name of the person
*/
label: string | null
} }
export interface detachImageFaces { export interface detachImageFaces {
/** /**
* Move a list of ImageFaces to a new face group * Move a list of ImageFaces to a new face group
*/ */
detachImageFaces: detachImageFaces_detachImageFaces; detachImageFaces: detachImageFaces_detachImageFaces
} }
export interface detachImageFacesVariables { export interface detachImageFacesVariables {
faceIDs: string[]; faceIDs: string[]
} }

View File

@ -64,18 +64,30 @@ export interface singleFaceGroup_faceGroup_imageFaces_media {
export interface singleFaceGroup_faceGroup_imageFaces { export interface singleFaceGroup_faceGroup_imageFaces {
__typename: 'ImageFace' __typename: 'ImageFace'
id: string id: string
/**
* A bounding box of where on the image the face is present
*/
rectangle: singleFaceGroup_faceGroup_imageFaces_rectangle rectangle: singleFaceGroup_faceGroup_imageFaces_rectangle
/**
* A reference to the image the face appears on
*/
media: singleFaceGroup_faceGroup_imageFaces_media media: singleFaceGroup_faceGroup_imageFaces_media
} }
export interface singleFaceGroup_faceGroup { export interface singleFaceGroup_faceGroup {
__typename: 'FaceGroup' __typename: 'FaceGroup'
id: string id: string
/**
* The name of the person
*/
label: string | null label: string | null
imageFaces: singleFaceGroup_faceGroup_imageFaces[] imageFaces: singleFaceGroup_faceGroup_imageFaces[]
} }
export interface singleFaceGroup { export interface singleFaceGroup {
/**
* Get a particular `FaceGroup` specified by its ID
*/
faceGroup: singleFaceGroup_faceGroup faceGroup: singleFaceGroup_faceGroup
} }

View File

@ -8,59 +8,74 @@
// ==================================================== // ====================================================
export interface myFaces_myFaceGroups_imageFaces_rectangle { export interface myFaces_myFaceGroups_imageFaces_rectangle {
__typename: "FaceRectangle"; __typename: 'FaceRectangle'
minX: number; minX: number
maxX: number; maxX: number
minY: number; minY: number
maxY: number; maxY: number
} }
export interface myFaces_myFaceGroups_imageFaces_media_thumbnail { export interface myFaces_myFaceGroups_imageFaces_media_thumbnail {
__typename: "MediaURL"; __typename: 'MediaURL'
/** /**
* URL for previewing the image * URL for previewing the image
*/ */
url: string; url: string
/** /**
* Width of the image in pixels * Width of the image in pixels
*/ */
width: number; width: number
/** /**
* Height of the image in pixels * Height of the image in pixels
*/ */
height: number; height: number
} }
export interface myFaces_myFaceGroups_imageFaces_media { export interface myFaces_myFaceGroups_imageFaces_media {
__typename: "Media"; __typename: 'Media'
id: string; id: string
title: string; title: string
/** /**
* URL to display the media in a smaller resolution * URL to display the media in a smaller resolution
*/ */
thumbnail: myFaces_myFaceGroups_imageFaces_media_thumbnail | null; thumbnail: myFaces_myFaceGroups_imageFaces_media_thumbnail | null
} }
export interface myFaces_myFaceGroups_imageFaces { export interface myFaces_myFaceGroups_imageFaces {
__typename: "ImageFace"; __typename: 'ImageFace'
id: string; id: string
rectangle: myFaces_myFaceGroups_imageFaces_rectangle; /**
media: myFaces_myFaceGroups_imageFaces_media; * A bounding box of where on the image the face is present
*/
rectangle: myFaces_myFaceGroups_imageFaces_rectangle
/**
* A reference to the image the face appears on
*/
media: myFaces_myFaceGroups_imageFaces_media
} }
export interface myFaces_myFaceGroups { export interface myFaces_myFaceGroups {
__typename: "FaceGroup"; __typename: 'FaceGroup'
id: string; id: string
label: string | null; /**
imageFaceCount: number; * The name of the person
imageFaces: myFaces_myFaceGroups_imageFaces[]; */
label: string | null
/**
* The total number of images in this collection
*/
imageFaceCount: number
imageFaces: myFaces_myFaceGroups_imageFaces[]
} }
export interface myFaces { export interface myFaces {
myFaceGroups: myFaces_myFaceGroups[]; /**
* Get a list of `FaceGroup`s for the logged in user
*/
myFaceGroups: myFaces_myFaceGroups[]
} }
export interface myFacesVariables { export interface myFacesVariables {
limit?: number | null; limit?: number | null
offset?: number | null; offset?: number | null
} }

View File

@ -8,19 +8,22 @@
// ==================================================== // ====================================================
export interface setGroupLabel_setFaceGroupLabel { export interface setGroupLabel_setFaceGroupLabel {
__typename: "FaceGroup"; __typename: 'FaceGroup'
id: string; id: string
label: string | null; /**
* The name of the person
*/
label: string | null
} }
export interface setGroupLabel { export interface setGroupLabel {
/** /**
* Assign a label to a face group, set label to null to remove the current one * Assign a label to a face group, set label to null to remove the current one
*/ */
setFaceGroupLabel: setGroupLabel_setFaceGroupLabel; setFaceGroupLabel: setGroupLabel_setFaceGroupLabel
} }
export interface setGroupLabelVariables { export interface setGroupLabelVariables {
groupID: string; groupID: string
label?: string | null; label?: string | null
} }

View File

@ -8,15 +8,18 @@
// ==================================================== // ====================================================
export interface changeUserPassword_updateUser { export interface changeUserPassword_updateUser {
__typename: "User"; __typename: 'User'
id: string; id: string
} }
export interface changeUserPassword { export interface changeUserPassword {
updateUser: changeUserPassword_updateUser; /**
* Update a user, fields left as `null` will not be changed
*/
updateUser: changeUserPassword_updateUser
} }
export interface changeUserPasswordVariables { export interface changeUserPasswordVariables {
userId: string; userId: string
password: string; password: string
} }

View File

@ -8,17 +8,23 @@
// ==================================================== // ====================================================
export interface createUser_createUser { export interface createUser_createUser {
__typename: "User"; __typename: 'User'
id: string; id: string
username: string; username: string
admin: boolean; /**
* Whether or not the user has admin privileges
*/
admin: boolean
} }
export interface createUser { export interface createUser {
createUser: createUser_createUser; /**
* Create a new user
*/
createUser: createUser_createUser
} }
export interface createUserVariables { export interface createUserVariables {
username: string; username: string
admin: boolean; admin: boolean
} }

View File

@ -8,15 +8,18 @@
// ==================================================== // ====================================================
export interface deleteUser_deleteUser { export interface deleteUser_deleteUser {
__typename: "User"; __typename: 'User'
id: string; id: string
username: string; username: string
} }
export interface deleteUser { export interface deleteUser {
deleteUser: deleteUser_deleteUser; /**
* Delete an existing user
*/
deleteUser: deleteUser_deleteUser
} }
export interface deleteUserVariables { export interface deleteUserVariables {
id: string; id: string
} }

View File

@ -8,28 +8,31 @@
// ==================================================== // ====================================================
export interface settingsUsersQuery_user_rootAlbums { export interface settingsUsersQuery_user_rootAlbums {
__typename: "Album"; __typename: 'Album'
id: string; id: string
/** /**
* The path on the filesystem of the server, where this album is located * The path on the filesystem of the server, where this album is located
*/ */
filePath: string; filePath: string
} }
export interface settingsUsersQuery_user { export interface settingsUsersQuery_user {
__typename: "User"; __typename: 'User'
id: string; id: string
username: string; username: string
admin: boolean; /**
* Whether or not the user has admin privileges
*/
admin: boolean
/** /**
* Top level albums owned by this user * Top level albums owned by this user
*/ */
rootAlbums: settingsUsersQuery_user_rootAlbums[]; rootAlbums: settingsUsersQuery_user_rootAlbums[]
} }
export interface settingsUsersQuery { export interface settingsUsersQuery {
/** /**
* List of registered users, must be admin to call * List of registered users, must be admin to call
*/ */
user: settingsUsersQuery_user[]; user: settingsUsersQuery_user[]
} }

View File

@ -8,18 +8,24 @@
// ==================================================== // ====================================================
export interface updateUser_updateUser { export interface updateUser_updateUser {
__typename: "User"; __typename: 'User'
id: string; id: string
username: string; username: string
admin: boolean; /**
* Whether or not the user has admin privileges
*/
admin: boolean
} }
export interface updateUser { export interface updateUser {
updateUser: updateUser_updateUser; /**
* Update a user, fields left as `null` will not be changed
*/
updateUser: updateUser_updateUser
} }
export interface updateUserVariables { export interface updateUserVariables {
id: string; id: string
username?: string | null; username?: string | null
admin?: boolean | null; admin?: boolean | null
} }

View File

@ -8,18 +8,18 @@
// ==================================================== // ====================================================
export interface userAddRootPath_userAddRootPath { export interface userAddRootPath_userAddRootPath {
__typename: "Album"; __typename: 'Album'
id: string; id: string
} }
export interface userAddRootPath { export interface userAddRootPath {
/** /**
* Add a root path from where to look for media for the given user * Add a root path from where to look for media for the given user, specified by their user id.
*/ */
userAddRootPath: userAddRootPath_userAddRootPath | null; userAddRootPath: userAddRootPath_userAddRootPath | null
} }
export interface userAddRootPathVariables { export interface userAddRootPathVariables {
id: string; id: string
rootPath: string; rootPath: string
} }

View File

@ -8,15 +8,20 @@
// ==================================================== // ====================================================
export interface userRemoveAlbumPathMutation_userRemoveRootAlbum { export interface userRemoveAlbumPathMutation_userRemoveRootAlbum {
__typename: "Album"; __typename: 'Album'
id: string; id: string
} }
export interface userRemoveAlbumPathMutation { export interface userRemoveAlbumPathMutation {
userRemoveRootAlbum: userRemoveAlbumPathMutation_userRemoveRootAlbum | null; /**
* Remove a root path from a user, specified by the id of the user and the top album representing the root path.
* This album was returned when creating the path using `userAddRootPath`.
* A list of root paths for a particular user can be retrived from the `User.rootAlbums` path.
*/
userRemoveRootAlbum: userRemoveAlbumPathMutation_userRemoveRootAlbum | null
} }
export interface userRemoveAlbumPathMutationVariables { export interface userRemoveAlbumPathMutationVariables {
userId: string; userId: string
albumId: string; albumId: string
} }

View File

@ -3,22 +3,25 @@
// @generated // @generated
// This file was automatically generated and should not be edited. // This file was automatically generated and should not be edited.
import { LanguageTranslation } from "./../../../__generated__/globalTypes"; import { LanguageTranslation } from './../../../__generated__/globalTypes'
// ==================================================== // ====================================================
// GraphQL mutation operation: changeUserPreferences // GraphQL mutation operation: changeUserPreferences
// ==================================================== // ====================================================
export interface changeUserPreferences_changeUserPreferences { export interface changeUserPreferences_changeUserPreferences {
__typename: "UserPreferences"; __typename: 'UserPreferences'
id: string; id: string
language: LanguageTranslation | null; language: LanguageTranslation | null
} }
export interface changeUserPreferences { export interface changeUserPreferences {
changeUserPreferences: changeUserPreferences_changeUserPreferences; /**
* Change user preferences for the logged in user
*/
changeUserPreferences: changeUserPreferences_changeUserPreferences
} }
export interface changeUserPreferencesVariables { export interface changeUserPreferencesVariables {
language?: string | null; language?: string | null
} }

View File

@ -3,18 +3,21 @@
// @generated // @generated
// This file was automatically generated and should not be edited. // This file was automatically generated and should not be edited.
import { LanguageTranslation } from "./../../../__generated__/globalTypes"; import { LanguageTranslation } from './../../../__generated__/globalTypes'
// ==================================================== // ====================================================
// GraphQL query operation: myUserPreferences // GraphQL query operation: myUserPreferences
// ==================================================== // ====================================================
export interface myUserPreferences_myUserPreferences { export interface myUserPreferences_myUserPreferences {
__typename: "UserPreferences"; __typename: 'UserPreferences'
id: string; id: string
language: LanguageTranslation | null; language: LanguageTranslation | null
} }
export interface myUserPreferences { export interface myUserPreferences {
myUserPreferences: myUserPreferences_myUserPreferences; /**
* User preferences for the logged in user
*/
myUserPreferences: myUserPreferences_myUserPreferences
} }

View File

@ -52,6 +52,9 @@ export interface SharePageToken_shareToken_media_downloads_mediaUrl {
export interface SharePageToken_shareToken_media_downloads { export interface SharePageToken_shareToken_media_downloads {
__typename: 'MediaDownload' __typename: 'MediaDownload'
/**
* A description of the role of the media file
*/
title: string title: string
mediaUrl: SharePageToken_shareToken_media_downloads_mediaUrl mediaUrl: SharePageToken_shareToken_media_downloads_mediaUrl
} }
@ -155,6 +158,9 @@ export interface SharePageToken_shareToken_media {
* URL to display the media in a smaller resolution * URL to display the media in a smaller resolution
*/ */
thumbnail: SharePageToken_shareToken_media_thumbnail | null thumbnail: SharePageToken_shareToken_media_thumbnail | null
/**
* A list of different versions of files for this media that can be downloaded by the user
*/
downloads: SharePageToken_shareToken_media_downloads[] downloads: SharePageToken_shareToken_media_downloads[]
/** /**
* URL to display the photo in full resolution, will be null for videos * URL to display the photo in full resolution, will be null for videos
@ -181,6 +187,9 @@ export interface SharePageToken_shareToken {
} }
export interface SharePageToken { export interface SharePageToken {
/**
* Fetch a share token containing an `Album` or `Media`
*/
shareToken: SharePageToken_shareToken shareToken: SharePageToken_shareToken
} }

View File

@ -8,10 +8,13 @@
// ==================================================== // ====================================================
export interface ShareTokenValidatePassword { export interface ShareTokenValidatePassword {
shareTokenValidatePassword: boolean; /**
* Check if the `ShareToken` credentials are valid
*/
shareTokenValidatePassword: boolean
} }
export interface ShareTokenValidatePasswordVariables { export interface ShareTokenValidatePasswordVariables {
token: string; token: string
password?: string | null; password?: string | null
} }

View File

@ -74,6 +74,9 @@ export interface shareAlbumQuery_album_media_downloads_mediaUrl {
export interface shareAlbumQuery_album_media_downloads { export interface shareAlbumQuery_album_media_downloads {
__typename: 'MediaDownload' __typename: 'MediaDownload'
/**
* A description of the role of the media file
*/
title: string title: string
mediaUrl: shareAlbumQuery_album_media_downloads_mediaUrl mediaUrl: shareAlbumQuery_album_media_downloads_mediaUrl
} }
@ -173,6 +176,9 @@ export interface shareAlbumQuery_album_media {
* URL to display the media in a smaller resolution * URL to display the media in a smaller resolution
*/ */
thumbnail: shareAlbumQuery_album_media_thumbnail | null thumbnail: shareAlbumQuery_album_media_thumbnail | null
/**
* A list of different versions of files for this media that can be downloaded by the user
*/
downloads: shareAlbumQuery_album_media_downloads[] downloads: shareAlbumQuery_album_media_downloads[]
/** /**
* URL to display the photo in full resolution, will be null for videos * URL to display the photo in full resolution, will be null for videos

View File

@ -7,35 +7,44 @@
// START Enums and Input Objects // START Enums and Input Objects
//============================================================== //==============================================================
/**
* Supported language translations of the user interface
*/
export enum LanguageTranslation { export enum LanguageTranslation {
Danish = "Danish", Danish = 'Danish',
English = "English", English = 'English',
French = "French", French = 'French',
German = "German", German = 'German',
Italian = "Italian", Italian = 'Italian',
Polish = "Polish", Polish = 'Polish',
Portuguese = "Portuguese", Portuguese = 'Portuguese',
Russian = "Russian", Russian = 'Russian',
SimplifiedChinese = "SimplifiedChinese", SimplifiedChinese = 'SimplifiedChinese',
Spanish = "Spanish", Spanish = 'Spanish',
Swedish = "Swedish", Swedish = 'Swedish',
TraditionalChinese = "TraditionalChinese", TraditionalChinese = 'TraditionalChinese',
} }
export enum MediaType { export enum MediaType {
Photo = "Photo", Photo = 'Photo',
Video = "Video", Video = 'Video',
} }
/**
* Specified the type a particular notification is of
*/
export enum NotificationType { export enum NotificationType {
Close = "Close", Close = 'Close',
Message = "Message", Message = 'Message',
Progress = "Progress", Progress = 'Progress',
} }
/**
* Used to specify which order to sort items in
*/
export enum OrderDirection { export enum OrderDirection {
ASC = "ASC", ASC = 'ASC',
DESC = "DESC", DESC = 'DESC',
} }
//============================================================== //==============================================================

View File

@ -3,18 +3,21 @@
// @generated // @generated
// This file was automatically generated and should not be edited. // This file was automatically generated and should not be edited.
import { LanguageTranslation } from "./globalTypes"; import { LanguageTranslation } from './globalTypes'
// ==================================================== // ====================================================
// GraphQL query operation: siteTranslation // GraphQL query operation: siteTranslation
// ==================================================== // ====================================================
export interface siteTranslation_myUserPreferences { export interface siteTranslation_myUserPreferences {
__typename: "UserPreferences"; __typename: 'UserPreferences'
id: string; id: string
language: LanguageTranslation | null; language: LanguageTranslation | null
} }
export interface siteTranslation { export interface siteTranslation {
myUserPreferences: siteTranslation_myUserPreferences; /**
* User preferences for the logged in user
*/
myUserPreferences: siteTranslation_myUserPreferences
} }

View File

@ -8,15 +8,18 @@
// ==================================================== // ====================================================
export interface albumPathQuery_album_path { export interface albumPathQuery_album_path {
__typename: "Album"; __typename: 'Album'
id: string; id: string
title: string; title: string
} }
export interface albumPathQuery_album { export interface albumPathQuery_album {
__typename: "Album"; __typename: 'Album'
id: string; id: string
path: albumPathQuery_album_path[]; /**
* A breadcrumb list of all parent albums down to this one
*/
path: albumPathQuery_album_path[]
} }
export interface albumPathQuery { export interface albumPathQuery {
@ -24,9 +27,9 @@ export interface albumPathQuery {
* Get album by id, user must own the album or be admin * Get album by id, user must own the album or be admin
* If valid tokenCredentials are provided, the album may be retrived without further authentication * If valid tokenCredentials are provided, the album may be retrived without further authentication
*/ */
album: albumPathQuery_album; album: albumPathQuery_album
} }
export interface albumPathQueryVariables { export interface albumPathQueryVariables {
id: string; id: string
} }

View File

@ -8,69 +8,81 @@
// ==================================================== // ====================================================
export interface searchQuery_search_albums_thumbnail_thumbnail { export interface searchQuery_search_albums_thumbnail_thumbnail {
__typename: "MediaURL"; __typename: 'MediaURL'
/** /**
* URL for previewing the image * URL for previewing the image
*/ */
url: string; url: string
} }
export interface searchQuery_search_albums_thumbnail { export interface searchQuery_search_albums_thumbnail {
__typename: "Media"; __typename: 'Media'
/** /**
* URL to display the media in a smaller resolution * URL to display the media in a smaller resolution
*/ */
thumbnail: searchQuery_search_albums_thumbnail_thumbnail | null; thumbnail: searchQuery_search_albums_thumbnail_thumbnail | null
} }
export interface searchQuery_search_albums { export interface searchQuery_search_albums {
__typename: "Album"; __typename: 'Album'
id: string; id: string
title: string; title: string
/** /**
* An image in this album used for previewing this album * An image in this album used for previewing this album
*/ */
thumbnail: searchQuery_search_albums_thumbnail | null; thumbnail: searchQuery_search_albums_thumbnail | null
} }
export interface searchQuery_search_media_thumbnail { export interface searchQuery_search_media_thumbnail {
__typename: "MediaURL"; __typename: 'MediaURL'
/** /**
* URL for previewing the image * URL for previewing the image
*/ */
url: string; url: string
} }
export interface searchQuery_search_media_album { export interface searchQuery_search_media_album {
__typename: "Album"; __typename: 'Album'
id: string; id: string
} }
export interface searchQuery_search_media { export interface searchQuery_search_media {
__typename: "Media"; __typename: 'Media'
id: string; id: string
title: string; title: string
/** /**
* URL to display the media in a smaller resolution * URL to display the media in a smaller resolution
*/ */
thumbnail: searchQuery_search_media_thumbnail | null; thumbnail: searchQuery_search_media_thumbnail | null
/** /**
* The album that holds the media * The album that holds the media
*/ */
album: searchQuery_search_media_album; album: searchQuery_search_media_album
} }
export interface searchQuery_search { export interface searchQuery_search {
__typename: "SearchResult"; __typename: 'SearchResult'
query: string; /**
albums: searchQuery_search_albums[]; * The string that was searched for
media: searchQuery_search_media[]; */
query: string
/**
* A list of albums that matched the query
*/
albums: searchQuery_search_albums[]
/**
* A list of media that matched the query
*/
media: searchQuery_search_media[]
} }
export interface searchQuery { export interface searchQuery {
search: searchQuery_search; /**
* Perform a search query on the contents of the media library
*/
search: searchQuery_search
} }
export interface searchQueryVariables { export interface searchQueryVariables {
query: string; query: string
} }

View File

@ -8,13 +8,16 @@
// ==================================================== // ====================================================
export interface adminQuery_myUser { export interface adminQuery_myUser {
__typename: "User"; __typename: 'User'
admin: boolean; /**
* Whether or not the user has admin privileges
*/
admin: boolean
} }
export interface adminQuery { export interface adminQuery {
/** /**
* Information about the currently logged in user * Information about the currently logged in user
*/ */
myUser: adminQuery_myUser; myUser: adminQuery_myUser
} }

View File

@ -3,27 +3,45 @@
// @generated // @generated
// This file was automatically generated and should not be edited. // This file was automatically generated and should not be edited.
import { NotificationType } from "./../../../__generated__/globalTypes"; import { NotificationType } from './../../../__generated__/globalTypes'
// ==================================================== // ====================================================
// GraphQL subscription operation: notificationSubscription // GraphQL subscription operation: notificationSubscription
// ==================================================== // ====================================================
export interface notificationSubscription_notification { export interface notificationSubscription_notification {
__typename: "Notification"; __typename: 'Notification'
key: string;
type: NotificationType;
header: string;
content: string;
progress: number | null;
positive: boolean;
negative: boolean;
/** /**
* Time in milliseconds before the notification will close * A key used to identify the notification, new notification updates with the same key, should replace the old notifications
*/ */
timeout: number | null; key: string
type: NotificationType
/**
* The text for the title of the notification
*/
header: string
/**
* The text for the body of the notification
*/
content: string
/**
* A value between 0 and 1 when the notification type is `Progress`
*/
progress: number | null
/**
* Whether or not the message of the notification is positive, the UI might reflect this with a green color
*/
positive: boolean
/**
* Whether or not the message of the notification is negative, the UI might reflect this with a red color
*/
negative: boolean
/**
* Time in milliseconds before the notification should close
*/
timeout: number | null
} }
export interface notificationSubscription { export interface notificationSubscription {
notification: notificationSubscription_notification; notification: notificationSubscription_notification
} }

View File

@ -138,6 +138,9 @@ export interface sidebarMediaQuery_media_album {
__typename: 'Album' __typename: 'Album'
id: string id: string
title: string title: string
/**
* A breadcrumb list of all parent albums down to this one
*/
path: sidebarMediaQuery_media_album_path[] path: sidebarMediaQuery_media_album_path[]
} }
@ -152,7 +155,13 @@ export interface sidebarMediaQuery_media_faces_rectangle {
export interface sidebarMediaQuery_media_faces_faceGroup { export interface sidebarMediaQuery_media_faces_faceGroup {
__typename: 'FaceGroup' __typename: 'FaceGroup'
id: string id: string
/**
* The name of the person
*/
label: string | null label: string | null
/**
* The total number of images in this collection
*/
imageFaceCount: number imageFaceCount: number
} }
@ -185,8 +194,17 @@ export interface sidebarMediaQuery_media_faces_media {
export interface sidebarMediaQuery_media_faces { export interface sidebarMediaQuery_media_faces {
__typename: 'ImageFace' __typename: 'ImageFace'
id: string id: string
/**
* A bounding box of where on the image the face is present
*/
rectangle: sidebarMediaQuery_media_faces_rectangle rectangle: sidebarMediaQuery_media_faces_rectangle
/**
* The `FaceGroup` that contains this `ImageFace`
*/
faceGroup: sidebarMediaQuery_media_faces_faceGroup faceGroup: sidebarMediaQuery_media_faces_faceGroup
/**
* A reference to the image the face appears on
*/
media: sidebarMediaQuery_media_faces_media media: sidebarMediaQuery_media_faces_media
} }
@ -213,6 +231,9 @@ export interface sidebarMediaQuery_media {
* The album that holds the media * The album that holds the media
*/ */
album: sidebarMediaQuery_media_album album: sidebarMediaQuery_media_album
/**
* A list of faces present on the image
*/
faces: sidebarMediaQuery_media_faces[] faces: sidebarMediaQuery_media_faces[]
} }

View File

@ -8,35 +8,41 @@
// ==================================================== // ====================================================
export interface sidebarDownloadQuery_media_downloads_mediaUrl { export interface sidebarDownloadQuery_media_downloads_mediaUrl {
__typename: "MediaURL"; __typename: 'MediaURL'
/** /**
* URL for previewing the image * URL for previewing the image
*/ */
url: string; url: string
/** /**
* Width of the image in pixels * Width of the image in pixels
*/ */
width: number; width: number
/** /**
* Height of the image in pixels * Height of the image in pixels
*/ */
height: number; height: number
/** /**
* The file size of the resource in bytes * The file size of the resource in bytes
*/ */
fileSize: number; fileSize: number
} }
export interface sidebarDownloadQuery_media_downloads { export interface sidebarDownloadQuery_media_downloads {
__typename: "MediaDownload"; __typename: 'MediaDownload'
title: string; /**
mediaUrl: sidebarDownloadQuery_media_downloads_mediaUrl; * A description of the role of the media file
*/
title: string
mediaUrl: sidebarDownloadQuery_media_downloads_mediaUrl
} }
export interface sidebarDownloadQuery_media { export interface sidebarDownloadQuery_media {
__typename: "Media"; __typename: 'Media'
id: string; id: string
downloads: sidebarDownloadQuery_media_downloads[]; /**
* A list of different versions of files for this media that can be downloaded by the user
*/
downloads: sidebarDownloadQuery_media_downloads[]
} }
export interface sidebarDownloadQuery { export interface sidebarDownloadQuery {
@ -44,9 +50,9 @@ export interface sidebarDownloadQuery {
* Get media by id, user must own the media or be admin. * Get media by id, user must own the media or be admin.
* If valid tokenCredentials are provided, the media may be retrived without further authentication * If valid tokenCredentials are provided, the media may be retrived without further authentication
*/ */
media: sidebarDownloadQuery_media; media: sidebarDownloadQuery_media
} }
export interface sidebarDownloadQueryVariables { export interface sidebarDownloadQueryVariables {
mediaId: string; mediaId: string
} }

View File

@ -8,19 +8,22 @@
// ==================================================== // ====================================================
export interface sidebarGetAlbumShares_album_shares { export interface sidebarGetAlbumShares_album_shares {
__typename: "ShareToken"; __typename: 'ShareToken'
id: string; id: string
token: string; token: string
/** /**
* Whether or not a password is needed to access the share * Whether or not a password is needed to access the share
*/ */
hasPassword: boolean; hasPassword: boolean
} }
export interface sidebarGetAlbumShares_album { export interface sidebarGetAlbumShares_album {
__typename: "Album"; __typename: 'Album'
id: string; id: string
shares: sidebarGetAlbumShares_album_shares[]; /**
* A list of share tokens pointing to this album, owned by the logged in user
*/
shares: sidebarGetAlbumShares_album_shares[]
} }
export interface sidebarGetAlbumShares { export interface sidebarGetAlbumShares {
@ -28,9 +31,9 @@ export interface sidebarGetAlbumShares {
* Get album by id, user must own the album or be admin * Get album by id, user must own the album or be admin
* If valid tokenCredentials are provided, the album may be retrived without further authentication * If valid tokenCredentials are provided, the album may be retrived without further authentication
*/ */
album: sidebarGetAlbumShares_album; album: sidebarGetAlbumShares_album
} }
export interface sidebarGetAlbumSharesVariables { export interface sidebarGetAlbumSharesVariables {
id: string; id: string
} }

View File

@ -8,19 +8,22 @@
// ==================================================== // ====================================================
export interface sidebarGetPhotoShares_media_shares { export interface sidebarGetPhotoShares_media_shares {
__typename: "ShareToken"; __typename: 'ShareToken'
id: string; id: string
token: string; token: string
/** /**
* Whether or not a password is needed to access the share * Whether or not a password is needed to access the share
*/ */
hasPassword: boolean; hasPassword: boolean
} }
export interface sidebarGetPhotoShares_media { export interface sidebarGetPhotoShares_media {
__typename: "Media"; __typename: 'Media'
id: string; id: string
shares: sidebarGetPhotoShares_media_shares[]; /**
* A list of share tokens pointing to this media, owned byt the logged in user
*/
shares: sidebarGetPhotoShares_media_shares[]
} }
export interface sidebarGetPhotoShares { export interface sidebarGetPhotoShares {
@ -28,9 +31,9 @@ export interface sidebarGetPhotoShares {
* Get media by id, user must own the media or be admin. * Get media by id, user must own the media or be admin.
* If valid tokenCredentials are provided, the media may be retrived without further authentication * If valid tokenCredentials are provided, the media may be retrived without further authentication
*/ */
media: sidebarGetPhotoShares_media; media: sidebarGetPhotoShares_media
} }
export interface sidebarGetPhotoSharesVariables { export interface sidebarGetPhotoSharesVariables {
id: string; id: string
} }