http://imgur.com/Re14XKc,6fYHJqp,39nnQiT#0
Camlistore is built around the idea that every object is a blob,
but blobs can also self-describe themselves as more than a blob.
For example, some blobs are also files, or images, or sets, or
permanodes, or movies, or foursquare checkins. Etc.
Here is an idea for the detail page that reflects that underlying
reality of Camlistore.
Each blob has a single canonical URL in the web UI for its detail
page. Currently this is /?p=<...>, but should ideally be just
/<blobref>.
Within the web UI, many "aspects" register interest in providing
views on blobs. Each time the user navigates to a detail page,
each aspects gets to say whether it can provide a useful view on
the blob.
Aspects are currently rendered (crappily) as tabs along the bottom
of the UI. I'm not sure how they should actually be rendered, this
is temporary.
This patch includes the following aspects:
- image (the old image detail)
- permanode (the old old permanode page)
- blob (the old old blob page)
Change-Id: Idb3cdbb203799a5d9c113d1b37b67a2724040085
BlobItemDemoContent is a demo node type, useful for giving talks and showing
how a custom renderer can be invoked just by making a permanode, setting
its "camliNodeType" attribute to "camlistore.org:demo", and then changing its
background color with the "color" property or text with the "title" property.
Change-Id: Ib592471b785fde5750754bde3aa71eb8e2c10f3b
Currently there are two renderers: image and generic (for the
file/folder icons). But it should be easy to add new types now.
Change-Id: Ib1b348cad614e4e8ff6e61fb6e41538678916588
1) Removed exec call to gpg, because it automatically looks in .gnupg/,
which we don't use anymore as a default.
2) Now taking into account global --secret-keyring flag.
This flag is now in osutil.
3) New or modified funcs in osutil
4) Made sure --gpgkey works too.
5) Cleaned up error messages and hints.
Context: http://camlistore.org/issue/364http://camlistore.org/issue/368
Change-Id: I2e51032ed0597da656db100d72f5588b37308e1a
Related changes:
Split docker-related test-helper functions from pkg/sorted/mongo.
These helper functions are now also used in the pkg/blobserver/mongo
tests too.
Also fixed a typo in a comment in pkg/blob/fetcher.go and a missing variable in
debug output in pkg/blobserver/storagetest/storagetest.go
Addresses http://camlistore.org/issue/127
Change-Id: I8b6f57f9ced066d6f83788fdcc87be6619c65c3c
Conflicts:
pkg/blob/fetcher.go
Imports all images from all albums, and puts each image in its album.
Each album is linked under "Picasa (<username>)".
Tries to skip already imported files (check based on album/filename).
See Issue #391.
Change-Id: If00751671a429891c05bbe41f59c1421b2ff2de8
Items can be selected and effectively hidden from a UI point of view.
For now, since only the selected permanode is marked as deleted, and
GC is not yet implemented, no content is actually deleted. This is
really more like hiding the content permanently without deleting it.
Change-Id: I6ebc228905e3612503f153ff3bbb44ba24a43d09
Creates new page @ /ui/mobile.html for generating a QR code that
embeds configuration data for setting up mobile clients.
Imports code.google.com/p/rsc/{gf256,qr} version:
parent: 149:a3cbaf2339c4 tip
This addresses the server and web components of
https://camlistore.org/issue/372
Change-Id: If9239dd138707080afd7dedb5770d04893cbf0ba
This was caused by a bug in Chrome: wheel events stop firing when source
element is removed from DOM. Workaround: leave element in DOM for awhile.
On the upside, React makes this clean to implement. No need to keep state
to remember to remove the dangling element. It automatically gets removed
when it is no longer the last element to receive the wheel event!
Change-Id: I1b9372bfd1edcfb532f6825d99044a314048c3b4
This improves the performance of Promise construction, which
improves the performance of dropping large numbers of files onto
the UI at once.
There is still more we could do to improve dropping large numbers
of files (probably we should implement a work queue and not try
to start uploading them all in parallel), but this is a quick
solution and probably helps other parts of the code as well.
Change-Id: I398ba8d6776b38b1a61a22598099c52dc2130469