Commit c938a1d7 authored by Joel Collins's avatar Joel Collins
Browse files

Fixed gallery filtering and sorting

parent b9ae730c
Loading
Loading
Loading
Loading
+10 −10
Original line number Diff line number Diff line
@@ -7,11 +7,11 @@
        <img
          class="uk-width-1-1"
          :data-src="thumbnail"
          :alt="metadata.id"
          :alt="metadata.image.id"
          width="300"
          height="225"
          uk-img
          @click="$root.$emit('globalUpdateCaptureFolder', metadata.id)"
          @click="$root.$emit('globalUpdateCaptureFolder', metadata.image.id)"
        />
      </a>
    </div>
@@ -22,14 +22,14 @@
        uk-grid
      >
        <div class="uk-margin-remove-top uk-padding-remove uk-width-expand">
          <b>{{ metadata.type || "Dataset" }}: </b> {{ metadata.name }}
          <b>{{ metadata.type || "Dataset" }}: </b> {{ metadata.image.name }}
        </div>
      </div>

      <div
        class="uk-text-meta uk-margin-remove-top uk-padding-remove uk-width-expand"
      >
        <time>{{ metadata.acquisitionDate }}</time>
        <time>{{ metadata.image.acquisitionDate }}</time>
      </div>
      <div
        class="uk-text-meta uk-margin-remove-top uk-padding-remove uk-width-auto"
@@ -40,7 +40,7 @@

    <div class="uk-card-footer uk-padding-small">
      <span
        v-for="tag in metadata.tags"
        v-for="tag in metadata.image.tags"
        :key="tag"
        class="uk-label uk-margin-small-right deletable-label"
      >
@@ -51,13 +51,13 @@
    <div :id="metadataModalID" uk-modal>
      <div class="uk-modal-dialog uk-modal-body">
        <button class="uk-modal-close-default" type="button" uk-close></button>
        <h2 class="uk-modal-title">{{ metadata.basename }}</h2>
        <p><b>Time: </b>{{ metadata.acquisitionDate }}</p>
        <p><b>ID: </b>{{ metadata.id }}</p>
        <h2 class="uk-modal-title">{{ metadata.image.name }}</h2>
        <p><b>Time: </b>{{ metadata.image.acquisitionDate }}</p>
        <p><b>ID: </b>{{ metadata.image.id }}</p>

        <hr />

        <div v-for="(value, key) in metadata.annotations" :key="key">
        <div v-for="(value, key) in metadata.image.annotations" :key="key">
          <p>
            <b>{{ key }}: </b>{{ value }}
          </p>
@@ -100,7 +100,7 @@ export default {

  methods: {
    makeModalName: function(prefix) {
      return prefix + this.metadata.id;
      return prefix + this.metadata.image.id;
    }
  }
};
+16 −12
Original line number Diff line number Diff line
@@ -167,13 +167,15 @@ export default {
            scans[id].isScan = true;
            scans[id].captures = [];
            scans[id].metadata = {
              image: {
                name: dataset.name,
                acquisitionDate: dataset.acquisitionDate,
                id: dataset.id,
                tags: [],
                annotations: {}
              },
              type: dataset.type
            };
            scans[id].metadata.tags = [];
            scans[id].metadata.annotations = {};
          }

          // Add the capture object to the scan
@@ -181,15 +183,15 @@ export default {

          // Add missing scan metadata, prioritising first capture
          for (var key of Object.keys(annotations)) {
            if (!(key in scans[id].metadata.annotations)) {
              scans[id].metadata.annotations[key] = annotations[key];
            if (!(key in scans[id].metadata.image.annotations)) {
              scans[id].metadata.image.annotations[key] = annotations[key];
            }
          }

          // Append missing tags
          for (var tag of tags) {
            if (!scans[id].metadata.tags.includes(tag)) {
              scans[id].metadata.tags.push(tag);
            if (!scans[id].metadata.image.tags.includes(tag)) {
              scans[id].metadata.image.tags.push(tag);
            }
          }

@@ -313,7 +315,7 @@ export default {
        var includeCapture = false;

        // Filter by selected tags
        var tags = capture.metadata.tags;
        var tags = capture.metadata.image.tags;
        let checker = (arr, target) => target.every(v => arr.includes(v));
        // True if all tags match
        includeCapture = checker(tags, filterTags);
@@ -330,8 +332,10 @@ export default {
    sortCaptures: function(list) {
      // Sort a list of captures by metadata time
      function compare(a, b) {
        if (a.metadata.time < b.metadata.time) return -1;
        if (a.metadata.time > b.metadata.time) return 1;
        if (a.metadata.image.acquisitionDate < b.metadata.image.acquisitionDate)
          return -1;
        if (a.metadata.image.acquisitionDate > b.metadata.image.acquisitionDate)
          return 1;
        return 0;
      }