Commit Graph

1158 Commits

Author SHA1 Message Date
Mario Russo a41b24011b Merge "ui: added 'View original' link to sidebar" 2014-12-01 21:09:31 +00:00
Mario Russo 999a148b32 ui: added 'View original' link to sidebar
Notes:
-this patch also introduces the sidebar to the contents listing aspect (when viewing members of a set)
-the link will only appear for a _single_ selected item

https://code.google.com/p/camlistore/issues/detail?id=541
https://code.google.com/p/camlistore/issues/detail?id=546

Change-Id: Icc93eaa2478f40f3fe272520b1f6ede41f0731dc
2014-12-01 11:47:28 +01:00
mpl f15ec3fe92 Merge "pkg/deploy/gce: lib + tool to deploy on Google Cloud" 2014-11-27 15:44:32 +00:00
mpl 99fe925efc pkg/deploy/gce: lib + tool to deploy on Google Cloud
http://camlistore.org/issue/531

Change-Id: I69ffe0544341d380bb844aef1dcca8a1ae441ea7
2014-11-26 22:50:27 +01:00
Mario Russo 958688ce68 Merge "ui: updates to file upload dialog" 2014-11-18 08:30:28 +00:00
Mario Russo 4c53a1cd27 ui: updates to file upload dialog
-display total/transferred bytes rather than num files
-upload is now context sensitive if currently viewing a set
-updated closure dependencies

https://code.google.com/p/camlistore/issues/detail?id=336
https://code.google.com/p/camlistore/issues/detail?id=504

Change-Id: I8dee1ee2711c06dfdc9d59e8d0fa0e4ebc641092
2014-11-16 15:31:08 +01:00
Salmān Aljammāz 4e39af1086 Generate self-signed certs with the correct hostname.
This change makes gce/create.go generate a self-signed certificate
with the hostname from the -hostname argument and upload it to GCS
before creating a new camlistore instance.

It also makes camlistored use baseURL to figure out the hostname
when generating its self-signed certificate.

Change-Id: I64f85853dab34a7ce95e5d5997e58f2e5da43496
2014-11-13 15:53:40 +00:00
Aaron Boodman 755cf0eb0f Merge "Fix bug where 'no results' message sometimes showed momentarily." 2014-11-08 07:46:38 +00:00
Aaron Boodman d9316ff8dd Fix bug where 'no results' message sometimes showed momentarily.
SearchSession::isComplete() could sometimes return the wrong answer.
Nulling out the continuation is needed to make loadMoreResults()
idempotent. So had to add more state to SearchSession specifically
for tracking completeness.

Change-Id: Ic2a90c73f3a764f358476cffa6d498ea53103421
2014-11-07 23:44:39 -08:00
Aaron Boodman 8ac319f437 Merge "Fix scrolling on firefox" 2014-11-06 17:25:35 +00:00
Brad Fitzpatrick 0e841e0f51 Rename pkg/misc to pkg/hashutil
It only had one function anyway.

Change-Id: Iec4b7868d823148c8e1d2607347fe9d3c1463403
2014-11-06 13:31:58 -03:00
Aaron Boodman 96bae4b0e2 Fix scrolling on firefox
Change-Id: Ic023dba06680f3d4772fe709b7f5f0dd0d54e7ae
2014-11-06 11:04:21 +00:00
Mario Russo 4cf29f33d3 ui: added 'No results found' message to blob item container
this patch incorporates visual feedback from aaron

Change-Id: Ib7b8bbc7daa958693dafc9b2108cac3ee91bb870
2014-11-06 10:52:47 +01:00
Aaron Boodman 0ba58ae829 Fix badly aligned piggy animation in upload dialog.
Change-Id: I69e9432a90382a2ece9c5f77c089de7f7c9ea492
2014-11-04 16:45:24 -08:00
Aaron Boodman ac67a8d479 Moved contextual nav items back to a sidebar.
Global nav items remain in piggy menu.

This is an adaptation of https://camlistore-review.googlesource.com/#/c/3898/ by Mario Russo <mail.mr@gmail.com>.

Change-Id: I85f7f386aa0573026253e13c5bd12b46ad08f83a
2014-11-04 15:34:08 -08:00
Aaron Boodman 3fde03eb39 Add an 'upload...' button to the piggy menu.
Bug: https://code.google.com/p/camlistore/issues/detail?id=504
Change-Id: I736499ee10e9d07e15432eff2224a64abb1569ce
2014-10-26 01:41:19 -07:00
Aaron Boodman b4a03836c0 Show a more obvious drop target when dragging items onto UI.
This also shows a very crude upload progress.

