Commit Graph

1559 Commits

Author SHA1 Message Date
David Glasser
76162f9b06 Improve id-invalidation test to explicitly be about "how many times did polling
happen?" rather than "how many things changed"?
2013-02-15 18:23:18 -08:00
David Glasser
74921182b5 Reduce unnecessary Mongo polling in more cases.
Specifically, we can now detect if a selector matches at most a fixed set of
IDs (instead of just "at most one ID"), both for queries and for writes. This
includes every write made from the client on a restricted collection!
2013-02-15 18:23:17 -08:00
David Glasser
a8fb7b4316 Reduce unnecessary Mongo polling.
Specifically, updates and removes that specify a specific _id, and all inserts,
should not require live queries that specify a specific different _id to poll.

This involves changing the InvalidationCrossbar matching semantics. I suspect
that a future version of the InvalidationCrossbar may want the old semantics, if
the notifications it is receiving are more oplog-driven than command-driven, but
this will work for now.

Also, make the O(1) optimization on minimongo remove("id") actually work.
Previously it was declawed by the fact that Meteor.Collection.remove normalizes
to {_id: "id"}.
2013-02-15 18:20:17 -08:00
Naomi Seyfer
2983419e5f Better UI for in-browser test runner 2013-02-15 16:59:42 -08:00
David Greenspan
9fd43419fa Fix #604: input with name="id" in form 2013-02-15 12:05:09 -08:00
Naomi Seyfer
039fdf3f5d Merge branch 'ddp-pre1' into devel 2013-02-14 19:11:37 -08:00
Naomi Seyfer
9f22ca14fd Merge branch 'devel' into ddp-pre1 2013-02-14 18:31:10 -08:00
David Glasser
88b88e4947 spec changes:
- clients need to take a new connection

- note URLs for sockjs and websocket

- wrapping
2013-02-14 18:18:35 -08:00
Naomi Seyfer
f11271dd4b IE8 Compatibility fixes 2013-02-14 17:05:51 -08:00
Geoff Schmidt
3698c640b8 DDP.md: add a bit more about version negotiation 2013-02-14 17:04:26 -08:00
David Glasser
18035641f5 Fix selectors matching against arrays containing subdocuments.
This is a 0.5.5 regression (with the new selector compiler): the new compiler
handled selectors with "a.b.c" reasonably well if the "c" level contained an
array but not if the "a" or "b" levels did.

This also implements mostly-Mongo-compatible behavior for sorting when arrays
are involved; this is not an 0.5.5 regression, since the old compiler did not
get this right.
2013-02-14 16:38:44 -08:00
Naomi Seyfer
b4984368bd Added note about future ordered DDP 2013-02-14 15:49:23 -08:00
Naomi Seyfer
6e40ecfc8e Edits to DDP-pre1 informal spec 2013-02-14 15:46:05 -08:00
Naomi Seyfer
07656a249e Initial draft of DDP informal spec 2013-02-14 15:34:53 -08:00
Naomi Seyfer
b2738e2346 Switch to using the right URI and comment what we are doing 2013-02-14 14:29:05 -08:00
Benjamin Chelli
1e22db062d Fix override for icon-white
CSS Selector was not matching => wrong image loaded in certain cases
2013-02-14 14:21:08 -08:00
Nick Martin
8896281b05 Merge remote-tracking branch 'remotes/origin/pr/679' into devel. Fixes #679. 2013-02-13 21:10:59 -08:00
David Glasser
8a69e74a5d Regexps that match "undefined" should not match nonexistent fields. 2013-02-13 19:04:50 -08:00
David Glasser
cc53ff3ac0 Implement $type and sorting for ObjectID, Date, and Binary. 2013-02-13 18:56:20 -08:00
David Glasser
e1b07e4848 Merge branch 'devel' into ddp-pre1 2013-02-13 17:05:07 -08:00
Nick Martin
7677944d3d Merge branch 'master' into devel 2013-02-13 16:33:03 -08:00
David Glasser
8cf0d8f9b3 Deal more consistently with non-object bad DDP frames. 2013-02-13 15:02:06 -08:00
David Glasser
e12c6fd89a Various tests for count() with sort/limit/skip.
Patch by: Ted Blackman <ted.blackman@gmail.com>

