Commit Graph

970 Commits

Author SHA1 Message Date
Brad Fitzpatrick 488f1b4481 Merge "ui: fix permanode page" 2014-06-21 16:11:18 +00:00
Brad Fitzpatrick 0c772ef189 ui: fix permanode page
This was null. Not sure why.

Change-Id: I501ab108a386832cf9f7f7d41b3c7172329f45f4
2014-06-21 09:51:44 -07:00
Aaron Boodman 1138db00cd start at twitter renderer.. pretty ugly right now. still working on it...
Change-Id: I7e4940d05bf0eb03f2eb68fb330a8fbe77c38173
2014-06-20 06:25:18 -07:00
mpl 58aeb1bd01 ui/blob.js: hash for non ascii too
http://camlistore.org/issue/450

Change-Id: Ic474833927d28de0ba403eeabef6295e406463a2
2014-06-20 21:04:04 +02:00
Mario Russo d05e8a7ba1 ui: bulk tagging in debug console.
Implemented bulk tagging operations via single command 'tag'. Add, Delete, Set, and Clear modes are available (add, del, set, clear). Help on command usage is supplied via -help argument.

basic usage: tag <mode> (args)
tag add 1,2,3
tag del 1,2
tag set 1
tag clear
tag -help

Caveats:
Client will attempt to add/remove tags regardless if the selected permanode contains those values. So it will add a tag multiple times and attempt to delete a tag that is not set.

Change-Id: Ib5c8ccc3d74e49701629c37397de478b95db4fd6
2014-06-14 21:32:26 +02:00
mpl a34f9e2669 publisher app
http://camlistore.org/issue/365

Change-Id: I281fdcbbe6a2bdf15607e75a21bc93b453f82c85
2014-06-15 00:03:03 +02:00
mpl 7052f8b6f1 ui/search_session: test for safe this.data_
Context: http://camlistore.org/issue/352

Change-Id: Ic8e21f78bdd1cd356a6ef09cbfcaa759f228a6bc
2014-06-09 19:18:06 +02:00
mpl ab01a64601 ui/permanode.js: describe members as well
This change is needed to display the members list/gallery.

Change-Id: I5ee645feceaa5f842ab493ee523d7b3539c76652
2014-05-30 02:18:17 +02:00
Tamás Gulácsi cbb777ffb0 Rewrite Picasa importer for the new Importer API
Reorganizes common OAuth2 things into importer/oa2_importers.go
Rewrites CallbackURLParameters to return url.Values.

A controversial workaround for nil context has been left out,
and this may cause panic and will need a proper fix.

Change-Id: I0789f4732412aa559078ec2c6b6797925ab8cd05
2014-05-21 22:37:50 +02:00
mpl 5070358023 ui/permanode.js: use new query API for describing
Fixes http://camlistore.org/issue/446

Change-Id: I76b432719cf380d126c2d7d3afae133175893890
2014-05-21 19:05:12 +02:00
mpl 03c676342f ui/search_session.js: make PAGE_SIZE_ static
Change-Id: Ife649587eb52188eaa3b5bbf0de01890c14cc9c4
2014-05-21 00:59:53 +02:00
mpl 50fb21d51c Merge "importer: update flickr" 2014-05-20 13:28:56 +00:00
mpl 2504230fb9 importer: update flickr
Works but only lightly tested.
Could use lots of refactoring with code common with twitter.
Needs a test too.

Change-Id: I07f72d29acbc0226aeeedba0afe0bf7eeeac5ad3
2014-05-20 01:40:52 +02:00
Aaron Boodman 0ac94db14b Don't process keyboard shortcuts when search box is focused.
Change-Id: I344c43c0048ace921b89b15c94c36e63d072cd3c
2014-05-18 15:54:42 -07:00
Aaron Boodman 1d71b7896a Merge "Support video content in detail view" 2014-05-18 19:19:12 +00:00
Aaron Boodman f7adfc2869 Support video content in detail view
Change-Id: I1a8d7bceefeff94a70dedf7cee7a9778fa61dd43
2014-05-18 12:16:35 -07:00
Aaron Boodman 3cad7e8ffd Merge "Beginning of a weird debug console thing that Brad requested." 2014-05-18 19:15:38 +00:00
Aaron Boodman fd7b2e518f Beginning of a weird debug console thing that Brad requested.
To open, type '|' while the search view is open.