Bugs:
https://code.google.com/p/camlistore/issues/detail?id=336
https://code.google.com/p/camlistore/issues/detail?id=504

Change-Id: I3c232c94d0238290abc295b59871eb7206624960
2014-10-26 01:04:12 -07:00
Mario Russo a8c7b8d7fb ui: tags control
Removing DEBUG_TAGS flag so that tags control is available by default.
Request per Aaron (https://camlistore-review.googlesource.com/#/c/3806/)

Change-Id: If1ad842a563d1992fb8ca203c67502825d2eb64c
2014-10-12 15:32:48 +02:00
Tamás Gulácsi 3686417bac Import pkg/sorted/leveldb in server/camlistore
To be able to use it (ATM only in low-level config, by specifying
metaIndex with the stores/queues/caches).

Change-Id: I7743ebffb90f59b83124063f8f488a9b80c869ca
2014-09-25 18:40:33 +02:00
Mario Russo 5385ff14a9 ui: introduction of tagging controls to new contextual nav bar.
Currently disabled but can be tested via the DEBUG_TAGS flag in index.js. Potential enhancements are documented in tags_control.js. This patch
removes one piece of unused code.

Change-Id: I751fca63fbc93c209628f03a3f3aa6e87d01e309
2014-09-22 23:19:39 +02:00
Eric Drechsel 906ef089e6 UI permanode aspect: Don't save if nothing changed.
Bug: https://code.google.com/p/camlistore/issues/detail?id=505
Change-Id: I6816a51c2f005c7d903c9a02aa1410a52177cbec
2014-09-07 21:35:02 -07:00
Lindsey Simon 9cb690bea8 Adds less (css pre-processor) to fix missing CSS prefixes
Change-Id: I47a90ff128abfeac00c886a3dece4ffa38c704c8
2014-09-04 17:32:01 -07:00
Aaron Boodman 2acf13c702 Fix FOPA (flash of permanode aspect) when clicking permanodes with children.
We were waiting to show the container aspect until the child search session
returned. This meant that we temporarily showed the permanode aspect then
swapped to the container aspect shortly thereafter (because the container
aspect is higher priority).

The right solution to this is to change the search protocol so that clients
can know how many children a permanode has without getting the entire list
of them. But for now, it just so happens that search returns the entire
list, so we can use that instead.

Change-Id: Iaf93f689e965a1dc9ef73d834d46c57026c100cd
2014-09-03 00:30:46 -07:00
Aaron Boodman 6f91febae4 Don't trigger sad piggy when we purposely close sockets.
Change-Id: I2e3b0e894fff180a028fcffbf649ff18f69fd963
2014-09-03 00:07:08 -07:00
Aaron Boodman dbdda81230 Be defensive against getting null updates on web socket.
Change-Id: Id7a7b850ddaa57fe24d8e7ec380fb8881b27def5
2014-09-03 00:00:28 -07:00
Aaron Boodman 95bf8e42a3 Get continual server status updates over websocket.
Also show channel-level websocket errors in piggy menu.

Change-Id: Iad5f00e5578f28f837cd2e88cbdab3f715a9fed1
2014-08-30 09:43:27 -07:00
Aaron Boodman 16085b9a4d Move importerRoot from status.json to discovery.
It seems to make more sense there...

Change-Id: I8450f1cb30ed331cfe15ddb49f55438c5bf9fd5b
2014-08-30 09:09:05 -07:00
Aaron Boodman 40390c651a Adjust position of error icon.
Change-Id: I2b86d8b52a3c616ca3f2408973d85e70fb27a2d7
2014-08-29 20:55:52 -07:00
Aaron Boodman ef5e0dfc82 Show server errors in the piggy menu.
When there is a server error, the piggy becomes sad and periodically
shakes his head. When you expand the piggy menu you see one or more
entries explaining why he is sad.

Change-Id: If1e28dbf02c9befaa46b62838cb704220f719bc6
2014-08-29 16:08:19 -07:00
Brad Fitzpatrick 77a5f0f375 Merge branch 'master' of https://camlistore.googlesource.com/camlistore 2014-08-25 16:50:42 -07:00
Brad Fitzpatrick 1d95b1133b Disable App Engine build tests, since GAE is Go 1.2 and we need 1.3
Will renable when App Engine supports Go 1.3.

Change-Id: I777f83f3b040aa873bf9d92f2401d7f430e930f0
2014-08-25 16:39:41 -07:00
Aaron Boodman 1f57cf3924 Merge "Rewrite permanode detail in React." 2014-08-22 23:25:34 +00:00
Aaron Boodman c07828d663 Rewrite permanode detail in React.
This is more general than the old one... it allows generic editing
of all attributes.

Change-Id: I308e39034cf206f9cd8e99cb52863a09c2755705
2014-08-22 16:16:39 -07:00
Aaron Boodman 0d923c6207 Add a link in the piggy drop down to importers UI
Change-Id: I4a2ba7127822e85f086ff4155c079a74ee31fae6
2014-08-21 10:36:39 -07:00
Aaron Boodman 90d1df956f Hide contents view on empty permanodes.
Otherwise, we end up showing a stupid empty contents view for every
tweet, foursquare checkin, etc.

This has the downside that when you remove the last item from a
set, the contents view goes away.

Change-Id: If5f53a713aaff63d9fb294b675a5e55ca452eff1
2014-08-20 19:13:19 -07:00
Aaron Boodman 8e876b51b9 Always show the search aspect for searches, even when results are empty.
Before we did not show the search aspect when the results were empty.
This was intended for the case where you're looking at an image or
something that doesn't have children.

But it had the side effect of meaning that we didn't show the search
aspect for empty sets, or empty search results, which isn't right
because you still want users to be able add items to empty sets.

Change-Id: Iad187b38317a5adcefbfd06f92047c03c5815583
2014-08-18 19:24:29 -07:00
Aaron Boodman 940150a5c7 Reimplement the Blob aspect using React.
Change-Id: I819b4d1dda86fe80db203f10e1e8a1b23b0777d5
2014-08-18 18:19:50 -07:00
Aaron Boodman a4abea7525 Change URL format for individual blobs in the web UI.
Instead of /ui/?b=<hash>, /ui/?p=<hash>, /ui/?d=<hash>, etc...,
it's now just: /ui/<hash>

This makes constructing links easier, because you don't have to
know whether a blob is also a permanode, or a directory, or
whatever.

Change-Id: I771fa1b1699b9009269c7eee632e7e8fd5335331
2014-08-18 18:17:47 -07:00
Brad Fitzpatrick d36efd7434 ui: Change text Server status, not just Sync status
Change-Id: I9de4d6c6ee391fac81401331f907bbbd57ab7faf
2014-08-16 14:52:57 -07:00
Aaron Boodman 4b9874afd5 Fix UI refresh when you don't have websocket support.
I broke this in an early CL. Damn you JavaScript and your non-compiling.

Change-Id: I796bb19855802d7663e0aed9c7e30ddcc4061b44
2014-08-16 11:05:29 -07:00
Aaron Boodman 89bcd69bed Merge "Add a piggy menu item to go to the sync status page." 2014-08-16 04:20:08 +00:00
Aaron Boodman 2cb1956a3a Add a piggy menu item to go to the sync status page.
Also add support for piggy menu items that are just links. Links are
nice because you can right-click 'em and so on.

Change-Id: I0cfb4ba6f58141ee396916925793a06033457028
2014-08-16 10:57:11 -07:00
Brad Fitzpatrick 9dae4f7ddf Since GCE only links to the HTTP url, redirect HTTP requests to https.
Change-Id: I50ff31f0d27437a11f672565e5f0870aaa2fd81b
2014-08-15 23:17:14 -07:00
Brad Fitzpatrick 4106d1bd2e Merge branch 'master' of https://camlistore.googlesource.com/camlistore 2014-08-15 22:29:55 -07:00
Brad Fitzpatrick cab5f227f6 Handle serverinit.DefaultEnvConfig return values correctly.
Change-Id: I074507fc1e32d62f2d1b8af00f4ce47d733d89a7
2014-08-15 22:05:33 -07:00
Brad Fitzpatrick 79335328cc Make 2048 bit keys instead of 1024.
Change-Id: I82a93a7fc5ba8e6b688a422b55b868bb3f3969fa
2014-08-15 22:05:08 -07:00
Aaron Boodman 1e0db747fd Make directory aspect actually work.
Change-Id: I560cb9c8d91a395c26253d7fd4a8ec605671a910
2014-08-15 21:37:43 -07:00
Aaron Boodman 6b9ed9e467 Some cleanup: remove an unneeded file and rename another.
Change-Id: I7ef87c7fcfc831d40b2c507128de04b7c8b20d1c
2014-08-15 21:37:22 -07:00
Aaron Boodman a6450f6468 Merge "Propagate all clicks in the hacky child frame up to the main app." 2014-08-16 04:20:08 +00:00
Aaron Boodman 48803d183b Propagate all clicks in the hacky child frame up to the main app.
This is temporary duct tape to make the child frames work better
utnil they are rewritten.

Change-Id: I1822af95620164896b959f946b9a888e6ecdf91f
2014-08-15 21:19:54 -07:00
Brad Fitzpatrick 9fbec8dd12 serverinit, camlistored: support environment-specific default config files
When running on GCE now, the default config file is a function of
attributes on the instance.

Change-Id: I62fe23ecf28757a6baee6bd432f080f223a389c5
2014-08-15 20:50:59 -07:00
Brad Fitzpatrick 2ee36e4f1a Embed Mozilla's Root CA set for use in Docker environments without CA files.
Thanks to Adam Langley and Kelsey Hightower for pointers:

https://github.com/kelseyhightower/contributors/blob/master/certs.go
https://medium.com/@kelseyhightower/optimizing-docker-images-for-static-binaries-b5696e26eb07
https://github.com/agl/extract-nss-root-certs

Change-Id: I440cedf476446da852c409958a877fbcdb464340
2014-08-15 17:15:09 -07:00
Aaron Boodman e9b8024007 Create a cache of search sessions to improve performance for common navigations.
This was done in a more manual way in the old UI. This is a bit more general.

Change-Id: I2a0f14a7023edc17c4853a2bc1fa5c7987f71de9
2014-08-14 17:14:24 -07:00
Aaron Boodman 0f0ad341c4 Fix piggy menu on mobile for reals, this time with actual testing.
Touch devices still deliver 'mouseover' events, so you can't rely
on that. Anyway, on things like the Chromebook pixel there is a
mouse and a touchscreen. So it just has to work for both modes
simultaneously.

Change-Id: Ia63f159d5c7edd319a56cf1f79d65d799a71367c
2014-08-10 16:18:59 +00:00
Aaron Boodman 12dcf822cc Make the piggy menu work on mobile devices.
Change-Id: Iab7a557d3c8d1ac5099ce09709b4493363570a64
2014-08-10 08:43:16 -07:00
Aaron Boodman ad33510071 Reset selection on navigation.
This fixes https://code.google.com/p/camlistore/issues/detail?id=484.

Would be better to store it in history and restore, but ... later.

Change-Id: If8c1d3fab89a689be859c70c2cba71583dfdc789
2014-08-09 23:07:41 -07:00
Aaron Boodman 03f0f598da Moved the nav from the side to across the top.
Various other related improvements.

Change-Id: I4469991ef4327a9a80f1bbf5ba5fed2a10f4eb79
2014-08-09 21:07:29 -07:00
Brad Fitzpatrick 7146e3b1e9 camlistored: change an ioutil.ReadFile to wkfs
Change-Id: Id5d50d33bcfb7395b55f0f28776e1f6c880ccf46
2014-08-08 10:55:25 -07:00
Brad Fitzpatrick f764d2ca06 camlistored: missing error checks in self-signed cert writing
Change-Id: I19629179b580859fa670fa22f4ca319280728d2a
2014-08-08 10:53:44 -07:00
Brad Fitzpatrick c0a149ac3e Move GCE stuff out of camlistored into new package. Use from camtool.
Now camtool dumpconfig works on GCE too using the same mechanisms as camlistored.

Change-Id: I11c5311a6b7ace35fb0c6dd661ba9bdcad7820ed
2014-08-07 12:33:52 -07:00
Brad Fitzpatrick b6cff26139 camlistored: register a jsonconfig _gce_instance_meta lookup func
Change-Id: I1f3201be49aed32ac572282ffa4581ce4c71184f
2014-08-06 17:00:58 -07:00
Brad Fitzpatrick 5540a38dbd More work towards making the /gcs/ filesystem paths work on GCE. Incomplete.
Change-Id: I58ceec5d1c1cb61cbaa7d7e68a13ed5482dfbb0d
2014-08-05 12:45:10 -07:00
Brad Fitzpatrick acf2eeb2d4 remove redunant part of error message
Change-Id: I87958658d5af5f4b52cdadbf0b9d0b3748bd1738
2014-08-04 22:50:56 -07:00
Brad Fitzpatrick a01175d45c On GCE, use VM instance attribute camlistore-config-bucket to find config dir (bucket)
Change-Id: I56a7df55c182938eaf787b2ac6a32e20867409d5
2014-08-04 22:49:22 -07:00
Brad Fitzpatrick c8322af356 Add well-known filesystem abstraction package 'wkfs' for cloud deployment ease.
Part of Camlistore deploy to GCE easily. Will use paths like /gcs/bucket/foo or /gce-meta/attr for some
things previously-assumed to only be stored on the OS filesystem.

Change-Id: I2ed6cf5759c4d277f4e89a33a0fcfeee8bcbbf82
2014-08-04 21:27:07 -07:00
Brad Fitzpatrick 1bfd1b7d98 camlistored, serverinit: allow server config from URLs.
paves the way for server config from GCE metadata, too.

Change-Id: I9e54e3ad79eb53e7ae96159f2aa02f4a017e8e11
2014-08-02 16:53:58 -07:00
Brad Fitzpatrick afe0bfc5ac Rename flag for consistency.
Change-Id: Iaa2d0fc4bf02a27a30eb85aee9b8f757440a35c6
2014-08-02 14:31:02 -07:00
Brad Fitzpatrick 1577fc1e56 Merge "netutil: add HostPort, serverinit: return app baseURL" 2014-08-01 18:50:59 +00:00
Aaron Boodman 00552a0ded Merge "Require date and username before custom rendering Twitter items." 2014-08-01 18:50:59 +00:00
Aaron Boodman 8dba194013 Render containers with the camliContentImage attr as folders for now.
Something fancier would be better, but without this change they'd get
rendered as single images, which would be confusing.

Change-Id: Icd08eb1716ae1f3bebe2f064388cac822a0a4e63
2014-08-01 11:52:24 -07:00
mpl 0a869ad067 netutil: add HostPort, serverinit: return app baseURL
Context: http://camlistore.org/issue/479

This patch allows camlistored to wait for all the apps to be serving,
before printing its own listening address.

Change-Id: I4035b115a03ef6a2a43177b83b5b65ebc50a2188
2014-08-01 00:01:27 +02:00
mpl 41bdd85120 ui/permanode: cope better with not a permanode case
A camliPath can now have a file blob as a target (instead of a
permanode). And when we render these camliPath members as links, since
it can happen that these members haven't been described, we can't know
in advance whether to link them as permanodes or as blobs, so we
always default to permanode. Therefore, it can now legitimately happen
that we end up on the permanode page, while the blobRef is actually
one of a non permanode.

This patch tries to cope with that situation in a bit nicer way.

Context: http://camlistore.org/issue/470

Change-Id: Ic3b728541e164a6e6056d8f275a1d7e76b41e043
2014-07-30 01:07:06 +02:00
mpl b7d8d55bb3 pkg/webserver: use a custom logger, if provided
http://camlistore.org/issue/479

Change-Id: I41bd0a02d40e9ad94f655b5c1abdfa5db76c7019
2014-07-29 01:40:51 +02:00
Brad Fitzpatrick 7bd5e287d4 Merge "Fixed calls to formatting functions" 2014-07-21 17:34:27 +00:00
tnt 6868a882b9 Fixed calls to formatting functions
Change-Id: I3ec2af85364674ac6f1a88cd12b6cb369d8e50e1
2014-07-21 22:06:53 +00:00
mpl b82459424d devcam server --makethings
Only creates twitter things for now.

http://camlistore.org/issue/417

Change-Id: I05d548e012586279e165c01468524ceb055ff17b
2014-07-21 23:24:33 +02:00
Brad Fitzpatrick cc418dac8f Merge "legal: package for compiled-in licenses" 2014-07-11 17:08:59 +00:00
Piotr S. Staszewski 5e61e2d84e legal: package for compiled-in licenses
Initial implementation, printing helper and 'wiring' for cam* tools.

Change-Id: Icf8baa77ee1f12495be8f1a57b7d575d6918cb5c
2014-07-10 23:01:54 +02:00
Aaron Boodman 90cb6a84fb Merge "Replace cam.Nav with cam.NavReact. We weren't using the non-React one anymore." 2014-07-02 19:49:24 +00:00
Aaron Boodman 4009ece74e Replace cam.Nav with cam.NavReact. We weren't using the non-React one anymore.
Change-Id: I9369dda7ed4b9fc45a1fd91ef0c6343f37e3baf5
2014-07-04 21:33:27 -07:00
mpl cc40a72019 Merge "ui/permanode.js: some clean up" 2014-07-02 20:24:16 +00:00
mpl 37a000e400 ui/permanode.js: some clean up
-removed redundant "gallery" feature (since container aspect does it)
-> allowed to get rid of blob_item_container dependency.

-removed the whole resolvedMetaData business. If one wants to derive
properties (such as the title) from children blobs/permanodes, just
create a new BlobItem for that child and get the properties with
methods on that child.
-> makes for clearer code, and easier to prevent null errors.

-started making use of search session

Change-Id: Ic706c96e1c05ad5489ab4b14ed21e315a557a8a8
2014-07-03 22:42:31 +02:00
Aaron Boodman de204ded6a Require date and username before custom rendering Twitter items.
Change-Id: I642ceac6c3ccca18dc32cc092a513604152384cb
2014-07-01 14:23:38 -07:00
Aaron Boodman 5b0cba5b50 Don't custom render a Twitter item with incomplete data.
Change-Id: I03aad6b6f7f4d0b95e79818c0db4765dc09ee253
2014-07-01 14:20:13 -07:00
Aaron Boodman f61d429d32 Merge "Always handle clicks on aspect links in JavaScript." 2014-07-01 18:32:25 +00:00
Aaron Boodman fef60569f4 Always handle clicks on aspect links in JavaScript.
It would be better to support real URLs for these, but I need to
figure out how routing those should work first.

So for now this is maybe less annoying.

Change-Id: I1992d23cb0f94b509f73db23a542b56ca5df7531
2014-07-01 14:51:48 -07:00
Aaron Boodman 6cfd84b278 Don't do local navigation if a modifier key is pressed.
Change-Id: I8e3996628f8c247652c8a51a8bcf602d5bdfef02
2014-06-28 20:00:48 -07:00
Brad Fitzpatrick 8465f4b92b Merge "ui: bulk tagging in debug console." 2014-06-26 18:37:03 +00:00
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
Aaron Boodman dc90821d64 Merge "Added a loading 'image' to blobs." 2014-01-01 19:08:24 +00:00
Aaron Boodman f1cecc4aca Bucketize image size requests differently
Change-Id: Ic5c62e2618188490fc30aefea06cf46b36dd6c92
2013-12-31 19:11:14 -08:00
Aaron Boodman 7fcd2e1807 Add link to and from the new detail page.
Change-Id: I2eb16295c5fa8106854a16d3b060c3f87c5ed1ae
2013-12-31 18:21:26 -08:00
Aaron Boodman e5d41793a0 Don't start fading the image in until it has loaded.
Change-Id: I0262464e7cea4d8c8acfa291c5d41365a8e1c885
2013-12-31 17:57:37 -08:00
Aaron Boodman 2d70e6794f Increase pigginess in new detail UI.
Change-Id: I4eb1acf7e6cd114edf7c5f66fcb4fb6ff8842bdb
2013-12-31 17:49:42 -08:00
Nick O'Neill 7a346403db Added a loading 'image' to blobs.
Change-Id: Icf3bff669e9a8190bf67d3f7597bbf57ce8a094d
2013-12-30 13:31:14 -08:00
Brad Fitzpatrick a26b5b727e Merge "Add first bit of a React-based detail page." 2013-12-30 18:07:20 +00:00
Aaron Boodman e4daf4c4b5 Add first bit of a React-based detail page.
When complete, this will be part of index.html, but for now I am developing it separately.

Change-Id: Ibda6fb9f396f64d771919934907dbe4e5cd9d030
2013-12-29 23:50:10 -08:00
Brad Fitzpatrick 8a05c520f8 search: make sort type encode as a string in JSON
Change-Id: I50c5663e850f3e8710381cc59daf246c8a600482
2013-12-29 16:28:06 -08:00
Aaron Boodman c1d52982a9 Reset transform origin correctly when switching queries.
BUG=294

Change-Id: Ica8621121bae4c71621f00473cb95765ac066ead
2013-12-29 11:53:20 -08:00
Aaron Boodman 7a6df7dd8a Clicking on the Camlistore logo should go back to the homepage.
BUG=296

Change-Id: I4fda6d0756cd7d9651ffa5610ef913b84eabd3a6
2013-12-29 10:30:55 -08:00
Aaron Boodman 9929e0ed50 Infinite scroll: keep loading more results until we overfill the screen
by at least 50%.

BUG=295

Change-Id: Ifdf3f05d4831cd7638d091a2e6e65a47b6b0e585
2013-12-29 10:26:24 -08:00