2020-01-23 23:45:59 +00:00
|
|
|
<template>
|
2020-06-27 08:31:20 +00:00
|
|
|
<div class="p-tab p-tab-photo-details">
|
|
|
|
<v-container fluid>
|
2020-12-31 12:51:31 +00:00
|
|
|
<v-form ref="form" lazy-validation
|
|
|
|
dense class="p-form-photo-details-meta" accept-charset="UTF-8"
|
2020-06-27 08:31:20 +00:00
|
|
|
@submit.prevent="save">
|
|
|
|
<v-layout row wrap align-top fill-height>
|
|
|
|
<v-flex
|
2020-12-17 12:23:23 +00:00
|
|
|
class="p-photo pa-2"
|
|
|
|
xs12 sm4 md2
|
2020-06-27 08:31:20 +00:00
|
|
|
>
|
|
|
|
<v-card tile
|
|
|
|
class="ma-1 elevation-0"
|
|
|
|
:title="model.Title">
|
2020-12-31 12:51:31 +00:00
|
|
|
<v-img v-touch="{left, right}"
|
|
|
|
:src="model.thumbnailUrl('tile_500')"
|
2020-06-27 08:31:20 +00:00
|
|
|
aspect-ratio="1"
|
|
|
|
class="accent lighten-2 elevation-0 clickable"
|
|
|
|
@click.exact="openPhoto()"
|
|
|
|
>
|
|
|
|
</v-img>
|
2020-01-23 23:45:59 +00:00
|
|
|
|
2020-06-27 08:31:20 +00:00
|
|
|
</v-card>
|
|
|
|
</v-flex>
|
|
|
|
<v-flex xs12 sm8 md10 fill-height>
|
|
|
|
<v-layout row wrap>
|
|
|
|
<v-flex xs12 class="pa-2">
|
|
|
|
<v-text-field
|
2020-12-31 12:51:31 +00:00
|
|
|
v-model="model.Title"
|
2020-12-17 12:23:23 +00:00
|
|
|
:append-icon="model.TitleSrc === 'manual' ? 'check' : ''"
|
|
|
|
:disabled="disabled"
|
|
|
|
:rules="[textRule]"
|
|
|
|
hide-details
|
|
|
|
:label="$gettext('Title')"
|
|
|
|
placeholder=""
|
|
|
|
color="secondary-dark"
|
|
|
|
browser-autocomplete="off"
|
|
|
|
class="input-title"
|
2020-06-27 08:31:20 +00:00
|
|
|
></v-text-field>
|
|
|
|
</v-flex>
|
2020-01-26 16:47:52 +00:00
|
|
|
|
2020-07-09 18:39:03 +00:00
|
|
|
<v-flex xs4 md2 pa-2>
|
2020-07-06 05:41:33 +00:00
|
|
|
<v-autocomplete
|
2020-12-31 12:51:31 +00:00
|
|
|
v-model="model.Day"
|
2020-12-17 12:23:23 +00:00
|
|
|
:append-icon="model.TakenSrc === 'manual' ? 'check' : ''"
|
|
|
|
:disabled="disabled"
|
|
|
|
:error="invalidDate"
|
|
|
|
:label="$gettext('Day')"
|
|
|
|
browser-autocomplete="off"
|
|
|
|
hide-details hide-no-data
|
|
|
|
color="secondary-dark"
|
|
|
|
:items="options.Days()"
|
2020-12-31 12:51:31 +00:00
|
|
|
class="input-day"
|
|
|
|
@change="updateTime">
|
2020-07-06 05:41:33 +00:00
|
|
|
</v-autocomplete>
|
|
|
|
</v-flex>
|
2020-07-09 18:39:03 +00:00
|
|
|
<v-flex xs4 md2 pa-2>
|
2020-07-06 05:41:33 +00:00
|
|
|
<v-autocomplete
|
2020-12-31 12:51:31 +00:00
|
|
|
v-model="model.Month"
|
2020-12-17 12:23:23 +00:00
|
|
|
:append-icon="model.TakenSrc === 'manual' ? 'check' : ''"
|
|
|
|
:disabled="disabled"
|
|
|
|
:error="invalidDate"
|
|
|
|
:label="$gettext('Month')"
|
|
|
|
browser-autocomplete="off"
|
|
|
|
hide-details hide-no-data
|
|
|
|
color="secondary-dark"
|
|
|
|
:items="options.MonthsShort()"
|
2020-12-31 12:51:31 +00:00
|
|
|
class="input-month"
|
|
|
|
@change="updateTime">
|
2020-07-06 05:41:33 +00:00
|
|
|
</v-autocomplete>
|
|
|
|
</v-flex>
|
2020-07-09 18:39:03 +00:00
|
|
|
<v-flex xs4 md2 pa-2>
|
2020-07-06 05:41:33 +00:00
|
|
|
<v-autocomplete
|
2020-12-31 12:51:31 +00:00
|
|
|
v-model="model.Year"
|
2020-12-17 12:23:23 +00:00
|
|
|
:append-icon="model.TakenSrc === 'manual' ? 'check' : ''"
|
|
|
|
:disabled="disabled"
|
|
|
|
:error="invalidDate"
|
|
|
|
:label="$gettext('Year')"
|
|
|
|
browser-autocomplete="off"
|
|
|
|
hide-details hide-no-data
|
|
|
|
color="secondary-dark"
|
|
|
|
:items="options.Years()"
|
2020-12-31 12:51:31 +00:00
|
|
|
class="input-year"
|
|
|
|
@change="updateTime">
|
2020-07-06 05:41:33 +00:00
|
|
|
</v-autocomplete>
|
|
|
|
</v-flex>
|
2020-01-26 16:47:52 +00:00
|
|
|
|
2020-07-09 18:39:03 +00:00
|
|
|
<v-flex xs6 md2 class="pa-2">
|
2020-06-27 08:31:20 +00:00
|
|
|
<v-text-field
|
2020-12-31 12:51:31 +00:00
|
|
|
v-model="localTime"
|
2020-12-17 12:23:23 +00:00
|
|
|
:append-icon="model.TakenSrc === 'manual' ? 'check' : ''"
|
|
|
|
:disabled="disabled"
|
|
|
|
:label="$gettext('Local Time')"
|
|
|
|
browser-autocomplete="off"
|
2020-12-31 12:51:31 +00:00
|
|
|
hide-details
|
|
|
|
return-masked-value mask="##:##:##"
|
2020-12-17 12:23:23 +00:00
|
|
|
color="secondary-dark"
|
|
|
|
class="input-local-time"
|
2020-12-31 12:51:31 +00:00
|
|
|
@change="updateTime"
|
2020-06-27 08:31:20 +00:00
|
|
|
></v-text-field>
|
|
|
|
</v-flex>
|
2020-07-06 05:41:33 +00:00
|
|
|
|
2020-07-09 18:39:03 +00:00
|
|
|
<v-flex xs6 sm6 md2 pa-2>
|
2020-07-05 13:34:49 +00:00
|
|
|
<v-text-field
|
2020-12-17 12:23:23 +00:00
|
|
|
v-model="utcTime"
|
2020-12-31 12:51:31 +00:00
|
|
|
:disabled="disabled"
|
2020-12-17 12:23:23 +00:00
|
|
|
:label="$gettext('Time UTC')"
|
|
|
|
browser-autocomplete="off"
|
2020-12-31 12:51:31 +00:00
|
|
|
readonly
|
|
|
|
hide-details return-masked-value mask="##:##:##"
|
2020-12-17 12:23:23 +00:00
|
|
|
color="secondary-dark"
|
|
|
|
class="input-utc-time"
|
2020-12-31 12:51:31 +00:00
|
|
|
@change="updateTime"
|
2020-07-05 13:34:49 +00:00
|
|
|
></v-text-field>
|
2020-06-27 08:31:20 +00:00
|
|
|
</v-flex>
|
2020-01-23 23:45:59 +00:00
|
|
|
|
2020-07-06 05:41:33 +00:00
|
|
|
<v-flex xs12 sm6 md2 class="pa-2">
|
2020-06-27 08:31:20 +00:00
|
|
|
<v-autocomplete
|
2020-12-31 12:51:31 +00:00
|
|
|
v-model="model.TimeZone"
|
2020-12-17 12:23:23 +00:00
|
|
|
:disabled="disabled"
|
|
|
|
:label="$gettext('Time Zone')"
|
|
|
|
browser-autocomplete="off"
|
|
|
|
hide-details hide-no-data
|
|
|
|
color="secondary-dark"
|
|
|
|
item-value="ID"
|
|
|
|
item-text="Name"
|
|
|
|
:items="options.TimeZones()"
|
2020-12-31 12:51:31 +00:00
|
|
|
class="input-timezone"
|
|
|
|
@change="updateTime">
|
2020-06-27 08:31:20 +00:00
|
|
|
</v-autocomplete>
|
|
|
|
</v-flex>
|
2020-01-23 23:45:59 +00:00
|
|
|
|
2020-07-06 05:41:33 +00:00
|
|
|
<v-flex xs12 sm6 md4 class="pa-2">
|
|
|
|
<v-autocomplete
|
2020-12-31 12:51:31 +00:00
|
|
|
v-model="model.Country"
|
2020-12-17 12:23:23 +00:00
|
|
|
:append-icon="model.PlaceSrc === 'manual' ? 'check' : ''"
|
|
|
|
:disabled="disabled"
|
|
|
|
:readonly="!!(model.Lat || model.Lng)"
|
2020-12-31 12:51:31 +00:00
|
|
|
:label="$gettext('Country')" hide-details
|
|
|
|
hide-no-data
|
2020-12-17 12:23:23 +00:00
|
|
|
browser-autocomplete="off"
|
|
|
|
color="secondary-dark"
|
|
|
|
item-value="Code"
|
|
|
|
item-text="Name"
|
|
|
|
:items="countries"
|
|
|
|
class="input-country">
|
2020-07-06 05:41:33 +00:00
|
|
|
</v-autocomplete>
|
2020-06-27 08:31:20 +00:00
|
|
|
</v-flex>
|
2020-04-15 08:00:39 +00:00
|
|
|
|
2020-07-09 18:39:03 +00:00
|
|
|
<v-flex xs4 md2 class="pa-2">
|
2020-06-27 08:31:20 +00:00
|
|
|
<v-text-field
|
2020-12-31 12:51:31 +00:00
|
|
|
v-model="model.Altitude"
|
2020-12-17 12:23:23 +00:00
|
|
|
:disabled="disabled"
|
|
|
|
hide-details
|
|
|
|
browser-autocomplete="off"
|
|
|
|
:label="$gettext('Altitude (m)')"
|
|
|
|
placeholder=""
|
|
|
|
color="secondary-dark"
|
|
|
|
class="input-altitude"
|
2020-06-27 08:31:20 +00:00
|
|
|
></v-text-field>
|
|
|
|
</v-flex>
|
2020-04-15 08:00:39 +00:00
|
|
|
|
2020-07-09 18:39:03 +00:00
|
|
|
<v-flex xs4 md3 class="pa-2">
|
2020-06-27 08:31:20 +00:00
|
|
|
<v-text-field
|
2020-12-31 12:51:31 +00:00
|
|
|
v-model="model.Lat"
|
2020-12-17 12:23:23 +00:00
|
|
|
:append-icon="model.PlaceSrc === 'manual' ? 'check' : ''"
|
|
|
|
:disabled="disabled"
|
|
|
|
hide-details
|
|
|
|
browser-autocomplete="off"
|
|
|
|
:label="$gettext('Latitude')"
|
|
|
|
placeholder=""
|
|
|
|
color="secondary-dark"
|
|
|
|
class="input-latitude"
|
2020-06-27 08:31:20 +00:00
|
|
|
></v-text-field>
|
|
|
|
</v-flex>
|
2020-01-26 16:47:52 +00:00
|
|
|
|
2020-07-09 18:39:03 +00:00
|
|
|
<v-flex xs4 md3 class="pa-2">
|
2020-07-06 05:41:33 +00:00
|
|
|
<v-text-field
|
2020-12-31 12:51:31 +00:00
|
|
|
v-model="model.Lng"
|
2020-12-17 12:23:23 +00:00
|
|
|
:append-icon="model.PlaceSrc === 'manual' ? 'check' : ''"
|
|
|
|
:disabled="disabled"
|
|
|
|
hide-details
|
|
|
|
browser-autocomplete="off"
|
|
|
|
:label="$gettext('Longitude')"
|
|
|
|
placeholder=""
|
|
|
|
color="secondary-dark"
|
|
|
|
class="input-longitude"
|
2020-07-06 05:41:33 +00:00
|
|
|
></v-text-field>
|
2020-06-27 08:31:20 +00:00
|
|
|
</v-flex>
|
2020-01-26 16:47:52 +00:00
|
|
|
|
2020-06-27 08:31:20 +00:00
|
|
|
<v-flex xs12 md6 pa-2 class="p-camera-select">
|
|
|
|
<v-select
|
2020-12-31 12:51:31 +00:00
|
|
|
v-model="model.CameraID"
|
2020-12-17 12:23:23 +00:00
|
|
|
:append-icon="model.CameraSrc === 'manual' ? 'check' : ''"
|
|
|
|
:disabled="disabled"
|
|
|
|
:label="$gettext('Camera')"
|
|
|
|
browser-autocomplete="off"
|
|
|
|
hide-details
|
|
|
|
color="secondary-dark"
|
|
|
|
item-value="ID"
|
|
|
|
item-text="Name"
|
|
|
|
:items="cameraOptions"
|
|
|
|
class="input-camera">
|
2020-06-27 08:31:20 +00:00
|
|
|
</v-select>
|
|
|
|
</v-flex>
|
2020-04-30 07:38:00 +00:00
|
|
|
|
2020-07-09 18:39:03 +00:00
|
|
|
<v-flex xs6 md3 class="pa-2">
|
2020-06-27 08:31:20 +00:00
|
|
|
<v-text-field
|
2020-12-31 12:51:31 +00:00
|
|
|
v-model="model.Iso"
|
2020-12-17 12:23:23 +00:00
|
|
|
:disabled="disabled"
|
|
|
|
hide-details
|
|
|
|
browser-autocomplete="off"
|
|
|
|
label="ISO"
|
|
|
|
placeholder=""
|
|
|
|
color="secondary-dark"
|
|
|
|
class="input-iso"
|
2020-06-27 08:31:20 +00:00
|
|
|
></v-text-field>
|
|
|
|
</v-flex>
|
2020-01-23 23:45:59 +00:00
|
|
|
|
2020-07-09 18:39:03 +00:00
|
|
|
<v-flex xs6 md3 class="pa-2">
|
2020-06-27 08:31:20 +00:00
|
|
|
<v-text-field
|
2020-12-31 12:51:31 +00:00
|
|
|
v-model="model.Exposure"
|
2020-12-17 12:23:23 +00:00
|
|
|
:disabled="disabled"
|
|
|
|
hide-details
|
|
|
|
browser-autocomplete="off"
|
|
|
|
:label="$gettext('Exposure')"
|
|
|
|
placeholder=""
|
|
|
|
color="secondary-dark"
|
|
|
|
class="input-exposure"
|
2020-06-27 08:31:20 +00:00
|
|
|
></v-text-field>
|
|
|
|
</v-flex>
|
2020-01-23 23:45:59 +00:00
|
|
|
|
2020-06-27 08:31:20 +00:00
|
|
|
<v-flex xs12 md6 pa-2 class="p-lens-select">
|
|
|
|
<v-select
|
2020-12-31 12:51:31 +00:00
|
|
|
v-model="model.LensID"
|
2020-12-17 12:23:23 +00:00
|
|
|
:append-icon="model.CameraSrc === 'manual' ? 'check' : ''"
|
|
|
|
:disabled="disabled"
|
|
|
|
:label="$gettext('Lens')"
|
|
|
|
browser-autocomplete="off"
|
|
|
|
hide-details
|
|
|
|
color="secondary-dark"
|
|
|
|
item-value="ID"
|
|
|
|
item-text="Name"
|
|
|
|
:items="lensOptions"
|
|
|
|
class="input-lens">
|
2020-06-27 08:31:20 +00:00
|
|
|
</v-select>
|
|
|
|
</v-flex>
|
2020-04-30 07:38:00 +00:00
|
|
|
|
2020-07-09 18:39:03 +00:00
|
|
|
<v-flex xs6 md3 class="pa-2">
|
2020-06-27 08:31:20 +00:00
|
|
|
<v-text-field
|
2020-12-31 12:51:31 +00:00
|
|
|
v-model="model.FNumber"
|
2020-12-17 12:23:23 +00:00
|
|
|
:disabled="disabled"
|
|
|
|
hide-details
|
|
|
|
browser-autocomplete="off"
|
|
|
|
:label="$gettext('F Number')"
|
|
|
|
placeholder=""
|
|
|
|
color="secondary-dark"
|
|
|
|
class="input-fnumber"
|
2020-06-27 08:31:20 +00:00
|
|
|
></v-text-field>
|
|
|
|
</v-flex>
|
2020-01-26 17:23:05 +00:00
|
|
|
|
2020-07-09 18:39:03 +00:00
|
|
|
<v-flex xs6 md3 class="pa-2">
|
2020-06-27 08:31:20 +00:00
|
|
|
<v-text-field
|
2020-12-31 12:51:31 +00:00
|
|
|
v-model="model.FocalLength"
|
2020-12-17 12:23:23 +00:00
|
|
|
:disabled="disabled"
|
|
|
|
hide-details
|
|
|
|
browser-autocomplete="off"
|
|
|
|
:label="$gettext('Focal Length')"
|
|
|
|
placeholder=""
|
|
|
|
color="secondary-dark"
|
|
|
|
class="input-focal-length"
|
2020-06-27 08:31:20 +00:00
|
|
|
></v-text-field>
|
|
|
|
</v-flex>
|
2020-01-23 23:45:59 +00:00
|
|
|
|
2020-06-27 08:31:20 +00:00
|
|
|
<v-flex xs12 sm6 md3 class="pa-2">
|
|
|
|
<v-textarea
|
2020-12-31 12:51:31 +00:00
|
|
|
v-model="model.Details.Subject"
|
|
|
|
:append-icon="model.Details.SubjectSrc === 'manual' ? 'check' : ''"
|
2020-12-17 12:23:23 +00:00
|
|
|
:disabled="disabled"
|
|
|
|
:rules="[textRule]"
|
|
|
|
hide-details
|
|
|
|
browser-autocomplete="off"
|
|
|
|
auto-grow
|
|
|
|
:label="$gettext('Subject')"
|
|
|
|
placeholder=""
|
|
|
|
:rows="1"
|
|
|
|
color="secondary-dark"
|
|
|
|
class="input-subject"
|
2020-06-27 08:31:20 +00:00
|
|
|
></v-textarea>
|
|
|
|
</v-flex>
|
2020-01-23 23:45:59 +00:00
|
|
|
|
2020-06-27 08:31:20 +00:00
|
|
|
<v-flex xs12 sm6 md3 class="pa-2">
|
|
|
|
<v-text-field
|
2020-12-31 12:51:31 +00:00
|
|
|
v-model="model.Details.Artist"
|
|
|
|
:append-icon="model.Details.ArtistSrc === 'manual' ? 'check' : ''"
|
2020-12-17 12:23:23 +00:00
|
|
|
:disabled="disabled"
|
|
|
|
:rules="[textRule]"
|
|
|
|
hide-details
|
|
|
|
browser-autocomplete="off"
|
|
|
|
:label="$gettext('Artist')"
|
|
|
|
placeholder=""
|
|
|
|
color="secondary-dark"
|
|
|
|
class="input-artist"
|
2020-06-27 08:31:20 +00:00
|
|
|
></v-text-field>
|
|
|
|
</v-flex>
|
2020-03-26 08:41:33 +00:00
|
|
|
|
2020-06-27 08:31:20 +00:00
|
|
|
<v-flex xs12 sm6 md3 class="pa-2">
|
|
|
|
<v-text-field
|
2020-12-31 12:51:31 +00:00
|
|
|
v-model="model.Details.Copyright"
|
|
|
|
:append-icon="model.Details.CopyrightSrc === 'manual' ? 'check' : ''"
|
2020-12-17 12:23:23 +00:00
|
|
|
:disabled="disabled"
|
|
|
|
:rules="[textRule]"
|
|
|
|
hide-details
|
|
|
|
browser-autocomplete="off"
|
|
|
|
:label="$gettext('Copyright')"
|
|
|
|
placeholder=""
|
|
|
|
color="secondary-dark"
|
|
|
|
class="input-copyright"
|
2020-06-27 08:31:20 +00:00
|
|
|
></v-text-field>
|
|
|
|
</v-flex>
|
2020-03-26 08:41:33 +00:00
|
|
|
|
2020-06-27 08:31:20 +00:00
|
|
|
<v-flex xs12 sm6 md3 class="pa-2">
|
|
|
|
<v-textarea
|
2020-12-31 12:51:31 +00:00
|
|
|
v-model="model.Details.License"
|
|
|
|
:append-icon="model.Details.LicenseSrc === 'manual' ? 'check' : ''"
|
2020-12-17 12:23:23 +00:00
|
|
|
:disabled="disabled"
|
|
|
|
:rules="[textRule]"
|
|
|
|
hide-details
|
|
|
|
browser-autocomplete="off"
|
|
|
|
auto-grow
|
|
|
|
:label="$gettext('License')"
|
|
|
|
placeholder=""
|
|
|
|
:rows="1"
|
|
|
|
color="secondary-dark"
|
|
|
|
class="input-license"
|
2020-06-27 08:31:20 +00:00
|
|
|
></v-textarea>
|
|
|
|
</v-flex>
|
2020-03-25 11:39:07 +00:00
|
|
|
|
2020-06-27 08:31:20 +00:00
|
|
|
<v-flex xs12 class="pa-2">
|
|
|
|
<v-textarea
|
2020-12-31 12:51:31 +00:00
|
|
|
v-model="model.Description"
|
2020-12-17 12:23:23 +00:00
|
|
|
:append-icon="model.DescriptionSrc === 'manual' ? 'check' : ''"
|
|
|
|
:disabled="disabled"
|
|
|
|
hide-details
|
|
|
|
browser-autocomplete="off"
|
|
|
|
auto-grow
|
|
|
|
:label="$gettext('Description')"
|
|
|
|
placeholder=""
|
|
|
|
:rows="1"
|
|
|
|
color="secondary-dark"
|
|
|
|
class="input-description"
|
2020-06-27 08:31:20 +00:00
|
|
|
></v-textarea>
|
|
|
|
</v-flex>
|
2020-01-23 23:45:59 +00:00
|
|
|
|
2020-06-27 08:31:20 +00:00
|
|
|
<v-flex xs12 md6 class="pa-2">
|
|
|
|
<v-textarea
|
2020-12-31 12:51:31 +00:00
|
|
|
v-model="model.Details.Keywords"
|
|
|
|
:append-icon="model.Details.KeywordsSrc === 'manual' ? 'check' : ''"
|
2020-12-17 12:23:23 +00:00
|
|
|
:disabled="disabled"
|
|
|
|
hide-details
|
|
|
|
browser-autocomplete="off"
|
|
|
|
auto-grow
|
|
|
|
:label="$gettext('Keywords')"
|
|
|
|
placeholder=""
|
|
|
|
:rows="1"
|
|
|
|
color="secondary-dark"
|
|
|
|
class="input-keywords"
|
2020-06-27 08:31:20 +00:00
|
|
|
></v-textarea>
|
|
|
|
</v-flex>
|
2020-01-23 23:45:59 +00:00
|
|
|
|
2020-06-27 08:31:20 +00:00
|
|
|
<v-flex xs12 md6 class="pa-2">
|
|
|
|
<v-textarea
|
2020-12-31 12:51:31 +00:00
|
|
|
v-model="model.Details.Notes"
|
|
|
|
:append-icon="model.Details.NotesSrc === 'manual' ? 'check' : ''"
|
2020-12-17 12:23:23 +00:00
|
|
|
:disabled="disabled"
|
|
|
|
hide-details
|
|
|
|
browser-autocomplete="off"
|
|
|
|
auto-grow
|
|
|
|
:label="$gettext('Notes')"
|
|
|
|
placeholder=""
|
|
|
|
:rows="1"
|
|
|
|
color="secondary-dark"
|
|
|
|
class="input-notes"
|
2020-06-27 08:31:20 +00:00
|
|
|
></v-textarea>
|
|
|
|
</v-flex>
|
2020-01-26 16:47:52 +00:00
|
|
|
|
2020-12-31 12:51:31 +00:00
|
|
|
<v-flex v-if="!disabled" xs12 text-xs-right class="pt-3">
|
|
|
|
<v-btn depressed color="secondary-light" class="action-close"
|
|
|
|
@click.stop="close">
|
2020-07-14 17:07:06 +00:00
|
|
|
<translate>Close</translate>
|
2020-06-27 08:31:20 +00:00
|
|
|
</v-btn>
|
2020-12-31 12:51:31 +00:00
|
|
|
<v-btn color="secondary-dark" depressed dark class="action-apply action-approve"
|
|
|
|
@click.stop="save(false)">
|
2020-07-14 17:07:06 +00:00
|
|
|
<span v-if="$config.feature('review') && model.Quality < 3"><translate>Approve</translate></span>
|
|
|
|
<span v-else><translate>Apply</translate></span>
|
2020-06-27 08:31:20 +00:00
|
|
|
</v-btn>
|
2020-12-31 12:51:31 +00:00
|
|
|
<v-btn color="secondary-dark" depressed dark class="action-done hidden-xs-only"
|
|
|
|
@click.stop="save(true)">
|
2020-07-14 17:07:06 +00:00
|
|
|
<translate>Done</translate>
|
2020-06-27 08:31:20 +00:00
|
|
|
</v-btn>
|
|
|
|
</v-flex>
|
|
|
|
</v-layout>
|
|
|
|
</v-flex>
|
|
|
|
</v-layout>
|
2020-04-15 08:00:39 +00:00
|
|
|
|
2020-06-27 08:31:20 +00:00
|
|
|
<div class="mt-5"></div>
|
|
|
|
</v-form>
|
|
|
|
</v-container>
|
|
|
|
</div>
|
2020-01-23 23:45:59 +00:00
|
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
2020-12-17 12:23:23 +00:00
|
|
|
import countries from "options/countries.json";
|
|
|
|
import Thumb from "model/thumb";
|
|
|
|
import * as options from "options/options";
|
|
|
|
|
|
|
|
export default {
|
2020-12-31 12:51:31 +00:00
|
|
|
name: 'PTabPhotoDetails',
|
2020-12-17 12:23:23 +00:00
|
|
|
props: {
|
|
|
|
model: Object,
|
|
|
|
uid: String,
|
|
|
|
},
|
|
|
|
data() {
|
|
|
|
return {
|
|
|
|
disabled: !this.$config.feature("edit"),
|
|
|
|
config: this.$config.values,
|
|
|
|
all: {
|
|
|
|
colors: [{label: this.$gettext("Unknown"), name: ""}],
|
|
|
|
},
|
|
|
|
readonly: this.$config.get("readonly"),
|
|
|
|
options: options,
|
|
|
|
countries: countries,
|
|
|
|
showDatePicker: false,
|
|
|
|
showTimePicker: false,
|
|
|
|
invalidDate: false,
|
|
|
|
utcTime: "",
|
|
|
|
localTime: "",
|
|
|
|
textRule: v => v.length <= this.$config.get('clip') || this.$gettext("Text too long"),
|
2020-01-23 23:45:59 +00:00
|
|
|
};
|
2020-12-17 12:23:23 +00:00
|
|
|
},
|
2020-12-31 12:51:31 +00:00
|
|
|
computed: {
|
|
|
|
cameraOptions() {
|
|
|
|
return this.config.cameras;
|
|
|
|
},
|
|
|
|
lensOptions() {
|
|
|
|
return this.config.lenses;
|
|
|
|
},
|
2020-12-17 12:23:23 +00:00
|
|
|
},
|
|
|
|
watch: {
|
|
|
|
model() {
|
|
|
|
this.updateTime();
|
|
|
|
},
|
|
|
|
uid() {
|
|
|
|
this.updateTime();
|
|
|
|
},
|
|
|
|
},
|
2020-12-31 12:51:31 +00:00
|
|
|
created() {
|
|
|
|
this.updateTime();
|
2020-12-17 12:23:23 +00:00
|
|
|
},
|
|
|
|
methods: {
|
|
|
|
updateTime() {
|
|
|
|
if (!this.model.hasId()) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
let localDate = this.model.localDate(this.localTime);
|
|
|
|
|
2020-12-31 12:51:31 +00:00
|
|
|
this.invalidDate = !localDate.isValid;
|
2020-12-17 12:23:23 +00:00
|
|
|
|
|
|
|
if (this.invalidDate) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
const utcDate = localDate.toUTC();
|
|
|
|
|
|
|
|
this.localTime = localDate.toFormat("HH:mm:ss");
|
|
|
|
this.utcTime = utcDate.toFormat("HH:mm:ss");
|
|
|
|
|
|
|
|
if (this.model.Day === 0) {
|
|
|
|
this.model.Day = parseInt(localDate.toFormat("d"));
|
|
|
|
}
|
|
|
|
|
|
|
|
if (this.model.Month === 0) {
|
|
|
|
this.model.Month = parseInt(localDate.toFormat("L"));
|
|
|
|
}
|
|
|
|
|
|
|
|
if (this.model.Year === 0) {
|
|
|
|
this.model.Year = parseInt(localDate.toFormat("y"));
|
|
|
|
}
|
|
|
|
|
|
|
|
this.model.TakenAtLocal = localDate.toISO({
|
|
|
|
suppressMilliseconds: true,
|
|
|
|
includeOffset: false,
|
|
|
|
}) + "Z";
|
|
|
|
|
|
|
|
this.model.TakenAt = localDate.toUTC().toISO({
|
|
|
|
suppressMilliseconds: true,
|
|
|
|
includeOffset: false,
|
|
|
|
}) + "Z";
|
|
|
|
},
|
|
|
|
left() {
|
|
|
|
this.$emit('next');
|
|
|
|
},
|
|
|
|
right() {
|
|
|
|
this.$emit('prev');
|
|
|
|
},
|
|
|
|
openPhoto() {
|
2020-12-31 12:51:31 +00:00
|
|
|
this.$viewer.show(Thumb.fromFiles([this.model]), 0);
|
2020-12-17 12:23:23 +00:00
|
|
|
},
|
|
|
|
save(close) {
|
|
|
|
if (this.invalidDate) {
|
|
|
|
this.$notify.error(this.$gettext("Invalid date"));
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
this.model.update().then(() => {
|
|
|
|
if (close) {
|
|
|
|
this.$emit('close');
|
|
|
|
}
|
|
|
|
|
|
|
|
this.updateTime();
|
|
|
|
});
|
|
|
|
},
|
|
|
|
close() {
|
|
|
|
this.$emit('close');
|
|
|
|
},
|
|
|
|
},
|
|
|
|
};
|
2020-01-23 23:45:59 +00:00
|
|
|
</script>
|