Change-Id: Id5ff1325fb00a91fe76c618e215b742803c37f24
2014-05-16 17:28:33 -07:00
Brad Fitzpatrick 56ed064b6a Start of 'proxycache' blobserver type.
Change-Id: I8702c1d02203090899eee6c0a555f6fc1dba4e7e
2014-05-15 12:12:21 -07:00
Brad Fitzpatrick 7caa13966b Merge "Feed (rss/atom/rdf) importer" 2014-05-14 22:17:16 +00:00
mpl cdd9a7322e Merge "app/hello: dummy server application (hello world)" 2014-05-08 20:52:10 +00:00
mpl 21dda2b4ef app/hello: dummy server application (hello world)
Change-Id: I6690b9459325af5a76d1de679d56701eefdd195e
2014-05-08 22:15:01 +02:00
mpl 4b1fb3d138 Merge "search: sort by creation time" 2014-05-08 17:11:45 +00:00
mpl 2088ce739b search: sort by creation time
Change-Id: I3695d91dde0d42419c62a23f20ba19416c53e5ef
2014-05-08 18:55:53 +02:00
Eric Drechsel f4e051fe6c ui: fix 437, error in container aspect when children aren't in searchSession
Change-Id: I04e217483bc1f1b1bd55a8afedb8da8f9dcdb296
2014-05-05 19:25:43 -07:00
Brad Fitzpatrick 384b627b5e ui: reduce describe depth, using recursive describe instead
Updates issue https://code.google.com/p/camlistore/issues/detail?id=319

Change-Id: Ie02b0f565c6ff4c9582cecc78914392a60bf9502
2014-05-04 20:03:00 -07:00
Aaron Boodman 81cfa6f39f Don't show checkmark in container aspect right now because it's not operable
Change-Id: I63ccc449802e1d5437431ec3e3305d735a7d335e
2014-05-02 20:12:22 -07:00
Aaron Boodman 888a2e9f3f Add container aspect.
Change-Id: I54ea18ab91edb28413e01583231457b5190532c2
2014-05-02 20:11:01 -07:00
Aaron Boodman 4be7f8f977 Add a directory aspect.
Change-Id: I27700cabafda6143534b999859f071f478f44a36
2014-05-02 19:19:17 -07:00
Aaron Boodman f03f0568cc Remove cam.reactUtil.quacksLike because React 0.10.0 has this built-in.
Change-Id: Id76bfe32b52fcc3896eb57cd03c1967c6b8fbfac
2014-05-02 19:17:04 -07:00
Aaron Boodman df38df2275 Aspects: A new idea for the detail page.
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
2014-05-02 19:13:08 -07:00
Aaron Boodman 632366d148 Upgrade React to 0.10.0.
Change-Id: I1c47fec4293b762f26103d41ebd1faacb96e26e5
2014-05-02 19:10:09 -07:00
mpl ef5acd75e3 twitter importer: fixed to new API
Change-Id: I490001a1f780f1074baa78a4daa563e55096242c
2014-04-23 16:53:49 +02:00
Matt Jibson b7ee0a982e Feed (rss/atom/rdf) importer
Adapted from http://github.com/mjibson/goread.

Change-Id: Id3b61b155624d8c34aadd77a82c40ea4d44d66c0
2014-04-21 00:28:13 -04:00
Aaron Boodman 457a597112 Merge "Recent versions of Chrome no longer fire popstate on initial load." 2014-04-15 08:32:20 +00:00
Aaron Boodman 49010a1834 Recent versions of Chrome no longer fire popstate on initial load.
Back button broke as a result for first navigation. This fixes it
a different, more robust way.

Change-Id: I4a65c3d75d58dfbc186ae4532af7c9f385e463ea
2014-04-15 01:31:16 -07:00
Eric Drechsel 17f44ca79c Fix React warning about unnecessary bind (with aspects CL as well)
Change-Id: Iff5755cda30beecbdbb0bb203518d9a0bf63c575
2014-04-14 21:15:05 +00:00
Aaron Boodman 7ea783a06c Center the Foursquare logo properly no matter the container size.
There are other problems at small container sizes, but those are
a bit more involved to fix.