(Ted fixed a bug on devel that was preventing these tests from passing. On the
ddp-pre1 branch, the bug was fixed in a different way, but the tests are still
useful.)
2013-02-13 13:56:52 -08:00
jperl
8307460df8 Return all basic google and facebook profile fields 2013-02-13 13:50:52 -08:00
Avital Oliver
5a3922b0c9 Simplify Google login configuration wizard 2013-02-13 13:12:16 -08:00
Avital Oliver
bb8e6ba94d Merge pull request #664 from jperl/auth-profile-data
Return all basic google and facebook profile fields
2013-02-13 12:56:16 -08:00
David Glasser
82e2098102 Rename offending_message field to camel-case. 2013-02-13 11:03:54 -08:00
David Glasser
562eb0a54a Fix use of wrong field name in hot code push check.
Could result in multiple attempts to reload.
2013-02-13 10:28:49 -08:00
Andrew Wilcox
f2d9792f90 Route policy declarations (for network routes only for now).
Allows packages such as stream and accounts to declare URL prefixes
such as /sockjs/ and /_oauth/ to be network routes.

Updates server to avoid serving app HTML on network routes.

Checks for conflict between files in public/ and network routes.  For
example, the developer might not know that /sockjs/ is reserved, and
might create a file "public/sockjs/socks-are-great.png".
2013-02-13 13:12:59 +00:00
David Glasser
732e948de7 Add ordered-dict dependency to spark. 2013-02-13 00:46:12 -08:00
David Glasser
516f4dfaf7 Move Meteor.uuid to past package. Add Random.hexString. 2013-02-13 00:42:05 -08:00
David Glasser
b3d1fe4112 move objectid generation back into objectid class 2013-02-13 00:10:26 -08:00
David Glasser
9b486b3c9b Meteor.random -> Random.fraction
add Random.choice
2013-02-13 00:08:50 -08:00
David Glasser
d2ae5f7e1c Replace almost all uses of Meteor.uuid with Random.id. 2013-02-12 23:55:19 -08:00
David Glasser
ed36db211d Use Random.id() in Spark.
We couldn't use Meteor.uuid() because it contained '-' but Random.id() is fine.
2013-02-12 23:51:34 -08:00
David Glasser
e95bcb870c Get rid of duplicate random code inside minimongo.
Temporarily move the objectid-specific function into random.js.
2013-02-12 23:49:43 -08:00
David Glasser
eb14cfceeb Rename Meteor.id() -> Random.id() 2013-02-12 23:44:04 -08:00
David Glasser
fdb1773d4a Rename uuid package to random. No further changes. 2013-02-12 23:38:22 -08:00
David Glasser
1eecbb070e Merge branch 'devel' into ddp-pre1 2013-02-12 17:42:20 -08:00
David Glasser
14c0228361 Include "before" argument in addedAt callback, as documented. 2013-02-12 17:40:03 -08:00
David Glasser
77ac416374 Some ddp-pre1 cleanup
- Delete dead EJSON._each2.

- Make OrderedDict.remove throw if the key isn't in it.

- Make changed callbacks in two places throw if the document isn't in the
  dictionary. (Other callbacks implicitly throw via OrderedDict.)

- Remove OrderedDict.pop (which didn't return the key) and push.
2013-02-12 17:18:09 -08:00
Naomi Seyfer
4bccce090a Upgrade bootstrap to version 2.3.0 2013-02-12 16:33:51 -08:00
Naomi Seyfer
124d05488b Upgrade bootstrap to version 2.3.0 2013-02-12 16:32:07 -08:00
David Glasser
78eb2a32d6 Watch '.lessimport' files for changes (but don't parse them).
'.lessimport' is now meaningful rather than just a suggestion in the docs.
2013-02-12 14:36:04 -08:00
David Glasser
cb1eb96b9e Rename less_test_constants file to be .lessimport.
This doesn't actually make a difference (since packages enumerate their files
instead of using autodetection) but it's pedagogically nice.
2013-02-12 14:35:17 -08:00
Avital Oliver
3fda3bd9ca Wrap all of accounts-base/localstorage_token.js in a closure.
This way we don't modify window.userId.
2013-02-12 12:38:08 -08:00
Avital Oliver
c27bfeb952 Wrap all of accounts-base/localstorage_token.js in a closure.
This way we don't modify window.userId.
2013-02-12 11:50:33 -08:00
David Glasser
40bfd2e360 Add a reactive ready() method to subscription handles. Fixes #273.
Inspired by a pull request from tmeasday (though we've changed the underlying
code enough on ddp-pre1 that I had to rewrite it myself).

Use it in todos. No docs yet, but the Meteor.subscribe docs are already
scheduled for some attention.
2013-02-08 18:41:41 -08:00
David Glasser
4f2d725d3f If Meteor.settings.public exists, make it available on the client as well.
(Suggested by @jagill at Meteor Dev Shop 0!)
2013-02-08 17:51:33 -08:00
David Glasser
db917f4741 DDP server: Implement sub.error() and reimplement sub.stop().
Note that sub.stop() is now handled by the client (it removes the record of the
subscription) but there is no way for an app to observe this. (I expect we'll
use sub.stop() in implementing "fetch" in the Mongo connector.)
2013-02-07 15:43:28 -08:00