Working Memories
Signed-off-by: James Ketrenos <james_git@ketrenos.com>
This commit is contained in:
parent
015999ca49
commit
22cd1ed047
@ -8,7 +8,6 @@
|
|||||||
<link rel="import" href="../../bower_components/app-layout/app-header/app-header.html">
|
<link rel="import" href="../../bower_components/app-layout/app-header/app-header.html">
|
||||||
<link rel="import" href="../../bower_components/app-layout/app-toolbar/app-toolbar.html">
|
<link rel="import" href="../../bower_components/app-layout/app-toolbar/app-toolbar.html">
|
||||||
<link rel="import" href="../../bower_components/app-layout/app-drawer/app-drawer.html">
|
<link rel="import" href="../../bower_components/app-layout/app-drawer/app-drawer.html">
|
||||||
<link rel="import" href="../../bower_components/app-route/app-location.html">
|
|
||||||
|
|
||||||
<link rel="import" href="../../bower_components/iron-icon/iron-icon.html">
|
<link rel="import" href="../../bower_components/iron-icon/iron-icon.html">
|
||||||
<link rel="import" href="../../bower_components/iron-icons/iron-icons.html">
|
<link rel="import" href="../../bower_components/iron-icons/iron-icons.html">
|
||||||
@ -18,13 +17,7 @@
|
|||||||
<link rel="import" href="../../bower_components/iron-flex-layout/iron-flex-layout-classes.html">
|
<link rel="import" href="../../bower_components/iron-flex-layout/iron-flex-layout-classes.html">
|
||||||
|
|
||||||
<link rel="import" href="../../bower_components/paper-button/paper-button.html">
|
<link rel="import" href="../../bower_components/paper-button/paper-button.html">
|
||||||
<link rel="import" href="../../bower_components/paper-checkbox/paper-checkbox.html">
|
|
||||||
<link rel="import" href="../../bower_components/paper-dialog/paper-dialog.html">
|
|
||||||
<link rel="import" href="../../bower_components/paper-dialog-scrollable/paper-dialog-scrollable.html">
|
|
||||||
<link rel="import" href="../../bower_components/paper-icon-button/paper-icon-button.html">
|
<link rel="import" href="../../bower_components/paper-icon-button/paper-icon-button.html">
|
||||||
<link rel="import" href="../../bower_components/paper-input/paper-input.html">
|
|
||||||
<link rel="import" href="../../bower_components/paper-radio-group/paper-radio-group.html">
|
|
||||||
<link rel="import" href="../../bower_components/paper-radio-button/paper-radio-button.html">
|
|
||||||
<link rel="import" href="../../bower_components/paper-spinner/paper-spinner.html">
|
<link rel="import" href="../../bower_components/paper-spinner/paper-spinner.html">
|
||||||
<link rel="import" href="../../bower_components/paper-tabs/paper-tab.html">
|
<link rel="import" href="../../bower_components/paper-tabs/paper-tab.html">
|
||||||
<link rel="import" href="../../bower_components/paper-tabs/paper-tabs.html">
|
<link rel="import" href="../../bower_components/paper-tabs/paper-tabs.html">
|
||||||
@ -220,6 +213,14 @@
|
|||||||
border: 3px solid blue;
|
border: 3px solid blue;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
calendar-element {
|
||||||
|
font-size: 0.8em;
|
||||||
|
}
|
||||||
|
|
||||||
|
#memories {
|
||||||
|
padding: 0.5em;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<app-location route="{{route}}"></app-location>
|
<app-location route="{{route}}"></app-location>
|
||||||
@ -233,8 +234,9 @@
|
|||||||
</paper-tabs>
|
</paper-tabs>
|
||||||
<iron-pages id="pages" attr-for-selected="id" selected="[[mode]]">
|
<iron-pages id="pages" attr-for-selected="id" selected="[[mode]]">
|
||||||
<div id="time"><div>... time slider ...</div></div>
|
<div id="time"><div>... time slider ...</div></div>
|
||||||
<div id="memories" class="flex layout vertical">
|
<div id="memories" class="flex layout vertical center">
|
||||||
<div><calendar-element date="{{date}}"></calendar-element></div>
|
<calendar-element date="{{date}}"></calendar-element>
|
||||||
|
<div>[[date]]</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="albums" class="flex layout vertical">
|
<div id="albums" class="flex layout vertical">
|
||||||
<template is="dom-repeat" items="[[breadcrumb(path)]]">
|
<template is="dom-repeat" items="[[breadcrumb(path)]]">
|
||||||
@ -321,12 +323,17 @@
|
|||||||
mode: {
|
mode: {
|
||||||
type: String,
|
type: String,
|
||||||
value: "time"
|
value: "time"
|
||||||
|
},
|
||||||
|
date: {
|
||||||
|
type: String,
|
||||||
|
value: new Date().toISOString().replace(/T.*/, "")
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
observers: [
|
observers: [
|
||||||
"widthChanged(calcWidth)",
|
"widthChanged(calcWidth)",
|
||||||
"modeChanged(mode)"
|
"modeChanged(mode)",
|
||||||
|
"dateChanged(date)"
|
||||||
],
|
],
|
||||||
|
|
||||||
shouldShowAlbums: function(order) {
|
shouldShowAlbums: function(order) {
|
||||||
@ -340,6 +347,17 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
dateChanged: function(date) {
|
||||||
|
this.pendingPhotos = [];
|
||||||
|
this.visibleThumbs = [];
|
||||||
|
this.thumbnails = [];
|
||||||
|
this.cursor = null;
|
||||||
|
Polymer.dom(this.$.thumbnails).innerHTML = "";
|
||||||
|
this.next = false;
|
||||||
|
this.limit = undefined;
|
||||||
|
this._loadPhotos();
|
||||||
|
},
|
||||||
|
|
||||||
modeChanged: function(mode) {
|
modeChanged: function(mode) {
|
||||||
console.log("Mode changed to " + mode);
|
console.log("Mode changed to " + mode);
|
||||||
this.path = "";
|
this.path = "";
|
||||||
@ -803,13 +821,17 @@
|
|||||||
path = "/" + mode;
|
path = "/" + mode;
|
||||||
if (mode == "time") {
|
if (mode == "time") {
|
||||||
path = "";
|
path = "";
|
||||||
|
} else {
|
||||||
|
path = "/memories/" + (this.date || "");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
console.log("Requesting " + this.limit + " photos.");
|
console.log("Requesting " + this.limit + " photos.");
|
||||||
window.fetch("api/v1/photos" + path + query, function(path, error, xhr) {
|
window.fetch("api/v1/photos" + path + query, function(path, error, xhr) {
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
|
|
||||||
if ((mode != this.mode) || ((mode == "albums") && (path != (this.path || "")))) {
|
if ((mode != this.mode) ||
|
||||||
|
((mode == "albums") && (path != (this.path || ""))) ||
|
||||||
|
((mode == "memories") && (path != ("/memories/" + (this.date || ""))))) {
|
||||||
console.log("Skipping results for old query. Triggering re-fetch of photos for new path or mode.");
|
console.log("Skipping results for old query. Triggering re-fetch of photos for new path or mode.");
|
||||||
this._loadPhotos();
|
this._loadPhotos();
|
||||||
return;
|
return;
|
||||||
|
@ -1,10 +1,5 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
/*
|
|
||||||
Memories:
|
|
||||||
echo "select id,taken from photos where strftime('%m%d',taken)=strftime('%m%d',CURRENT_TIMESTAMP) order by taken desc;" | sqlite3 photos.db
|
|
||||||
*/
|
|
||||||
|
|
||||||
const express = require("express"),
|
const express = require("express"),
|
||||||
fs = require("fs"),
|
fs = require("fs"),
|
||||||
url = require("url"),
|
url = require("url"),
|
||||||
@ -29,7 +24,7 @@ const router = express.Router();
|
|||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
router.get("/memories", function(req, res/*, next*/) {
|
router.get("/memories/*", function(req, res/*, next*/) {
|
||||||
let limit = parseInt(req.query.limit) || 50,
|
let limit = parseInt(req.query.limit) || 50,
|
||||||
id, cursor, index;
|
id, cursor, index;
|
||||||
|
|
||||||
@ -52,13 +47,15 @@ router.get("/memories", function(req, res/*, next*/) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let query = "SELECT * FROM photos WHERE strftime('%m%d',taken)=strftime('%m%d',CURRENT_TIMESTAMP) " + index + " ORDER BY taken DESC,id DESC LIMIT " + (limit * 2 + 1);
|
let date = new Date(decodeURI(req.url).replace(/\?.*$/, ""));
|
||||||
|
let query = "SELECT * FROM photos WHERE strftime('%m%d',taken)=strftime('%m%d',:date) " + index + " ORDER BY taken DESC,id DESC LIMIT " + (limit * 2 + 1);
|
||||||
|
|
||||||
// console.log("Memories query", query);
|
console.log("Memories query", date.replace(/T.*/, "");
|
||||||
|
|
||||||
return photoDB.sequelize.query(query, {
|
return photoDB.sequelize.query(query, {
|
||||||
replacements: {
|
replacements: {
|
||||||
cursor: cursor
|
cursor: cursor,
|
||||||
|
date: date
|
||||||
},
|
},
|
||||||
type: photoDB.Sequelize.QueryTypes.SELECT
|
type: photoDB.Sequelize.QueryTypes.SELECT
|
||||||
}).then(function(photos) {
|
}).then(function(photos) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user