Change-Id: I4faf708d7cceccdf32dcd7f58b02c115fc55c661
2014-04-12 16:34:16 -07:00
Aaron Boodman 0083542dc8 Fix: sometimes the foursquare photos don't completely fill the available space
Change-Id: I6cafd5ebdd73da81e4fbdfd73ecfc596213c7433
2014-04-12 13:54:36 -07:00
Aaron Boodman 941f34fdcc Merge "Custom rendering for Foursquare checkins." 2014-04-12 05:22:20 +00:00
Aaron Boodman 18eed8251a Custom rendering for Foursquare checkins.
Change-Id: I12e0bc49810deef1c5c14fe223ecd50c5949ac7c
2014-04-11 22:21:54 -07:00
Aaron Boodman d7e9b5bb41 Compare file extensions case-insensitively.
Change-Id: I3ff1578e0b3066b577d29a3128068970a89ab64c
2014-04-10 20:54:09 -07:00
Aaron Boodman bdd9a56c1d Add more video file formats to detected list.
Change-Id: Ib03ab03b0cd68c69c8c3f8778d513df259a6140f
2014-04-10 17:48:24 -07:00
Brad Fitzpatrick bf2d1123b8 ui: add a custom BlobItemDemoContent renderer type, for demos
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
2014-04-06 11:49:59 -07:00
Aaron Boodman 12196cd638 Custom rendering for QuickTime movie files.
Change-Id: I9f527d40a4572c3584dc081e47d45ca65db76163
2014-04-05 17:21:08 -07:00
mpl 291320d451 pkg/index: cleanup, refactor sub pkgs
http://camlistore.org/issue/263

Change-Id: I319bb097f0ce30b2bd5271b5c3bbff92b8dcc318
2014-04-05 01:22:05 +02:00
Aaron Boodman 768f8afe95 Introduce custom renderings per-data type in the search results.
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
2014-03-31 22:35:12 -07:00
Brad Fitzpatrick bf2a7b60a3 Importer overhaul. Only Foursquare is currently working.
The rest are currently stubbed out and will need updating
to the new APIs.

Change-Id: I9d70302b3ac1026192413bf9dcd3c8f1eb420349
2014-03-31 10:56:30 -07:00
mpl cdc4ed5ae2 camput init: ring/key related fixes
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/364
         http://camlistore.org/issue/368

Change-Id: I2e51032ed0597da656db100d72f5588b37308e1a
2014-03-28 19:55:18 +01:00
Aaron Boodman e839eaebde Factor out the image-specific parts of the detail page into a separate class.
This will allow custom renderings of other types of content in the detail view.

Change-Id: I3a8ca6c67e890a51f6b4effe3316beef2cd970cd
2014-03-25 21:47:10 -07:00
Govert Versluis 96637ffcd3 pkg/blobserver/mongo: Add support for blob storage in MongoDB
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
2014-03-22 12:36:59 -07:00
Aaron Boodman a85361a2a7 Rename IndexPageReact to IndexPage
Change-Id: If901a5e9585bb561795c904341b777aa62ad4a26
2014-03-22 06:24:48 -07:00
Aaron Boodman 99a4ff78f5 Remove Closure-based index page, as it is no longer used.
Change-Id: Ibd24c5785841ad1ff978576c4d83362ea0fd3fde
2014-03-22 06:19:29 -07:00
mpl 3d7c093ac8 Merge "UI: reset search session data if empty result." 2014-03-21 13:11:14 +00:00
Nick O'Neill 2d70c95aef Tweet importing with some basic info
Change-Id: I73455eef50dcdc495ddc042d266b3a4a8020c877
2014-03-20 18:57:43 -07:00
mpl 828999e322 UI: reset search session data if empty result.
http://camlistore.org/issue/352

Change-Id: I085c744a8ca31c4420f8132c897305c548b0483e
2014-03-21 00:53:01 +01:00
mpl 2dd3e17129 sorted/sqlite: initialize DB when needed, added test.
Change-Id: Ibd418e357e2bed6a5beed2dda2f947c7c999fe92
2014-03-19 18:16:05 +01:00
Tamás Gulácsi 65fa5d6d3e Picasa: add importer.
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
2014-03-17 10:52:51 +01:00
Aaron Boodman f44173135f Merge "Fix bug where "Select as current set" item never shows up." 2014-03-17 04:39:40 +00:00
Aaron Boodman 4677e5ec97 Fix bug where "Select as current set" item never shows up.
Change-Id: Ibc6b98c3feb65f28c3768cfaf6169044e41ad160
2014-03-16 21:38:43 -07:00
Brad Fitzpatrick bfc607fee7 index: reindex blobs when dependent blobs arrive out-of-order
Keep track of missing dependencies both in memory and in the index's
underlying sorted.KeyValue. When we see a dependent blob arrive, see
if we can reindex things.

Fixes camlistore.org/issue/102

Change-Id: I3d8cfc463e4b8c9d158be8f9656e772839b093b9
2014-03-15 08:44:09 -07:00
Brad Fitzpatrick bf94a73859 Get rid of SeekFetcher vs StreamingFetcher distinction and complexity.
StreamingFetcher is now just Fetcher, and its FetchStreaming is now
just Fetch.

SeekFetcher is gone. Blobs are max 16 MB anyway, so we can slurp to
memory when needed. The main thing that cared about SeekFetcher
was the GET handler, ServeBlobref, because http.ServeContent needed
one for range requests. That's rewritten in an earlier commit, using
the FakeSeeker from another earlier commit.

Lot of code got simpler as a result.

Change-Id: Ib819413e48a8f9b8d97f596d0fbf771dab211f11
2014-03-14 12:29:13 -07:00
Aaron Boodman 75fb861821 Merge "Web UI: Fix for infinite loop with extremely wide aspect ratio images." 2014-03-13 15:44:21 +00:00
Aaron Boodman 12a4c07c54 Web UI: Fix for infinite loop with extremely wide aspect ratio images.
Change-Id: I567000d10adc542e5759d06a82a28db380d225ad
2014-03-13 08:43:38 -07:00
mpl d9f33ac45b Merge "UI: enable "deleting" items on search page" 2014-03-12 13:42:47 +00:00
mpl 9263181931 UI: enable "deleting" items on search page
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
2014-03-11 21:39:58 +01:00
Aaron Boodman 2add0472e1 Inital support for camliContentImage.
Change-Id: Ie89d296eb1ce5b8ae4ff4d4cb8c1f97f09a4c98c
2014-03-10 21:28:13 -07:00
mpl 8ab115cb21 UI: add support for deleting selected permanodes
Feature disabled for now, until the backend (corpus) part is ready.

Change-Id: Ib3527b8f3bfb6793bb60d5e91cd06bc8fab5a5c0
2014-03-06 23:05:20 +01:00
Brad Fitzpatrick 01f2173e64 ui: fix link from old detail page to new UI detail page
Change-Id: Iaa36f532169d3f6697060d9baa2178caaa19423d
2014-02-27 21:06:03 -08:00
Aaron Boodman ff16bcf1e9 Merge "Starting to fool around with property sheet UI" 2014-02-27 09:59:35 +00:00
Aaron Boodman 7ecc4858b9 Starting to fool around with property sheet UI
Looks like: http://i.imgur.com/HxE1oFi.png

Change-Id: Id3188148fd1ef97dac16a53e96ebe41f64cf1ee7
2014-02-27 01:57:49 -08:00
Brad Fitzpatrick a61c921750 Merge "ui: Add QR code for configuring mobile clients." 2014-02-24 01:43:28 +00:00
Brad Fitzpatrick 6d30b8d274 camlistored: make test use CAMLI_VAR_DIR instead of tweaking HOME/HOMEPATH/APPDATA
For upcoming change to enable strictness in osutil's use of host paths
during tests.

Change-Id: Ied1602d6dc4f5c92e97f760e04b97cc965610b20
2014-02-23 10:19:01 -08:00
Bill Thiede 58b6497b14 ui: Add QR code for configuring mobile clients.
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
2014-02-21 19:58:54 -08:00
Aaron Boodman a41cc2bab1 Merge "Fix choppy scrolling when flinging on OS X." 2014-02-18 07:12:08 +00:00
Aaron Boodman 930e3bee64 Fix choppy scrolling when flinging on OS X.
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
2014-02-17 23:08:22 -08:00
Aaron Boodman 5b811fa1b1 Actually turn Closure's DEBUG flag off. This was backwards in 17e3799cda.
Change-Id: I6228ef77bdbe82ad77fa5d60c853df02820d23c1
2014-02-17 10:58:44 -08:00
Aaron Boodman 17e3799cda Turn Closure's DEBUG flag off.
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
2014-02-14 19:18:54 -08:00
Aaron Boodman cd7aedf8c4 Merge "Fix regression in navigation to non-image file." 2014-02-11 14:41:50 +00:00
Aaron Boodman 64f1d810b8 Fix regression in navigation to non-image file.
Before the initial click would yield an empty page, and you'd have
to refresh to see anything.

Change-Id: Ic26915aa26e4d9285e72ae7fa856283ee6790922
2014-02-11 06:39:30 -08:00
Brad Fitzpatrick 79cb116dbb Merge "pkg/types/serverconfig: json-tagged struct" 2014-02-11 00:56:11 +00:00
mpl 6707837806 pkg/types/serverconfig: json-tagged struct
Also changed the TLS/HTTPS config keys for consistency.

http://camlistore.org/issue/339

Change-Id: I704ec129f91b93ebb20bc1191816166a2f10692d
2014-02-10 21:49:11 +01:00
Aaron Boodman 4229b286dc Merge "Improve layout on mobile." 2014-02-08 23:48:17 +00:00
Aaron Boodman f36bbe54aa Improve layout on mobile.
There is still a lot of work to do on mobile, but this makes it
slightly better. Increases the default scale to something sane.
Fix the bug where we don't layout using entire width.

window.outerWidth is somehow completely busted on mobile.

Change-Id: Id574d6ee14ba59f6e835725d378f228796ff7ccf
2014-02-08 15:47:19 -08:00
Brad Fitzpatrick 1b53c6d851 appengine: remove unused dummyCloser
Change-Id: I0ac0dafe5d3a2639810f2951daeb5c6176cc5863
2014-02-08 09:25:59 -08:00
Brad Fitzpatrick 60d8bb3a2d appengine: fix build. Use uint32 instead of int64 for blob sizes.
Change-Id: I1952e291b8d86dfaed8310bd5812688849225435
2014-02-08 09:25:21 -08:00
Aaron Boodman 02e787202a Fix regression where checkmarks don't turn blue on click.
Was caused by incorrectly building child component props in
willReceiveProps() before new props are actually set.

Simplified code to always rebuild child component props in render().

Removed overly-clever code that was trying to filter out some
prop updates. We don't send spurious prop updates in any case that
I can think of.

Change-Id: Ie067b2d667517c24524863eac62baef0178608cb
2014-02-06 21:13:27 -08:00
Aaron Boodman b0775e03e9 Combine the 'Create permanode' feature with the existing 'Create set with x items'.
The web UI was implying 'folderness' by looking for certain claims against
permanodes. This won't allow us to represent empty dynamic folders, which seems
wrong.

Thus I've changed it to just represent all pemanodes as folders. In the future,
if there are more specific types of permanodes, we can handle that.

Change-Id: I73523634114c61f33705a88a4147e13ad60c59d6
2014-02-05 10:05:38 -08:00
mpl d4b4194ed0 ui: check for non nil results before using them
http://camlistore.org/issue/352

Change-Id: I321d2bf2a48eed9aa0b9b4f5bf5d630d3741af97
2014-01-28 00:14:20 +01:00
mpl bda0b712d7 serverinit: forgot to add appengine change in 448f266d72
Change-Id: I38fce10319f6bd4827861325f2a474cc08098139
2014-01-24 01:30:27 +01:00
mpl 448f266d72 rename pkg/serverconfig to pkg/serverinit
To avoid awkwardness with future pkg/types/serverconfig

http://camlistore.org/issue/339

Change-Id: If8a00941cdc269d6bcfe0f76c596154d5969bf0d
2014-01-23 17:18:46 +01:00
Aaron Boodman 69cb19ccdb Throttle updates to history so the URL bar doesn't flicker so much.
Change-Id: Ie2b1cc8a6abe2d41083dcd1116940508b22661f5
2014-01-20 12:00:04 -08:00
Aaron Boodman 976c78cb30 Turn React-based UI on by default.
Change-Id: I7370954eb1fda679be25e3ab652fb3776c55c938
2014-01-20 11:32:04 -08:00
Aaron Boodman 499fdbf47d Virtual scroll!
Change-Id: I3c564758f110975ecc1a5e6cf9a7db1777ade54b
2014-01-20 11:11:52 -08:00
Aaron Boodman ce5d5f99fb Fix two small bugs from previous commit:
1) We don't need the isMounted() check anymore because we're not poking at the DOM.
2) Detail() now needs a history param.

Change-Id: I420e3211fde40673e3123a2b18460d0d12f32a70
2014-01-19 14:19:27 -08:00
Aaron Boodman 6333126e79 Yak shave to fix a layout glitch moments after page load.
Was basically caused by layout<->scrollbar interaction loop. Fix was to
calculate size of scrollbar and take it into account during layout.

At the same time, I decided to clean up the code and put the search results
scrollbar actually within BlobItemContainer, rather than having
BlobItemContainer reach up and change scroll styles of document.

This necessitated getting rid of some of the clever transform origin
stuff I was doing before, but it is less needed now.

Change-Id: I8641d87d8e593336aed48acef8b31680a52d7e6c
2014-01-19 14:03:42 -08:00
Aaron Boodman 1bd3e811ab Merge "Save scroll position and restore on back or escape from detail." 2014-01-19 20:29:15 +00:00
Aaron Boodman 251cbbd906 Merge "Wire drag and drop file uploads back up." 2014-01-19 20:29:02 +00:00
Aaron Boodman 74e9b4dc4e Merge "Stop showing pyramid throbber if an image fails to load." 2014-01-19 19:39:41 +00:00
Aaron Boodman 30477cf50a Stop showing pyramid throbber if an image fails to load.
Change-Id: I30193f7ffe178d728d0b6e4fced2fc77d93e239a
2014-01-19 11:38:58 -08:00
Aaron Boodman c848f09199 Fix bug where nav is not open when returning from detail page if was open when left.
Change-Id: I527ad917345dd6fcc67fe12c18ac06539f6e457e
2014-01-19 01:21:44 -08:00
Aaron Boodman 671a1b0085 Save scroll position and restore on back or escape from detail.
Change-Id: I844bb00509e744396821ce7bff7d1951b9639cac
2014-01-19 01:11:52 -08:00
Aaron Boodman a9dde0d354 Wire drag and drop file uploads back up.
Change-Id: I19939d152cfb66e10cf87105bef71849a508c82d
2014-01-19 01:06:05 -08:00
Aaron Boodman ce43c79437 Merge "Add SearchSession#refreshIfNecessary() - use to do manual refreshes when websocket not avaialble." 2014-01-18 22:45:37 +00:00
Aaron Boodman 8387acb5ce Merge "Trial fix for infinite piggie bug." 2014-01-18 22:45:11 +00:00
Aaron Boodman 5e1a6fe242 Add SearchSession#refreshIfNecessary() - use to do manual refreshes when websocket not avaialble.
Change-Id: Icb451ddff8fc6917f837f289f1b0f83fa7cc5d81
2014-01-18 02:11:56 -08:00
Aaron Boodman d53107050f Whoops. Fix stupid bugs introduced right before I committed 2dd87d.
Change-Id: I6a6032c1d8e49b08ccd919d8b7bd69c00c8858e7
2014-01-18 00:11:35 -08:00
Aaron Boodman 675c9d8cd8 Merge "Wire up the remaing nav items." 2014-01-18 08:07:23 +00:00
Aaron Boodman 2dd87d7281 Wire up the remaing nav items.
Change-Id: I730b192a2f1945659e953cdf0d45c0a77b6e161b
2014-01-18 00:06:17 -08:00
Aaron Boodman 5b16c9202b Trial fix for infinite piggie bug.
Change-Id: I589c1c6dd8d68552376f274c9bcb091fc6a289f3
2014-01-17 22:05:57 -08:00
Aaron Boodman d3c6824495 Prevents the little horizontal jostle that happens in the detail page
when you press 'right' the first time.

Change-Id: Ic39607258c056bcee898463ef4ed80cc64799baf
2014-01-17 00:15:36 -08:00
Aaron Boodman 69b1b76c88 Wire search back together in the React UI
Change-Id: Ica7afd21dda28a8a90ebd3c4dc3807821e018678
2014-01-16 16:55:59 -08:00
Aaron Boodman 37173dc7d4 Merge "Hardware accelerate the piggy." 2014-01-17 00:36:17 +00:00
Aaron Boodman c5a31bafbb Wire up the detail view to the React-based UI.
The scroll position doesn't restore when navigating back to the
search page from the detail page. That will be interesting.

Change-Id: I5a008cdd6d1c83a4b8031d14ee26cfd9e383d73d
2014-01-16 00:41:02 -08:00
Aaron Boodman c3ca04d82b Wire up some of the nav items.
Change-Id: I9c120badad448d6eae736133475dbc0acfe8993a
2014-01-15 23:05:30 -08:00
Aaron Boodman 95f95a2623 Hardware accelerate the piggy.
This improves the performance of the piggy animation by doing it in hardware
and eliminating a layout pass on every frame.

Change-Id: I02cf8b521af60af0e61f70c7f732f97074bdcdc1
2014-01-15 20:54:21 -08:00
Aaron Boodman 1803104293 Implement most of BlobItemContainer using React.
Still left to do: update the nav in response to selection changes,
implement nav items, drag and drop.

Change-Id: I3f7cd0b8bdccd11a5816dce2bc214e60f844a130
2014-01-15 20:17:21 -08:00
Aaron Boodman 2d8c5992bf Merge "Convert nav to React." 2014-01-16 04:16:48 +00:00
Aaron Boodman ade30f9637 Convert nav to React.
Change-Id: Id05e1c87f97e0c20b935ae5360ce089993aae5ac
2014-01-15 20:14:45 -08:00
Brad Fitzpatrick d1f2ae227f Start of Foursquare importer.
Change-Id: I56b0e71a3aad697b82710ebea6fc941436a3c119
2014-01-14 20:45:23 -08:00
Aaron Boodman 646cda0c24 Reset ServerSession#isComplete in response to websocket updates.
BUG=https://code.google.com/p/camlistore/issues/detail?id=333

Change-Id: Ia6ac92254bdaadfe9b8df2d7242d9bfb61539d63
2014-01-10 21:20:47 -08:00
Aaron Boodman d4fbfe7180 Implement generalized navigation handling, use to implement escape handling in detail view.
Change-Id: Iba5359e9d17fcaa200a9cbb586ac9d6461c179aa
2014-01-10 15:50:05 -08:00
Brad Fitzpatrick ebcfb0270e Merge "Fix the weird flicker on mouseover of thumbnails." 2014-01-08 18:02:16 +00:00
Aaron Boodman 98866f426d Fix bug where you have to press back twice to get out of detail view.
Change-Id: Ib2a35b3eb1c92e401cf7826386e174ac6f875339
2014-01-08 03:03:11 -08:00
Aaron Boodman 4491995fad Fix the weird flicker on mouseover of thumbnails.
The effect you were seeing was a difference between hardware and
software compositing paths.

Chrome was promoting the content area to a hardware-accelerated
layer during animation, but dropping it back to software after the
animation was complete. There were little animations for the
checkmarks that were causing us to flip in and out of hardware mode
as you moused around.

Solution: force us to stay in hardware mode the entire time the
nav is open (translate: scale3d() is a well-known way to do this).

Bonus: the scaled text rendering looks better in hardware mode.

BUG: https://code.google.com/p/camlistore/issues/detail?id=284

Change-Id: I62f6c86d1ae12ba043f34c0659633bb5195dc50c
2014-01-08 02:42:10 -08:00
Aaron Boodman 2bdcf0e2d4 Don't do pushState() navigation on middle click
Change-Id: I549c5a49a3e68384162d919b412c809dcf0fa774
2014-01-07 22:40:14 -08:00
Aaron Boodman ea40141be3 Make the order of require() calls consistent.
Change-Id: If9180032d4ff6c49647613e67044ea078e0638a2
2014-01-07 22:12:28 -08:00
Aaron Boodman 79ff81a5a6 Use the "cam" prefix for all camlistore JavaScript identifiers.
Change-Id: Ia3d375abf4a4568ab0e83997e900a9d2aeae66c4
2014-01-07 21:47:45 -08:00
Aaron Boodman ff2600216e Convert the rest of the files in server/camlistore/ui to tabs.
Change-Id: I80fdb25b831c8ea9e780d9e104716c6756f0661c
2014-01-07 19:55:48 -08:00
Aaron Boodman 6e5ca7b445 Merge "Convert some spaces to tabs." 2014-01-08 03:39:00 +00:00
Aaron Boodman bba6eed13e Convert some spaces to tabs.
Change-Id: I2aadb495326665544bcabf90299cad8d70b08eee
2014-01-07 19:02:18 -08:00
Aaron Boodman 8a970d23f0 Merge "Add jstests.go, a unit test harness for JavaScript files." 2014-01-07 04:26:16 +00:00
Aaron Boodman 53e12a740c Add jstests.go, a unit test harness for JavaScript files.
Change-Id: I3d755f0001c0528f5db2dbe8cdfc10fa60443c89
2014-01-06 20:21:43 -08:00
Brad Fitzpatrick dde76aec90 Remove some old blobserver test stuff.
Change-Id: I9eebaf28aa1da14633e99be25e86ee2aba5b1e80
2014-01-05 22:50:26 -08:00
Brad Fitzpatrick 85d2675361 Merge "Update Closure to ab89cf45c216 (Dec 15, 2013)." 2014-01-05 07:13:41 +00:00
Aaron Boodman a9b0e80c65 Update Closure to ab89cf45c216 (Dec 15, 2013).
I meant to do this in Camlistore commit cc562aff, but that one only
updated to 1389e13 (Jan 23, 2013).

I was confused because the version of third_party/closure/updatelibrary.go
that was checked in prior to cc562aff did not correspond to the version of
Closure that was checked in. So when I ran updatelibrary.go, I got changes
and didn't realize I had to change updatelibrary.go too.

Change-Id: I3ba43a540a62caedbf7570a6d55382bd39a426dc
2014-01-04 21:42:23 -08:00
Aaron Boodman 077664455d Add link to relevant bug about aspect ratio
Change-Id: Ia2c71a718eec45113e4ef0f159ecea6a900b673d
2014-01-04 19:16:24 -08:00
Aaron Boodman 3c7d3d2af5 Change describe depth in web ui for search queries from 3 to 2.
As far as I know, the code never uses the third level.

This reduces a particularly bad example of https://code.google.com/p/camlistore/issues/detail?id=319 from returning 1.8MB of data to a svelte 1.2MB.

Change-Id: Ibfe4ca3f1b175cd316f6f603950991c1a2fc8577
2014-01-04 18:54:05 -08:00
Brad Fitzpatrick cdd7b97d32 Merge branch 'master' of https://camlistore.googlesource.com/camlistore 2014-01-04 16:37:49 -08:00
Brad Fitzpatrick 3e725e2a98 Change self-signed cert fingerprint to 80 bits of SHA-256.
More secondary preimage resistance. Also better docs and less vague and less promoted Android
UI.

Feedback from Adam Langley, but likely misinterpreted.

Change-Id: I3bf1029b6fc07c0b8dab2af44926aa87b0d4cbad
2014-01-04 16:37:33 -08:00
Nick O'Neill 200c108fad Merge "Some additional fixes from a previous loading commit" 2014-01-05 00:25:23 +00:00
Aaron Boodman c158868989 Move hashing of file uploads into a web worker.
We were observing UI jank, which ended up being due to GC. Even with chunking
and very small chunk sizes, it was hard to reliably get 30fps on my macbook.

Moving to a worker completely solves the problem. We stay at 60fps the entire
time the hashing is taking place, no matter how many files/how large, etc.

Also, switch to using Closure's crypto support, which has been added since
the upload code was originally written, since it hassupport for incremental
hashing, javascript typed arrays, and other niceties.

Change-Id: I018d6839b2cf037b8d6b03e1a0ea7164bc5a782d
2014-01-04 15:42:57 -08:00
Aaron Boodman 55e02bf01f Make piggy walk in direction of navigation.
Change-Id: Ie6c6094f6e1312eb66929131fad75ab174e460ce
2014-01-02 16:03:47 -08:00
Aaron Boodman 561f53aa5f Implement forward back paging (using arrow keys) on detail page within
a search result..

When you are paging, typically only one request is done, for the big
image. However, if you reach the end of the current search session,
more results are loaded.

The URL updates during paging, and if you navigate to this URL fresh
the search will be performed first.

Change-Id: Ia2b9bbb4a2eb41a3a75971d0dc1ff4f3d93b4acf
2014-01-02 15:50:55 -08:00
Nick O'Neill b8d35b6fe2 Some additional fixes from a previous loading commit
Change-Id: I5bdd58fee08c87a8f59b05979d7bddb546fe8187
2014-01-02 12:06:20 -08:00
Aaron Boodman 07cce4a3e6 Integrate the detail view into index.html.
The detail view now loads with only two HTTP requests: one for the
piggy, and one for the big image. No other resources are loaded,
even the blob descriptions, because they are cached by SearchSession,
which is shared between the search ui and the detail ui.

Likewise, when you go back to the search results page, no additional
requests are done.

Also:
- When you press back on detail page, scroll position is now usually
  restored (if you refresh between index and detail, it still won't
  restore).
- Detail page live updates! It came for free with using SearchSession.

Change-Id: I58ada7bdd30afc2644860fbda6167fc5ce865b0d
2014-01-01 23:13:23 -08:00
Aaron Boodman 8b938bd8dd The search page had the same bug with non-integer image sizes o_O.
Change-Id: I4133e4c2ac50666d27918f84007395ccb05bc6ca
2014-01-01 23:10:43 -08:00
Brad Fitzpatrick 535cb01877 Merge "Refactor the data part of infinite scroll into new SearchSession." 2014-01-02 06:59:19 +00:00
Aaron Boodman d241251f34 Refactor the data part of infinite scroll into new SearchSession.
This will also be used by the detail page to facilitate fast
flipping and live udpates.

Also fixed the thing where we discard the websocket responses and
re-query for all updates except the very first one.

Change-Id: Iac196670db967f1d41b20ce30641118ede61f3c2
2014-01-01 21:05:47 -08:00
Brad Fitzpatrick 9760c3b907 Merge "Bucketize image size requests differently" 2014-01-02 04:52:41 +00:00