Redesigned the querying for the sale duplicates screen to use aggregation; Finished the styling of the sale duplicate screen; Tested the functionality of sale duplicates; Added a way to show hidden (ignored) duplicates.

This commit is contained in:
Wynne Crisman
2017-05-26 11:17:32 -07:00
parent e1b0b19589
commit 210517a5c2
42 changed files with 15153 additions and 8505 deletions

View File

@@ -10,6 +10,7 @@
<orderEntry type="inheritedJdk" /> <orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" /> <orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="meteor-packages-auto-import-npm" level="project" /> <orderEntry type="library" name="meteor-packages-auto-import-npm" level="project" />
<orderEntry type="library" name="meteor-packages-auto-import-npm" level="project" />
<orderEntry type="library" name="meteor-packages-auto-import-browser" level="project" /> <orderEntry type="library" name="meteor-packages-auto-import-browser" level="project" />
</component> </component>
</module> </module>

View File

@@ -7,10 +7,17 @@
<item url="file://C:/Tools/.meteor/packages/meteortoys_listen/3.0.0/web.browser/config/config.css" /> <item url="file://C:/Tools/.meteor/packages/meteortoys_listen/3.0.0/web.browser/config/config.css" />
<item url="file://C:/Tools/.meteor/packages/meteortoys_listen/3.0.0/web.browser/config/config.js" /> <item url="file://C:/Tools/.meteor/packages/meteortoys_listen/3.0.0/web.browser/config/config.js" />
<item url="file://C:/Tools/.meteor/packages/meteortoys_method/3.0.4/web.browser/lib/main.js" /> <item url="file://C:/Tools/.meteor/packages/meteortoys_method/3.0.4/web.browser/lib/main.js" />
<item url="file://C:/Tools/.meteor/packages/rate-limit/1.0.8/web.browser/rate-limit.js" />
<item url="file://C:/Tools/.meteor/packages/meteortoys_method/3.0.4/web.browser/client/main.css" /> <item url="file://C:/Tools/.meteor/packages/meteortoys_method/3.0.4/web.browser/client/main.css" />
<item url="file://C:/Tools/.meteor/packages/meteortoys_method/3.0.4/web.browser/client/main.js" /> <item url="file://C:/Tools/.meteor/packages/meteortoys_method/3.0.4/web.browser/client/main.js" />
<item url="file://C:/Tools/.meteor/packages/observe-sequence/1.0.16/web.browser/observe_sequence.js" />
<item url="file://C:/Tools/.meteor/packages/meteortoys_method/3.0.4/web.browser/ToyKit/main.css" /> <item url="file://C:/Tools/.meteor/packages/meteortoys_method/3.0.4/web.browser/ToyKit/main.css" />
<item url="file://C:/Tools/.meteor/packages/spacebars-compiler/1.1.1/web.browser/codegen.js" />
<item url="file://C:/Tools/.meteor/packages/spacebars-compiler/1.1.1/web.browser/templatetag.js" />
<item url="file://C:/Tools/.meteor/packages/spacebars-compiler/1.1.1/web.browser/compiler.js" />
<item url="file://C:/Tools/.meteor/packages/spacebars-compiler/1.1.1/web.browser/react.js" />
<item url="file://C:/Tools/.meteor/packages/meteortoys_method/3.0.4/web.browser/ToyKit/main.js" /> <item url="file://C:/Tools/.meteor/packages/meteortoys_method/3.0.4/web.browser/ToyKit/main.js" />
<item url="file://C:/Tools/.meteor/packages/spacebars-compiler/1.1.1/web.browser/optimizer.js" />
<item url="file://C:/Tools/.meteor/packages/meteortoys_pub/3.0.4/web.browser/lib/main.js" /> <item url="file://C:/Tools/.meteor/packages/meteortoys_pub/3.0.4/web.browser/lib/main.js" />
<item url="file://C:/Tools/.meteor/packages/meteortoys_pub/3.0.4/web.browser/client/main.css" /> <item url="file://C:/Tools/.meteor/packages/meteortoys_pub/3.0.4/web.browser/client/main.css" />
<item url="file://C:/Tools/.meteor/packages/meteortoys_pub/3.0.4/web.browser/client/main.js" /> <item url="file://C:/Tools/.meteor/packages/meteortoys_pub/3.0.4/web.browser/client/main.js" />
@@ -31,73 +38,67 @@
<item url="file://C:/Tools/.meteor/packages/meteortoys_shell/3.0.0/web.browser/client/main.js" /> <item url="file://C:/Tools/.meteor/packages/meteortoys_shell/3.0.0/web.browser/client/main.js" />
<item url="file://C:/Tools/.meteor/packages/meteortoys_shell/3.0.0/web.browser/config/config.css" /> <item url="file://C:/Tools/.meteor/packages/meteortoys_shell/3.0.0/web.browser/config/config.css" />
<item url="file://C:/Tools/.meteor/packages/meteortoys_shell/3.0.0/web.browser/config/config.js" /> <item url="file://C:/Tools/.meteor/packages/meteortoys_shell/3.0.0/web.browser/config/config.js" />
<item url="file://C:/Tools/.meteor/packages/ddp-client/1.2.9/web.browser/sockjs-0.3.4.js" />
<item url="file://C:/Tools/.meteor/packages/ddp-client/1.2.9/web.browser/random_stream.js" />
<item url="file://C:/Tools/.meteor/packages/ddp-client/1.2.9/web.browser/stream_client_common.js" />
<item url="file://C:/Tools/.meteor/packages/ddp-client/1.2.9/web.browser/livedata_connection.js" />
<item url="file://C:/Tools/.meteor/packages/ddp-client/1.2.9/web.browser/stream_client_sockjs.js" />
<item url="file://C:/Tools/.meteor/packages/ddp-client/1.2.9/web.browser/namespace.js" />
<item url="file://C:/Tools/.meteor/packages/meteortoys_status/3.0.0/web.browser/client/main.css" /> <item url="file://C:/Tools/.meteor/packages/meteortoys_status/3.0.0/web.browser/client/main.css" />
<item url="file://C:/Tools/.meteor/packages/ddp-client/1.2.9/web.browser/livedata_common.js" />
<item url="file://C:/Tools/.meteor/packages/meteortoys_status/3.0.0/web.browser/client/main.js" /> <item url="file://C:/Tools/.meteor/packages/meteortoys_status/3.0.0/web.browser/client/main.js" />
<item url="file://C:/Tools/.meteor/packages/ddp-client/1.2.9/web.browser/client_convenience.js" />
<item url="file://C:/Tools/.meteor/packages/meteortoys_status/3.0.0/web.browser/config/config.css" /> <item url="file://C:/Tools/.meteor/packages/meteortoys_status/3.0.0/web.browser/config/config.css" />
<item url="file://C:/Tools/.meteor/packages/ddp-client/1.2.9/web.browser/id_map.js" />
<item url="file://C:/Tools/.meteor/packages/meteortoys_status/3.0.0/web.browser/config/config.js" /> <item url="file://C:/Tools/.meteor/packages/meteortoys_status/3.0.0/web.browser/config/config.js" />
<item url="file://C:/Tools/.meteor/packages/momentjs_moment/2.17.1/web.browser/moment.js" />
<item url="file://C:/Tools/.meteor/packages/momentjs_moment/2.17.1/web.browser/export.js" />
<item url="file://C:/Tools/.meteor/packages/tomwasd_history-polyfill/0.0.1/web.browser/packages/tomwasd_history-polyfill.js" /> <item url="file://C:/Tools/.meteor/packages/tomwasd_history-polyfill/0.0.1/web.browser/packages/tomwasd_history-polyfill.js" />
<item url="file://C:/Tools/.meteor/packages/blaze/2.1.9/web.browser/dombackend.js" />
<item url="file://C:/Tools/.meteor/packages/blaze/2.1.9/web.browser/view.js" />
<item url="file://C:/Tools/.meteor/packages/blaze/2.1.9/web.browser/materializer.js" />
<item url="file://C:/Tools/.meteor/packages/blaze/2.1.9/web.browser/template.js" />
<item url="file://C:/Tools/.meteor/packages/blaze/2.1.9/web.browser/exceptions.js" />
<item url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/template-replaces.js" /> <item url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/template-replaces.js" />
<item url="file://C:/Tools/.meteor/packages/blaze/2.1.9/web.browser/attrs.js" />
<item url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/template-instance-get.js" /> <item url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/template-instance-get.js" />
<item url="file://C:/Tools/.meteor/packages/blaze/2.1.9/web.browser/backcompat.js" /> <item url="file://C:/Tools/.meteor/packages/templating-tools/1.1.1/web.browser/html-scanner-tests.js" />
<item url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/template-clear-event-maps.js" /> <item url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/template-clear-event-maps.js" />
<item url="file://C:/Tools/.meteor/packages/blaze/2.1.9/web.browser/events.js" /> <item url="file://C:/Tools/.meteor/packages/templating-tools/1.1.1/web.browser/html-scanner.js" />
<item url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/template-for-each-instance.js" /> <item url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/template-for-each-instance.js" />
<item url="file://C:/Tools/.meteor/packages/blaze/2.1.9/web.browser/lookup.js" /> <item url="file://C:/Tools/.meteor/packages/templating-tools/1.1.1/web.browser/compile-tags-with-spacebars.js" />
<item url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/template-inherits-hooks-from.js" /> <item url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/template-inherits-hooks-from.js" />
<item url="file://C:/Tools/.meteor/packages/blaze/2.1.9/web.browser/builtins.js" /> <item url="file://C:/Tools/.meteor/packages/templating-tools/1.1.1/web.browser/templating-tools.js" />
<item url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/template-for-each.js" /> <item url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/template-for-each.js" />
<item url="file://C:/Tools/.meteor/packages/blaze/2.1.9/web.browser/preamble.js" />
<item url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/template-copy-as.js" /> <item url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/template-copy-as.js" />
<item url="file://C:/Tools/.meteor/packages/blaze/2.1.9/web.browser/domrange.js" />
<item url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/template-inherits-helpers-from.js" /> <item url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/template-inherits-helpers-from.js" />
<item url="file://C:/Tools/.meteor/packages/templating-tools/1.1.1/web.browser/code-generation.js" />
<item url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/template-register-helpers.js" /> <item url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/template-register-helpers.js" />
<item url="file://C:/Tools/.meteor/packages/templating-tools/1.1.1/web.browser/throw-compile-error.js" />
<item url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/template-instance-parent.js" /> <item url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/template-instance-parent.js" />
<item url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/hooks.js" /> <item url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/hooks.js" />
<item url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/template-parent-data-function.js" /> <item url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/template-parent-data-function.js" />
<item url="file://C:/Tools/.meteor/packages/blaze-tools/1.0.10/web.browser/tokens.js" /> <item url="file://C:/Tools/.meteor/packages/blaze-tools/1.0.10/web.browser/tokens.js" />
<item url="file://C:/Tools/.meteor/packages/tracker/1.1.3/web.browser/tracker.js" />
<item url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/template-hooks.js" /> <item url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/template-hooks.js" />
<item url="file://C:/Tools/.meteor/packages/blaze-tools/1.0.10/web.browser/tojs.js" /> <item url="file://C:/Tools/.meteor/packages/blaze-tools/1.0.10/web.browser/tojs.js" />
<item url="file://C:/Tools/.meteor/packages/tracker/1.1.3/web.browser/deprecated.js" />
<item url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/template-inherits-events-from.js" /> <item url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/template-inherits-events-from.js" />
<item url="file://C:/Tools/.meteor/packages/blaze-tools/1.0.10/web.browser/preamble.js" /> <item url="file://C:/Tools/.meteor/packages/blaze-tools/1.0.10/web.browser/preamble.js" />
<item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n.coffee" /> <item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n.coffee" />
<item url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/template-global-hooks.js" /> <item url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/template-global-hooks.js" />
<item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/ko.coffee" /> <item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/ko.coffee" />
<item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/pt_PT.coffee" /> <item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/pt_PT.coffee" />
<item url="file://C:/Tools/.meteor/packages/url/1.1.0/web.browser/url_client.js" />
<item url="file://C:/Tools/.meteor/packages/arillo_flow-router-helpers/0.5.2/web.browser/client/helpers.coffee" /> <item url="file://C:/Tools/.meteor/packages/arillo_flow-router-helpers/0.5.2/web.browser/client/helpers.coffee" />
<item url="file://C:/Tools/.meteor/packages/caching-compiler/1.1.9/web.browser/multi-file-caching-compiler.js" /> <item url="file://C:/Tools/.meteor/packages/caching-compiler/1.1.9/web.browser/multi-file-caching-compiler.js" />
<item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/et.coffee" /> <item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/et.coffee" />
<item url="file://C:/Tools/.meteor/packages/url/1.1.0/web.browser/url_common.js" />
<item url="file://C:/Tools/.meteor/packages/caching-compiler/1.1.9/web.browser/caching-compiler.js" /> <item url="file://C:/Tools/.meteor/packages/caching-compiler/1.1.9/web.browser/caching-compiler.js" />
<item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/no_NB.coffee" /> <item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/no_NB.coffee" />
<item url="file://C:/Tools/.meteor/packages/webapp/1.3.15/web.browser/webapp_client.js" />
<item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/fr.coffee" /> <item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/fr.coffee" />
<item url="file://C:/Tools/.meteor/packages/webapp/1.3.15/web.browser/webapp_cordova.js" />
<item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/es.coffee" /> <item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/es.coffee" />
<item url="file://C:/Tools/.meteor/packages/webapp/1.3.15/web.browser/webapp_tests.js" />
<item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/kh.coffee" /> <item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/kh.coffee" />
<item url="file://C:/Tools/.meteor/packages/webapp/1.3.15/web.browser/webapp_client_tests.js" />
<item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/sk.coffee" /> <item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/sk.coffee" />
<item url="file://C:/Tools/.meteor/packages/mizzao_bootboxjs/4.4.0/web.browser/packages/mizzao_bootboxjs.js" /> <item url="file://C:/Tools/.meteor/packages/mizzao_bootboxjs/4.4.0/web.browser/packages/mizzao_bootboxjs.js" />
<item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/sv.coffee" /> <item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/sv.coffee" />
<item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/sl.coffee" /> <item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/sl.coffee" />
<item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/es_ES.coffee" /> <item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/es_ES.coffee" />
<item url="file://C:/Tools/.meteor/packages/webapp/1.3.15/web.browser/webapp_server.js" />
<item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/it.coffee" /> <item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/it.coffee" />
<item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/uk.coffee" /> <item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/uk.coffee" />
<item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/hu.coffee" /> <item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/hu.coffee" />
<item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/hr.coffee" /> <item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/hr.coffee" />
<item url="file://C:/Tools/.meteor/packages/momentjs_moment/2.18.1/web.browser/moment.js" />
<item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/id.coffee" /> <item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/id.coffee" />
<item url="file://C:/Tools/.meteor/packages/momentjs_moment/2.18.1/web.browser/export.js" />
<item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/tr.coffee" /> <item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/tr.coffee" />
<item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/ja.coffee" /> <item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/ja.coffee" />
<item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/zh_TW.coffee" /> <item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/zh_TW.coffee" />
@@ -110,42 +111,66 @@
<item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/en.coffee" /> <item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/en.coffee" />
<item url="file://C:/Tools/.meteor/packages/zimme_active-route/2.3.2/web.browser/packages/zimme_active-route.js" /> <item url="file://C:/Tools/.meteor/packages/zimme_active-route/2.3.2/web.browser/packages/zimme_active-route.js" />
<item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/ru.coffee" /> <item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/ru.coffee" />
<item url="file://C:/Tools/.meteor/packages/accounts-password/1.3.6/web.browser/password_server.js" />
<item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/ro.coffee" /> <item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/ro.coffee" />
<item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/fa.coffee" /> <item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/fa.coffee" />
<item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/zh_CN.coffee" /> <item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/zh_CN.coffee" />
<item url="file://C:/Tools/.meteor/packages/autoupdate/1.3.12/web.browser/autoupdate_client.js" />
<item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/cs.coffee" /> <item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/cs.coffee" />
<item url="file://C:/Tools/.meteor/packages/accounts-password/1.3.6/web.browser/email_templates.js" />
<item url="file://C:/Tools/.meteor/packages/caching-html-compiler/1.0.7/web.browser/caching-html-compiler.js" /> <item url="file://C:/Tools/.meteor/packages/caching-html-compiler/1.0.7/web.browser/caching-html-compiler.js" />
<item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/pl.coffee" /> <item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/pl.coffee" />
<item url="file://C:/Tools/.meteor/packages/accounts-password/1.3.6/web.browser/email_tests_setup.js" />
<item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/de.coffee" /> <item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/de.coffee" />
<item url="file://C:/Tools/.meteor/packages/accounts-password/1.3.6/web.browser/password_client.js" />
<item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/da.coffee" /> <item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/da.coffee" />
<item url="file://C:/Tools/.meteor/packages/accounts-password/1.3.6/web.browser/password_tests.js" />
<item url="file://C:/Tools/.meteor/packages/ddp-common/1.2.8/web.browser/random_stream.js" /> <item url="file://C:/Tools/.meteor/packages/ddp-common/1.2.8/web.browser/random_stream.js" />
<item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/nl.coffee" /> <item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/nl.coffee" />
<item url="file://C:/Tools/.meteor/packages/ddp-common/1.2.8/web.browser/method_invocation.js" /> <item url="file://C:/Tools/.meteor/packages/ddp-common/1.2.8/web.browser/method_invocation.js" />
<item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/ca.coffee" /> <item url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/ca.coffee" />
<item url="file://C:/Tools/.meteor/packages/ddp-common/1.2.8/web.browser/namespace.js" /> <item url="file://C:/Tools/.meteor/packages/ddp-common/1.2.8/web.browser/namespace.js" />
<item url="file://C:/Tools/.meteor/packages/accounts-password/1.3.6/web.browser/password_tests_setup.js" />
<item url="file://C:/Tools/.meteor/packages/ddp-common/1.2.8/web.browser/utils.js" /> <item url="file://C:/Tools/.meteor/packages/ddp-common/1.2.8/web.browser/utils.js" />
<item url="file://C:/Tools/.meteor/packages/accounts-password/1.3.6/web.browser/email_tests.js" />
<item url="file://C:/Tools/.meteor/packages/ddp-common/1.2.8/web.browser/heartbeat.js" /> <item url="file://C:/Tools/.meteor/packages/ddp-common/1.2.8/web.browser/heartbeat.js" />
<item url="file://C:/Tools/.meteor/packages/accounts-base/1.2.17/web.browser/accounts_client_tests.js" />
<item url="file://C:/Tools/.meteor/packages/accounts-base/1.2.17/web.browser/accounts_client.js" />
<item url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/methods.js" /> <item url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/methods.js" />
<item url="file://C:/Tools/.meteor/packages/accounts-base/1.2.17/web.browser/accounts_rate_limit.js" />
<item url="file://C:/Tools/.meteor/packages/fastclick/1.0.13/web.browser/pre.js" /> <item url="file://C:/Tools/.meteor/packages/fastclick/1.0.13/web.browser/pre.js" />
<item url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/field.js" /> <item url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/field.js" />
<item url="file://C:/Tools/.meteor/packages/accounts-base/1.2.17/web.browser/accounts_server.js" />
<item url="file://C:/Tools/.meteor/packages/fastclick/1.0.13/web.browser/post.js" /> <item url="file://C:/Tools/.meteor/packages/fastclick/1.0.13/web.browser/post.js" />
<item url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/utils.js" /> <item url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/utils.js" />
<item url="file://C:/Tools/.meteor/packages/accounts-base/1.2.17/web.browser/accounts_tests_setup.js" />
<item url="file://C:/Tools/.meteor/packages/fastclick/1.0.13/web.browser/fastclick.js" /> <item url="file://C:/Tools/.meteor/packages/fastclick/1.0.13/web.browser/fastclick.js" />
<item url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/client.js" /> <item url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/client.js" />
<item url="file://C:/Tools/.meteor/packages/accounts-base/1.2.17/web.browser/accounts_reconnect_tests.js" />
<item url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/core.js" /> <item url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/core.js" />
<item url="file://C:/Tools/.meteor/packages/accounts-base/1.2.17/web.browser/accounts_tests.js" />
<item url="file://C:/Tools/.meteor/packages/accounts-base/1.2.17/web.browser/accounts_url_tests.js" />
<item url="file://C:/Tools/.meteor/packages/html-tools/1.0.11/web.browser/scanner.js" /> <item url="file://C:/Tools/.meteor/packages/html-tools/1.0.11/web.browser/scanner.js" />
<item url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/templates_helpers/at_oauth.js" /> <item url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/templates_helpers/at_oauth.js" />
<item url="file://C:/Tools/.meteor/packages/accounts-base/1.2.17/web.browser/client_tests.js" />
<item url="file://C:/Tools/.meteor/packages/html-tools/1.0.11/web.browser/templatetag.js" /> <item url="file://C:/Tools/.meteor/packages/html-tools/1.0.11/web.browser/templatetag.js" />
<item url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/templates_helpers/at_form.js" /> <item url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/templates_helpers/at_form.js" />
<item url="file://C:/Tools/.meteor/packages/accounts-base/1.2.17/web.browser/localstorage_token.js" />
<item url="file://C:/Tools/.meteor/packages/html-tools/1.0.11/web.browser/tokenize.js" /> <item url="file://C:/Tools/.meteor/packages/html-tools/1.0.11/web.browser/tokenize.js" />
<item url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/templates_helpers/at_sep.js" /> <item url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/templates_helpers/at_sep.js" />
<item url="file://C:/Tools/.meteor/packages/accounts-base/1.2.17/web.browser/accounts_common.js" />
<item url="file://C:/Tools/.meteor/packages/html-tools/1.0.11/web.browser/utils.js" /> <item url="file://C:/Tools/.meteor/packages/html-tools/1.0.11/web.browser/utils.js" />
<item url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/templates_helpers/at_message.js" /> <item url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/templates_helpers/at_message.js" />
<item url="file://C:/Tools/.meteor/packages/accounts-base/1.2.17/web.browser/url_server.js" />
<item url="file://C:/Tools/.meteor/packages/html-tools/1.0.11/web.browser/charref.js" /> <item url="file://C:/Tools/.meteor/packages/html-tools/1.0.11/web.browser/charref.js" />
<item url="file://C:/Tools/.meteor/packages/accounts-base/1.2.17/web.browser/client_main.js" />
<item url="file://C:/Tools/.meteor/packages/html-tools/1.0.11/web.browser/parse.js" /> <item url="file://C:/Tools/.meteor/packages/html-tools/1.0.11/web.browser/parse.js" />
<item url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/templates_helpers/at_pwd_form.js" /> <item url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/templates_helpers/at_pwd_form.js" />
<item url="file://C:/Tools/.meteor/packages/accounts-base/1.2.17/web.browser/server_main.js" />
<item url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/templates_helpers/at_nav_button.js" /> <item url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/templates_helpers/at_nav_button.js" />
<item url="file://C:/Tools/.meteor/packages/accounts-base/1.2.17/web.browser/server_tests.js" />
<item url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/templates_helpers/at_pwd_form_btn.js" /> <item url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/templates_helpers/at_pwd_form_btn.js" />
<item url="file://C:/Tools/.meteor/packages/accounts-base/1.2.17/web.browser/url_client.js" />
<item url="file://C:/Tools/.meteor/packages/htmljs/1.0.11/web.browser/html.js" /> <item url="file://C:/Tools/.meteor/packages/htmljs/1.0.11/web.browser/html.js" />
<item url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/templates_helpers/at_social.js" /> <item url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/templates_helpers/at_social.js" />
<item url="file://C:/Tools/.meteor/packages/aldeed_collection2-core/1.2.0/web.browser/lib/collection2.js" /> <item url="file://C:/Tools/.meteor/packages/aldeed_collection2-core/1.2.0/web.browser/lib/collection2.js" />
@@ -161,13 +186,14 @@
<item url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/templates_helpers/at_title.js" /> <item url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/templates_helpers/at_title.js" />
<item url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/templates_helpers/at_reCaptcha.js" /> <item url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/templates_helpers/at_reCaptcha.js" />
<item url="file://C:/Tools/.meteor/packages/aldeed_schema-index/1.1.1/web.browser/lib/indexing.js" /> <item url="file://C:/Tools/.meteor/packages/aldeed_schema-index/1.1.1/web.browser/lib/indexing.js" />
<item url="file://C:/Tools/.meteor/packages/ostrio_loggermongo/1.1.3/web.browser/loggermongo.coffee" />
<item url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/templates_helpers/at_input.js" /> <item url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/templates_helpers/at_input.js" />
<item url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/templates_helpers/at_resend_verification_email_link.js" /> <item url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/templates_helpers/at_resend_verification_email_link.js" />
<item url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/templates_helpers/at_signup_link.js" /> <item url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/templates_helpers/at_signup_link.js" />
<item url="file://C:/Tools/.meteor/packages/ostrio_logger/1.1.2/web.browser/logger.coffee" />
<item url="file://C:/Tools/.meteor/packages/useraccounts_flow-routing/1.14.2/web.browser/lib/core.js" /> <item url="file://C:/Tools/.meteor/packages/useraccounts_flow-routing/1.14.2/web.browser/lib/core.js" />
<item url="file://C:/Tools/.meteor/packages/useraccounts_flow-routing/1.14.2/web.browser/lib/client/client.js" /> <item url="file://C:/Tools/.meteor/packages/useraccounts_flow-routing/1.14.2/web.browser/lib/client/client.js" />
<item url="file://C:/Tools/.meteor/packages/useraccounts_flow-routing/1.14.2/web.browser/lib/client/templates_helpers/at_input.js" /> <item url="file://C:/Tools/.meteor/packages/useraccounts_flow-routing/1.14.2/web.browser/lib/client/templates_helpers/at_input.js" />
<item url="file://C:/Tools/.meteor/packages/observe-sequence/1.0.14/web.browser/observe_sequence.js" />
<item url="file://C:/Tools/.meteor/packages/reload/1.1.11/web.browser/deprecated.js" /> <item url="file://C:/Tools/.meteor/packages/reload/1.1.11/web.browser/deprecated.js" />
<item url="file://C:/Tools/.meteor/packages/reload/1.1.11/web.browser/reload.js" /> <item url="file://C:/Tools/.meteor/packages/reload/1.1.11/web.browser/reload.js" />
<item url="file://C:/Tools/.meteor/packages/retry/1.0.9/web.browser/retry.js" /> <item url="file://C:/Tools/.meteor/packages/retry/1.0.9/web.browser/retry.js" />
@@ -175,21 +201,8 @@
<item url="file://C:/Tools/.meteor/packages/fortawesome_fontawesome/4.7.0/web.browser/upstream/css/font-awesome.css" /> <item url="file://C:/Tools/.meteor/packages/fortawesome_fontawesome/4.7.0/web.browser/upstream/css/font-awesome.css" />
<item url="file://C:/Tools/.meteor/packages/spacebars/1.0.13/web.browser/spacebars-runtime.js" /> <item url="file://C:/Tools/.meteor/packages/spacebars/1.0.13/web.browser/spacebars-runtime.js" />
<item url="file://C:/Tools/.meteor/packages/poorvavyas_es6-shim/0.21.1/web.browser/es6-shim.js" /> <item url="file://C:/Tools/.meteor/packages/poorvavyas_es6-shim/0.21.1/web.browser/es6-shim.js" />
<item url="file://C:/Tools/.meteor/packages/spacebars-compiler/1.0.13/web.browser/react.js" />
<item url="file://C:/Tools/.meteor/packages/spacebars-compiler/1.0.13/web.browser/compiler.js" />
<item url="file://C:/Tools/.meteor/packages/spacebars-compiler/1.0.13/web.browser/templatetag.js" />
<item url="file://C:/Tools/.meteor/packages/spacebars-compiler/1.0.13/web.browser/codegen.js" />
<item url="file://C:/Tools/.meteor/packages/spacebars-compiler/1.0.13/web.browser/optimizer.js" />
<item url="file://C:/Tools/.meteor/packages/templating-runtime/1.2.15/web.browser/dynamic.js" /> <item url="file://C:/Tools/.meteor/packages/templating-runtime/1.2.15/web.browser/dynamic.js" />
<item url="file://C:/Tools/.meteor/packages/templating-runtime/1.2.15/web.browser/templating.js" /> <item url="file://C:/Tools/.meteor/packages/templating-runtime/1.2.15/web.browser/templating.js" />
<item url="file://C:/Tools/.meteor/packages/templating-tools/1.0.5/web.browser/templating-tools.js" />
<item url="file://C:/Tools/.meteor/packages/templating-tools/1.0.5/web.browser/compile-tags-with-spacebars.js" />
<item url="file://C:/Tools/.meteor/packages/templating-tools/1.0.5/web.browser/html-scanner.js" />
<item url="file://C:/Tools/.meteor/packages/templating-tools/1.0.5/web.browser/html-scanner-tests.js" />
<item url="file://C:/Tools/.meteor/packages/templating-tools/1.0.5/web.browser/throw-compile-error.js" />
<item url="file://C:/Tools/.meteor/packages/templating-tools/1.0.5/web.browser/code-generation.js" />
<item url="file://C:/Tools/.meteor/packages/url/1.0.11/web.browser/url_common.js" />
<item url="file://C:/Tools/.meteor/packages/url/1.0.11/web.browser/url_client.js" />
<item url="file://C:/Tools/.meteor/packages/meteortoys_sub/3.0.0/web.browser/client/main.css" /> <item url="file://C:/Tools/.meteor/packages/meteortoys_sub/3.0.0/web.browser/client/main.css" />
<item url="file://C:/Tools/.meteor/packages/meteortoys_sub/3.0.0/web.browser/client/main.js" /> <item url="file://C:/Tools/.meteor/packages/meteortoys_sub/3.0.0/web.browser/client/main.js" />
<item url="file://C:/Tools/.meteor/packages/meteortoys_sub/3.0.0/web.browser/config/config.css" /> <item url="file://C:/Tools/.meteor/packages/meteortoys_sub/3.0.0/web.browser/config/config.css" />
@@ -200,10 +213,7 @@
<item url="file://C:/Tools/.meteor/packages/meteortoys_throttle/3.0.0/web.browser/config/config.css" /> <item url="file://C:/Tools/.meteor/packages/meteortoys_throttle/3.0.0/web.browser/config/config.css" />
<item url="file://C:/Tools/.meteor/packages/meteortoys_throttle/3.0.0/web.browser/config/config.js" /> <item url="file://C:/Tools/.meteor/packages/meteortoys_throttle/3.0.0/web.browser/config/config.js" />
<item url="file://C:/Tools/.meteor/packages/callback-hook/1.0.10/web.browser/hook.js" /> <item url="file://C:/Tools/.meteor/packages/callback-hook/1.0.10/web.browser/hook.js" />
<item url="file://C:/Tools/.meteor/packages/check/1.2.4/web.browser/match.js" />
<item url="file://C:/Tools/.meteor/packages/check/1.2.4/web.browser/isPlainObject.js" />
<item url="file://C:/Tools/.meteor/packages/aldeed_simple-schema/1.5.3/web.browser/simple-schema-utility.js" /> <item url="file://C:/Tools/.meteor/packages/aldeed_simple-schema/1.5.3/web.browser/simple-schema-utility.js" />
<item url="file://C:/Tools/.meteor/packages/check/1.2.4/web.browser/match_test.js" />
<item url="file://C:/Tools/.meteor/packages/aldeed_simple-schema/1.5.3/web.browser/string-humanize.js" /> <item url="file://C:/Tools/.meteor/packages/aldeed_simple-schema/1.5.3/web.browser/string-humanize.js" />
<item url="file://C:/Tools/.meteor/packages/aldeed_simple-schema/1.5.3/web.browser/simple-schema-validation-new.js" /> <item url="file://C:/Tools/.meteor/packages/aldeed_simple-schema/1.5.3/web.browser/simple-schema-validation-new.js" />
<item url="file://C:/Tools/.meteor/packages/aldeed_simple-schema/1.5.3/web.browser/simple-schema.js" /> <item url="file://C:/Tools/.meteor/packages/aldeed_simple-schema/1.5.3/web.browser/simple-schema.js" />
@@ -215,18 +225,55 @@
<item url="file://C:/Tools/.meteor/packages/meteortoys_toykit/3.0.4/web.browser/lib/privateAPI.js" /> <item url="file://C:/Tools/.meteor/packages/meteortoys_toykit/3.0.4/web.browser/lib/privateAPI.js" />
<item url="file://C:/Tools/.meteor/packages/mdg_validation-error/0.2.0/web.browser/validation-error.js" /> <item url="file://C:/Tools/.meteor/packages/mdg_validation-error/0.2.0/web.browser/validation-error.js" />
<item url="file://C:/Tools/.meteor/packages/meteortoys_toykit/3.0.4/web.browser/style/toykit.css" /> <item url="file://C:/Tools/.meteor/packages/meteortoys_toykit/3.0.4/web.browser/style/toykit.css" />
<item url="file://C:/Tools/.meteor/packages/launch-screen/1.1.1/web.browser/mobile-launch-screen.js" />
<item url="file://C:/Tools/.meteor/packages/launch-screen/1.1.1/web.browser/default-behavior.js" />
<item url="file://C:/Tools/.meteor/packages/logging/1.1.17/web.browser/logging_cordova.js" />
<item url="file://C:/Tools/.meteor/packages/meteortoys_toykit/3.0.4/web.browser/client/main.js" /> <item url="file://C:/Tools/.meteor/packages/meteortoys_toykit/3.0.4/web.browser/client/main.js" />
<item url="file://C:/Tools/.meteor/packages/logging/1.1.17/web.browser/logging.js" />
<item url="file://C:/Tools/.meteor/packages/logging/1.1.17/web.browser/logging_test.js" />
<item url="file://C:/Tools/.meteor/packages/msavin_jetsetter/2.0.0/web.browser/style/JetSetter.css" /> <item url="file://C:/Tools/.meteor/packages/msavin_jetsetter/2.0.0/web.browser/style/JetSetter.css" />
<item url="file://C:/Tools/.meteor/packages/msavin_jetsetter/2.0.0/web.browser/client/main.js" /> <item url="file://C:/Tools/.meteor/packages/msavin_jetsetter/2.0.0/web.browser/client/main.js" />
<item url="file://C:/Tools/.meteor/packages/msavin_jetsetter/2.0.0/web.browser/client/functions.js" /> <item url="file://C:/Tools/.meteor/packages/msavin_jetsetter/2.0.0/web.browser/client/functions.js" />
<item url="file://C:/Tools/.meteor/packages/blaze/2.3.2/web.browser/materializer.js" />
<item url="file://C:/Tools/.meteor/packages/blaze/2.3.2/web.browser/view.js" />
<item url="file://C:/Tools/.meteor/packages/blaze/2.3.2/web.browser/dombackend.js" />
<item url="file://C:/Tools/.meteor/packages/blaze/2.3.2/web.browser/backcompat.js" />
<item url="file://C:/Tools/.meteor/packages/msavin_jetsetter/2.0.0/web.browser/client/row/main.js" /> <item url="file://C:/Tools/.meteor/packages/msavin_jetsetter/2.0.0/web.browser/client/row/main.js" />
<item url="file://C:/Tools/.meteor/packages/blaze/2.3.2/web.browser/attrs.js" />
<item url="file://C:/Tools/.meteor/packages/blaze/2.3.2/web.browser/exceptions.js" />
<item url="file://C:/Tools/.meteor/packages/blaze/2.3.2/web.browser/template.js" />
<item url="file://C:/Tools/.meteor/packages/blaze/2.3.2/web.browser/preamble.js" />
<item url="file://C:/Tools/.meteor/packages/blaze/2.3.2/web.browser/builtins.js" />
<item url="file://C:/Tools/.meteor/packages/msavin_jetsetter/2.0.0/web.browser/client/row_dict/main.js" /> <item url="file://C:/Tools/.meteor/packages/msavin_jetsetter/2.0.0/web.browser/client/row_dict/main.js" />
<item url="file://C:/Tools/.meteor/packages/blaze/2.3.2/web.browser/lookup.js" />
<item url="file://C:/Tools/.meteor/packages/blaze/2.3.2/web.browser/events.js" />
<item url="file://C:/Tools/.meteor/packages/msavin_jetsetter/2.0.0/web.browser/client/_component/component.js" /> <item url="file://C:/Tools/.meteor/packages/msavin_jetsetter/2.0.0/web.browser/client/_component/component.js" />
<item url="file://C:/Tools/.meteor/packages/check/1.2.5/web.browser/match.js" />
<item url="file://C:/Tools/.meteor/packages/blaze/2.3.2/web.browser/domrange.js" />
<item url="file://C:/Tools/.meteor/packages/msavin_jetsetter/2.0.0/web.browser/client/row_editor/JetSetter_editor.js" /> <item url="file://C:/Tools/.meteor/packages/msavin_jetsetter/2.0.0/web.browser/client/row_editor/JetSetter_editor.js" />
<item url="file://C:/Tools/.meteor/packages/check/1.2.5/web.browser/match_test.js" />
<item url="file://C:/Tools/.meteor/packages/check/1.2.5/web.browser/isPlainObject.js" />
<item url="file://C:/Tools/.meteor/packages/ddp-client/1.3.4/web.browser/stream_client_sockjs.js" />
<item url="file://C:/Tools/.meteor/packages/ddp-client/1.3.4/web.browser/stream_client_tests.js" />
<item url="file://C:/Tools/.meteor/packages/msavin_jetsetter/2.0.0/web.browser/client/row_header/JetSetter_header.js" /> <item url="file://C:/Tools/.meteor/packages/msavin_jetsetter/2.0.0/web.browser/client/row_header/JetSetter_header.js" />
<item url="file://C:/Tools/.meteor/packages/ddp-client/1.3.4/web.browser/stream_client_common.js" />
<item url="file://C:/Tools/.meteor/packages/ddp-client/1.3.4/web.browser/sockjs-0.3.4.js" />
<item url="file://C:/Tools/.meteor/packages/ddp-client/1.3.4/web.browser/random_stream_tests.js" />
<item url="file://C:/Tools/.meteor/packages/ddp-client/1.3.4/web.browser/stub_stream.js" />
<item url="file://C:/Tools/.meteor/packages/ddp-client/1.3.4/web.browser/client_convenience.js" />
<item url="file://C:/Tools/.meteor/packages/ddp-client/1.3.4/web.browser/livedata_common.js" />
<item url="file://C:/Tools/.meteor/packages/ddp-client/1.3.4/web.browser/livedata_tests.js" />
<item url="file://C:/Tools/.meteor/packages/msavin_jetsetter/2.0.0/web.browser/client/dirtySession/main.js" /> <item url="file://C:/Tools/.meteor/packages/msavin_jetsetter/2.0.0/web.browser/client/dirtySession/main.js" />
<item url="file://C:/Tools/.meteor/packages/ddp-client/1.3.4/web.browser/livedata_connection_tests.js" />
<item url="file://C:/Tools/.meteor/packages/ddp-client/1.3.4/web.browser/livedata_test_service.js" />
<item url="file://C:/Tools/.meteor/packages/ddp-client/1.3.4/web.browser/random_stream.js" />
<item url="file://C:/Tools/.meteor/packages/msavin_jetsetter/2.0.0/web.browser/client/dirtySession/create/main.js" /> <item url="file://C:/Tools/.meteor/packages/msavin_jetsetter/2.0.0/web.browser/client/dirtySession/create/main.js" />
<item url="file://C:/Tools/.meteor/packages/ddp-client/1.3.4/web.browser/stream_tests.js" />
<item url="file://C:/Tools/.meteor/packages/ddp-client/1.3.4/web.browser/namespace.js" />
<item url="file://C:/Tools/.meteor/packages/ddp-client/1.3.4/web.browser/livedata_connection.js" />
<item url="file://C:/Tools/.meteor/packages/ddp-client/1.3.4/web.browser/stream_client_nodejs.js" />
<item url="file://C:/Tools/.meteor/packages/msavin_jetsetter/2.0.0/web.browser/client/dirtySession/editor/main.js" /> <item url="file://C:/Tools/.meteor/packages/msavin_jetsetter/2.0.0/web.browser/client/dirtySession/editor/main.js" />
<item url="file://C:/Tools/.meteor/packages/ddp-client/1.3.4/web.browser/id_map.js" />
<item url="file://C:/Tools/.meteor/packages/msavin_jetsetter/2.0.0/web.browser/client/dirtySession/session/main.js" /> <item url="file://C:/Tools/.meteor/packages/msavin_jetsetter/2.0.0/web.browser/client/dirtySession/session/main.js" />
<item url="file://C:/Tools/.meteor/packages/msavin_mongol/2.0.1/web.browser/lib/common.js" /> <item url="file://C:/Tools/.meteor/packages/msavin_mongol/2.0.1/web.browser/lib/common.js" />
<item url="file://C:/Tools/.meteor/packages/msavin_mongol/2.0.1/web.browser/style/Mongol.css" /> <item url="file://C:/Tools/.meteor/packages/msavin_mongol/2.0.1/web.browser/style/Mongol.css" />
@@ -243,14 +290,8 @@
<item url="file://C:/Tools/.meteor/packages/msavin_mongol/2.0.1/web.browser/client/row_account/account.js" /> <item url="file://C:/Tools/.meteor/packages/msavin_mongol/2.0.1/web.browser/client/row_account/account.js" />
<item url="file://C:/Tools/.meteor/packages/msavin_mongol/2.0.1/web.browser/client/row_account/accountViewer.js" /> <item url="file://C:/Tools/.meteor/packages/msavin_mongol/2.0.1/web.browser/client/row_account/accountViewer.js" />
<item url="file://C:/Tools/.meteor/packages/msavin_mongol/2.0.1/web.browser/client/doc_controls/docControls.js" /> <item url="file://C:/Tools/.meteor/packages/msavin_mongol/2.0.1/web.browser/client/doc_controls/docControls.js" />
<item url="file://C:/Tools/.meteor/packages/http/1.1.8/web.browser/deprecated.js" />
<item url="file://C:/Tools/.meteor/packages/http/1.1.8/web.browser/test_responder.js" />
<item url="file://C:/Tools/.meteor/packages/msavin_mongol/2.0.1/web.browser/client/row_collection/collections.js" /> <item url="file://C:/Tools/.meteor/packages/msavin_mongol/2.0.1/web.browser/client/row_collection/collections.js" />
<item url="file://C:/Tools/.meteor/packages/http/1.1.8/web.browser/httpcall_tests.js" />
<item url="file://C:/Tools/.meteor/packages/http/1.1.8/web.browser/httpcall_common.js" />
<item url="file://C:/Tools/.meteor/packages/http/1.1.8/web.browser/httpcall_server.js" />
<item url="file://C:/Tools/.meteor/packages/msavin_mongol/2.0.1/web.browser/client/row_subscriptions/main.js" /> <item url="file://C:/Tools/.meteor/packages/msavin_mongol/2.0.1/web.browser/client/row_subscriptions/main.js" />
<item url="file://C:/Tools/.meteor/packages/http/1.1.8/web.browser/httpcall_client.js" />
<item url="file://C:/Tools/.meteor/packages/msavin_mongol/2.0.1/web.browser/client/row_collection_notFound/notFound.js" /> <item url="file://C:/Tools/.meteor/packages/msavin_mongol/2.0.1/web.browser/client/row_collection_notFound/notFound.js" />
<item url="file://C:/Tools/.meteor/packages/kadira_flow-router/2.12.1/web.browser/lib/router.js" /> <item url="file://C:/Tools/.meteor/packages/kadira_flow-router/2.12.1/web.browser/lib/router.js" />
<item url="file://C:/Tools/.meteor/packages/ordered-dict/1.0.9/web.browser/ordered_dict.js" /> <item url="file://C:/Tools/.meteor/packages/ordered-dict/1.0.9/web.browser/ordered_dict.js" />
@@ -266,38 +307,30 @@
<item url="file://C:/Tools/.meteor/packages/kadira_flow-router/2.12.1/web.browser/client/route.js" /> <item url="file://C:/Tools/.meteor/packages/kadira_flow-router/2.12.1/web.browser/client/route.js" />
<item url="file://C:/Tools/.meteor/packages/kadira_flow-router/2.12.1/web.browser/test/client/_helpers.js" /> <item url="file://C:/Tools/.meteor/packages/kadira_flow-router/2.12.1/web.browser/test/client/_helpers.js" />
<item url="file://C:/Tools/.meteor/packages/diff-sequence/1.0.7/web.browser/diff.js" /> <item url="file://C:/Tools/.meteor/packages/diff-sequence/1.0.7/web.browser/diff.js" />
<item url="file://C:/Tools/.meteor/packages/modules/0.8.2/web.browser/process.js" />
<item url="file://C:/Tools/.meteor/packages/kadira_flow-router/2.12.1/web.browser/test/client/triggers.js" /> <item url="file://C:/Tools/.meteor/packages/kadira_flow-router/2.12.1/web.browser/test/client/triggers.js" />
<item url="file://C:/Tools/.meteor/packages/modules/0.8.2/web.browser/install-packages.js" />
<item url="file://C:/Tools/.meteor/packages/kadira_flow-router/2.12.1/web.browser/test/common/fast_render_route.js" /> <item url="file://C:/Tools/.meteor/packages/kadira_flow-router/2.12.1/web.browser/test/common/fast_render_route.js" />
<item url="file://C:/Tools/.meteor/packages/modules/0.8.2/web.browser/css.js" />
<item url="file://C:/Tools/.meteor/packages/ecmascript-runtime/0.3.15/web.browser/runtime-tests.js" /> <item url="file://C:/Tools/.meteor/packages/ecmascript-runtime/0.3.15/web.browser/runtime-tests.js" />
<item url="file://C:/Tools/.meteor/packages/modules/0.8.2/web.browser/client.js" />
<item url="file://C:/Tools/.meteor/packages/ecmascript-runtime/0.3.15/web.browser/runtime.js" /> <item url="file://C:/Tools/.meteor/packages/ecmascript-runtime/0.3.15/web.browser/runtime.js" />
<item url="file://C:/Tools/.meteor/packages/accounts-base/1.2.14/web.browser/client_main.js" /> <item url="file://C:/Tools/.meteor/packages/modules/0.8.2/web.browser/stubs.js" />
<item url="file://C:/Tools/.meteor/packages/accounts-base/1.2.14/web.browser/server_main.js" /> <item url="file://C:/Tools/.meteor/packages/modules/0.8.2/web.browser/reify.js" />
<item url="file://C:/Tools/.meteor/packages/accounts-base/1.2.14/web.browser/server_tests.js" /> <item url="file://C:/Tools/.meteor/packages/modules/0.8.2/web.browser/server.js" />
<item url="file://C:/Tools/.meteor/packages/accounts-base/1.2.14/web.browser/url_client.js" /> <item url="file://C:/Tools/.meteor/packages/modules/0.8.2/web.browser/buffer.js" />
<item url="file://C:/Tools/.meteor/packages/accounts-base/1.2.14/web.browser/client_tests.js" />
<item url="file://C:/Tools/.meteor/packages/accounts-base/1.2.14/web.browser/localstorage_token.js" />
<item url="file://C:/Tools/.meteor/packages/accounts-base/1.2.14/web.browser/accounts_common.js" />
<item url="file://C:/Tools/.meteor/packages/accounts-base/1.2.14/web.browser/url_server.js" />
<item url="file://C:/Tools/.meteor/packages/accounts-base/1.2.14/web.browser/accounts_reconnect_tests.js" />
<item url="file://C:/Tools/.meteor/packages/accounts-base/1.2.14/web.browser/accounts_tests.js" />
<item url="file://C:/Tools/.meteor/packages/accounts-base/1.2.14/web.browser/accounts_url_tests.js" />
<item url="file://C:/Tools/.meteor/packages/random/1.0.10/web.browser/deprecated.js" /> <item url="file://C:/Tools/.meteor/packages/random/1.0.10/web.browser/deprecated.js" />
<item url="file://C:/Tools/.meteor/packages/accounts-base/1.2.14/web.browser/accounts_client.js" />
<item url="file://C:/Tools/.meteor/packages/random/1.0.10/web.browser/random_tests.js" /> <item url="file://C:/Tools/.meteor/packages/random/1.0.10/web.browser/random_tests.js" />
<item url="file://C:/Tools/.meteor/packages/accounts-base/1.2.14/web.browser/accounts_rate_limit.js" />
<item url="file://C:/Tools/.meteor/packages/random/1.0.10/web.browser/random.js" /> <item url="file://C:/Tools/.meteor/packages/random/1.0.10/web.browser/random.js" />
<item url="file://C:/Tools/.meteor/packages/accounts-base/1.2.14/web.browser/accounts_server.js" /> <item url="file://C:/Tools/.meteor/packages/http/1.2.12/web.browser/httpcall_tests.js" />
<item url="file://C:/Tools/.meteor/packages/rate-limit/1.0.6/web.browser/rate-limit.js" /> <item url="file://C:/Tools/.meteor/packages/http/1.2.12/web.browser/test_responder.js" />
<item url="file://C:/Tools/.meteor/packages/accounts-password/1.3.3/web.browser/password_tests_setup.js" /> <item url="file://C:/Tools/.meteor/packages/http/1.2.12/web.browser/deprecated.js" />
<item url="file://C:/Tools/.meteor/packages/accounts-password/1.3.3/web.browser/email_tests.js" />
<item url="file://C:/Tools/.meteor/packages/accounts-password/1.3.3/web.browser/email_templates.js" />
<item url="file://C:/Tools/.meteor/packages/reactive-dict/1.1.8/web.browser/reactive-dict-tests.js" /> <item url="file://C:/Tools/.meteor/packages/reactive-dict/1.1.8/web.browser/reactive-dict-tests.js" />
<item url="file://C:/Tools/.meteor/packages/accounts-password/1.3.3/web.browser/email_tests_setup.js" /> <item url="file://C:/Tools/.meteor/packages/http/1.2.12/web.browser/httpcall_client.js" />
<item url="file://C:/Tools/.meteor/packages/reactive-dict/1.1.8/web.browser/reactive-dict.js" /> <item url="file://C:/Tools/.meteor/packages/reactive-dict/1.1.8/web.browser/reactive-dict.js" />
<item url="file://C:/Tools/.meteor/packages/accounts-password/1.3.3/web.browser/password_client.js" /> <item url="file://C:/Tools/.meteor/packages/http/1.2.12/web.browser/httpcall_server.js" />
<item url="file://C:/Tools/.meteor/packages/http/1.2.12/web.browser/httpcall_common.js" />
<item url="file://C:/Tools/.meteor/packages/reactive-dict/1.1.8/web.browser/migration.js" /> <item url="file://C:/Tools/.meteor/packages/reactive-dict/1.1.8/web.browser/migration.js" />
<item url="file://C:/Tools/.meteor/packages/accounts-password/1.3.3/web.browser/password_tests.js" />
<item url="file://C:/Tools/.meteor/packages/accounts-password/1.3.3/web.browser/password_server.js" />
<item url="file://C:/Tools/.meteor/packages/juliancwirko_s-alert/3.2.0/web.browser/client/s-alert-collection.js" /> <item url="file://C:/Tools/.meteor/packages/juliancwirko_s-alert/3.2.0/web.browser/client/s-alert-collection.js" />
<item url="file://C:/Tools/.meteor/packages/juliancwirko_s-alert/3.2.0/web.browser/client/s-alert-template.js" /> <item url="file://C:/Tools/.meteor/packages/juliancwirko_s-alert/3.2.0/web.browser/client/s-alert-template.js" />
<item url="file://C:/Tools/.meteor/packages/juliancwirko_s-alert/3.2.0/web.browser/client/s-alert-default.css" /> <item url="file://C:/Tools/.meteor/packages/juliancwirko_s-alert/3.2.0/web.browser/client/s-alert-default.css" />
@@ -309,23 +342,15 @@
<item url="file://C:/Tools/.meteor/packages/allow-deny/1.0.5/web.browser/allow-deny-tests.js" /> <item url="file://C:/Tools/.meteor/packages/allow-deny/1.0.5/web.browser/allow-deny-tests.js" />
<item url="file://C:/Tools/.meteor/packages/srp/1.0.10/web.browser/srp.js" /> <item url="file://C:/Tools/.meteor/packages/srp/1.0.10/web.browser/srp.js" />
<item url="file://C:/Tools/.meteor/packages/srp/1.0.10/web.browser/biginteger.js" /> <item url="file://C:/Tools/.meteor/packages/srp/1.0.10/web.browser/biginteger.js" />
<item url="file://C:/Tools/.meteor/packages/tracker/1.1.1/web.browser/deprecated.js" />
<item url="file://C:/Tools/.meteor/packages/tracker/1.1.1/web.browser/tracker.js" />
<item url="file://C:/Tools/.meteor/packages/underscore/1.0.10/web.browser/underscore.js" /> <item url="file://C:/Tools/.meteor/packages/underscore/1.0.10/web.browser/underscore.js" />
<item url="file://C:/Tools/.meteor/packages/underscore/1.0.10/web.browser/pre.js" /> <item url="file://C:/Tools/.meteor/packages/underscore/1.0.10/web.browser/pre.js" />
<item url="file://C:/Tools/.meteor/packages/underscore/1.0.10/web.browser/post.js" /> <item url="file://C:/Tools/.meteor/packages/underscore/1.0.10/web.browser/post.js" />
<item url="file://C:/Tools/.meteor/packages/webapp/1.3.12/web.browser/webapp_client_tests.js" /> <item url="file://C:/Tools/.meteor/packages/modules-runtime/0.7.10/web.browser/modules-runtime.js" />
<item url="file://C:/Tools/.meteor/packages/webapp/1.3.12/web.browser/webapp_tests.js" />
<item url="file://C:/Tools/.meteor/packages/webapp/1.3.12/web.browser/webapp_cordova.js" />
<item url="file://C:/Tools/.meteor/packages/webapp/1.3.12/web.browser/webapp_client.js" />
<item url="file://C:/Tools/.meteor/packages/webapp/1.3.12/web.browser/webapp_server.js" />
<item url="file://C:/Tools/.meteor/packages/id-map/1.0.9/web.browser/id-map.js" /> <item url="file://C:/Tools/.meteor/packages/id-map/1.0.9/web.browser/id-map.js" />
<item url="file://C:/Tools/.meteor/packages/jquery/1.11.10/web.browser/jquery.js" /> <item url="file://C:/Tools/.meteor/packages/jquery/1.11.10/web.browser/jquery.js" />
<item url="file://C:/Tools/.meteor/packages/jquery/1.11.10/web.browser/main.js" /> <item url="file://C:/Tools/.meteor/packages/jquery/1.11.10/web.browser/main.js" />
<item url="file://C:/Tools/.meteor/packages/localstorage/1.0.12/web.browser/localstorage.js" /> <item url="file://C:/Tools/.meteor/packages/localstorage/1.0.12/web.browser/localstorage.js" />
<item url="file://C:/Tools/.meteor/packages/logging/1.1.16/web.browser/logging_test.js" /> <item url="file://C:/Tools/.meteor/packages/modules-runtime/0.7.10/web.browser/.npm/package/node_modules/install/install.js" />
<item url="file://C:/Tools/.meteor/packages/logging/1.1.16/web.browser/logging.js" />
<item url="file://C:/Tools/.meteor/packages/logging/1.1.16/web.browser/logging_cordova.js" />
<item url="file://C:/Tools/.meteor/packages/ejson/1.0.13/web.browser/stringify.js" /> <item url="file://C:/Tools/.meteor/packages/ejson/1.0.13/web.browser/stringify.js" />
<item url="file://C:/Tools/.meteor/packages/ejson/1.0.13/web.browser/ejson.js" /> <item url="file://C:/Tools/.meteor/packages/ejson/1.0.13/web.browser/ejson.js" />
<item url="file://C:/Tools/.meteor/packages/es5-shim/4.6.15/web.browser/export_globals.js" /> <item url="file://C:/Tools/.meteor/packages/es5-shim/4.6.15/web.browser/export_globals.js" />
@@ -333,23 +358,12 @@
<item url="file://C:/Tools/.meteor/packages/es5-shim/4.6.15/web.browser/console.js" /> <item url="file://C:/Tools/.meteor/packages/es5-shim/4.6.15/web.browser/console.js" />
<item url="file://C:/Tools/.meteor/packages/es5-shim/4.6.15/web.browser/client.js" /> <item url="file://C:/Tools/.meteor/packages/es5-shim/4.6.15/web.browser/client.js" />
<item url="file://C:/Tools/.meteor/packages/es5-shim/4.6.15/web.browser/server.js" /> <item url="file://C:/Tools/.meteor/packages/es5-shim/4.6.15/web.browser/server.js" />
<item url="file://C:/Tools/.meteor/packages/modules/0.7.7/web.browser/install-packages.js" />
<item url="file://C:/Tools/.meteor/packages/modules/0.7.7/web.browser/process.js" />
<item url="file://C:/Tools/.meteor/packages/modules/0.7.7/web.browser/stubs.js" />
<item url="file://C:/Tools/.meteor/packages/modules/0.7.7/web.browser/client.js" />
<item url="file://C:/Tools/.meteor/packages/modules/0.7.7/web.browser/css.js" />
<item url="file://C:/Tools/.meteor/packages/modules/0.7.7/web.browser/buffer.js" />
<item url="file://C:/Tools/.meteor/packages/modules/0.7.7/web.browser/server.js" />
<item url="file://C:/Tools/.meteor/packages/geojson-utils/1.0.10/web.browser/geojson-utils.js" /> <item url="file://C:/Tools/.meteor/packages/geojson-utils/1.0.10/web.browser/geojson-utils.js" />
<item url="file://C:/Tools/.meteor/packages/geojson-utils/1.0.10/web.browser/main.js" /> <item url="file://C:/Tools/.meteor/packages/geojson-utils/1.0.10/web.browser/main.js" />
<item url="file://C:/Tools/.meteor/packages/kadira_blaze-layout/2.3.0/web.browser/lib/client/namespace.js" /> <item url="file://C:/Tools/.meteor/packages/kadira_blaze-layout/2.3.0/web.browser/lib/client/namespace.js" />
<item url="file://C:/Tools/.meteor/packages/kadira_blaze-layout/2.3.0/web.browser/lib/client/layout.js" /> <item url="file://C:/Tools/.meteor/packages/kadira_blaze-layout/2.3.0/web.browser/lib/client/layout.js" />
<item url="file://C:/Tools/.meteor/packages/raix_eventemitter/0.1.3/web.browser/packages/raix_eventemitter.js" /> <item url="file://C:/Tools/.meteor/packages/raix_eventemitter/0.1.3/web.browser/packages/raix_eventemitter.js" />
<item url="file://C:/Tools/.meteor/packages/modules-runtime/0.7.7/web.browser/modules-runtime.js" />
<item url="file://C:/Tools/.meteor/packages/modules-runtime/0.7.7/web.browser/.npm/package/node_modules/install/install.js" />
<item url="file://C:/Tools/.meteor/packages/mongo-id/1.0.6/web.browser/id.js" /> <item url="file://C:/Tools/.meteor/packages/mongo-id/1.0.6/web.browser/id.js" />
<item url="file://C:/Tools/.meteor/packages/launch-screen/1.0.12/web.browser/default-behavior.js" />
<item url="file://C:/Tools/.meteor/packages/launch-screen/1.0.12/web.browser/mobile-launch-screen.js" />
<item url="file://C:/Tools/.meteor/packages/meteortoys_allthings/3.0.0/web.browser/main.js" /> <item url="file://C:/Tools/.meteor/packages/meteortoys_allthings/3.0.0/web.browser/main.js" />
<item url="file://C:/Tools/.meteor/packages/meteortoys_authenticate/3.0.0/web.browser/client/main.css" /> <item url="file://C:/Tools/.meteor/packages/meteortoys_authenticate/3.0.0/web.browser/client/main.css" />
<item url="file://C:/Tools/.meteor/packages/meteortoys_authenticate/3.0.0/web.browser/client/main.js" /> <item url="file://C:/Tools/.meteor/packages/meteortoys_authenticate/3.0.0/web.browser/client/main.js" />
@@ -400,7 +414,6 @@
<item url="file://C:/Tools/.meteor/packages/meteortoys_hotreload/3.0.0/web.browser/client/main.js" /> <item url="file://C:/Tools/.meteor/packages/meteortoys_hotreload/3.0.0/web.browser/client/main.js" />
<item url="file://C:/Tools/.meteor/packages/meteortoys_hotreload/3.0.0/web.browser/config/config.css" /> <item url="file://C:/Tools/.meteor/packages/meteortoys_hotreload/3.0.0/web.browser/config/config.css" />
<item url="file://C:/Tools/.meteor/packages/meteortoys_hotreload/3.0.0/web.browser/config/config.js" /> <item url="file://C:/Tools/.meteor/packages/meteortoys_hotreload/3.0.0/web.browser/config/config.js" />
<item url="file://C:/Tools/.meteor/packages/autoupdate/1.2.11/web.browser/autoupdate_client.js" />
</sourceFilesUrls> </sourceFilesUrls>
</properties> </properties>
<CLASSES> <CLASSES>
@@ -409,10 +422,17 @@
<root url="file://C:/Tools/.meteor/packages/meteortoys_listen/3.0.0/web.browser/config/config.css" /> <root url="file://C:/Tools/.meteor/packages/meteortoys_listen/3.0.0/web.browser/config/config.css" />
<root url="file://C:/Tools/.meteor/packages/meteortoys_listen/3.0.0/web.browser/config/config.js" /> <root url="file://C:/Tools/.meteor/packages/meteortoys_listen/3.0.0/web.browser/config/config.js" />
<root url="file://C:/Tools/.meteor/packages/meteortoys_method/3.0.4/web.browser/lib/main.js" /> <root url="file://C:/Tools/.meteor/packages/meteortoys_method/3.0.4/web.browser/lib/main.js" />
<root url="file://C:/Tools/.meteor/packages/rate-limit/1.0.8/web.browser/rate-limit.js" />
<root url="file://C:/Tools/.meteor/packages/meteortoys_method/3.0.4/web.browser/client/main.css" /> <root url="file://C:/Tools/.meteor/packages/meteortoys_method/3.0.4/web.browser/client/main.css" />
<root url="file://C:/Tools/.meteor/packages/meteortoys_method/3.0.4/web.browser/client/main.js" /> <root url="file://C:/Tools/.meteor/packages/meteortoys_method/3.0.4/web.browser/client/main.js" />
<root url="file://C:/Tools/.meteor/packages/observe-sequence/1.0.16/web.browser/observe_sequence.js" />
<root url="file://C:/Tools/.meteor/packages/meteortoys_method/3.0.4/web.browser/ToyKit/main.css" /> <root url="file://C:/Tools/.meteor/packages/meteortoys_method/3.0.4/web.browser/ToyKit/main.css" />
<root url="file://C:/Tools/.meteor/packages/spacebars-compiler/1.1.1/web.browser/codegen.js" />
<root url="file://C:/Tools/.meteor/packages/spacebars-compiler/1.1.1/web.browser/templatetag.js" />
<root url="file://C:/Tools/.meteor/packages/spacebars-compiler/1.1.1/web.browser/compiler.js" />
<root url="file://C:/Tools/.meteor/packages/spacebars-compiler/1.1.1/web.browser/react.js" />
<root url="file://C:/Tools/.meteor/packages/meteortoys_method/3.0.4/web.browser/ToyKit/main.js" /> <root url="file://C:/Tools/.meteor/packages/meteortoys_method/3.0.4/web.browser/ToyKit/main.js" />
<root url="file://C:/Tools/.meteor/packages/spacebars-compiler/1.1.1/web.browser/optimizer.js" />
<root url="file://C:/Tools/.meteor/packages/meteortoys_pub/3.0.4/web.browser/lib/main.js" /> <root url="file://C:/Tools/.meteor/packages/meteortoys_pub/3.0.4/web.browser/lib/main.js" />
<root url="file://C:/Tools/.meteor/packages/meteortoys_pub/3.0.4/web.browser/client/main.css" /> <root url="file://C:/Tools/.meteor/packages/meteortoys_pub/3.0.4/web.browser/client/main.css" />
<root url="file://C:/Tools/.meteor/packages/meteortoys_pub/3.0.4/web.browser/client/main.js" /> <root url="file://C:/Tools/.meteor/packages/meteortoys_pub/3.0.4/web.browser/client/main.js" />
@@ -433,73 +453,67 @@
<root url="file://C:/Tools/.meteor/packages/meteortoys_shell/3.0.0/web.browser/client/main.js" /> <root url="file://C:/Tools/.meteor/packages/meteortoys_shell/3.0.0/web.browser/client/main.js" />
<root url="file://C:/Tools/.meteor/packages/meteortoys_shell/3.0.0/web.browser/config/config.css" /> <root url="file://C:/Tools/.meteor/packages/meteortoys_shell/3.0.0/web.browser/config/config.css" />
<root url="file://C:/Tools/.meteor/packages/meteortoys_shell/3.0.0/web.browser/config/config.js" /> <root url="file://C:/Tools/.meteor/packages/meteortoys_shell/3.0.0/web.browser/config/config.js" />
<root url="file://C:/Tools/.meteor/packages/ddp-client/1.2.9/web.browser/sockjs-0.3.4.js" />
<root url="file://C:/Tools/.meteor/packages/ddp-client/1.2.9/web.browser/random_stream.js" />
<root url="file://C:/Tools/.meteor/packages/ddp-client/1.2.9/web.browser/stream_client_common.js" />
<root url="file://C:/Tools/.meteor/packages/ddp-client/1.2.9/web.browser/livedata_connection.js" />
<root url="file://C:/Tools/.meteor/packages/ddp-client/1.2.9/web.browser/stream_client_sockjs.js" />
<root url="file://C:/Tools/.meteor/packages/ddp-client/1.2.9/web.browser/namespace.js" />
<root url="file://C:/Tools/.meteor/packages/meteortoys_status/3.0.0/web.browser/client/main.css" /> <root url="file://C:/Tools/.meteor/packages/meteortoys_status/3.0.0/web.browser/client/main.css" />
<root url="file://C:/Tools/.meteor/packages/ddp-client/1.2.9/web.browser/livedata_common.js" />
<root url="file://C:/Tools/.meteor/packages/meteortoys_status/3.0.0/web.browser/client/main.js" /> <root url="file://C:/Tools/.meteor/packages/meteortoys_status/3.0.0/web.browser/client/main.js" />
<root url="file://C:/Tools/.meteor/packages/ddp-client/1.2.9/web.browser/client_convenience.js" />
<root url="file://C:/Tools/.meteor/packages/meteortoys_status/3.0.0/web.browser/config/config.css" /> <root url="file://C:/Tools/.meteor/packages/meteortoys_status/3.0.0/web.browser/config/config.css" />
<root url="file://C:/Tools/.meteor/packages/ddp-client/1.2.9/web.browser/id_map.js" />
<root url="file://C:/Tools/.meteor/packages/meteortoys_status/3.0.0/web.browser/config/config.js" /> <root url="file://C:/Tools/.meteor/packages/meteortoys_status/3.0.0/web.browser/config/config.js" />
<root url="file://C:/Tools/.meteor/packages/momentjs_moment/2.17.1/web.browser/moment.js" />
<root url="file://C:/Tools/.meteor/packages/momentjs_moment/2.17.1/web.browser/export.js" />
<root url="file://C:/Tools/.meteor/packages/tomwasd_history-polyfill/0.0.1/web.browser/packages/tomwasd_history-polyfill.js" /> <root url="file://C:/Tools/.meteor/packages/tomwasd_history-polyfill/0.0.1/web.browser/packages/tomwasd_history-polyfill.js" />
<root url="file://C:/Tools/.meteor/packages/blaze/2.1.9/web.browser/dombackend.js" />
<root url="file://C:/Tools/.meteor/packages/blaze/2.1.9/web.browser/view.js" />
<root url="file://C:/Tools/.meteor/packages/blaze/2.1.9/web.browser/materializer.js" />
<root url="file://C:/Tools/.meteor/packages/blaze/2.1.9/web.browser/template.js" />
<root url="file://C:/Tools/.meteor/packages/blaze/2.1.9/web.browser/exceptions.js" />
<root url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/template-replaces.js" /> <root url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/template-replaces.js" />
<root url="file://C:/Tools/.meteor/packages/blaze/2.1.9/web.browser/attrs.js" />
<root url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/template-instance-get.js" /> <root url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/template-instance-get.js" />
<root url="file://C:/Tools/.meteor/packages/blaze/2.1.9/web.browser/backcompat.js" /> <root url="file://C:/Tools/.meteor/packages/templating-tools/1.1.1/web.browser/html-scanner-tests.js" />
<root url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/template-clear-event-maps.js" /> <root url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/template-clear-event-maps.js" />
<root url="file://C:/Tools/.meteor/packages/blaze/2.1.9/web.browser/events.js" /> <root url="file://C:/Tools/.meteor/packages/templating-tools/1.1.1/web.browser/html-scanner.js" />
<root url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/template-for-each-instance.js" /> <root url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/template-for-each-instance.js" />
<root url="file://C:/Tools/.meteor/packages/blaze/2.1.9/web.browser/lookup.js" /> <root url="file://C:/Tools/.meteor/packages/templating-tools/1.1.1/web.browser/compile-tags-with-spacebars.js" />
<root url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/template-inherits-hooks-from.js" /> <root url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/template-inherits-hooks-from.js" />
<root url="file://C:/Tools/.meteor/packages/blaze/2.1.9/web.browser/builtins.js" /> <root url="file://C:/Tools/.meteor/packages/templating-tools/1.1.1/web.browser/templating-tools.js" />
<root url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/template-for-each.js" /> <root url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/template-for-each.js" />
<root url="file://C:/Tools/.meteor/packages/blaze/2.1.9/web.browser/preamble.js" />
<root url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/template-copy-as.js" /> <root url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/template-copy-as.js" />
<root url="file://C:/Tools/.meteor/packages/blaze/2.1.9/web.browser/domrange.js" />
<root url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/template-inherits-helpers-from.js" /> <root url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/template-inherits-helpers-from.js" />
<root url="file://C:/Tools/.meteor/packages/templating-tools/1.1.1/web.browser/code-generation.js" />
<root url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/template-register-helpers.js" /> <root url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/template-register-helpers.js" />
<root url="file://C:/Tools/.meteor/packages/templating-tools/1.1.1/web.browser/throw-compile-error.js" />
<root url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/template-instance-parent.js" /> <root url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/template-instance-parent.js" />
<root url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/hooks.js" /> <root url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/hooks.js" />
<root url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/template-parent-data-function.js" /> <root url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/template-parent-data-function.js" />
<root url="file://C:/Tools/.meteor/packages/blaze-tools/1.0.10/web.browser/tokens.js" /> <root url="file://C:/Tools/.meteor/packages/blaze-tools/1.0.10/web.browser/tokens.js" />
<root url="file://C:/Tools/.meteor/packages/tracker/1.1.3/web.browser/tracker.js" />
<root url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/template-hooks.js" /> <root url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/template-hooks.js" />
<root url="file://C:/Tools/.meteor/packages/blaze-tools/1.0.10/web.browser/tojs.js" /> <root url="file://C:/Tools/.meteor/packages/blaze-tools/1.0.10/web.browser/tojs.js" />
<root url="file://C:/Tools/.meteor/packages/tracker/1.1.3/web.browser/deprecated.js" />
<root url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/template-inherits-events-from.js" /> <root url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/template-inherits-events-from.js" />
<root url="file://C:/Tools/.meteor/packages/blaze-tools/1.0.10/web.browser/preamble.js" /> <root url="file://C:/Tools/.meteor/packages/blaze-tools/1.0.10/web.browser/preamble.js" />
<root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n.coffee" /> <root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n.coffee" />
<root url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/template-global-hooks.js" /> <root url="file://C:/Tools/.meteor/packages/aldeed_template-extension/4.0.0/web.browser/lib/template-global-hooks.js" />
<root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/ko.coffee" /> <root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/ko.coffee" />
<root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/pt_PT.coffee" /> <root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/pt_PT.coffee" />
<root url="file://C:/Tools/.meteor/packages/url/1.1.0/web.browser/url_client.js" />
<root url="file://C:/Tools/.meteor/packages/arillo_flow-router-helpers/0.5.2/web.browser/client/helpers.coffee" /> <root url="file://C:/Tools/.meteor/packages/arillo_flow-router-helpers/0.5.2/web.browser/client/helpers.coffee" />
<root url="file://C:/Tools/.meteor/packages/caching-compiler/1.1.9/web.browser/multi-file-caching-compiler.js" /> <root url="file://C:/Tools/.meteor/packages/caching-compiler/1.1.9/web.browser/multi-file-caching-compiler.js" />
<root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/et.coffee" /> <root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/et.coffee" />
<root url="file://C:/Tools/.meteor/packages/url/1.1.0/web.browser/url_common.js" />
<root url="file://C:/Tools/.meteor/packages/caching-compiler/1.1.9/web.browser/caching-compiler.js" /> <root url="file://C:/Tools/.meteor/packages/caching-compiler/1.1.9/web.browser/caching-compiler.js" />
<root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/no_NB.coffee" /> <root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/no_NB.coffee" />
<root url="file://C:/Tools/.meteor/packages/webapp/1.3.15/web.browser/webapp_client.js" />
<root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/fr.coffee" /> <root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/fr.coffee" />
<root url="file://C:/Tools/.meteor/packages/webapp/1.3.15/web.browser/webapp_cordova.js" />
<root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/es.coffee" /> <root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/es.coffee" />
<root url="file://C:/Tools/.meteor/packages/webapp/1.3.15/web.browser/webapp_tests.js" />
<root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/kh.coffee" /> <root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/kh.coffee" />
<root url="file://C:/Tools/.meteor/packages/webapp/1.3.15/web.browser/webapp_client_tests.js" />
<root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/sk.coffee" /> <root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/sk.coffee" />
<root url="file://C:/Tools/.meteor/packages/mizzao_bootboxjs/4.4.0/web.browser/packages/mizzao_bootboxjs.js" /> <root url="file://C:/Tools/.meteor/packages/mizzao_bootboxjs/4.4.0/web.browser/packages/mizzao_bootboxjs.js" />
<root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/sv.coffee" /> <root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/sv.coffee" />
<root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/sl.coffee" /> <root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/sl.coffee" />
<root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/es_ES.coffee" /> <root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/es_ES.coffee" />
<root url="file://C:/Tools/.meteor/packages/webapp/1.3.15/web.browser/webapp_server.js" />
<root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/it.coffee" /> <root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/it.coffee" />
<root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/uk.coffee" /> <root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/uk.coffee" />
<root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/hu.coffee" /> <root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/hu.coffee" />
<root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/hr.coffee" /> <root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/hr.coffee" />
<root url="file://C:/Tools/.meteor/packages/momentjs_moment/2.18.1/web.browser/moment.js" />
<root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/id.coffee" /> <root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/id.coffee" />
<root url="file://C:/Tools/.meteor/packages/momentjs_moment/2.18.1/web.browser/export.js" />
<root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/tr.coffee" /> <root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/tr.coffee" />
<root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/ja.coffee" /> <root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/ja.coffee" />
<root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/zh_TW.coffee" /> <root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/zh_TW.coffee" />
@@ -512,42 +526,66 @@
<root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/en.coffee" /> <root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/en.coffee" />
<root url="file://C:/Tools/.meteor/packages/zimme_active-route/2.3.2/web.browser/packages/zimme_active-route.js" /> <root url="file://C:/Tools/.meteor/packages/zimme_active-route/2.3.2/web.browser/packages/zimme_active-route.js" />
<root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/ru.coffee" /> <root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/ru.coffee" />
<root url="file://C:/Tools/.meteor/packages/accounts-password/1.3.6/web.browser/password_server.js" />
<root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/ro.coffee" /> <root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/ro.coffee" />
<root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/fa.coffee" /> <root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/fa.coffee" />
<root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/zh_CN.coffee" /> <root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/zh_CN.coffee" />
<root url="file://C:/Tools/.meteor/packages/autoupdate/1.3.12/web.browser/autoupdate_client.js" />
<root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/cs.coffee" /> <root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/cs.coffee" />
<root url="file://C:/Tools/.meteor/packages/accounts-password/1.3.6/web.browser/email_templates.js" />
<root url="file://C:/Tools/.meteor/packages/caching-html-compiler/1.0.7/web.browser/caching-html-compiler.js" /> <root url="file://C:/Tools/.meteor/packages/caching-html-compiler/1.0.7/web.browser/caching-html-compiler.js" />
<root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/pl.coffee" /> <root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/pl.coffee" />
<root url="file://C:/Tools/.meteor/packages/accounts-password/1.3.6/web.browser/email_tests_setup.js" />
<root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/de.coffee" /> <root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/de.coffee" />
<root url="file://C:/Tools/.meteor/packages/accounts-password/1.3.6/web.browser/password_client.js" />
<root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/da.coffee" /> <root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/da.coffee" />
<root url="file://C:/Tools/.meteor/packages/accounts-password/1.3.6/web.browser/password_tests.js" />
<root url="file://C:/Tools/.meteor/packages/ddp-common/1.2.8/web.browser/random_stream.js" /> <root url="file://C:/Tools/.meteor/packages/ddp-common/1.2.8/web.browser/random_stream.js" />
<root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/nl.coffee" /> <root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/nl.coffee" />
<root url="file://C:/Tools/.meteor/packages/ddp-common/1.2.8/web.browser/method_invocation.js" /> <root url="file://C:/Tools/.meteor/packages/ddp-common/1.2.8/web.browser/method_invocation.js" />
<root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/ca.coffee" /> <root url="file://C:/Tools/.meteor/packages/softwarerero_accounts-t9n/1.3.6/web.browser/t9n/ca.coffee" />
<root url="file://C:/Tools/.meteor/packages/ddp-common/1.2.8/web.browser/namespace.js" /> <root url="file://C:/Tools/.meteor/packages/ddp-common/1.2.8/web.browser/namespace.js" />
<root url="file://C:/Tools/.meteor/packages/accounts-password/1.3.6/web.browser/password_tests_setup.js" />
<root url="file://C:/Tools/.meteor/packages/ddp-common/1.2.8/web.browser/utils.js" /> <root url="file://C:/Tools/.meteor/packages/ddp-common/1.2.8/web.browser/utils.js" />
<root url="file://C:/Tools/.meteor/packages/accounts-password/1.3.6/web.browser/email_tests.js" />
<root url="file://C:/Tools/.meteor/packages/ddp-common/1.2.8/web.browser/heartbeat.js" /> <root url="file://C:/Tools/.meteor/packages/ddp-common/1.2.8/web.browser/heartbeat.js" />
<root url="file://C:/Tools/.meteor/packages/accounts-base/1.2.17/web.browser/accounts_client_tests.js" />
<root url="file://C:/Tools/.meteor/packages/accounts-base/1.2.17/web.browser/accounts_client.js" />
<root url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/methods.js" /> <root url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/methods.js" />
<root url="file://C:/Tools/.meteor/packages/accounts-base/1.2.17/web.browser/accounts_rate_limit.js" />
<root url="file://C:/Tools/.meteor/packages/fastclick/1.0.13/web.browser/pre.js" /> <root url="file://C:/Tools/.meteor/packages/fastclick/1.0.13/web.browser/pre.js" />
<root url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/field.js" /> <root url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/field.js" />
<root url="file://C:/Tools/.meteor/packages/accounts-base/1.2.17/web.browser/accounts_server.js" />
<root url="file://C:/Tools/.meteor/packages/fastclick/1.0.13/web.browser/post.js" /> <root url="file://C:/Tools/.meteor/packages/fastclick/1.0.13/web.browser/post.js" />
<root url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/utils.js" /> <root url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/utils.js" />
<root url="file://C:/Tools/.meteor/packages/accounts-base/1.2.17/web.browser/accounts_tests_setup.js" />
<root url="file://C:/Tools/.meteor/packages/fastclick/1.0.13/web.browser/fastclick.js" /> <root url="file://C:/Tools/.meteor/packages/fastclick/1.0.13/web.browser/fastclick.js" />
<root url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/client.js" /> <root url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/client.js" />
<root url="file://C:/Tools/.meteor/packages/accounts-base/1.2.17/web.browser/accounts_reconnect_tests.js" />
<root url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/core.js" /> <root url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/core.js" />
<root url="file://C:/Tools/.meteor/packages/accounts-base/1.2.17/web.browser/accounts_tests.js" />
<root url="file://C:/Tools/.meteor/packages/accounts-base/1.2.17/web.browser/accounts_url_tests.js" />
<root url="file://C:/Tools/.meteor/packages/html-tools/1.0.11/web.browser/scanner.js" /> <root url="file://C:/Tools/.meteor/packages/html-tools/1.0.11/web.browser/scanner.js" />
<root url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/templates_helpers/at_oauth.js" /> <root url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/templates_helpers/at_oauth.js" />
<root url="file://C:/Tools/.meteor/packages/accounts-base/1.2.17/web.browser/client_tests.js" />
<root url="file://C:/Tools/.meteor/packages/html-tools/1.0.11/web.browser/templatetag.js" /> <root url="file://C:/Tools/.meteor/packages/html-tools/1.0.11/web.browser/templatetag.js" />
<root url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/templates_helpers/at_form.js" /> <root url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/templates_helpers/at_form.js" />
<root url="file://C:/Tools/.meteor/packages/accounts-base/1.2.17/web.browser/localstorage_token.js" />
<root url="file://C:/Tools/.meteor/packages/html-tools/1.0.11/web.browser/tokenize.js" /> <root url="file://C:/Tools/.meteor/packages/html-tools/1.0.11/web.browser/tokenize.js" />
<root url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/templates_helpers/at_sep.js" /> <root url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/templates_helpers/at_sep.js" />
<root url="file://C:/Tools/.meteor/packages/accounts-base/1.2.17/web.browser/accounts_common.js" />
<root url="file://C:/Tools/.meteor/packages/html-tools/1.0.11/web.browser/utils.js" /> <root url="file://C:/Tools/.meteor/packages/html-tools/1.0.11/web.browser/utils.js" />
<root url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/templates_helpers/at_message.js" /> <root url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/templates_helpers/at_message.js" />
<root url="file://C:/Tools/.meteor/packages/accounts-base/1.2.17/web.browser/url_server.js" />
<root url="file://C:/Tools/.meteor/packages/html-tools/1.0.11/web.browser/charref.js" /> <root url="file://C:/Tools/.meteor/packages/html-tools/1.0.11/web.browser/charref.js" />
<root url="file://C:/Tools/.meteor/packages/accounts-base/1.2.17/web.browser/client_main.js" />
<root url="file://C:/Tools/.meteor/packages/html-tools/1.0.11/web.browser/parse.js" /> <root url="file://C:/Tools/.meteor/packages/html-tools/1.0.11/web.browser/parse.js" />
<root url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/templates_helpers/at_pwd_form.js" /> <root url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/templates_helpers/at_pwd_form.js" />
<root url="file://C:/Tools/.meteor/packages/accounts-base/1.2.17/web.browser/server_main.js" />
<root url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/templates_helpers/at_nav_button.js" /> <root url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/templates_helpers/at_nav_button.js" />
<root url="file://C:/Tools/.meteor/packages/accounts-base/1.2.17/web.browser/server_tests.js" />
<root url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/templates_helpers/at_pwd_form_btn.js" /> <root url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/templates_helpers/at_pwd_form_btn.js" />
<root url="file://C:/Tools/.meteor/packages/accounts-base/1.2.17/web.browser/url_client.js" />
<root url="file://C:/Tools/.meteor/packages/htmljs/1.0.11/web.browser/html.js" /> <root url="file://C:/Tools/.meteor/packages/htmljs/1.0.11/web.browser/html.js" />
<root url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/templates_helpers/at_social.js" /> <root url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/templates_helpers/at_social.js" />
<root url="file://C:/Tools/.meteor/packages/aldeed_collection2-core/1.2.0/web.browser/lib/collection2.js" /> <root url="file://C:/Tools/.meteor/packages/aldeed_collection2-core/1.2.0/web.browser/lib/collection2.js" />
@@ -563,13 +601,14 @@
<root url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/templates_helpers/at_title.js" /> <root url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/templates_helpers/at_title.js" />
<root url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/templates_helpers/at_reCaptcha.js" /> <root url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/templates_helpers/at_reCaptcha.js" />
<root url="file://C:/Tools/.meteor/packages/aldeed_schema-index/1.1.1/web.browser/lib/indexing.js" /> <root url="file://C:/Tools/.meteor/packages/aldeed_schema-index/1.1.1/web.browser/lib/indexing.js" />
<root url="file://C:/Tools/.meteor/packages/ostrio_loggermongo/1.1.3/web.browser/loggermongo.coffee" />
<root url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/templates_helpers/at_input.js" /> <root url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/templates_helpers/at_input.js" />
<root url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/templates_helpers/at_resend_verification_email_link.js" /> <root url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/templates_helpers/at_resend_verification_email_link.js" />
<root url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/templates_helpers/at_signup_link.js" /> <root url="file://C:/Tools/.meteor/packages/useraccounts_core/1.14.2/web.browser/lib/templates_helpers/at_signup_link.js" />
<root url="file://C:/Tools/.meteor/packages/ostrio_logger/1.1.2/web.browser/logger.coffee" />
<root url="file://C:/Tools/.meteor/packages/useraccounts_flow-routing/1.14.2/web.browser/lib/core.js" /> <root url="file://C:/Tools/.meteor/packages/useraccounts_flow-routing/1.14.2/web.browser/lib/core.js" />
<root url="file://C:/Tools/.meteor/packages/useraccounts_flow-routing/1.14.2/web.browser/lib/client/client.js" /> <root url="file://C:/Tools/.meteor/packages/useraccounts_flow-routing/1.14.2/web.browser/lib/client/client.js" />
<root url="file://C:/Tools/.meteor/packages/useraccounts_flow-routing/1.14.2/web.browser/lib/client/templates_helpers/at_input.js" /> <root url="file://C:/Tools/.meteor/packages/useraccounts_flow-routing/1.14.2/web.browser/lib/client/templates_helpers/at_input.js" />
<root url="file://C:/Tools/.meteor/packages/observe-sequence/1.0.14/web.browser/observe_sequence.js" />
<root url="file://C:/Tools/.meteor/packages/reload/1.1.11/web.browser/deprecated.js" /> <root url="file://C:/Tools/.meteor/packages/reload/1.1.11/web.browser/deprecated.js" />
<root url="file://C:/Tools/.meteor/packages/reload/1.1.11/web.browser/reload.js" /> <root url="file://C:/Tools/.meteor/packages/reload/1.1.11/web.browser/reload.js" />
<root url="file://C:/Tools/.meteor/packages/retry/1.0.9/web.browser/retry.js" /> <root url="file://C:/Tools/.meteor/packages/retry/1.0.9/web.browser/retry.js" />
@@ -577,21 +616,8 @@
<root url="file://C:/Tools/.meteor/packages/fortawesome_fontawesome/4.7.0/web.browser/upstream/css/font-awesome.css" /> <root url="file://C:/Tools/.meteor/packages/fortawesome_fontawesome/4.7.0/web.browser/upstream/css/font-awesome.css" />
<root url="file://C:/Tools/.meteor/packages/spacebars/1.0.13/web.browser/spacebars-runtime.js" /> <root url="file://C:/Tools/.meteor/packages/spacebars/1.0.13/web.browser/spacebars-runtime.js" />
<root url="file://C:/Tools/.meteor/packages/poorvavyas_es6-shim/0.21.1/web.browser/es6-shim.js" /> <root url="file://C:/Tools/.meteor/packages/poorvavyas_es6-shim/0.21.1/web.browser/es6-shim.js" />
<root url="file://C:/Tools/.meteor/packages/spacebars-compiler/1.0.13/web.browser/react.js" />
<root url="file://C:/Tools/.meteor/packages/spacebars-compiler/1.0.13/web.browser/compiler.js" />
<root url="file://C:/Tools/.meteor/packages/spacebars-compiler/1.0.13/web.browser/templatetag.js" />
<root url="file://C:/Tools/.meteor/packages/spacebars-compiler/1.0.13/web.browser/codegen.js" />
<root url="file://C:/Tools/.meteor/packages/spacebars-compiler/1.0.13/web.browser/optimizer.js" />
<root url="file://C:/Tools/.meteor/packages/templating-runtime/1.2.15/web.browser/dynamic.js" /> <root url="file://C:/Tools/.meteor/packages/templating-runtime/1.2.15/web.browser/dynamic.js" />
<root url="file://C:/Tools/.meteor/packages/templating-runtime/1.2.15/web.browser/templating.js" /> <root url="file://C:/Tools/.meteor/packages/templating-runtime/1.2.15/web.browser/templating.js" />
<root url="file://C:/Tools/.meteor/packages/templating-tools/1.0.5/web.browser/templating-tools.js" />
<root url="file://C:/Tools/.meteor/packages/templating-tools/1.0.5/web.browser/compile-tags-with-spacebars.js" />
<root url="file://C:/Tools/.meteor/packages/templating-tools/1.0.5/web.browser/html-scanner.js" />
<root url="file://C:/Tools/.meteor/packages/templating-tools/1.0.5/web.browser/html-scanner-tests.js" />
<root url="file://C:/Tools/.meteor/packages/templating-tools/1.0.5/web.browser/throw-compile-error.js" />
<root url="file://C:/Tools/.meteor/packages/templating-tools/1.0.5/web.browser/code-generation.js" />
<root url="file://C:/Tools/.meteor/packages/url/1.0.11/web.browser/url_common.js" />
<root url="file://C:/Tools/.meteor/packages/url/1.0.11/web.browser/url_client.js" />
<root url="file://C:/Tools/.meteor/packages/meteortoys_sub/3.0.0/web.browser/client/main.css" /> <root url="file://C:/Tools/.meteor/packages/meteortoys_sub/3.0.0/web.browser/client/main.css" />
<root url="file://C:/Tools/.meteor/packages/meteortoys_sub/3.0.0/web.browser/client/main.js" /> <root url="file://C:/Tools/.meteor/packages/meteortoys_sub/3.0.0/web.browser/client/main.js" />
<root url="file://C:/Tools/.meteor/packages/meteortoys_sub/3.0.0/web.browser/config/config.css" /> <root url="file://C:/Tools/.meteor/packages/meteortoys_sub/3.0.0/web.browser/config/config.css" />
@@ -602,10 +628,7 @@
<root url="file://C:/Tools/.meteor/packages/meteortoys_throttle/3.0.0/web.browser/config/config.css" /> <root url="file://C:/Tools/.meteor/packages/meteortoys_throttle/3.0.0/web.browser/config/config.css" />
<root url="file://C:/Tools/.meteor/packages/meteortoys_throttle/3.0.0/web.browser/config/config.js" /> <root url="file://C:/Tools/.meteor/packages/meteortoys_throttle/3.0.0/web.browser/config/config.js" />
<root url="file://C:/Tools/.meteor/packages/callback-hook/1.0.10/web.browser/hook.js" /> <root url="file://C:/Tools/.meteor/packages/callback-hook/1.0.10/web.browser/hook.js" />
<root url="file://C:/Tools/.meteor/packages/check/1.2.4/web.browser/match.js" />
<root url="file://C:/Tools/.meteor/packages/check/1.2.4/web.browser/isPlainObject.js" />
<root url="file://C:/Tools/.meteor/packages/aldeed_simple-schema/1.5.3/web.browser/simple-schema-utility.js" /> <root url="file://C:/Tools/.meteor/packages/aldeed_simple-schema/1.5.3/web.browser/simple-schema-utility.js" />
<root url="file://C:/Tools/.meteor/packages/check/1.2.4/web.browser/match_test.js" />
<root url="file://C:/Tools/.meteor/packages/aldeed_simple-schema/1.5.3/web.browser/string-humanize.js" /> <root url="file://C:/Tools/.meteor/packages/aldeed_simple-schema/1.5.3/web.browser/string-humanize.js" />
<root url="file://C:/Tools/.meteor/packages/aldeed_simple-schema/1.5.3/web.browser/simple-schema-validation-new.js" /> <root url="file://C:/Tools/.meteor/packages/aldeed_simple-schema/1.5.3/web.browser/simple-schema-validation-new.js" />
<root url="file://C:/Tools/.meteor/packages/aldeed_simple-schema/1.5.3/web.browser/simple-schema.js" /> <root url="file://C:/Tools/.meteor/packages/aldeed_simple-schema/1.5.3/web.browser/simple-schema.js" />
@@ -617,18 +640,55 @@
<root url="file://C:/Tools/.meteor/packages/meteortoys_toykit/3.0.4/web.browser/lib/privateAPI.js" /> <root url="file://C:/Tools/.meteor/packages/meteortoys_toykit/3.0.4/web.browser/lib/privateAPI.js" />
<root url="file://C:/Tools/.meteor/packages/mdg_validation-error/0.2.0/web.browser/validation-error.js" /> <root url="file://C:/Tools/.meteor/packages/mdg_validation-error/0.2.0/web.browser/validation-error.js" />
<root url="file://C:/Tools/.meteor/packages/meteortoys_toykit/3.0.4/web.browser/style/toykit.css" /> <root url="file://C:/Tools/.meteor/packages/meteortoys_toykit/3.0.4/web.browser/style/toykit.css" />
<root url="file://C:/Tools/.meteor/packages/launch-screen/1.1.1/web.browser/mobile-launch-screen.js" />
<root url="file://C:/Tools/.meteor/packages/launch-screen/1.1.1/web.browser/default-behavior.js" />
<root url="file://C:/Tools/.meteor/packages/logging/1.1.17/web.browser/logging_cordova.js" />
<root url="file://C:/Tools/.meteor/packages/meteortoys_toykit/3.0.4/web.browser/client/main.js" /> <root url="file://C:/Tools/.meteor/packages/meteortoys_toykit/3.0.4/web.browser/client/main.js" />
<root url="file://C:/Tools/.meteor/packages/logging/1.1.17/web.browser/logging.js" />
<root url="file://C:/Tools/.meteor/packages/logging/1.1.17/web.browser/logging_test.js" />
<root url="file://C:/Tools/.meteor/packages/msavin_jetsetter/2.0.0/web.browser/style/JetSetter.css" /> <root url="file://C:/Tools/.meteor/packages/msavin_jetsetter/2.0.0/web.browser/style/JetSetter.css" />
<root url="file://C:/Tools/.meteor/packages/msavin_jetsetter/2.0.0/web.browser/client/main.js" /> <root url="file://C:/Tools/.meteor/packages/msavin_jetsetter/2.0.0/web.browser/client/main.js" />
<root url="file://C:/Tools/.meteor/packages/msavin_jetsetter/2.0.0/web.browser/client/functions.js" /> <root url="file://C:/Tools/.meteor/packages/msavin_jetsetter/2.0.0/web.browser/client/functions.js" />
<root url="file://C:/Tools/.meteor/packages/blaze/2.3.2/web.browser/materializer.js" />
<root url="file://C:/Tools/.meteor/packages/blaze/2.3.2/web.browser/view.js" />
<root url="file://C:/Tools/.meteor/packages/blaze/2.3.2/web.browser/dombackend.js" />
<root url="file://C:/Tools/.meteor/packages/blaze/2.3.2/web.browser/backcompat.js" />
<root url="file://C:/Tools/.meteor/packages/msavin_jetsetter/2.0.0/web.browser/client/row/main.js" /> <root url="file://C:/Tools/.meteor/packages/msavin_jetsetter/2.0.0/web.browser/client/row/main.js" />
<root url="file://C:/Tools/.meteor/packages/blaze/2.3.2/web.browser/attrs.js" />
<root url="file://C:/Tools/.meteor/packages/blaze/2.3.2/web.browser/exceptions.js" />
<root url="file://C:/Tools/.meteor/packages/blaze/2.3.2/web.browser/template.js" />
<root url="file://C:/Tools/.meteor/packages/blaze/2.3.2/web.browser/preamble.js" />
<root url="file://C:/Tools/.meteor/packages/blaze/2.3.2/web.browser/builtins.js" />
<root url="file://C:/Tools/.meteor/packages/msavin_jetsetter/2.0.0/web.browser/client/row_dict/main.js" /> <root url="file://C:/Tools/.meteor/packages/msavin_jetsetter/2.0.0/web.browser/client/row_dict/main.js" />
<root url="file://C:/Tools/.meteor/packages/blaze/2.3.2/web.browser/lookup.js" />
<root url="file://C:/Tools/.meteor/packages/blaze/2.3.2/web.browser/events.js" />
<root url="file://C:/Tools/.meteor/packages/msavin_jetsetter/2.0.0/web.browser/client/_component/component.js" /> <root url="file://C:/Tools/.meteor/packages/msavin_jetsetter/2.0.0/web.browser/client/_component/component.js" />
<root url="file://C:/Tools/.meteor/packages/check/1.2.5/web.browser/match.js" />
<root url="file://C:/Tools/.meteor/packages/blaze/2.3.2/web.browser/domrange.js" />
<root url="file://C:/Tools/.meteor/packages/msavin_jetsetter/2.0.0/web.browser/client/row_editor/JetSetter_editor.js" /> <root url="file://C:/Tools/.meteor/packages/msavin_jetsetter/2.0.0/web.browser/client/row_editor/JetSetter_editor.js" />
<root url="file://C:/Tools/.meteor/packages/check/1.2.5/web.browser/match_test.js" />
<root url="file://C:/Tools/.meteor/packages/check/1.2.5/web.browser/isPlainObject.js" />
<root url="file://C:/Tools/.meteor/packages/ddp-client/1.3.4/web.browser/stream_client_sockjs.js" />
<root url="file://C:/Tools/.meteor/packages/ddp-client/1.3.4/web.browser/stream_client_tests.js" />
<root url="file://C:/Tools/.meteor/packages/msavin_jetsetter/2.0.0/web.browser/client/row_header/JetSetter_header.js" /> <root url="file://C:/Tools/.meteor/packages/msavin_jetsetter/2.0.0/web.browser/client/row_header/JetSetter_header.js" />
<root url="file://C:/Tools/.meteor/packages/ddp-client/1.3.4/web.browser/stream_client_common.js" />
<root url="file://C:/Tools/.meteor/packages/ddp-client/1.3.4/web.browser/sockjs-0.3.4.js" />
<root url="file://C:/Tools/.meteor/packages/ddp-client/1.3.4/web.browser/random_stream_tests.js" />
<root url="file://C:/Tools/.meteor/packages/ddp-client/1.3.4/web.browser/stub_stream.js" />
<root url="file://C:/Tools/.meteor/packages/ddp-client/1.3.4/web.browser/client_convenience.js" />
<root url="file://C:/Tools/.meteor/packages/ddp-client/1.3.4/web.browser/livedata_common.js" />
<root url="file://C:/Tools/.meteor/packages/ddp-client/1.3.4/web.browser/livedata_tests.js" />
<root url="file://C:/Tools/.meteor/packages/msavin_jetsetter/2.0.0/web.browser/client/dirtySession/main.js" /> <root url="file://C:/Tools/.meteor/packages/msavin_jetsetter/2.0.0/web.browser/client/dirtySession/main.js" />
<root url="file://C:/Tools/.meteor/packages/ddp-client/1.3.4/web.browser/livedata_connection_tests.js" />
<root url="file://C:/Tools/.meteor/packages/ddp-client/1.3.4/web.browser/livedata_test_service.js" />
<root url="file://C:/Tools/.meteor/packages/ddp-client/1.3.4/web.browser/random_stream.js" />
<root url="file://C:/Tools/.meteor/packages/msavin_jetsetter/2.0.0/web.browser/client/dirtySession/create/main.js" /> <root url="file://C:/Tools/.meteor/packages/msavin_jetsetter/2.0.0/web.browser/client/dirtySession/create/main.js" />
<root url="file://C:/Tools/.meteor/packages/ddp-client/1.3.4/web.browser/stream_tests.js" />
<root url="file://C:/Tools/.meteor/packages/ddp-client/1.3.4/web.browser/namespace.js" />
<root url="file://C:/Tools/.meteor/packages/ddp-client/1.3.4/web.browser/livedata_connection.js" />
<root url="file://C:/Tools/.meteor/packages/ddp-client/1.3.4/web.browser/stream_client_nodejs.js" />
<root url="file://C:/Tools/.meteor/packages/msavin_jetsetter/2.0.0/web.browser/client/dirtySession/editor/main.js" /> <root url="file://C:/Tools/.meteor/packages/msavin_jetsetter/2.0.0/web.browser/client/dirtySession/editor/main.js" />
<root url="file://C:/Tools/.meteor/packages/ddp-client/1.3.4/web.browser/id_map.js" />
<root url="file://C:/Tools/.meteor/packages/msavin_jetsetter/2.0.0/web.browser/client/dirtySession/session/main.js" /> <root url="file://C:/Tools/.meteor/packages/msavin_jetsetter/2.0.0/web.browser/client/dirtySession/session/main.js" />
<root url="file://C:/Tools/.meteor/packages/msavin_mongol/2.0.1/web.browser/lib/common.js" /> <root url="file://C:/Tools/.meteor/packages/msavin_mongol/2.0.1/web.browser/lib/common.js" />
<root url="file://C:/Tools/.meteor/packages/msavin_mongol/2.0.1/web.browser/style/Mongol.css" /> <root url="file://C:/Tools/.meteor/packages/msavin_mongol/2.0.1/web.browser/style/Mongol.css" />
@@ -645,14 +705,8 @@
<root url="file://C:/Tools/.meteor/packages/msavin_mongol/2.0.1/web.browser/client/row_account/account.js" /> <root url="file://C:/Tools/.meteor/packages/msavin_mongol/2.0.1/web.browser/client/row_account/account.js" />
<root url="file://C:/Tools/.meteor/packages/msavin_mongol/2.0.1/web.browser/client/row_account/accountViewer.js" /> <root url="file://C:/Tools/.meteor/packages/msavin_mongol/2.0.1/web.browser/client/row_account/accountViewer.js" />
<root url="file://C:/Tools/.meteor/packages/msavin_mongol/2.0.1/web.browser/client/doc_controls/docControls.js" /> <root url="file://C:/Tools/.meteor/packages/msavin_mongol/2.0.1/web.browser/client/doc_controls/docControls.js" />
<root url="file://C:/Tools/.meteor/packages/http/1.1.8/web.browser/deprecated.js" />
<root url="file://C:/Tools/.meteor/packages/http/1.1.8/web.browser/test_responder.js" />
<root url="file://C:/Tools/.meteor/packages/msavin_mongol/2.0.1/web.browser/client/row_collection/collections.js" /> <root url="file://C:/Tools/.meteor/packages/msavin_mongol/2.0.1/web.browser/client/row_collection/collections.js" />
<root url="file://C:/Tools/.meteor/packages/http/1.1.8/web.browser/httpcall_tests.js" />
<root url="file://C:/Tools/.meteor/packages/http/1.1.8/web.browser/httpcall_common.js" />
<root url="file://C:/Tools/.meteor/packages/http/1.1.8/web.browser/httpcall_server.js" />
<root url="file://C:/Tools/.meteor/packages/msavin_mongol/2.0.1/web.browser/client/row_subscriptions/main.js" /> <root url="file://C:/Tools/.meteor/packages/msavin_mongol/2.0.1/web.browser/client/row_subscriptions/main.js" />
<root url="file://C:/Tools/.meteor/packages/http/1.1.8/web.browser/httpcall_client.js" />
<root url="file://C:/Tools/.meteor/packages/msavin_mongol/2.0.1/web.browser/client/row_collection_notFound/notFound.js" /> <root url="file://C:/Tools/.meteor/packages/msavin_mongol/2.0.1/web.browser/client/row_collection_notFound/notFound.js" />
<root url="file://C:/Tools/.meteor/packages/kadira_flow-router/2.12.1/web.browser/lib/router.js" /> <root url="file://C:/Tools/.meteor/packages/kadira_flow-router/2.12.1/web.browser/lib/router.js" />
<root url="file://C:/Tools/.meteor/packages/ordered-dict/1.0.9/web.browser/ordered_dict.js" /> <root url="file://C:/Tools/.meteor/packages/ordered-dict/1.0.9/web.browser/ordered_dict.js" />
@@ -668,38 +722,30 @@
<root url="file://C:/Tools/.meteor/packages/kadira_flow-router/2.12.1/web.browser/client/route.js" /> <root url="file://C:/Tools/.meteor/packages/kadira_flow-router/2.12.1/web.browser/client/route.js" />
<root url="file://C:/Tools/.meteor/packages/kadira_flow-router/2.12.1/web.browser/test/client/_helpers.js" /> <root url="file://C:/Tools/.meteor/packages/kadira_flow-router/2.12.1/web.browser/test/client/_helpers.js" />
<root url="file://C:/Tools/.meteor/packages/diff-sequence/1.0.7/web.browser/diff.js" /> <root url="file://C:/Tools/.meteor/packages/diff-sequence/1.0.7/web.browser/diff.js" />
<root url="file://C:/Tools/.meteor/packages/modules/0.8.2/web.browser/process.js" />
<root url="file://C:/Tools/.meteor/packages/kadira_flow-router/2.12.1/web.browser/test/client/triggers.js" /> <root url="file://C:/Tools/.meteor/packages/kadira_flow-router/2.12.1/web.browser/test/client/triggers.js" />
<root url="file://C:/Tools/.meteor/packages/modules/0.8.2/web.browser/install-packages.js" />
<root url="file://C:/Tools/.meteor/packages/kadira_flow-router/2.12.1/web.browser/test/common/fast_render_route.js" /> <root url="file://C:/Tools/.meteor/packages/kadira_flow-router/2.12.1/web.browser/test/common/fast_render_route.js" />
<root url="file://C:/Tools/.meteor/packages/modules/0.8.2/web.browser/css.js" />
<root url="file://C:/Tools/.meteor/packages/ecmascript-runtime/0.3.15/web.browser/runtime-tests.js" /> <root url="file://C:/Tools/.meteor/packages/ecmascript-runtime/0.3.15/web.browser/runtime-tests.js" />
<root url="file://C:/Tools/.meteor/packages/modules/0.8.2/web.browser/client.js" />
<root url="file://C:/Tools/.meteor/packages/ecmascript-runtime/0.3.15/web.browser/runtime.js" /> <root url="file://C:/Tools/.meteor/packages/ecmascript-runtime/0.3.15/web.browser/runtime.js" />
<root url="file://C:/Tools/.meteor/packages/accounts-base/1.2.14/web.browser/client_main.js" /> <root url="file://C:/Tools/.meteor/packages/modules/0.8.2/web.browser/stubs.js" />
<root url="file://C:/Tools/.meteor/packages/accounts-base/1.2.14/web.browser/server_main.js" /> <root url="file://C:/Tools/.meteor/packages/modules/0.8.2/web.browser/reify.js" />
<root url="file://C:/Tools/.meteor/packages/accounts-base/1.2.14/web.browser/server_tests.js" /> <root url="file://C:/Tools/.meteor/packages/modules/0.8.2/web.browser/server.js" />
<root url="file://C:/Tools/.meteor/packages/accounts-base/1.2.14/web.browser/url_client.js" /> <root url="file://C:/Tools/.meteor/packages/modules/0.8.2/web.browser/buffer.js" />
<root url="file://C:/Tools/.meteor/packages/accounts-base/1.2.14/web.browser/client_tests.js" />
<root url="file://C:/Tools/.meteor/packages/accounts-base/1.2.14/web.browser/localstorage_token.js" />
<root url="file://C:/Tools/.meteor/packages/accounts-base/1.2.14/web.browser/accounts_common.js" />
<root url="file://C:/Tools/.meteor/packages/accounts-base/1.2.14/web.browser/url_server.js" />
<root url="file://C:/Tools/.meteor/packages/accounts-base/1.2.14/web.browser/accounts_reconnect_tests.js" />
<root url="file://C:/Tools/.meteor/packages/accounts-base/1.2.14/web.browser/accounts_tests.js" />
<root url="file://C:/Tools/.meteor/packages/accounts-base/1.2.14/web.browser/accounts_url_tests.js" />
<root url="file://C:/Tools/.meteor/packages/random/1.0.10/web.browser/deprecated.js" /> <root url="file://C:/Tools/.meteor/packages/random/1.0.10/web.browser/deprecated.js" />
<root url="file://C:/Tools/.meteor/packages/accounts-base/1.2.14/web.browser/accounts_client.js" />
<root url="file://C:/Tools/.meteor/packages/random/1.0.10/web.browser/random_tests.js" /> <root url="file://C:/Tools/.meteor/packages/random/1.0.10/web.browser/random_tests.js" />
<root url="file://C:/Tools/.meteor/packages/accounts-base/1.2.14/web.browser/accounts_rate_limit.js" />
<root url="file://C:/Tools/.meteor/packages/random/1.0.10/web.browser/random.js" /> <root url="file://C:/Tools/.meteor/packages/random/1.0.10/web.browser/random.js" />
<root url="file://C:/Tools/.meteor/packages/accounts-base/1.2.14/web.browser/accounts_server.js" /> <root url="file://C:/Tools/.meteor/packages/http/1.2.12/web.browser/httpcall_tests.js" />
<root url="file://C:/Tools/.meteor/packages/rate-limit/1.0.6/web.browser/rate-limit.js" /> <root url="file://C:/Tools/.meteor/packages/http/1.2.12/web.browser/test_responder.js" />
<root url="file://C:/Tools/.meteor/packages/accounts-password/1.3.3/web.browser/password_tests_setup.js" /> <root url="file://C:/Tools/.meteor/packages/http/1.2.12/web.browser/deprecated.js" />
<root url="file://C:/Tools/.meteor/packages/accounts-password/1.3.3/web.browser/email_tests.js" />
<root url="file://C:/Tools/.meteor/packages/accounts-password/1.3.3/web.browser/email_templates.js" />
<root url="file://C:/Tools/.meteor/packages/reactive-dict/1.1.8/web.browser/reactive-dict-tests.js" /> <root url="file://C:/Tools/.meteor/packages/reactive-dict/1.1.8/web.browser/reactive-dict-tests.js" />
<root url="file://C:/Tools/.meteor/packages/accounts-password/1.3.3/web.browser/email_tests_setup.js" /> <root url="file://C:/Tools/.meteor/packages/http/1.2.12/web.browser/httpcall_client.js" />
<root url="file://C:/Tools/.meteor/packages/reactive-dict/1.1.8/web.browser/reactive-dict.js" /> <root url="file://C:/Tools/.meteor/packages/reactive-dict/1.1.8/web.browser/reactive-dict.js" />
<root url="file://C:/Tools/.meteor/packages/accounts-password/1.3.3/web.browser/password_client.js" /> <root url="file://C:/Tools/.meteor/packages/http/1.2.12/web.browser/httpcall_server.js" />
<root url="file://C:/Tools/.meteor/packages/http/1.2.12/web.browser/httpcall_common.js" />
<root url="file://C:/Tools/.meteor/packages/reactive-dict/1.1.8/web.browser/migration.js" /> <root url="file://C:/Tools/.meteor/packages/reactive-dict/1.1.8/web.browser/migration.js" />
<root url="file://C:/Tools/.meteor/packages/accounts-password/1.3.3/web.browser/password_tests.js" />
<root url="file://C:/Tools/.meteor/packages/accounts-password/1.3.3/web.browser/password_server.js" />
<root url="file://C:/Tools/.meteor/packages/juliancwirko_s-alert/3.2.0/web.browser/client/s-alert-collection.js" /> <root url="file://C:/Tools/.meteor/packages/juliancwirko_s-alert/3.2.0/web.browser/client/s-alert-collection.js" />
<root url="file://C:/Tools/.meteor/packages/juliancwirko_s-alert/3.2.0/web.browser/client/s-alert-template.js" /> <root url="file://C:/Tools/.meteor/packages/juliancwirko_s-alert/3.2.0/web.browser/client/s-alert-template.js" />
<root url="file://C:/Tools/.meteor/packages/juliancwirko_s-alert/3.2.0/web.browser/client/s-alert-default.css" /> <root url="file://C:/Tools/.meteor/packages/juliancwirko_s-alert/3.2.0/web.browser/client/s-alert-default.css" />
@@ -711,23 +757,15 @@
<root url="file://C:/Tools/.meteor/packages/allow-deny/1.0.5/web.browser/allow-deny-tests.js" /> <root url="file://C:/Tools/.meteor/packages/allow-deny/1.0.5/web.browser/allow-deny-tests.js" />
<root url="file://C:/Tools/.meteor/packages/srp/1.0.10/web.browser/srp.js" /> <root url="file://C:/Tools/.meteor/packages/srp/1.0.10/web.browser/srp.js" />
<root url="file://C:/Tools/.meteor/packages/srp/1.0.10/web.browser/biginteger.js" /> <root url="file://C:/Tools/.meteor/packages/srp/1.0.10/web.browser/biginteger.js" />
<root url="file://C:/Tools/.meteor/packages/tracker/1.1.1/web.browser/deprecated.js" />
<root url="file://C:/Tools/.meteor/packages/tracker/1.1.1/web.browser/tracker.js" />
<root url="file://C:/Tools/.meteor/packages/underscore/1.0.10/web.browser/underscore.js" /> <root url="file://C:/Tools/.meteor/packages/underscore/1.0.10/web.browser/underscore.js" />
<root url="file://C:/Tools/.meteor/packages/underscore/1.0.10/web.browser/pre.js" /> <root url="file://C:/Tools/.meteor/packages/underscore/1.0.10/web.browser/pre.js" />
<root url="file://C:/Tools/.meteor/packages/underscore/1.0.10/web.browser/post.js" /> <root url="file://C:/Tools/.meteor/packages/underscore/1.0.10/web.browser/post.js" />
<root url="file://C:/Tools/.meteor/packages/webapp/1.3.12/web.browser/webapp_client_tests.js" /> <root url="file://C:/Tools/.meteor/packages/modules-runtime/0.7.10/web.browser/modules-runtime.js" />
<root url="file://C:/Tools/.meteor/packages/webapp/1.3.12/web.browser/webapp_tests.js" />
<root url="file://C:/Tools/.meteor/packages/webapp/1.3.12/web.browser/webapp_cordova.js" />
<root url="file://C:/Tools/.meteor/packages/webapp/1.3.12/web.browser/webapp_client.js" />
<root url="file://C:/Tools/.meteor/packages/webapp/1.3.12/web.browser/webapp_server.js" />
<root url="file://C:/Tools/.meteor/packages/id-map/1.0.9/web.browser/id-map.js" /> <root url="file://C:/Tools/.meteor/packages/id-map/1.0.9/web.browser/id-map.js" />
<root url="file://C:/Tools/.meteor/packages/jquery/1.11.10/web.browser/jquery.js" /> <root url="file://C:/Tools/.meteor/packages/jquery/1.11.10/web.browser/jquery.js" />
<root url="file://C:/Tools/.meteor/packages/jquery/1.11.10/web.browser/main.js" /> <root url="file://C:/Tools/.meteor/packages/jquery/1.11.10/web.browser/main.js" />
<root url="file://C:/Tools/.meteor/packages/localstorage/1.0.12/web.browser/localstorage.js" /> <root url="file://C:/Tools/.meteor/packages/localstorage/1.0.12/web.browser/localstorage.js" />
<root url="file://C:/Tools/.meteor/packages/logging/1.1.16/web.browser/logging_test.js" /> <root url="file://C:/Tools/.meteor/packages/modules-runtime/0.7.10/web.browser/.npm/package/node_modules/install/install.js" />
<root url="file://C:/Tools/.meteor/packages/logging/1.1.16/web.browser/logging.js" />
<root url="file://C:/Tools/.meteor/packages/logging/1.1.16/web.browser/logging_cordova.js" />
<root url="file://C:/Tools/.meteor/packages/ejson/1.0.13/web.browser/stringify.js" /> <root url="file://C:/Tools/.meteor/packages/ejson/1.0.13/web.browser/stringify.js" />
<root url="file://C:/Tools/.meteor/packages/ejson/1.0.13/web.browser/ejson.js" /> <root url="file://C:/Tools/.meteor/packages/ejson/1.0.13/web.browser/ejson.js" />
<root url="file://C:/Tools/.meteor/packages/es5-shim/4.6.15/web.browser/export_globals.js" /> <root url="file://C:/Tools/.meteor/packages/es5-shim/4.6.15/web.browser/export_globals.js" />
@@ -735,23 +773,12 @@
<root url="file://C:/Tools/.meteor/packages/es5-shim/4.6.15/web.browser/console.js" /> <root url="file://C:/Tools/.meteor/packages/es5-shim/4.6.15/web.browser/console.js" />
<root url="file://C:/Tools/.meteor/packages/es5-shim/4.6.15/web.browser/client.js" /> <root url="file://C:/Tools/.meteor/packages/es5-shim/4.6.15/web.browser/client.js" />
<root url="file://C:/Tools/.meteor/packages/es5-shim/4.6.15/web.browser/server.js" /> <root url="file://C:/Tools/.meteor/packages/es5-shim/4.6.15/web.browser/server.js" />
<root url="file://C:/Tools/.meteor/packages/modules/0.7.7/web.browser/install-packages.js" />
<root url="file://C:/Tools/.meteor/packages/modules/0.7.7/web.browser/process.js" />
<root url="file://C:/Tools/.meteor/packages/modules/0.7.7/web.browser/stubs.js" />
<root url="file://C:/Tools/.meteor/packages/modules/0.7.7/web.browser/client.js" />
<root url="file://C:/Tools/.meteor/packages/modules/0.7.7/web.browser/css.js" />
<root url="file://C:/Tools/.meteor/packages/modules/0.7.7/web.browser/buffer.js" />
<root url="file://C:/Tools/.meteor/packages/modules/0.7.7/web.browser/server.js" />
<root url="file://C:/Tools/.meteor/packages/geojson-utils/1.0.10/web.browser/geojson-utils.js" /> <root url="file://C:/Tools/.meteor/packages/geojson-utils/1.0.10/web.browser/geojson-utils.js" />
<root url="file://C:/Tools/.meteor/packages/geojson-utils/1.0.10/web.browser/main.js" /> <root url="file://C:/Tools/.meteor/packages/geojson-utils/1.0.10/web.browser/main.js" />
<root url="file://C:/Tools/.meteor/packages/kadira_blaze-layout/2.3.0/web.browser/lib/client/namespace.js" /> <root url="file://C:/Tools/.meteor/packages/kadira_blaze-layout/2.3.0/web.browser/lib/client/namespace.js" />
<root url="file://C:/Tools/.meteor/packages/kadira_blaze-layout/2.3.0/web.browser/lib/client/layout.js" /> <root url="file://C:/Tools/.meteor/packages/kadira_blaze-layout/2.3.0/web.browser/lib/client/layout.js" />
<root url="file://C:/Tools/.meteor/packages/raix_eventemitter/0.1.3/web.browser/packages/raix_eventemitter.js" /> <root url="file://C:/Tools/.meteor/packages/raix_eventemitter/0.1.3/web.browser/packages/raix_eventemitter.js" />
<root url="file://C:/Tools/.meteor/packages/modules-runtime/0.7.7/web.browser/modules-runtime.js" />
<root url="file://C:/Tools/.meteor/packages/modules-runtime/0.7.7/web.browser/.npm/package/node_modules/install/install.js" />
<root url="file://C:/Tools/.meteor/packages/mongo-id/1.0.6/web.browser/id.js" /> <root url="file://C:/Tools/.meteor/packages/mongo-id/1.0.6/web.browser/id.js" />
<root url="file://C:/Tools/.meteor/packages/launch-screen/1.0.12/web.browser/default-behavior.js" />
<root url="file://C:/Tools/.meteor/packages/launch-screen/1.0.12/web.browser/mobile-launch-screen.js" />
<root url="file://C:/Tools/.meteor/packages/meteortoys_allthings/3.0.0/web.browser/main.js" /> <root url="file://C:/Tools/.meteor/packages/meteortoys_allthings/3.0.0/web.browser/main.js" />
<root url="file://C:/Tools/.meteor/packages/meteortoys_authenticate/3.0.0/web.browser/client/main.css" /> <root url="file://C:/Tools/.meteor/packages/meteortoys_authenticate/3.0.0/web.browser/client/main.css" />
<root url="file://C:/Tools/.meteor/packages/meteortoys_authenticate/3.0.0/web.browser/client/main.js" /> <root url="file://C:/Tools/.meteor/packages/meteortoys_authenticate/3.0.0/web.browser/client/main.js" />
@@ -802,7 +829,6 @@
<root url="file://C:/Tools/.meteor/packages/meteortoys_hotreload/3.0.0/web.browser/client/main.js" /> <root url="file://C:/Tools/.meteor/packages/meteortoys_hotreload/3.0.0/web.browser/client/main.js" />
<root url="file://C:/Tools/.meteor/packages/meteortoys_hotreload/3.0.0/web.browser/config/config.css" /> <root url="file://C:/Tools/.meteor/packages/meteortoys_hotreload/3.0.0/web.browser/config/config.css" />
<root url="file://C:/Tools/.meteor/packages/meteortoys_hotreload/3.0.0/web.browser/config/config.js" /> <root url="file://C:/Tools/.meteor/packages/meteortoys_hotreload/3.0.0/web.browser/config/config.js" />
<root url="file://C:/Tools/.meteor/packages/autoupdate/1.2.11/web.browser/autoupdate_client.js" />
</CLASSES> </CLASSES>
<SOURCES /> <SOURCES />
</library> </library>

File diff suppressed because it is too large Load Diff

View File

@@ -1,3 +1,3 @@
<component name="MarkdownNavigator.ProfileManager"> <component name="MarkdownNavigator.ProfileManager">
<settings default="" /> <settings default="" pdf-export="" />
</component> </component>

916
.idea/workspace.xml generated

File diff suppressed because it is too large Load Diff

View File

@@ -13,3 +13,4 @@ notices-for-facebook-graph-api-2
1.3.0-split-minifiers-package 1.3.0-split-minifiers-package
1.4.0-remove-old-dev-bundle-link 1.4.0-remove-old-dev-bundle-link
1.4.1-add-shell-server-package 1.4.1-add-shell-server-package
1.4.3-split-account-service-packages

View File

@@ -6,24 +6,24 @@
meteor-base@1.0.4 # Packages every Meteor app needs to have meteor-base@1.0.4 # Packages every Meteor app needs to have
mobile-experience@1.0.4 # Packages for a great mobile UX mobile-experience@1.0.4 # Packages for a great mobile UX
mongo@1.1.14 # The database Meteor supports right now mongo@1.1.17 # The database Meteor supports right now
blaze-html-templates@1.0.4 # Compile .html files into Meteor Blaze views blaze-html-templates@1.0.4 # Compile .html files into Meteor Blaze views
reactive-var@1.0.11 # Reactive variable for tracker reactive-var@1.0.11 # Reactive variable for tracker
reactive-dict@1.1.8 # ??? reactive-dict@1.1.8 # ???
jquery@1.11.10 # Helpful client-side library jquery@1.11.10 # Helpful client-side library
tracker@1.1.1 # Meteor's client-side reactive programming library tracker@1.1.3 # Meteor's client-side reactive programming library
tomwasd:history-polyfill # Adds IE 8/9 support for HTML5 history. tomwasd:history-polyfill # Adds IE 8/9 support for HTML5 history.
email@1.1.18 # Adds the Meteor/Email package for sending lost password emails email@1.2.1 # Adds the Meteor/Email package for sending lost password emails
standard-minifier-css@1.3.2 # CSS minifier run for production mode standard-minifier-css@1.3.4 # CSS minifier run for production mode
standard-minifier-js@1.2.1 # JS minifier run for production mode standard-minifier-js@2.0.0 # JS minifier run for production mode
es5-shim@4.6.15 # ECMAScript 5 compatibility for older browsers. es5-shim@4.6.15 # ECMAScript 5 compatibility for older browsers.
poorvavyas:es6-shim poorvavyas:es6-shim
ecmascript@0.6.1 # Enable ECMAScript2015+ syntax in app code ecmascript@0.7.3 # Enable ECMAScript2015+ syntax in app code
#accounts-ui #accounts-ui
#accounts-base #accounts-base
accounts-password@1.3.3 accounts-password@1.3.6
useraccounts:core useraccounts:core
useraccounts:bootstrap useraccounts:bootstrap
useraccounts:flow-routing # Configures email flows. Used for AccountsTemplates class. useraccounts:flow-routing # Configures email flows. Used for AccountsTemplates class.
@@ -34,12 +34,12 @@ arillo:flow-router-helpers # Provides various template helpers such as {{pathFo
#tomwasd:flow-router-seo #tomwasd:flow-router-seo
kadira:blaze-layout kadira:blaze-layout
shell-server@0.2.1 # ??? shell-server@0.2.3 # ???
meteortoys:allthings meteortoys:allthings
stylus@2.513.8 stylus@2.513.9
session@1.1.7 session@1.1.7
##browser-policy # Adds support for specifying browser level security rules related to content and what's allowed to laod on the page. ##browser-policy # Adds support for specifying browser level security rules related to content and what's allowed to laod on the page.
check@1.2.4 # Allows for checking the structure and types of arguments passed to Meteor methods and publications. check@1.2.5 # Allows for checking the structure and types of arguments passed to Meteor methods and publications.
#audit-argument-checks # Used in combination with the Check package for checking the structure and types of arguments passed to Meteor methods and publications. Automatically alerts when a method or publication does not use a check() call. #audit-argument-checks # Used in combination with the Check package for checking the structure and types of arguments passed to Meteor methods and publications. Automatically alerts when a method or publication does not use a check() call.
aldeed:simple-schema@1.5.3 aldeed:simple-schema@1.5.3
@@ -59,4 +59,6 @@ momentjs:moment
mizzao:bootboxjs # ??? mizzao:bootboxjs # ???
aldeed:template-extension aldeed:template-extension
juliancwirko:s-alert # Client error/alert handling juliancwirko:s-alert # Client error/alert handling
jcbernack:reactive-aggregate jcbernack:reactive-aggregate # Allows us to create a new client collection (from the server) with the contents being an aggregate of server data. Note that aggregation can only be done on the server currently as mini-mongo does not support it.
ostrio:logger
ostrio:loggermongo

View File

@@ -1 +1 @@
METEOR@1.4.2.7 METEOR@1.4.4.2

View File

@@ -1,5 +1,5 @@
accounts-base@1.2.14 accounts-base@1.2.17
accounts-password@1.3.3 accounts-password@1.3.6
alanning:roles@1.2.15 alanning:roles@1.2.15
aldeed:collection2@2.10.0 aldeed:collection2@2.10.0
aldeed:collection2-core@1.2.0 aldeed:collection2-core@1.2.0
@@ -9,31 +9,31 @@ aldeed:simple-schema@1.5.3
aldeed:template-extension@4.0.0 aldeed:template-extension@4.0.0
allow-deny@1.0.5 allow-deny@1.0.5
arillo:flow-router-helpers@0.5.2 arillo:flow-router-helpers@0.5.2
autoupdate@1.2.11 autoupdate@1.3.12
babel-compiler@6.13.0 babel-compiler@6.18.2
babel-runtime@1.0.1 babel-runtime@1.0.1
base64@1.0.10 base64@1.0.10
binary-heap@1.0.10 binary-heap@1.0.10
blaze@2.1.9 blaze@2.3.2
blaze-html-templates@1.0.5 blaze-html-templates@1.0.5
blaze-tools@1.0.10 blaze-tools@1.0.10
boilerplate-generator@1.0.11 boilerplate-generator@1.0.11
caching-compiler@1.1.9 caching-compiler@1.1.9
caching-html-compiler@1.0.7 caching-html-compiler@1.0.7
callback-hook@1.0.10 callback-hook@1.0.10
check@1.2.4 check@1.2.5
coffeescript@1.0.17 coffeescript@1.0.17
ddp@1.2.5 ddp@1.2.5
ddp-client@1.2.9 ddp-client@1.3.4
ddp-common@1.2.8 ddp-common@1.2.8
ddp-rate-limiter@1.0.6 ddp-rate-limiter@1.0.7
ddp-server@1.2.10 ddp-server@1.3.14
deps@1.0.12 deps@1.0.12
diff-sequence@1.0.7 diff-sequence@1.0.7
ecmascript@0.6.1 ecmascript@0.7.3
ecmascript-runtime@0.3.15 ecmascript-runtime@0.3.15
ejson@1.0.13 ejson@1.0.13
email@1.1.18 email@1.2.1
es5-shim@4.6.15 es5-shim@4.6.15
fastclick@1.0.13 fastclick@1.0.13
fortawesome:fontawesome@4.7.0 fortawesome:fontawesome@4.7.0
@@ -41,19 +41,19 @@ geojson-utils@1.0.10
hot-code-push@1.0.4 hot-code-push@1.0.4
html-tools@1.0.11 html-tools@1.0.11
htmljs@1.0.11 htmljs@1.0.11
http@1.1.8 http@1.2.12
id-map@1.0.9 id-map@1.0.9
jcbernack:reactive-aggregate@0.7.0 jcbernack:reactive-aggregate@0.7.0
jquery@1.11.10 jquery@1.11.10
juliancwirko:s-alert@3.2.0 juliancwirko:s-alert@3.2.0
kadira:blaze-layout@2.3.0 kadira:blaze-layout@2.3.0
kadira:flow-router@2.12.1 kadira:flow-router@2.12.1
launch-screen@1.0.12 launch-screen@1.1.1
livedata@1.0.18 livedata@1.0.18
localstorage@1.0.12 localstorage@1.0.12
logging@1.1.16 logging@1.1.17
mdg:validation-error@0.2.0 mdg:validation-error@0.2.0
meteor@1.6.0 meteor@1.6.1
meteor-base@1.0.4 meteor-base@1.0.4
meteorhacks:aggregate@1.3.0 meteorhacks:aggregate@1.3.0
meteorhacks:collection-utils@1.2.0 meteorhacks:collection-utils@1.2.0
@@ -72,29 +72,31 @@ meteortoys:status@3.0.0
meteortoys:sub@3.0.0 meteortoys:sub@3.0.0
meteortoys:throttle@3.0.0 meteortoys:throttle@3.0.0
meteortoys:toykit@3.0.4 meteortoys:toykit@3.0.4
minifier-css@1.2.15 minifier-css@1.2.16
minifier-js@1.2.15 minifier-js@2.0.0
minimongo@1.0.19 minimongo@1.0.23
mizzao:bootboxjs@4.4.0 mizzao:bootboxjs@4.4.0
mobile-experience@1.0.4 mobile-experience@1.0.4
mobile-status-bar@1.0.13 mobile-status-bar@1.0.14
modules@0.7.7 modules@0.8.2
modules-runtime@0.7.7 modules-runtime@0.7.10
momentjs:moment@2.17.1 momentjs:moment@2.18.1
mongo@1.1.14 mongo@1.1.17
mongo-id@1.0.6 mongo-id@1.0.6
mongo-livedata@1.0.12 mongo-livedata@1.0.12
msavin:jetsetter@2.0.0 msavin:jetsetter@2.0.0
msavin:mongol@2.0.1 msavin:mongol@2.0.1
npm-bcrypt@0.9.2 npm-bcrypt@0.9.2
npm-mongo@2.2.11_2 npm-mongo@2.2.24
observe-sequence@1.0.14 observe-sequence@1.0.16
ordered-dict@1.0.9 ordered-dict@1.0.9
ostrio:logger@1.1.2
ostrio:loggermongo@1.1.3
poorvavyas:es6-shim@0.21.1 poorvavyas:es6-shim@0.21.1
promise@0.8.8 promise@0.8.8
raix:eventemitter@0.1.3 raix:eventemitter@0.1.3
random@1.0.10 random@1.0.10
rate-limit@1.0.6 rate-limit@1.0.8
reactive-dict@1.1.8 reactive-dict@1.1.8
reactive-var@1.0.11 reactive-var@1.0.11
reload@1.1.11 reload@1.1.11
@@ -103,26 +105,26 @@ routepolicy@1.0.12
service-configuration@1.0.11 service-configuration@1.0.11
session@1.1.7 session@1.1.7
sha@1.0.9 sha@1.0.9
shell-server@0.2.1 shell-server@0.2.3
softwarerero:accounts-t9n@1.3.6 softwarerero:accounts-t9n@1.3.6
spacebars@1.0.13 spacebars@1.0.13
spacebars-compiler@1.0.13 spacebars-compiler@1.1.1
srp@1.0.10 srp@1.0.10
standard-minifier-css@1.3.2 standard-minifier-css@1.3.4
standard-minifier-js@1.2.1 standard-minifier-js@2.0.0
stylus@2.513.8 stylus@2.513.9
templating@1.2.15 templating@1.2.15
templating-compiler@1.2.15 templating-compiler@1.2.15
templating-runtime@1.2.15 templating-runtime@1.2.15
templating-tools@1.0.5 templating-tools@1.1.1
tomwasd:history-polyfill@0.0.1 tomwasd:history-polyfill@0.0.1
tracker@1.1.1 tracker@1.1.3
ui@1.0.12 ui@1.0.12
underscore@1.0.10 underscore@1.0.10
url@1.0.11 url@1.1.0
useraccounts:bootstrap@1.14.2 useraccounts:bootstrap@1.14.2
useraccounts:core@1.14.2 useraccounts:core@1.14.2
useraccounts:flow-routing@1.14.2 useraccounts:flow-routing@1.14.2
webapp@1.3.12 webapp@1.3.15
webapp-hashing@1.0.9 webapp-hashing@1.0.9
zimme:active-route@2.3.2 zimme:active-route@2.3.2

View File

@@ -168,11 +168,13 @@ body
@import "../imports/ui/layouts/Full.import.styl" @import "../imports/ui/layouts/Full.import.styl"
@import "../imports/ui/UserManagement.import.styl" @import "../imports/ui/UserManagement.import.styl"
@import "../imports/ui/MiscManagement.import.styl"
@import "../imports/ui/Measures.import.styl" @import "../imports/ui/Measures.import.styl"
@import "../imports/ui/Venues.import.styl" @import "../imports/ui/Venues.import.styl"
@import "../imports/ui/Products.import.styl" @import "../imports/ui/Products.import.styl"
@import "../imports/ui/ProductTags.import.styl" @import "../imports/ui/ProductTags.import.styl"
@import "../imports/ui/Sales.import.styl" @import "../imports/ui/Sales.import.styl"
@import "../imports/ui/SaleDuplicates.import.styl"
@import "../imports/ui/SalesSheets.import.styl" @import "../imports/ui/SalesSheets.import.styl"
@import "../imports/ui/SalesSheetForm.import.styl" @import "../imports/ui/SalesSheetForm.import.styl"
@import "../imports/ui/SalesSheetEditor.import.styl" @import "../imports/ui/SalesSheetEditor.import.styl"

44
imports/api/Logs.js Normal file
View File

@@ -0,0 +1,44 @@
import { Meteor } from 'meteor/meteor';
import { Mongo } from 'meteor/mongo';
// The logging tool is primarily for managing administrative functions such that administrators can view the app logs and issue commands that might generate administrative logging.
Meteor.log = new Logger();
Logs = new Mongo.Collection('Logs');
let logMongo = new LoggerMongo(Meteor.log, {
collection: Logs
});
logMongo.enable({
enable: true,
client: false, /* Client calls are not executed on the client. */
server: true /* Calls from the client will be executed on the server. */
});
if(Meteor.isServer) {
Logs._ensureIndex({'date': 1}, {expireAfterSeconds: 86400});
Meteor.publish('logs', function() {
return Logs.find({}, {limit: 10000});
});
Meteor.methods({
clearLogs: function() {
return Logs.remove({}, function(err) {
if(err) Meteor.log.error(err);
});
}
});
}
Logs.allow({
insert: () => false,
update: () => false,
remove: () => false
});
Logs.deny({
insert: () => true,
update: () => true,
remove: () => true
});
export default Logs;

View File

@@ -3,6 +3,13 @@ import { Mongo } from 'meteor/mongo';
import { check } from 'meteor/check'; import { check } from 'meteor/check';
import {SimpleSchema} from 'meteor/aldeed:simple-schema'; import {SimpleSchema} from 'meteor/aldeed:simple-schema';
/**
* Notes:
* The Product object has a prices field which is an object whose fields names are Measure ID's. Each field value (for each Measure ID) is an object that has a 'price', 'effectiveDate', and 'previousPrice'.
* The effectiveDate field stores the date as a number in the format YYYYMMDD. Converting this number into a local date is done with moment(sale.date.toString(), "YYYYMMDD").toDate(), and converting it to a number from a date can be accomplished with ~~(moment(date).format("YYYYMMDD")), where the ~~ is a bitwise not and converts a string to a number quickly and reliably.
* Because the structure of the Product object is so complicated, the normal checking that is done by the framework cannot be used.
*/
Products = new Mongo.Collection('Products'); Products = new Mongo.Collection('Products');
const ProductsSchema = new SimpleSchema({ const ProductsSchema = new SimpleSchema({
@@ -237,7 +244,7 @@ if(Meteor.isServer) {
check(measureId, String); check(measureId, String);
check(price, Number); check(price, Number);
if(setPrevious) check(setPrevious, Boolean); if(setPrevious) check(setPrevious, Boolean);
if(effectiveDate) check(effectiveDate, Date); if(effectiveDate) check(effectiveDate, Number); // TODO: Check that the format is YYYYMMDD
if(Roles.userIsInRole(this.userId, [Meteor.UserRoles.ROLE_UPDATE])) { if(Roles.userIsInRole(this.userId, [Meteor.UserRoles.ROLE_UPDATE])) {
let products = Products.find({_id: {$in: productIds}}, {fields: {prices: 1}}).fetch(); let products = Products.find({_id: {$in: productIds}}, {fields: {prices: 1}}).fetch();

View File

@@ -3,10 +3,15 @@ import { Mongo } from 'meteor/mongo';
import { check } from 'meteor/check'; import { check } from 'meteor/check';
import {SimpleSchema} from 'meteor/aldeed:simple-schema'; import {SimpleSchema} from 'meteor/aldeed:simple-schema';
/**
* Notes:
* The Sale object has a date field which stores the date as a number in the format YYYYMMDD. Converting this number into a local date is done with moment(sale.date.toString(), "YYYYMMDD").toDate(), and converting it to a number from a date can be accomplished with ~~(moment(date).format("YYYYMMDD")), where the ~~ is a bitwise not and converts a string to a number quickly and reliably.
*/
Sales = new Mongo.Collection('Sales'); Sales = new Mongo.Collection('Sales');
let SalesSchema = new SimpleSchema({ let SalesSchema = new SimpleSchema({
date: { date: {
type: Date, type: Number, // A number in the format of YYYYMMDD to allow for searching using greater and less than, and to prevent timezones from messing everything up.
label: "Date", label: "Date",
optional: false, optional: false,
index: 1 index: 1
@@ -58,6 +63,19 @@ let SalesSchema = new SimpleSchema({
trim: false, trim: false,
optional: true optional: true
}, },
ignoreDuplicates: {
type: Boolean,
optional: true
},
isDuplicateOf: {
type: String,
trim: false,
optional: true
},
duplicateCount: {
type: Number,
optional: true
},
createdAt: { createdAt: {
type: Date, type: Date,
label: "Created On", label: "Created On",
@@ -71,14 +89,22 @@ if(Meteor.isServer) {
let dbQuery = []; let dbQuery = [];
if(query) { if(query) {
// _.each(_.keys(query), function(key) {
// if(_.isObject(query[key])) dbQuery[key] = query[key];
// else if(_.isNumber(query[key])) dbQuery[key] = query[key];
// else dbQuery[key] = {$regex: RegExp.escape(query[key]), $options: 'i'};
// });
_.each(_.keys(query), function(key) { _.each(_.keys(query), function(key) {
if(_.isObject(query[key])) dbQuery.push({[key]: query[key]}); //if(_.isObject(query[key])) dbQuery.push({[key]: query[key]});
if(_.isObject(query[key])) {
if(query[key].type === 'dateRange') {
if(query[key].start && query[key].end)
dbQuery.push({[key]: {$gte: query[key].start, $lte: query[key].end}});
else if(query[key].start)
dbQuery.push({[key]: {$gte: query[key].start}});
else if(query[key].end)
dbQuery.push({[key]: {$lte: query[key].end}});
// Do nothing if a start and/or end are not provided.
}
else {
dbQuery.push({[key]: query[key]});
}
}
else if(_.isNumber(query[key])) dbQuery.push({[key]: query[key]}); else if(_.isNumber(query[key])) dbQuery.push({[key]: query[key]});
else { else {
let searchValue = query[key]; let searchValue = query[key];
@@ -97,6 +123,65 @@ if(Meteor.isServer) {
dbQuery = dbQuery.length > 0 ? {$and: dbQuery} : {}; dbQuery = dbQuery.length > 0 ? {$and: dbQuery} : {};
return Meteor.collections.Sales.find(dbQuery, {limit: limit, sort, skip: skipCount}); return Meteor.collections.Sales.find(dbQuery, {limit: limit, sort, skip: skipCount});
}); });
Meteor.publish('duplicateSales', function(query, includeIgnoredDuplicates) {
// Start with the duplicate count needing to be greater than zero, and with duplicates marked as ignored not included.
let dbQuery = [{duplicateCount: {$gt: 0}}];
// If we should include ignored duplicates than add it to the query as a requirement.
if(!includeIgnoredDuplicates) {
dbQuery.push({$or: [{ignoreDuplicates: {$exists: false}}, {ignoreDuplicates: false}]});
}
//if(query) {
// // Add each query requirement sent by the client.
// _.each(_.keys(query), function(key) {
// //if(_.isObject(query[key])) dbQuery.push({[key]: query[key]});
// if(_.isObject(query[key])) {
// if(query[key].type === 'dateRange') {
// if(query[key].start && query[key].end)
// dbQuery.push({[key]: {$gte: query[key].start, $lte: query[key].end}});
// else if(query[key].start)
// dbQuery.push({[key]: {$gte: query[key].start}});
// else if(query[key].end)
// dbQuery.push({[key]: {$lte: query[key].end}});
// // Do nothing if a start and/or end are not provided.
// }
// else {
// dbQuery.push({[key]: query[key]});
// }
// }
// else if(_.isNumber(query[key])) dbQuery.push({[key]: query[key]});
// else {
// let searchValue = query[key];
// let searches = searchValue && searchValue.length > 0 ? searchValue.split(/\s+/) : undefined;
//
// for(let search of searches) {
// dbQuery.push({[key]: {$regex: '\\b' + search, $options: 'i'}});
// }
// }
// });
//}
// Wrap the array of requirements with an $and, or remove the single requirement from the array (if there is only a single requirement).
if(dbQuery.length === 1) dbQuery = dbQuery[0];
else dbQuery = {$and: dbQuery};
// Find all Sale objects marked as having at least one duplicate.
//return Meteor.collections.Sales.find(dbQuery);
let pipeline = [
{$match: dbQuery},
{$lookup: {from: "Products", localField: "productId", foreignField: "_id", as: "product"}},
{$lookup: {from: "Measures", localField: "measureId", foreignField: "_id", as: "measure"}},
{$lookup: {from: "Venues", localField: "venueId", foreignField: "_id", as: "venue"}},
{$unwind: "$product"},
{$unwind: "$measure"},
{$unwind: "$venue"},
{$project: {_id: 1, date: 1, amount: 1, price: 1, venueId: 1, productId: 1, measureId: 1, duplicateCount: 1, ignoreDuplicates: 1, 'productName': '$product.name', 'measureName': '$measure.name', 'venueName': '$venue.name'}}
];
ReactiveAggregate(this, Sales, pipeline, {clientCollection: 'duplicateSales'});
});
// time: expects either undefined, 'weekly', or 'monthly' // time: expects either undefined, 'weekly', or 'monthly'
// options: expects either undefined, 'markets', or 'types' // options: expects either undefined, 'markets', or 'types'
Meteor.publish('salesTotals', function(time, options) { Meteor.publish('salesTotals', function(time, options) {
@@ -185,7 +270,7 @@ if(Meteor.isServer) {
}, },
insertSale: function(sale) { insertSale: function(sale) {
check(sale, { check(sale, {
date: Date, date: Number, // TODO: Check that the format is YYYYMMDD
amount: Match.Where(function(x) { amount: Match.Where(function(x) {
check(x, Number); check(x, Number);
return x > 0; return x > 0;
@@ -199,7 +284,7 @@ if(Meteor.isServer) {
venueId: String, venueId: String,
comment: Match.Optional(String) comment: Match.Optional(String)
}); });
//TODO: Check the structure of sale. Use: check(sale, {name: String, ...});
sale.createdAt = new Date(); sale.createdAt = new Date();
if(Roles.userIsInRole(this.userId, [Meteor.UserRoles.ROLE_UPDATE])) { if(Roles.userIsInRole(this.userId, [Meteor.UserRoles.ROLE_UPDATE])) {
@@ -242,7 +327,7 @@ if(Meteor.isServer) {
}, },
updateSale: function(id, date, venueId, price, amount) { updateSale: function(id, date, venueId, price, amount) {
check(id, String); check(id, String);
check(date, Date); check(date, Number); // TODO: Check that the format is YYYYMMDD
check(venueId, String); check(venueId, String);
check(price, Number); check(price, Number);
check(amount, Number); check(amount, Number);
@@ -252,7 +337,152 @@ if(Meteor.isServer) {
if(err) console.log(err); if(err) console.log(err);
}, {bypassCollection2: true}); }, {bypassCollection2: true});
} }
else throw new Meteor.Error(403, "Not authorized.");
},
countSales: function() {
if(Roles.userIsInRole(this.userId, [Meteor.UserRoles.ROLE_UPDATE])) {
return Sales.find({}).count();
}
else throw new Meteor.Error(403, "Not authorized.");
},
removeDuplicateSales: function(id, justOne) { // Expects the id of the sale that has duplicates and an optional boolean flag (justOne) indicating whether just one duplicate should be removed, or all of them (default).
if(Roles.userIsInRole(this.userId, [Meteor.UserRoles.ROLE_UPDATE])) {
// Remove either one or all of the duplicates of the Sale with the given ID.
if(justOne) {
let sale = Sales.findOne({isDuplicateOf: id});
if(sale) {
Sales.remove({_id: sale._id});
}
}
else {
Sales.remove({isDuplicateOf: id});
}
}
},
ignoreDuplicateSales: function(id) { // Expects the id of the sale that has duplicates. Will mark this sale and all duplicates to be ignored in future duplicate checks.
if(Roles.userIsInRole(this.userId, [Meteor.UserRoles.ROLE_UPDATE])) {
// Mark to ignore duplicates for this Sale (id) and all its duplicates, and clear any duplicate counts and references.
//Sales.update({$or: [{_id: id}, {isDuplicateOf: id}]}, {$set: {ignoreDuplicates: true}, $unset: {isDuplicateOf: "", duplicateCount: ""}});
// Mark to ignore duplicates for this Sale (id). We will leave the duplicate count and references so that the duplicates will show in a query if we want to revisit those marked as ignored.
Sales.update({$or: [{_id: id}, {isDuplicateOf: id}]}, {$set: {ignoreDuplicates: true}});
}
},
markDuplicateSales: function() {
if(Roles.userIsInRole(this.userId, [Meteor.UserRoles.ROLE_UPDATE])) {
let sales = Sales.find({}, {sort: {date: 1, venueId: 1, productId: 1, price: 1, amount: 1, measureId: 1, createdAt: 1}}).fetch();
// Iterate over all the sales looking for sales that have duplicates.
// Since the sales are sorted by sale date, venueId, productId, price, amount, and measureId which all must be identical to be considered a possible duplicate sale, we only have to check subsequent sales until a non-duplicate is found.
for(let i = 0; i < sales.length;) {
let sale = sales[i];
// If this is marked as a duplicate of another sale, but we got to this point in the loop then the sale it is a duplicate of must have been removed or marked to ignore duplicates.
if(sale.isDuplicateOf) {
delete sale.isDuplicateOf;
Sales.update(sale._id, {$unset: {isDuplicateOf: ""}}, function(err, id) {
if(err) console.log(err);
}, {bypassCollection2: true});
}
//Skip this one if it is marked to ignore duplicates.
//if(sale.ignoreDuplicates) {
// i++;
//}
//else {
let keepChecking = true;
let duplicateCount = 0;
// Keep checking subsequent sales until a non-duplicate is found. Ignore anything marked to ignore duplicates. Count the number of duplicates and also mark duplicates to reference the Sale we are currently checking.
while(keepChecking) {
let checkSale = sales[++i]; // Increment the index to the next Sale object.
// Since it is possible to exceed the length of the array, we will check for an undefined next sale and set the flag to stop checking if one is found.
if(checkSale && sale.productId === checkSale.productId && sale.venueId === checkSale.venueId && sale.price === checkSale.price && sale.amount === checkSale.amount && sale.measureId === checkSale.measureId) {
// Mark the next sale as a duplicate of the currently examined sale.
checkSale.isDuplicateOf = sale._id;
Sales.update(checkSale._id, {$set: {isDuplicateOf: checkSale.isDuplicateOf}}, function(err, id) {
if(err) console.log(err);
}, {bypassCollection2: true});
duplicateCount++;
}
else {
// Stop checking.
keepChecking = false;
}
}
// Make sure the currently checked sale has a proper duplicate count before moving on in the search.
if(duplicateCount > 0) {
if(sale.duplicateCount !== duplicateCount) {
// Update the sale's duplicate count.
sale.duplicateCount = duplicateCount;
Sales.update(sale._id, {$set: {duplicateCount: sale.duplicateCount}}, function(err, id) {
if(err) console.log(err);
}, {bypassCollection2: true});
}
}
else if(sale.duplicateCount) {
// Remove the duplicate count if it is set.
delete sale.duplicateCount;
Sales.update(sale._id, {$unset: {duplicateCount: ""}}, function(err, id) {
if(err) console.log(err);
}, {bypassCollection2: true});
}
//}
}
}
else throw new Meteor.Error(403, "Not authorized.");
} }
/*
countDuplicateSales: function() {
if(Roles.userIsInRole(this.userId, [Meteor.UserRoles.ROLE_MANAGE])) {
let sales = Sales.find({}, {sort: {date: 1, venueId: 1, productId: 1, price: 1, amount: 1, measureId: 1}}).fetch();
let salesByDate = {};
let lastDate = undefined;
let lastDateCollection;
let duplicates = [];
//Create a map of Sale arrays by sale date.
for(let i = 0; i < sales.length; i++) {
let date = sales[i].date;
if(date) {
if(date === lastDate) {
lastDateCollection.push(sales[i]);
}
else {
lastDate = date;
salesByDate[date] = lastDateCollection = [sales[i]];
}
}
else {
Meteor.log.error("Found a sale without a date!!!");
}
}
for(let date in salesByDate) {
let sales = salesByDate[date];
for(let i = 0; i < sales.length - 1; i++) {
if(sales[i].productId === sales[i+1].productId && sales[i].venueId === sales[i+1].venueId && sales[i].price === sales[i+1].price && sales[i].amount === sales[i+1].amount && sales[i].measureId === sales[i+1].amount) {
duplicates.push([sales[i], sales[i+1]]);
}
}
}
return duplicates;
}
else throw new Meteor.Error(403, "Not authorized.");
},
deleteDuplicateSales: function() {
if(Roles.userIsInRole(this.userId, [Meteor.UserRoles.ROLE_MANAGE])) {
}
else throw new Meteor.Error(403, "Not authorized.");
}
*/
}); });
} }

View File

@@ -4,11 +4,12 @@ import Products from "./Product.js";
import ProductTags from "./ProductTag.js"; import ProductTags from "./ProductTag.js";
import Sales from "./Sale.js"; import Sales from "./Sale.js";
import SalesSheets from "./SalesSheet.js"; import SalesSheets from "./SalesSheet.js";
import Logs from "./Logs.js";
import Users from "./User.js"; import Users from "./User.js";
import UserRoles from "./Roles.js"; import UserRoles from "./Roles.js";
//Save the collections in the Meteor.collections property for easy access without name conflicts. //Save the collections in the Meteor.collections property for easy access without name conflicts.
Meteor.collections = {Measures, Venues, Products, ProductTags, Sales, SalesSheets, Users, UserRoles}; Meteor.collections = {Measures, Venues, Products, ProductTags, Sales, SalesSheets, Logs, Users, UserRoles};
//If this is the server then setup the default admin user if none exist. //If this is the server then setup the default admin user if none exist.
if(Meteor.isServer) { if(Meteor.isServer) {

View File

@@ -36,6 +36,13 @@ pri.route('/userManagement', {
BlazeLayout.render('Body', {content: 'UserManagement'}); BlazeLayout.render('Body', {content: 'UserManagement'});
} }
}); });
pri.route('/miscManagement', {
name: 'MiscManagement',
action: function(params, queryParams) {
require("/imports/ui/MiscManagement.js");
BlazeLayout.render('Body', {content: 'MiscManagement'});
}
});
pri.route('/sales', { pri.route('/sales', {
name: 'Sales', name: 'Sales',
action: function(params, queryParams) { action: function(params, queryParams) {
@@ -44,6 +51,14 @@ pri.route('/sales', {
BlazeLayout.render('Body', {content: 'Sales'}); BlazeLayout.render('Body', {content: 'Sales'});
} }
}); });
pri.route('/saleDuplicates', {
name: 'SaleDuplicates',
action: function(params, queryParams) {
require("/imports/ui/SaleDuplicates.js");
BlazeLayout.render('Body', {content: 'SaleDuplicates'});
}
});
pri.route('/salesSheets', { pri.route('/salesSheets', {
name: 'SalesSheets', name: 'SalesSheets',
action: function(params, queryParams) { action: function(params, queryParams) {

View File

@@ -1,37 +1,44 @@
<template name="Measures"> <template name="Measures">
<div id="measures"> <div id="measures">
<div class="tableControls"> {{#if Template.subscriptionsReady}}
<span class="controlLabel">Show Hidden</span> <div class="tableControls">
<div class="toggleShowHidden checkbox checkbox-slider--b-flat"> <span class="controlLabel">Show Hidden</span>
<label> <div class="toggleShowHidden checkbox checkbox-slider--b-flat">
<input type="checkbox" name="showHidden"><span></span> <label>
</label> <input type="checkbox" name="showHidden"><span></span>
</label>
</div>
<span class="pagination">
<span class="prevMeasures noselect {{#if disablePrev}}disabled{{/if}}"><i class="fa fa-long-arrow-left" aria-hidden="true"></i> Prev</span>
<span class="nextMeasures noselect {{#if disableNext}}disabled{{/if}}">Next <i class="fa fa-long-arrow-right" aria-hidden="true"></i></span>
</span>
</div> </div>
<span class="pagination"> <div class="listRow">
<span class="prevMeasures noselect {{#if disablePrev}}disabled{{/if}}"><i class="fa fa-long-arrow-left" aria-hidden="true"></i> Prev</span> <div class="listCell">
<span class="nextMeasures noselect {{#if disableNext}}disabled{{/if}}">Next <i class="fa fa-long-arrow-right" aria-hidden="true"></i></span> <div class="tableContainer">
</span> <table class="table table-striped table-hover">
</div> <thead>
<div class="tableContainer"> <tr>
<table class="table table-striped table-hover"> <th class="name">Name {{>MeasureSearch columnName='name'}}</th>
<thead> <th class="postfix">Postfix {{>MeasureSearch columnName='postfix'}}</th>
<tr> <th class="actions">Actions <span class="newMeasureButton btn btn-success"><i class="fa fa-plus-circle" aria-hidden="true"></i><i class="fa fa-times-circle" aria-hidden="true"></i></span></th>
<th class="name">Name {{>MeasureSearch columnName='name'}}</th> </tr>
<th class="postfix">Postfix {{>MeasureSearch columnName='postfix'}}</th> <!--<button type="button" name="newMeasureButton"><i class="fa fa-plus-circle" aria-hidden="true"></i></button>-->
<th class="actions">Actions <span class="newMeasureButton btn btn-success"><i class="fa fa-plus-circle" aria-hidden="true"></i><i class="fa fa-times-circle" aria-hidden="true"></i></span></th> </thead>
</tr> <tbody>
<!--<button type="button" name="newMeasureButton"><i class="fa fa-plus-circle" aria-hidden="true"></i></button>--> {{#if displayNewMeasure}}
</thead> {{> MeasureEditor isNew=true}}
<tbody> {{/if}}
{{#if displayNewMeasure}} {{#each measures}}
{{> MeasureEditor isNew=true}} {{> Measure}}
{{/if}} {{/each}}
{{#each measures}} </tbody>
{{> Measure}} </table>
{{/each}} </div>
</tbody> </div>
</table> </div>
</div> {{else}}
{{/if}}
</div> </div>
</template> </template>

View File

@@ -1,6 +1,9 @@
#measures #measures
margin: 20px 20px display: table
content-box: border-box
padding: 10px 20px
height: 100% height: 100%
width: 100%
text-align: left text-align: left
.tableControls .tableControls
@@ -18,77 +21,89 @@
top: -4px top: -4px
display: inline-block display: inline-block
.tableContainer .listRow
width: 100% display: table-row
margin-bottom: 20px .listCell
border: 0 display: table-cell
font-size: 12.5px position: relative
height: 100%
table
table-layout: fixed
width: 100% width: 100%
.measureSearch .tableContainer
margin: 3px 0 2px 1px position: absolute
.measureEditorTd top: 0
background: #deeac0 bottom: 0
input[name="name"], input[name="postfix"] left: 0
width: 100% right: 0
.editorDiv width: auto
margin: 4px 0 height: auto
label border: 0
font-family: "Arial Black", "Arial Bold", Gadget, sans-serif font-size: 12.5px
font-size: .9em overflow-y: auto
padding-bottom: 4px table
select2 table-layout: fixed
font-size: .4em width: 100%
> thead .measureSearch
> tr margin: 3px 0 2px 1px
> th.name .measureEditorTd
width: auto background: #deeac0
> th.postfix input[name="name"], input[name="postfix"]
width: auto width: 100%
> th.actions .editorDiv
width: 90px margin: 4px 0
text-align: center label
.newMeasureButton font-family: "Arial Black", "Arial Bold", Gadget, sans-serif
margin-top: 4px font-size: .9em
padding: 0px 12px padding-bottom: 4px
.fa-plus-circle select2
display: inline-block font-size: .4em
.fa-times-circle > thead
display: none > tr
.newMeasureButton.active > th.name
background-color: #fb557b width: auto
color: black > th.postfix
.fa-times-circle width: auto
display: inline-block > th.actions
.fa-plus-circle width: 90px
display: none text-align: center
> tbody .newMeasureButton
> tr margin-top: 4px
.actionRemove padding: 0px 12px
color: #F77 .fa-plus-circle
.actionEdit display: inline-block
color: #44F .fa-times-circle
.editorApply display: none
color: green .newMeasureButton.active
.editorCancel background-color: #fb557b
color: red color: black
> tr.deactivated .fa-times-circle
background-color: #fac0d1 display: inline-block
.actionActivate .fa-plus-circle
color: #158b18 display: none
.actionHide > tbody
color: #6a0707 > tr
.actionEdit .actionRemove
color: #0101e4 color: #F77
> tr.deactivated:hover .actionEdit
background-color: #ffcadb color: #44F
> tr.hidden .editorApply
background-color: #e995ff color: green
.actionEdit .editorCancel
color: #0101e4 color: red
.actionShow > tr.deactivated
color: #027905 background-color: #fac0d1
> tr.hidden:hover .actionActivate
background-color: #ffb5ff color: #158b18
.actionHide
color: #6a0707
.actionEdit
color: #0101e4
> tr.deactivated:hover
background-color: #ffcadb
> tr.hidden
background-color: #e995ff
.actionEdit
color: #0101e4
.actionShow
color: #027905
> tr.hidden:hover
background-color: #ffb5ff

View File

@@ -0,0 +1,27 @@
<template name="MiscManagement">
<div id="miscManagement">
{{#if Template.subscriptionsReady}}
<div class="controls">
<a href="javascript:" class="cleanDates">Clean Dates (removes time components)</a><br/>
<!--<a href="javascript:" class="importMissingSalesData">Import Sales Data (JSON)</a><br/>-->
<a href="javascript:" class="clearLogs">Clear Logs</a><br/>
<a href="javascript:" class="countDuplicateSales">Count Duplicate Sales</a><br/>
<a href="javascript:" class="deleteDuplicateSales">Delete Duplicate Sales</a><br/>
<div class="logCount">{{logCount}}</div>
</div>
<div class="pageContentRow">
<div class="pageContentCell">
<div class="pageContentContainer">
<ul class="logs">
{{#each logs}}
<li>{{message}}</li>
{{/each}}
</ul>
</div>
</div>
</div>
{{else}}
{{/if}}
</div>
</template>

35
imports/ui/MiscManagement.import.styl vendored Normal file
View File

@@ -0,0 +1,35 @@
#miscManagement
display: table
content-box: border-box
padding: 10px 20px
height: 100%
width: 100%
text-align: left
.controls
text-align: right
margin-right: 20px
.pageContentRow
display: table-row
.pageContentCell
display: table-cell
position: relative
height: 100%
width: 100%
.pageContentContainer
position: absolute
top: 0
bottom: 0
left: 0
right: 0
width: auto
height: auto
border: 0
font-size: 12.5px
overflow-y: auto
.logs
list-style-type: none
height: 100%
:hover
background: #CCC

View File

@@ -0,0 +1,76 @@
import './MiscManagement.html';
import '/imports/util/selectize/selectize.js'
let PREFIX = "MiscManagement";
Meteor.subscribe("logs");
Meteor.subscribe("products");
Meteor.subscribe("venues");
Meteor.subscribe("measures");
Template.MiscManagement.helpers({
logs: function() {
return Meteor.collections.Logs.find({}, {sort: {date: 1}});
},
logCount: function() {
return Meteor.collections.Logs.find({}).count();
}
});
Template.MiscManagement.events({
"click .cleanDates": function(event, template) {
Meteor.call("cleanDates");
},
"click .importMissingSalesData": function(event, template) {
console.log("Calling importMissingSales");
Meteor.call("importMissingSales");
},
"click .clearLogs": function(event, template) {
Meteor.call("clearLogs");
},
"click .countDuplicateSales": function(event, template) {
Meteor.log.info("Starting to count duplicates...");
let products = Meteor.collections.Products.find({}).fetch();
let venues = Meteor.collections.Venues.find({}).fetch();
let measures = Meteor.collections.Measures.find({}).fetch();
let productNameMap = {};
let venueNameMap = {};
let measureNameMap = {};
for(let i = 0; i < products.length; i++) {
productNameMap[products[i]._id] = products[i].name;
}
for(let i = 0; i < venues.length; i++) {
venueNameMap[venues[i]._id] = venues[i].name;
}
for(let i = 0; i < measures.length; i++) {
measureNameMap[measures[i]._id] = measures[i].name;
}
Meteor.call("countSales", function(err, result) {
if(err) Meteor.log.error(err);
else {
let salesCount = result;
Meteor.call("countDuplicateSales", function(err, result) {
if(err) Meteor.log.error(err);
else {
Meteor.log.info("Duplicate Sales Counted: " + result.length + " out of " + salesCount + " total sales.");
for(let i = 0; i < result.length; i++) {
let sale = result[i][0];
Meteor.log.info("\tdate: " + sale.date + " product: " + productNameMap[sale.productId] + " venue: " + venueNameMap[sale.venueId] + " measure" + measureNameMap[sale.measureId] + " price: " + sale.price.toFixed(2) + " amount: " + sale.amount + " id: " + sale._id);
sale = result[i][1];
Meteor.log.info("\tdate: " + sale.date + " product: " + productNameMap[sale.productId] + " venue: " + venueNameMap[sale.venueId] + " measure" + measureNameMap[sale.measureId] + " price: " + sale.price.toFixed(2) + " amount: " + sale.amount + " id: " + sale._id);
Meteor.log.info(" -- ");
}
}
});
}
});
},
"click .deleteDuplicateSales": function(event, template) {
Meteor.call("deleteDuplicateSales");
}
});

View File

@@ -1,54 +1,61 @@
<template name="Pricing"> <template name="Pricing">
<div id="pricing"> <div id="pricing">
<div class="controls"> {{#if Template.subscriptionsReady}}
<div class="measureGroup" style="vertical-align: bottom"> <div class="controls">
<label class='controlLabel'>Selected Measure: </label> <div class="measureGroup" style="vertical-align: bottom">
<select name="measures"> <label class='controlLabel'>Selected Measure: </label>
{{#each measures}} <select name="measures">
<option value="{{_id}}">{{name}}</option> {{#each measures}}
{{/each}} <option value="{{_id}}">{{name}}</option>
</select> {{/each}}
</div> </select>
<div class="controlGroup" style="text-align: center"> </div>
<label class='controlLabel'>New Price: </label> <div class="controlGroup" style="text-align: center">
<input type="number" class="price" name="price" min="0" data-schema-key='currency' value="{{price}}" required> <label class='controlLabel'>New Price: </label>
<input type="button" class="btn btn-success applyButton" title="Applies the price to selected products." value="Apply"> <input type="number" class="price" name="price" min="0" data-schema-key='currency' value="{{price}}" required>
<input type="button" class="btn btn-danger resetButton" title="Resets this form." value="Reset"> <input type="button" class="btn btn-success applyButton" title="Applies the price to selected products." value="Apply">
<br/> <input type="button" class="btn btn-danger resetButton" title="Resets this form." value="Reset">
<!--<span class="toggleUpdateHistory toggleButton clickable">Set Prev</span>--> <br/>
<div class="previousSettings outline"> <!--<span class="toggleUpdateHistory toggleButton clickable">Set Prev</span>-->
<span class="controlLabel">Set Previous:</span> <div class="previousSettings outline">
<div class="toggleUpdateHistory checkbox checkbox-slider--b-flat"> <span class="controlLabel">Set Previous:</span>
<label> <div class="toggleUpdateHistory checkbox checkbox-slider--b-flat">
<input type="checkbox" name="setPrevious" checked><span></span> <label>
</label> <input type="checkbox" name="setPrevious" checked><span></span>
</label>
</div>
<label class='controlLabel' style="margin-left: 10px">Effective: </label>
<input type="date" class="form-control" name="date" data-schema-key='date' required>
</div>
</div>
<span class="pagination">
<span class="prevProducts noselect {{#if disablePrev}}disabled{{/if}}"><i class="fa fa-long-arrow-left" aria-hidden="true"></i> Prev</span>
<span class="nextProducts noselect {{#if disableNext}}disabled{{/if}}">Next <i class="fa fa-long-arrow-right" aria-hidden="true"></i></span>
</span>
</div>
<div class="listRow">
<div class="listCell">
<div class="tableContainer">
<table class="table table-striped table-hover">
<thead>
<tr>
<th class="name">Name</th>
<th class="current">Current</th>
<th class="changeDate">Change Date</th>
<th class="previous">Previous</th>
</tr>
</thead>
<tbody>
{{#each product}}
{{> PricingForProduct}}
{{/each}}
</tbody>
</table>
</div> </div>
<label class='controlLabel' style="margin-left: 10px">Effective: </label>
<input type="date" class="form-control" name="date" data-schema-key='date' required>
</div> </div>
</div> </div>
<span class="pagination"> {{else}}
<span class="prevProducts noselect {{#if disablePrev}}disabled{{/if}}"><i class="fa fa-long-arrow-left" aria-hidden="true"></i> Prev</span> {{/if}}
<span class="nextProducts noselect {{#if disableNext}}disabled{{/if}}">Next <i class="fa fa-long-arrow-right" aria-hidden="true"></i></span>
</span>
</div>
<div class="tableContainer">
<table class="table table-striped table-hover">
<thead>
<tr>
<th class="name">Name</th>
<th class="current">Current</th>
<th class="changeDate">Change Date</th>
<th class="previous">Previous</th>
</tr>
</thead>
<tbody>
{{#each product}}
{{> PricingForProduct}}
{{/each}}
</tbody>
</table>
</div>
</div> </div>
</template> </template>

View File

@@ -1,6 +1,9 @@
#pricing #pricing
margin: 20px 20px display: table
content-box: border-box
padding: 10px 20px
height: 100% height: 100%
width: 100%
text-align: left text-align: left
.controls .controls
@@ -60,26 +63,39 @@
.resetButton .resetButton
margin-left: 20px margin-left: 20px
.tableContainer .listRow
width: 100% display: table-row
margin-bottom: 20px .listCell
border: 0 display: table-cell
font-size: 12.5px position: relative
table height: 100%
table-layout: fixed
width: 100% width: 100%
> thead .tableContainer
> tr position: absolute
> th.name top: 0
width: auto bottom: 0
> th.current left: 0
width: 200px right: 0
> th.previous width: auto
width: 200px height: auto
> th.changeDate border: 0
width: 200px font-size: 12.5px
> tbody overflow-y: auto
> tr.deactivated table
background-color: #fac0d1 table-layout: fixed
> tr.deactivated:hover width: 100%
background-color: #ffcadb > thead
> tr
> th.name
width: auto
> th.current
width: 200px
> th.previous
width: 200px
> th.changeDate
width: 200px
> tbody
> tr.deactivated
background-color: #fac0d1
> tr.deactivated:hover
background-color: #ffcadb

View File

@@ -1,6 +1,13 @@
import './Pricing.html'; import './Pricing.html';
/**
* Notes:
* The Product object has a prices field which is an object whose fields names are Measure ID's. Each field value (for each Measure ID) is an object that has a 'price', 'effectiveDate', and 'previousPrice'.
* The effectiveDate field stores the date as a number in the format YYYYMMDD. Converting this number into a local date is done with moment(sale.date.toString(), "YYYYMMDD").toDate(), and converting it to a number from a date can be accomplished with ~~(moment(date).format("YYYYMMDD")), where the ~~ is a bitwise not and converts a string to a number quickly and reliably.
* Because the structure of the Product object is so complicated, the normal checking that is done by the framework cannot be used.
*/
let QUERY_LIMIT = 20; let QUERY_LIMIT = 20;
let PREFIX = "Pricing."; let PREFIX = "Pricing.";
@@ -70,7 +77,7 @@ Template.Pricing.events({
Meteor.call("clearProductPrice", productIds, measureId) Meteor.call("clearProductPrice", productIds, measureId)
} }
else { else {
date = moment(date ? date : new Date().toDateInputValue(), "YYYY-MM-DD").toDate(); date = ~~(moment(date ? date : new Date().toDateInputValue(), "YYYY-MM-DD").format("YYYYMMDD")); // The ~~ is a bitwise not which converts the string into a number in the format of YYYYMMDD for storage in the database; to avoid timezone issues.
setPrevious = setPrevious == true || setPrevious == 'on' || setPrevious == "true" || setPrevious == "yes"; setPrevious = setPrevious == true || setPrevious == 'on' || setPrevious == "true" || setPrevious == "yes";
if(setPrevious == true && !date) { if(setPrevious == true && !date) {
@@ -117,9 +124,8 @@ Template.PricingForProduct.helpers({
}, },
priceChangeDate: function() { priceChangeDate: function() {
let measureId = Session.get(PREFIX + "selectedMeasure"); let measureId = Session.get(PREFIX + "selectedMeasure");
let date = this.prices && measureId && this.prices[measureId] && this.prices[measureId].effectiveDate ? this.prices[measureId].effectiveDate : undefined;
return date ? moment(date).format("MM/DD/YYYY (w)") : "-"; return this.prices && measureId && this.prices[measureId] && this.prices[measureId].effectiveDate ? moment(this.prices[measureId].effectiveDate.toString(), "YYYYMMDD").format("MM/DD/YYYY (w)") : "-";
}, },
rowClass: function() { rowClass: function() {
return this.deactivated ? "deactivated" : ""; return this.deactivated ? "deactivated" : "";

View File

@@ -26,20 +26,24 @@
</span> </span>
</div> </div>
</div> </div>
<div class="tableContainer"> <div class="listRow">
<table class="table table-striped table-hover"> <div class="listCell">
<thead> <div class="tableContainer">
<tr> <table class="table table-striped table-hover">
<th class="name">Name {{>ProductTag_ProductSearch columnName='name'}}</th> <thead>
<th class="tags">Tags {{>ProductTag_ProductSearch columnName='tags' collectionQueryColumnName='name' collection='ProductTags' collectionResultColumnName='_id'}}</th> <tr>
</tr> <th class="name">Name {{>ProductTag_ProductSearch columnName='name'}}</th>
</thead> <th class="tags">Tags {{>ProductTag_ProductSearch columnName='tags' collectionQueryColumnName='name' collection='ProductTags' collectionResultColumnName='_id'}}</th>
<tbody> </tr>
{{#each products}} </thead>
{{> ProductTag_Product}} <tbody>
{{/each}} {{#each products}}
</tbody> {{> ProductTag_Product}}
</table> {{/each}}
</tbody>
</table>
</div>
</div>
</div> </div>
{{else}} {{else}}
{{/if}} {{/if}}

View File

@@ -1,6 +1,9 @@
#productTags #productTags
margin: 20px 20px display: table
content-box: border-box
padding: 10px 20px
height: 100% height: 100%
width: 100%
text-align: left text-align: left
.tagInfo .tagInfo
@@ -107,25 +110,38 @@
display: table-cell display: table-cell
width: 240px width: 240px
vertical-align: bottom; vertical-align: bottom;
.tableContainer .listRow
width: 100% display: table-row
margin-bottom: 20px .listCell
border: 0 display: table-cell
font-size: 12.5px position: relative
table height: 100%
table-layout: fixed
width: 100% width: 100%
> thead .tableContainer
> tr position: absolute
> th.name top: 0
width: auto bottom: 0
> th.tags left: 0
width: auto right: 0
> tbody width: auto
> tr.deactivated height: auto
background-color: #fac0d1 border: 0
> tr.deactivated:hover font-size: 12.5px
background-color: #ffcadb overflow-y: auto
table
table-layout: fixed
width: 100%
> thead
> tr
> th.name
width: auto
> th.tags
width: auto
> tbody
> tr.deactivated
background-color: #fac0d1
> tr.deactivated:hover
background-color: #ffcadb
td.roles td.roles
.role .role
padding: 4px 4px padding: 4px 4px

View File

@@ -1,39 +1,46 @@
<template name="Products"> <template name="Products">
<div id="products"> <div id="products">
<div class="tableControls"> {{#if Template.subscriptionsReady}}
<span class="controlLabel">Show Hidden</span> <div class="tableControls">
<div class="toggleShowHidden checkbox checkbox-slider--b-flat"> <span class="controlLabel">Show Hidden</span>
<label> <div class="toggleShowHidden checkbox checkbox-slider--b-flat">
<input type="checkbox" name="showHidden"><span></span> <label>
</label> <input type="checkbox" name="showHidden"><span></span>
</label>
</div>
<span class="pagination">
<span class="prevProducts noselect {{#if disablePrev}}disabled{{/if}}"><i class="fa fa-long-arrow-left" aria-hidden="true"></i> Prev</span>
<span class="nextProducts noselect {{#if disableNext}}disabled{{/if}}">Next <i class="fa fa-long-arrow-right" aria-hidden="true"></i></span>
</span>
</div> </div>
<span class="pagination"> <div class="listRow">
<span class="prevProducts noselect {{#if disablePrev}}disabled{{/if}}"><i class="fa fa-long-arrow-left" aria-hidden="true"></i> Prev</span> <div class="listCell">
<span class="nextProducts noselect {{#if disableNext}}disabled{{/if}}">Next <i class="fa fa-long-arrow-right" aria-hidden="true"></i></span> <div class="tableContainer">
</span> <table class="table table-striped table-hover">
</div> <thead>
<div class="tableContainer"> <tr>
<table class="table table-striped table-hover"> <th class="name">Name {{>ProductSearch columnName='name'}}</th>
<thead> <th class="tags">Tags {{>ProductSearch columnName='tags' collectionQueryColumnName='name' collection='ProductTags' collectionResultColumnName='_id'}}</th>
<tr> <th class="aliases">Aliases {{>ProductSearch columnName='aliases'}}</th>
<th class="name">Name {{>ProductSearch columnName='name'}}</th> <th class="measures">Measures {{>ProductSearch columnName='measures' collectionQueryColumnName='name' collection='Measures' collectionResultColumnName='_id'}}</th>
<th class="tags">Tags {{>ProductSearch columnName='tags' collectionQueryColumnName='name' collection='ProductTags' collectionResultColumnName='_id'}}</th> <th class="actions">Actions <span class="newProductButton btn btn-success"><i class="fa fa-plus-circle" aria-hidden="true"></i><i class="fa fa-times-circle" aria-hidden="true"></i></span></th>
<th class="aliases">Aliases {{>ProductSearch columnName='aliases'}}</th> </tr>
<th class="measures">Measures {{>ProductSearch columnName='measures' collectionQueryColumnName='name' collection='Measures' collectionResultColumnName='_id'}}</th> <!--<button type="button" name="newProductButton"><i class="fa fa-plus-circle" aria-hidden="true"></i></button>-->
<th class="actions">Actions <span class="newProductButton btn btn-success"><i class="fa fa-plus-circle" aria-hidden="true"></i><i class="fa fa-times-circle" aria-hidden="true"></i></span></th> </thead>
</tr> <tbody>
<!--<button type="button" name="newProductButton"><i class="fa fa-plus-circle" aria-hidden="true"></i></button>--> {{#if displayNewProduct}}
</thead> {{> ProductEditor isNew=true}}
<tbody> {{/if}}
{{#if displayNewProduct}} {{#each products}}
{{> ProductEditor isNew=true}} {{> Product}}
{{/if}} {{/each}}
{{#each products}} </tbody>
{{> Product}} </table>
{{/each}} </div>
</tbody> </div>
</table> </div>
</div> {{else}}
{{/if}}
</div> </div>
</template> </template>

View File

@@ -1,6 +1,9 @@
#products #products
margin: 20px 20px display: table
content-box: border-box
padding: 10px 20px
height: 100% height: 100%
width: 100%
text-align: left text-align: left
.tableControls .tableControls
@@ -18,81 +21,93 @@
top: -4px top: -4px
display: inline-block display: inline-block
.tableContainer .listRow
width: 100% display: table-row
margin-bottom: 20px .listCell
border: 0 display: table-cell
font-size: 12.5px position: relative
height: 100%
table
table-layout: fixed
width: 100% width: 100%
.productSearch .tableContainer
margin: 3px 0 2px 1px position: absolute
.productEditorTd top: 0
background: #deeac0 bottom: 0
input[name="name"], .productTagsEditor, .productAliasesEditor, .productMeasuresEditor left: 0
width: 100% right: 0
.editorDiv width: auto
margin: 4px 0 height: auto
label border: 0
font-family: "Arial Black", "Arial Bold", Gadget, sans-serif font-size: 12.5px
font-size: .9em overflow-y: auto
padding-bottom: 4px table
select2 table-layout: fixed
font-size: .4em width: 100%
> thead .productSearch
> tr margin: 3px 0 2px 1px
> th.name .productEditorTd
width: auto background: #deeac0
> th.tags input[name="name"], .productTagsEditor, .productAliasesEditor, .productMeasuresEditor
width: 220px width: 100%
> th.aliases .editorDiv
width: 220px margin: 4px 0
> th.measures label
width: 220px font-family: "Arial Black", "Arial Bold", Gadget, sans-serif
> th.actions font-size: .9em
width: 90px padding-bottom: 4px
text-align: center select2
.newProductButton font-size: .4em
margin-top: 4px > thead
padding: 0px 12px > tr
.fa-plus-circle > th.name
display: inline-block width: auto
.fa-times-circle > th.tags
display: none width: 220px
.newProductButton.active > th.aliases
background-color: #fb557b width: 220px
color: black > th.measures
.fa-times-circle width: 220px
display: inline-block > th.actions
.fa-plus-circle width: 90px
display: none text-align: center
> tbody .newProductButton
> tr margin-top: 4px
.actionRemove padding: 0px 12px
color: #F77 .fa-plus-circle
.actionEdit display: inline-block
color: #44F .fa-times-circle
.editorApply display: none
color: green .newProductButton:active
.editorCancel background-color: #fb557b
color: red color: black
> tr.deactivated .fa-times-circle
background-color: #fac0d1 display: inline-block
.actionActivate .fa-plus-circle
color: #158b18 display: none
.actionHide > tbody
color: #6a0707 > tr
.actionEdit .actionRemove
color: #0101e4 color: #F77
> tr.deactivated:hover .actionEdit
background-color: #ffcadb color: #44F
> tr.hidden .editorApply
background-color: #e995ff color: green
.actionEdit .editorCancel
color: #0101e4 color: red
.actionShow > tr.deactivated
color: #027905 background-color: #fac0d1
> tr.hidden:hover .actionActivate
background-color: #ffb5ff color: #158b18
.actionHide
color: #6a0707
.actionEdit
color: #0101e4
> tr.deactivated:hover
background-color: #ffcadb
> tr.hidden
background-color: #e995ff
.actionEdit
color: #0101e4
.actionShow
color: #027905
> tr.hidden:hover
background-color: #ffb5ff

View File

@@ -0,0 +1,61 @@
<template name="SaleDuplicates">
<div id="saleDuplicates">
<div class="controls">
<div class="pageControls">
<input class="duplicateScan btn btn-info" type="button" value="Scan For Duplicates"/>
</div>
<div class="tableControls">
<span class="controlLabel">Show Hidden</span>
<div class="toggleShowHidden checkbox checkbox-slider--b-flat">
<label>
<input type="checkbox" name="showHidden" {{showHidden}}><span></span>
</label>
</div>
</div>
</div>
<div class="listRow">
<div class="listCell">
<div class="tableContainer">
<table class="table table-striped table-hover">
<thead>
<tr>
<th class="amount noselect nonclickable">Duplicates</th>
<th class="amount noselect nonclickable">Amount</th>
<th class="product noselect nonclickable">Product <br/>{{>SaleDuplicateSearch columnName='productName' width='90%'}}</th>
<th class="price noselect nonclickable">Price</th>
<th class="measure noselect nonclickable">Measure</th>
<th class="saleDate noselect nonclickable">Date (Week)</th>
<th class="createdDate noselect nonclickable">Created On</th>
<th class="venue noselect nonclickable">Venue</th>
<th class="actions noselect nonclickable">Actions</th>
</tr>
</thead>
<tbody>
{{#each sales}}
{{> SaleDuplicate}}
{{/each}}
</tbody>
</table>
</div>
</div>
</div>
</div>
</template>
<template name="SaleDuplicate">
<tr class="{{duplicateClasses}}">
<td class="tdLarge noselect nonclickable center">{{duplicateCount}}</td>
<td class="tdLarge noselect nonclickable center">{{amount}}</td>
<td class="tdLarge noselect nonclickable left">{{productName}}</td>
<td class="tdLarge noselect nonclickable left">{{formatPrice price}}{{#if showTotalPrice amount}} ({{formatTotalPrice price amount}}){{/if}}</td>
<td class="tdLarge noselect nonclickable left">{{measureName}}</td> <!-- measureName measureId -->
<td class="tdLarge noselect nonclickable left">{{formatDateAndWeek date}}</td>
<td class="tdLarge noselect nonclickable left">{{formatDateTime createdAt}}</td>
<td class="tdLarge noselect nonclickable left">{{venueName}}</td>
<td class="tdLarge noselect left actions"><i class="fa fa-check fa-lg clickable ignoreDuplicatesButton {{#if ignoreDuplicates}}hidden{{/if}}" title="Ignore All Duplicates" aria-hidden="true"></i> <i class="fa fa-minus-circle fa-lg clickable removeAllDuplicatesButton" title="Remove All Duplicates" aria-hidden="true"></i> <span class="clickable removeOneDuplicateButton" title="Remove One Duplicate"><i class="fa fa-minus-circle fa-lg" aria-hidden="true"></i><sup>1</sup></span></td>
</tr>
</template>
<template name="SaleDuplicateSearch">
<input type="text" class="searchInput" placeholder="Filter..." value="{{searchValue}}" style="padding-right: 10px; width: {{width}}"/>
</template>

149
imports/ui/SaleDuplicates.import.styl vendored Normal file
View File

@@ -0,0 +1,149 @@
#saleDuplicates
display: table
content-box: border-box
padding: 10px 20px
height: 100%
width: 100%
text-align: left
.controls
text-align: left
display: table
width: 100%
.pageControls
padding: 4px 8px
margin: 4px 8px
display: table-cell
width: 240px
.tableControls
text-align: right
padding: 4px 8px
margin: 4px 12px 4px 8px
display: table-cell
.toggleShowHidden
margin: 0 40px 0 0
position: relative
top: -4px
display: inline-block
.listRow
display: table-row
.listCell
display: table-cell
position: relative
height: 100%
width: 100%
.tableContainer
position: absolute
top: 0
bottom: 0
left: 0
right: 0
width: auto
height: auto
//width: 100%
//margin-bottom: 20px
border: 0
font-size: 12.5px
overflow-y: auto
//height: 100%
label
font-size: 10px
font-weight: 800
table
table-layout: fixed
min-width: 100%
.saleRemove
color: red
margin-left: 8px
.saleEdit
color: darkblue
margin-right: 8px
.editorApply
color: green
.editorCancel
color: red
thead
> tr
> th.amount
width: 90px
> th.product
width: auto
min-width: 140px
> th.price
width: 140px
> th.measure
width: 100px
> th.saleDate
width: 140px
> th.createdDate
width: 100px
> th.venue
width: 160px
> th.actions
width: 90px
tbody
> tr
> td.actions
.ignoreDuplicatesButton
padding: 0 2px
color: green
.ignoreDuplicatesButton:hover
color: #00bb00
.ignoreDuplicatesButton:active
color: black
.ignoreDuplicatesButton.hidden
visibility: hidden
.removeAllDuplicatesButton, .removeOneDuplicateButton
padding: 0 2px
color: #a00000
.removeAllDuplicatesButton:hover, .removeOneDuplicateButton:hover
color: red
.removeAllDuplicatesButton:active, .removeOneDuplicateButton:active
color: black
> tr.hidden:nth-child(odd)
background-color: #f4f0ab
> tr.hidden:nth-child(even)
background-color: #fff6c0
> tr.hidden:hover
background-color: #ded
.editComment
color: grey
.hasComment
color: black
.actionEdit
margin-right: 6px
color: #44F
.saleEditor
.heading
font-size: 2em
font-family: verdana, arial, helvetica, sans-serif
text-transform: uppercase
font-weight: 800
margin: 6px 0 14px 0
.priceContainer
display: table
width: 100%
.price
display: table-cell
padding-right: 10px
.priceButtons
display: table-cell
width: 1.5em
.setDefaultPrice
font-size: 1.5em
padding: 6px 8px
margin-left: 8px
border-radius: 8px
.setDefaultPrice:hover
text-shadow: 0px 0px 6px #00b900
.setDefaultPrice:active
text-shadow: 0px 0px 6px grey
.insertSaleForm
.form-group, label
text-align: left
.formGroupHeading
font-size: 1.6em
font-family: "Arial Black", "Arial Bold", Gadget, sans-serif
font-style: normal
font-variant: normal
font-weight: 500

View File

@@ -0,0 +1,212 @@
import './SaleDuplicates.html';
import '/imports/util/selectize/selectize.js';
import swal from 'sweetalert2';
/**
* Notes:
* The Sale object has a date field which stores the date as a number in the format YYYYMMDD. Converting this number into a local date is done with moment(sale.date.toString(), "YYYYMMDD").toDate(), and converting it to a number from a date can be accomplished with ~~(moment(date).format("YYYYMMDD")), where the ~~ is a bitwise not and converts a string to a number quickly and reliably.
*/
let PREFIX = "SaleDuplicates.";
let DuplicateSales = new Meteor.Collection("duplicateSales");
let duplicateSalesSubscription;
Template.SaleDuplicates.onCreated(function() {
let template = Template.instance();
//Tracker.autorun(function() {
// let query = _.clone(Session.get(PREFIX + 'searchQuery'));
//
// duplicateSalesSubscription = template.subscribe("duplicateSales", query, Session.get(PREFIX + "showHidden"));
//});
Tracker.autorun(function() {
duplicateSalesSubscription = template.subscribe("duplicateSales", null, Session.get(PREFIX + "showHidden"));
});
});
Template.SaleDuplicates.onDestroyed(function() {
if(duplicateSalesSubscription) {
duplicateSalesSubscription.stop();
}
});
Template.SaleDuplicates.helpers({
sales: function() {
let dbQuery = [];
let query = _.clone(Session.get(PREFIX + 'searchQuery'));
if(query) {
// Add each query requirement sent by the client.
_.each(_.keys(query), function(key) {
//if(_.isObject(query[key])) dbQuery.push({[key]: query[key]});
if(_.isObject(query[key])) {
if(query[key].type === 'dateRange') {
if(query[key].start && query[key].end)
dbQuery.push({[key]: {$gte: query[key].start, $lte: query[key].end}});
else if(query[key].start)
dbQuery.push({[key]: {$gte: query[key].start}});
else if(query[key].end)
dbQuery.push({[key]: {$lte: query[key].end}});
// Do nothing if a start and/or end are not provided.
}
else {
dbQuery.push({[key]: query[key]});
}
}
else if(_.isNumber(query[key])) dbQuery.push({[key]: query[key]});
else {
let searchValue = query[key];
let searches = searchValue && searchValue.length > 0 ? searchValue.split(/\s+/) : undefined;
for(let search of searches) {
dbQuery.push({[key]: {$regex: '\\b' + search, $options: 'i'}});
}
}
});
}
if(dbQuery.length > 1) dbQuery = {$and: dbQuery};
else if(dbQuery.length == 1) dbQuery = dbQuery[0];
else dbQuery = {};
return DuplicateSales.find(dbQuery, {sort: {date: -1, productName: 1}});
},
showHidden: function() {
return Session.get(PREFIX + "showHidden") ? "checked": "";
}
});
Template.SaleDuplicates.events({
'click .duplicateScan': function(event, template) {
Meteor.call("markDuplicateSales", function(err, result) {
Meteor.log.error(err);
});
},
'change input[name="showHidden"]': function(event, template) {
//console.log("changed " + $(event.target).prop('checked'));
Session.set(PREFIX + "showHidden", $(event.target).prop('checked'));
}
});
Template.SaleDuplicate.helpers({
//measureName: function(id) {
// return Meteor.collections.Measures.findOne({_id: id}, {fields: {name: 1}}).name;
//},
//venueName: function(id) {
// return Meteor.collections.Venues.findOne({_id: id}, {fields: {name: 1}}).name;
//},
//productName: function(id) {
// return Meteor.collections.Products.findOne({_id: id}, {fields: {name: 1}}).name;
//},
formatDateAndWeek: function(date) {
return moment.utc(date.toString(), "YYYYMMDD").utc().format("MM/DD/YYYY (w)");
},
formatDateTime: function(date) {
return moment.utc(date).format("MM/DD/YYYY");
},
formatPrice: function(price) {
return price.toLocaleString("en-US", {style: 'currency', currency: 'USD', minimumFractionDigits: 2});
},
formatTotalPrice: function(price, amount) {
return (price * amount).toLocaleString("en-US", {style: 'currency', currency: 'USD', minimumFractionDigits: 2});
},
showTotalPrice: function(amount) {
return amount > 1;
},
duplicateClasses: function() {
return this.ignoreDuplicates ? "hidden" : "";
}
});
Template.SaleDuplicate.events({
"click .ignoreDuplicatesButton": function(event, template) {
Meteor.call('ignoreDuplicateSales', this._id, function(err, result) {
if(err) sAlert.error(err);
//else sAlert.success("Duplicates Ignored");
});
},
"click .removeAllDuplicatesButton": function(event, template) {
let _this = this;
swal({
title: "Are you sure?",
text: "This will permanently remove ALL duplicate sales.",
type: "question",
showCancelButton: true,
confirmButtonColor: "#DD6B55",
confirmButtonText: "Yes"
}).then(
function(isConfirm) {
if(isConfirm) {
Meteor.call('removeDuplicateSales', _this._id, function(err, result) {
if(err) sAlert.error(err);
//else sAlert.success("Duplicates Removed");
});
}
},
function(dismiss) {
}
);
},
"click .removeOneDuplicateButton": function(event, template) {
let _this = this;
swal({
title: "Are you sure?",
text: "This will permanently remove ONE duplicate sale.",
type: "question",
showCancelButton: true,
confirmButtonColor: "#DD6B55",
confirmButtonText: "Yes"
}).then(
function(isConfirm) {
if(isConfirm) {
Meteor.call('removeDuplicateSales', _this._id, true, function(err, result) {
if(err) sAlert.error(err);
//else sAlert.success("Duplicates Removed");
});
}
},
function(dismiss) {
}
);
}
});
Template.SaleDuplicateSearch.helpers({
searchValue: function() {
let searchFields = Session.get(PREFIX + 'searchFields');
return (searchFields && searchFields[this.columnName]) ? searchFields[this.columnName] : '';
}
});
Template.SaleDuplicateSearch.events({
"keyup .searchInput": _.throttle(function(event, template) {
let searchQuery = Session.get(PREFIX + 'searchQuery') || {};
let searchFields = Session.get(PREFIX + 'searchFields') || {};
let searchValue = template.$(event.target).val();
if(searchValue) {
if(this.number) searchValue = parseFloat(searchValue);
// A collection name will be provided if there is a related table of data that will contain the text provided and will map to an ID that is then searched for in the current table of data.
// For example we are displaying a table of Sales which has the ID of a Product. The Product table has a Name field and the search box searches for Product Names. The ID's of the Products found should be used to filter the Sales by Product ID.
if(this.collection) {
let ids = Meteor.collections[this.collection].find({[this.collectionQueryColumnName]: {$regex: searchValue, $options: 'i'}}, {fields: {[this.collectionResultColumnName]: 1}}).fetch();
//Convert the ids to an array of ids instead of an array of objects containing an id.
for(let i = 0; i < ids.length; i++) {ids[i] = ids[i]._id;}
searchQuery[this.columnName] = {$in: ids};
searchFields[this.columnName] = searchValue;
}
else {
searchFields[this.columnName] = searchQuery[this.columnName] = searchValue;
}
}
else {
//Remove columns from the search query whose values are empty so we don't bother the database with them.
delete searchQuery[this.columnName];
delete searchFields[this.columnName];
}
Session.set(PREFIX + 'searchQuery', searchQuery);
Session.set(PREFIX + 'searchFields', searchFields);
Session.set(PREFIX + 'skipCount', 0); //Reset the paging of the results.
}, 500)
});

View File

@@ -1,18 +1,23 @@
<template name="Sales"> <template name="Sales">
<div id="salesMain"> <div id="salesMain">
{{#if Template.subscriptionsReady}} {{#if Template.subscriptionsReady}}
<div class="tableControls"> <div class="controls">
<select name="sortSelect"> <div class="pageControls">
<option value="date" selected>Sale Date</option> <input type="button" class="showDuplicates btn btn-info" style="margin-right: 30px" value="Duplicate Analysis"/>
<option value="createdAt">Data Entry Date</option> </div>
</select> <div class="tableControls">
<div class="pagination"> <select name="sortSelect" class="form-control" style="width: auto; display: inline;">
<span class="prevButton noselect {{#if disablePrev}}disabled{{/if}}"><i class="fa fa-long-arrow-left" aria-hidden="true"></i> Prev</span> <option value="date" selected>Sale Date</option>
<span class="nextButton noselect {{#if disableNext}}disabled{{/if}}">Next <i class="fa fa-long-arrow-right" aria-hidden="true"></i></span> <option value="createdAt">Data Entry Date</option>
</select>
<div class="pagination">
<span class="prevButton noselect {{#if disablePrev}}disabled{{/if}}"><i class="fa fa-long-arrow-left" aria-hidden="true"></i> Prev</span>
<span class="nextButton noselect {{#if disableNext}}disabled{{/if}}">Next <i class="fa fa-long-arrow-right" aria-hidden="true"></i></span>
</div>
</div> </div>
</div> </div>
<div class="salesListRow"> <div class="listRow">
<div class="salesListCell"> <div class="listCell">
<div class="tableContainer"> <div class="tableContainer">
<table class="table table-striped table-hover"> <table class="table table-striped table-hover">
<thead> <thead>
@@ -21,7 +26,7 @@
<th class="product noselect nonclickable">Product <br/>{{>SaleSearch columnName='productId' collectionQueryColumnName='name' collection='Products' collectionResultColumnName='_id' width='90%'}}</th> <th class="product noselect nonclickable">Product <br/>{{>SaleSearch columnName='productId' collectionQueryColumnName='name' collection='Products' collectionResultColumnName='_id' width='90%'}}</th>
<th class="price noselect nonclickable">Price {{>SaleSearch columnName='price' width='90%'}}</th> <th class="price noselect nonclickable">Price {{>SaleSearch columnName='price' width='90%'}}</th>
<th class="measure noselect nonclickable">Measure {{>SaleSearch columnName='measureId' collectionQueryColumnName='name' collection='Measures' collectionResultColumnName='_id' width='90%'}}</th> <th class="measure noselect nonclickable">Measure {{>SaleSearch columnName='measureId' collectionQueryColumnName='name' collection='Measures' collectionResultColumnName='_id' width='90%'}}</th>
<th class="saleDate noselect nonclickable">Date (Week)</th> <th class="saleDate noselect nonclickable">Date (Week) {{>DateRangeSearch columnName='date' width='90%'}}</th>
<th class="createdDate noselect nonclickable">Created On</th> <th class="createdDate noselect nonclickable">Created On</th>
<th class="venue noselect nonclickable">Venue {{>SaleSearch columnName='venueId' collectionQueryColumnName='name' collection='Venues' collectionResultColumnName='_id' width='90%'}}</th> <th class="venue noselect nonclickable">Venue {{>SaleSearch columnName='venueId' collectionQueryColumnName='name' collection='Venues' collectionResultColumnName='_id' width='90%'}}</th>
<th class="actions noselect nonclickable">Actions <span class="newSaleButton btn btn-success" title="Create Sale"><i class="fa fa-plus-circle" aria-hidden="true"></i><i class="fa fa-times-circle" aria-hidden="true"></i></span> <i class="fa fa-commenting fa-lg showOnlyComments clickable" title="Show Commented Sales" aria-hidden="true"></i></th> <th class="actions noselect nonclickable">Actions <span class="newSaleButton btn btn-success" title="Create Sale"><i class="fa fa-plus-circle" aria-hidden="true"></i><i class="fa fa-times-circle" aria-hidden="true"></i></span> <i class="fa fa-commenting fa-lg showOnlyComments clickable" title="Show Commented Sales" aria-hidden="true"></i></th>
@@ -55,7 +60,7 @@
<td class="tdLarge noselect nonclickable left">{{formatPrice price}}{{#if showTotalPrice amount}} ({{formatTotalPrice price amount}}){{/if}}</td> <td class="tdLarge noselect nonclickable left">{{formatPrice price}}{{#if showTotalPrice amount}} ({{formatTotalPrice price amount}}){{/if}}</td>
<td class="tdLarge noselect nonclickable left">{{measureName measureId}}</td> <td class="tdLarge noselect nonclickable left">{{measureName measureId}}</td>
<td class="tdLarge noselect nonclickable left">{{formatDateAndWeek date}}</td> <td class="tdLarge noselect nonclickable left">{{formatDateAndWeek date}}</td>
<td class="tdLarge noselect nonclickable left">{{formatDate createdAt}}</td> <td class="tdLarge noselect nonclickable left">{{formatDateTime createdAt}}</td>
<td class="tdLarge noselect nonclickable left">{{venueName venueId}}</td> <td class="tdLarge noselect nonclickable left">{{venueName venueId}}</td>
<td class="tdLarge noselect left"><i class="fa fa-pencil-square-o fa-lg actionEdit noselect clickable" title="Edit" aria-hidden="true"></i> <i class="fa fa-commenting fa-lg editComment noselect clickable {{commentClass}}" aria-hidden="true"></i> <i class="fa fa-times-circle fa-lg saleRemove noselect clickable" aria-hidden="true"></i></td> <td class="tdLarge noselect left"><i class="fa fa-pencil-square-o fa-lg actionEdit noselect clickable" title="Edit" aria-hidden="true"></i> <i class="fa fa-commenting fa-lg editComment noselect clickable {{commentClass}}" aria-hidden="true"></i> <i class="fa fa-times-circle fa-lg saleRemove noselect clickable" aria-hidden="true"></i></td>
</tr> </tr>
@@ -72,7 +77,7 @@
<div class="editorDiv"><label>Venue</label><input name="venue" class="form-control" type="text" required/></div> <div class="editorDiv"><label>Venue</label><input name="venue" class="form-control" type="text" required/></div>
</div> </div>
<div class="col-6-12"> <div class="col-6-12">
<div class="editorDiv"><label>Amount</label><input type="number" class="form-control amount" name="amount" min="0" step="0.01" data-schema-key='amount' value="{{amount}}" required></div> <div class="editorDiv"><label>Amount</label><input type="number" class="form-control amount" name="amount" min="0" step="1" data-schema-key='amount' value="{{amount}}" required></div>
<div class="editorDiv"><label>Price</label><div class="priceContainer"><input type="number" class="form-control price" name="price" min="0" step="0.01" data-schema-key='currency' value="{{price}}" required><div class="priceButtons"><i class="fa fa-cogs setDefaultPrice noselect clickable" title="Calculate Default Price" aria-hidden="true"></i></div></div></div> <div class="editorDiv"><label>Price</label><div class="priceContainer"><input type="number" class="form-control price" name="price" min="0" step="0.01" data-schema-key='currency' value="{{price}}" required><div class="priceButtons"><i class="fa fa-cogs setDefaultPrice noselect clickable" title="Calculate Default Price" aria-hidden="true"></i></div></div></div>
<div class="editorDiv"><label>Total</label><input type="number" class="form-control total" name="total" data-schema-key='currency' value="{{total}}" tabindex="-1" readonly></div> <div class="editorDiv"><label>Total</label><input type="number" class="form-control total" name="total" data-schema-key='currency' value="{{total}}" tabindex="-1" readonly></div>
</div> </div>
@@ -87,6 +92,10 @@
<input type="text" class="searchInput" placeholder="Filter..." value="{{searchValue}}" style="padding-right: 10px; width: {{width}}"/> <input type="text" class="searchInput" placeholder="Filter..." value="{{searchValue}}" style="padding-right: 10px; width: {{width}}"/>
</template> </template>
<template name="DateRangeSearch">
<div style="padding-right: 10px; width: {{width}};"><input type="date" class="searchDateStartInput" value="{{startDate}}" data-schema-key='date' required> - <input type="date" class="searchDateEndInput" value="{{endDate}}" data-schema-key='date' required></div>
</template>
<template name="InsertSale"> <template name="InsertSale">
<tr> <tr>
<td colspan="8"> <td colspan="8">

View File

@@ -5,12 +5,23 @@
height: 100% height: 100%
width: 100% width: 100%
text-align: left text-align: left
.tableControls .controls
text-align: right text-align: left
margin-right: 20px display: table
.salesListRow width: 100%
.pageControls
padding: 4px 8px
margin: 4px 8px
display: table-cell
width: 240px
.tableControls
text-align: right
padding: 4px 8px
margin: 4px 12px 4px 8px
display: table-cell
.listRow
display: table-row display: table-row
.salesListCell .listCell
display: table-cell display: table-cell
position: relative position: relative
height: 100% height: 100%
@@ -70,7 +81,7 @@
display: inline-block display: inline-block
.fa-times-circle .fa-times-circle
display: none display: none
.newSaleButton.active .newSaleButton:active
background-color: #fb557b background-color: #fb557b
color: black color: black
.fa-times-circle .fa-times-circle

View File

@@ -3,30 +3,41 @@ import './Sales.html';
import '/imports/util/selectize/selectize.js'; import '/imports/util/selectize/selectize.js';
import swal from 'sweetalert2'; import swal from 'sweetalert2';
/**
* Notes:
* The Sale object has a date field which stores the date as a number in the format YYYYMMDD. Converting this number into a local date is done with moment(sale.date.toString(), "YYYYMMDD").toDate(), and converting it to a number from a date can be accomplished with ~~(moment(date).format("YYYYMMDD")), where the ~~ is a bitwise not and converts a string to a number quickly and reliably.
*/
let QUERY_LIMIT = 20; let QUERY_LIMIT = 20;
let PREFIX = "Sales."; let PREFIX = "Sales.";
Meteor.subscribe("products");
Session.set(PREFIX + "sortOption", "date");
Session.set(PREFIX + "showOnlyComments", false);
Tracker.autorun(function() {
let sortOption = Session.get(PREFIX + "sortOption");
let sort = sortOption == 'createdAt' ? {createdAt: -1} : {date: -1, createdAt: -1};
let showOnlyComments = Session.get(PREFIX + "showOnlyComments");
let query = _.clone(Session.get(PREFIX + 'searchQuery'));
if(showOnlyComments) {
if(!query) query = {};
query.comment = {$exists: true};
}
Meteor.subscribe("sales", query, sort, QUERY_LIMIT, Session.get(PREFIX + 'skipCount'));
Session.set(PREFIX + 'saleCount', Meteor.call('getSalesCount', Session.get(PREFIX + 'searchQuery')));
});
Template.Sales.onCreated(function() { Template.Sales.onCreated(function() {
Session.set(PREFIX + "displayNewSale", false); Session.set(PREFIX + "displayNewSale", false);
Meteor.subscribe("products");
Session.set(PREFIX + "sortOption", "date");
Session.set(PREFIX + "showOnlyComments", false);
Tracker.autorun(function() {
let sortOption = Session.get(PREFIX + "sortOption");
let sort = sortOption == 'createdAt' ? {createdAt: -1} : {date: -1, createdAt: -1};
let showOnlyComments = Session.get(PREFIX + "showOnlyComments");
let query = _.clone(Session.get(PREFIX + 'searchQuery'));
if(showOnlyComments) {
if(!query) query = {};
query.comment = {$exists: true};
}
//if(Template.Sales.salesSubscription) Template.Sales.salesSubscription.stop();
Template.Sales.salesSubscription = Meteor.subscribe("sales", query, sort, QUERY_LIMIT, Session.get(PREFIX + 'skipCount'));
Session.set(PREFIX + 'saleCount', Meteor.call('getSalesCount', Session.get(PREFIX + 'searchQuery')));
});
});
Template.Sales.onDestroyed(function() {
if(Template.Sales.salesSubscription) {
Template.Sales.salesSubscription.stop();
}
}); });
Template.Sales.helpers({ Template.Sales.helpers({
displayNewSale: function() { displayNewSale: function() {
@@ -77,6 +88,9 @@ Template.Sales.events({
Session.set(PREFIX + "showOnlyComments", !$button.hasClass('on')); Session.set(PREFIX + "showOnlyComments", !$button.hasClass('on'));
$button.toggleClass('on'); $button.toggleClass('on');
},
'click .showDuplicates': function(event, template) {
FlowRouter.go('SaleDuplicates');
} }
}); });
@@ -93,10 +107,10 @@ Template.Sale.helpers({
return Meteor.collections.Products.findOne({_id: id}, {fields: {name: 1}}).name; return Meteor.collections.Products.findOne({_id: id}, {fields: {name: 1}}).name;
}, },
formatDateAndWeek: function(date) { formatDateAndWeek: function(date) {
return moment(date).format("MM/DD/YYYY (w)"); return moment.utc(date.toString(), "YYYYMMDD").utc().format("MM/DD/YYYY (w)");
}, },
formatDate: function(date) { formatDateTime: function(date) {
return moment(date).format("MM/DD/YYYY"); return moment.utc(date).format("MM/DD/YYYY");
}, },
formatPrice: function(price) { formatPrice: function(price) {
return price.toLocaleString("en-US", {style: 'currency', currency: 'USD', minimumFractionDigits: 2}); return price.toLocaleString("en-US", {style: 'currency', currency: 'USD', minimumFractionDigits: 2});
@@ -162,10 +176,8 @@ Template.Sale.events({
}); });
Template.SaleEditor.onCreated(function() { Template.SaleEditor.onCreated(function() {
let _this = this;
this.product = Meteor.collections.Products.findOne({_id: this.data.productId}); this.product = Meteor.collections.Products.findOne({_id: this.data.productId});
this.selectedDate = new ReactiveVar(this.data.date); this.selectedDate = new ReactiveVar(moment(this.data.date.toString(), "YYYYMMDD").toDate());
this.selectedVenue = new ReactiveVar(Meteor.collections.Venues.findOne({_id: this.data.venueId})); this.selectedVenue = new ReactiveVar(Meteor.collections.Venues.findOne({_id: this.data.venueId}));
this.price = new ReactiveVar(this.data.price); this.price = new ReactiveVar(this.data.price);
this.amount = new ReactiveVar(this.data.amount); this.amount = new ReactiveVar(this.data.amount);
@@ -207,7 +219,7 @@ Template.SaleEditor.events({
//If this product has pricing data for the given measure, then either use the price, or the previousPrice (if there is one and the effectiveDate is after the sale date). //If this product has pricing data for the given measure, then either use the price, or the previousPrice (if there is one and the effectiveDate is after the sale date).
if(priceData) { if(priceData) {
if(priceData.effectiveDate && date && moment(priceData.effectiveDate).isAfter(date)) if(priceData.effectiveDate && date && moment.utc(priceData.effectiveDate.toString(), "YYYYMMDD").isAfter(date))
price = priceData.previousPrice; price = priceData.previousPrice;
else else
price = priceData.price price = priceData.price
@@ -231,7 +243,7 @@ Template.SaleEditor.events({
template.$('form[name="editSaleForm"]').data('bs.validator').validate(function(isValid) { template.$('form[name="editSaleForm"]').data('bs.validator').validate(function(isValid) {
if(isValid) { if(isValid) {
let id = template.data._id; let id = template.data._id;
let date = template.selectedDate.get(); let date = ~~(moment(template.selectedDate.get()).format("YYYYMMDD")); // Note: The ~~ is a bitwise not that is a fast method of converting a string to a number.
let venue = template.selectedVenue.get(); let venue = template.selectedVenue.get();
let price = template.price.get(); let price = template.price.get();
let amount = template.amount.get(); let amount = template.amount.get();
@@ -245,36 +257,6 @@ Template.SaleEditor.events({
}); });
} }
}); });
//let name = template.$("input[name='name']").val().trim();
//let tags = template.$(".productTagsEditor").select2('data');
//let aliases = template.$(".productAliasesEditor").select2('data');
//let measures = template.$(".productMeasuresEditor").select2('data');
//
//tags = tags.map((n)=>n.id);
//aliases = aliases.map((n)=>n.id);
//measures = measures.map((n)=>n.id);
//
//if(Session.get(PREFIX + 'displayNewProduct')) {
// Meteor.call("createProduct", name, tags, aliases, measures, function(error, result) {
// if(error) sAlert.error(error);
// else {
// sAlert.success("Product created.");
// Session.set(PREFIX + 'displayNewProduct', false);
// template.parentTemplate().$('.newProductButton').removeClass('active');
// }
// });
//}
//else {
// Meteor.call("updateProduct", this._id, name, tags, aliases, measures, function(error, result) {
// if(error) sAlert.error(error);
// else {
// sAlert.success("Product updated.");
// Session.set(PREFIX + "editedProduct", undefined);
// template.parentTemplate().$('.newProductButton').removeClass('active');
// }
// });
//}
} }
}); });
@@ -289,11 +271,13 @@ Template.SaleSearch.events({
"keyup .searchInput": _.throttle(function(event, template) { "keyup .searchInput": _.throttle(function(event, template) {
let searchQuery = Session.get(PREFIX + 'searchQuery') || {}; let searchQuery = Session.get(PREFIX + 'searchQuery') || {};
let searchFields = Session.get(PREFIX + 'searchFields') || {}; let searchFields = Session.get(PREFIX + 'searchFields') || {};
let searchValue = template.$('.searchInput').val(); let searchValue = template.$(event.target).val();
if(searchValue) { if(searchValue) {
if(this.number) searchValue = parseFloat(searchValue); if(this.number) searchValue = parseFloat(searchValue);
// A collection name will be provided if there is a related table of data that will contain the text provided and will map to an ID that is then searched for in the current table of data.
// For example we are displaying a table of Sales which has the ID of a Product. The Product table has a Name field and the search box searches for Product Names. The ID's of the Products found should be used to filter the Sales by Product ID.
if(this.collection) { if(this.collection) {
let ids = Meteor.collections[this.collection].find({[this.collectionQueryColumnName]: {$regex: searchValue, $options: 'i'}}, {fields: {[this.collectionResultColumnName]: 1}}).fetch(); let ids = Meteor.collections[this.collection].find({[this.collectionQueryColumnName]: {$regex: searchValue, $options: 'i'}}, {fields: {[this.collectionResultColumnName]: 1}}).fetch();
@@ -313,11 +297,70 @@ Template.SaleSearch.events({
} }
Session.set(PREFIX + 'searchQuery', searchQuery); Session.set(PREFIX + 'searchQuery', searchQuery);
Session.set(PREFIX + 'searchFields', searchFields) Session.set(PREFIX + 'searchFields', searchFields);
Session.set(PREFIX + 'skipCount', 0); //Reset the paging of the results. Session.set(PREFIX + 'skipCount', 0); //Reset the paging of the results.
}, 500) }, 500)
}); });
Template.DateRangeSearch.helpers({
startDate: function() {
let searchFields = Session.get(PREFIX + 'searchFields');
let searchValue = (searchFields && searchFields[this.columnName]) ? searchFields[this.columnName] : {};
return searchValue.start ? moment(searchValue.start.toString(), "YYYYMMDD").format("MM/DD/YYYY") : "";
},
endDate: function() {
let searchFields = Session.get(PREFIX + 'searchFields');
let searchValue = (searchFields && searchFields[this.columnName]) ? searchFields[this.columnName] : {};
return searchValue.end ? moment(searchValue.end.toString(), "YYYYMMDD").format("MM/DD/YYYY") : "";
}
});
Template.DateRangeSearch.events({
"change .searchDateStartInput": function(event, template) {Template.DateRangeSearch.dateChanged(true, event, template)},
"keyup .searchDateStartInput": _.throttle(function(event, template) {Template.DateRangeSearch.dateChanged(true, event, template)}, 500),
"change .searchDateEndInput": function(event, template) {Template.DateRangeSearch.dateChanged(false, event, template)},
"keyup .searchDateEndInput": _.throttle(function(event, template) {Template.DateRangeSearch.dateChanged(false, event, template)}, 500)
});
Template.DateRangeSearch.dateChanged = function(isStart, event, template) {
let searchQuery = Session.get(PREFIX + 'searchQuery') || {};
let searchFields = Session.get(PREFIX + 'searchFields') || {};
let searchValue = template.$(event.target).val();
let columnName = template.data.columnName;
if(searchValue) {
let search = searchQuery[columnName];
// Create a search object and attach it to the searchFields and searchQuery objects if needed.
if(!search) {
search = {type: 'dateRange'};
searchFields[columnName] = searchQuery[columnName] = search;
}
// Use moment to parse date and convert it to YYYYMMDD for searching the database.
searchValue = ~~(moment(searchValue, searchValue.includes("-") ? "YYYY-MM-DD" : "MM/DD/YYYY").format("YYYYMMDD")); // Note: ~~ performs a bitwise not which is a fast method of converting a string to a number.
// Save the search ending date.
isStart ? search.start = searchValue : search.end = searchValue;
}
else {
if(searchQuery[columnName]) {
// Remove columns from the search query whose values are empty so we don't bother the database with them.
if(isStart) {
delete searchQuery[columnName].start;
delete searchFields[columnName].start;
}
else {
delete searchQuery[columnName].end;
delete searchFields[columnName].end;
}
}
}
Session.set(PREFIX + 'searchQuery', searchQuery);
Session.set(PREFIX + 'searchFields', searchFields);
Session.set(PREFIX + 'skipCount', 0); //Reset the paging of the results.
};
Template.InsertSale.onCreated(function() { Template.InsertSale.onCreated(function() {
this.selectedDate = new ReactiveVar(); this.selectedDate = new ReactiveVar();
this.selectedProduct = new ReactiveVar(); this.selectedProduct = new ReactiveVar();
@@ -351,7 +394,7 @@ Template.InsertSale.events({
let insertSaleMeasures = template.$(".insertSaleMeasure"); let insertSaleMeasures = template.$(".insertSaleMeasure");
let sale = { let sale = {
date: moment(template.find("[name='date']").value, "YYYY-MM-DD").toDate(), date: ~~(moment(template.find("[name='date']").value, "YYYY-MM-DD").format("YYYYMMDD")), // Note: ~~ performs a bitwise not which is a fast method of converting a string to a number.
productId: template.selectedProduct.get()._id, productId: template.selectedProduct.get()._id,
venueId: template.selectedVenue.get()._id venueId: template.selectedVenue.get()._id
}; };
@@ -381,6 +424,7 @@ Template.InsertSale.events({
if(error) sAlert.error("Failed to insert the sale!\n" + error); if(error) sAlert.error("Failed to insert the sale!\n" + error);
else { else {
sAlert.success("Sale Created"); sAlert.success("Sale Created");
nextMeasure.find(".amount").val(0);
//Clear the measure quantity fields so the user can enter another sale without the quantities already set. //Clear the measure quantity fields so the user can enter another sale without the quantities already set.
for(let next = 0; next < insertSaleMeasures.length; next++) { for(let next = 0; next < insertSaleMeasures.length; next++) {

View File

@@ -1,37 +1,44 @@
<template name="Venues"> <template name="Venues">
<div id="venues"> <div id="venues">
<div class="tableControls"> {{#if Template.subscriptionsReady}}
<span class="controlLabel">Show Hidden</span> <div class="tableControls">
<div class="toggleShowHidden checkbox checkbox-slider--b-flat"> <span class="controlLabel">Show Hidden</span>
<label> <div class="toggleShowHidden checkbox checkbox-slider--b-flat">
<input type="checkbox" name="showHidden"><span></span> <label>
</label> <input type="checkbox" name="showHidden"><span></span>
</label>
</div>
<span class="pagination">
<span class="prevVenues noselect {{#if disablePrev}}disabled{{/if}}"><i class="fa fa-long-arrow-left" aria-hidden="true"></i> Prev</span>
<span class="nextVenues noselect {{#if disableNext}}disabled{{/if}}">Next <i class="fa fa-long-arrow-right" aria-hidden="true"></i></span>
</span>
</div> </div>
<span class="pagination"> <div class="listRow">
<span class="prevVenues noselect {{#if disablePrev}}disabled{{/if}}"><i class="fa fa-long-arrow-left" aria-hidden="true"></i> Prev</span> <div class="listCell">
<span class="nextVenues noselect {{#if disableNext}}disabled{{/if}}">Next <i class="fa fa-long-arrow-right" aria-hidden="true"></i></span> <div class="tableContainer">
</span> <table class="table table-striped table-hover">
</div> <thead>
<div class="tableContainer"> <tr>
<table class="table table-striped table-hover"> <th class="name">Name {{>VenueSearch columnName='name'}}</th>
<thead> <th class="type">Type {{>VenueSearch columnName='type'}}</th>
<tr> <th class="actions">Actions <span class="newVenueButton btn btn-success"><i class="fa fa-plus-circle" aria-hidden="true"></i><i class="fa fa-times-circle" aria-hidden="true"></i></span></th>
<th class="name">Name {{>VenueSearch columnName='name'}}</th> </tr>
<th class="type">Type {{>VenueSearch columnName='type'}}</th> <!--<button type="button" name="newVenueButton"><i class="fa fa-plus-circle" aria-hidden="true"></i></button>-->
<th class="actions">Actions <span class="newVenueButton btn btn-success"><i class="fa fa-plus-circle" aria-hidden="true"></i><i class="fa fa-times-circle" aria-hidden="true"></i></span></th> </thead>
</tr> <tbody>
<!--<button type="button" name="newVenueButton"><i class="fa fa-plus-circle" aria-hidden="true"></i></button>--> {{#if displayNewVenue}}
</thead> {{> VenueEditor isNew=true}}
<tbody> {{/if}}
{{#if displayNewVenue}} {{#each venues}}
{{> VenueEditor isNew=true}} {{> Venue}}
{{/if}} {{/each}}
{{#each venues}} </tbody>
{{> Venue}} </table>
{{/each}} </div>
</tbody> </div>
</table> </div>
</div> {{else}}
{{/if}}
</div> </div>
</template> </template>

View File

@@ -1,6 +1,9 @@
#venues #venues
margin: 20px 20px display: table
content-box: border-box
padding: 10px 20px
height: 100% height: 100%
width: 100%
text-align: left text-align: left
.tableControls .tableControls
@@ -18,77 +21,89 @@
top: -4px top: -4px
display: inline-block display: inline-block
.tableContainer .listRow
width: 100% display: table-row
margin-bottom: 20px .listCell
border: 0 display: table-cell
font-size: 12.5px position: relative
height: 100%
table
table-layout: fixed
width: 100% width: 100%
.venueSearch .tableContainer
margin: 3px 0 2px 1px position: absolute
.venueEditorTd top: 0
background: #deeac0 bottom: 0
input[name="name"], input[name="type"] left: 0
width: 100% right: 0
.editorDiv width: auto
margin: 4px 0 height: auto
label border: 0
font-family: "Arial Black", "Arial Bold", Gadget, sans-serif font-size: 12.5px
font-size: .9em overflow-y: auto
padding-bottom: 4px table
select2 table-layout: fixed
font-size: .4em width: 100%
> thead .venueSearch
> tr margin: 3px 0 2px 1px
> th.name .venueEditorTd
width: auto background: #deeac0
> th.type input[name="name"], input[name="type"]
width: auto width: 100%
> th.actions .editorDiv
width: 90px margin: 4px 0
text-align: center label
.newVenueButton font-family: "Arial Black", "Arial Bold", Gadget, sans-serif
margin-top: 4px font-size: .9em
padding: 0px 12px padding-bottom: 4px
.fa-plus-circle select2
display: inline-block font-size: .4em
.fa-times-circle > thead
display: none > tr
.newVenueButton.active > th.name
background-color: #fb557b width: auto
color: black > th.type
.fa-times-circle width: auto
display: inline-block > th.actions
.fa-plus-circle width: 90px
display: none text-align: center
> tbody .newVenueButton
> tr margin-top: 4px
.actionRemove padding: 0px 12px
color: #F77 .fa-plus-circle
.actionEdit display: inline-block
color: #44F .fa-times-circle
.editorApply display: none
color: green .newVenueButton.active
.editorCancel background-color: #fb557b
color: red color: black
> tr.deactivated .fa-times-circle
background-color: #fac0d1 display: inline-block
.actionActivate .fa-plus-circle
color: #158b18 display: none
.actionHide > tbody
color: #6a0707 > tr
.actionEdit .actionRemove
color: #0101e4 color: #F77
> tr.deactivated:hover .actionEdit
background-color: #ffcadb color: #44F
> tr.hidden .editorApply
background-color: #e995ff color: green
.actionEdit .editorCancel
color: #0101e4 color: red
.actionShow > tr.deactivated
color: #027905 background-color: #fac0d1
> tr.hidden:hover .actionActivate
background-color: #ffb5ff color: #158b18
.actionHide
color: #6a0707
.actionEdit
color: #0101e4
> tr.deactivated:hover
background-color: #ffcadb
> tr.hidden
background-color: #e995ff
.actionEdit
color: #0101e4
.actionShow
color: #027905
> tr.hidden:hover
background-color: #ffb5ff

View File

@@ -17,6 +17,11 @@
User Management User Management
</a> </a>
</li> </li>
<li class="{{isActiveRoute 'MiscManagement'}}">
<a href="{{pathFor 'MiscManagement'}}">
Misc Management
</a>
</li>
{{/if}} {{/if}}
<li class="{{isActiveRoute 'Sales'}}"> <li class="{{isActiveRoute 'Sales'}}">
<a href="{{pathFor 'Sales'}}"> <a href="{{pathFor 'Sales'}}">

View File

@@ -6,6 +6,7 @@
"build": "npm install --product && meteor build --architecture os.linux.x86_64 --server-only ../" "build": "npm install --product && meteor build --architecture os.linux.x86_64 --server-only ../"
}, },
"dependencies": { "dependencies": {
"1.0": "^1.0.2",
"babel-runtime": "^6.18.0", "babel-runtime": "^6.18.0",
"csv-parse": "latest", "csv-parse": "latest",
"d3": "^4.4.2", "d3": "^4.4.2",

57
server/cleanDates.js Normal file
View File

@@ -0,0 +1,57 @@
Meteor.methods({
// Cleans up all Date objects that don't have a time component. Removes any time component.
"cleanDates": function() {
// Update the sales dates.
let sales = Sales.find({}).fetch();
for(let i = 0; i < sales.length; i++) {
if(sales[i].date && _.isDate(sales[i].date)) {
let date = ~~(moment(sales[i].date).format("YYYYMMDD"));
console.log("Converted " + sales[i].date + " to " + date);
// Save to the database.
Sales.update(sales[i]._id, {$set: {date}}, function(err, id) {
if(err) console.log(err);
}, {bypassCollection2: true});
}
}
console.log("+++++++++++++++++++++++++++++++ FINISHED Sales +++++++++++++++++++++++++++++");
// Update the product price effective dates.
let products = Products.find({}).fetch();
for(let i = 0; i < products.length; i++) {
let product = products[i];
let hasChanges = false;
let prices = product.prices;
if(prices) {
for(let prop in prices) {
if(prices[prop] && prices[prop].effectiveDate) {
if(_.isDate(prices[prop].effectiveDate)) {
let oldDate = prices[prop].effectiveDate;
prices[prop].effectiveDate = ~~(moment(prices[prop].effectiveDate).format("YYYYMMDD"));
console.log("Converted " + oldDate + " to " + prices[prop].effectiveDate + " for the product " + product.name);
hasChanges = true;
}
}
}
}
// Save the changes.
if(hasChanges) {
Products.update(product._id, {$set: {prices}}, function(err, id) {
if(err) console.log(err);
}, {validate: false, bypassCollection2: true});
}
}
}
});

48
server/exportMissing.js Normal file
View File

@@ -0,0 +1,48 @@
let fs = require('fs');
Meteor.methods({
"exportMissingSales": function() {
try {
let products = Products.find({}).fetch();
let venues = Venues.find({}).fetch();
let measures = Measures.find({}).fetch();
let productNameMap = {};
let venueNameMap = {};
let measureNameMap = {};
let sales = Sales.find({createdAt: {$gte: moment.utc("2017-01-28", "YYYY-MM-DD").toDate(), $lt: moment.utc("2017-01-29", "YYYY-MM-DD").toDate()}}).fetch();
let output = "";
for(let i = 0; i < products.length; i++) {
productNameMap[products[i]._id] = products[i].name;
}
for(let i = 0; i < venues.length; i++) {
venueNameMap[venues[i]._id] = venues[i].name;
}
for(let i = 0; i < measures.length; i++) {
measureNameMap[measures[i]._id] = measures[i].name;
}
for(let i = 0; i < sales.length; i++) {
let sale = sales[i];
let saleOutput = '{\n\t"date": ' + sale.date + ',\n\t "amount": ' + sale.amount + ',\n\t "price": ' + sale.price + ',\n\t "venue": "' + venueNameMap[sale.venueId] + '",\n\t "product": "' + productNameMap[sale.productId] + '",\n\t "measure": "' + measureNameMap[sale.measureId] + '",\n\t "createdAt": "' + sale.createdAt + '"\n}';
if(output.length > 0) {
output += ",\n";
}
else {
output = "[";
}
output += saleOutput;
}
fs.writeFile("./exportedMissingSales.json", output, function(err) {
if(err) console.log(err);
});
output += "]";
console.log(output);
} catch(err) {
console.log(err);
}
}
});

View File

@@ -0,0 +1,24 @@
Meteor.methods({
"checkDuplicateSales": function() {
try {
let sales = Sales.find({}).fetch();
let duplicateCount = 0;
for(let i = 0; i < sales.length; i++) {
let next = missingData[i];
let count = Sales.find({date: next.date, measureId: next.measureId, productId: next.productId, venueId: next.venueId, price: next.price, amount: next.amount}).count();
if(count > 1) {
console.log("This sale has a duplicate:");
console.log(next);
}
}
console.log("Total Duplicate Count: " + duplicateCount);
console.log("Finished Checking Duplicates");
Meteor.log.info("xxx");
} catch(err) {
console.log(err);
}
}
});

5469
server/importMissing.js Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -17,3 +17,5 @@ if (!process.env.MAIL_URL) {
} }
// console.log("Mail settings: " + process.env.MAIL_URL); // console.log("Mail settings: " + process.env.MAIL_URL);
if(Meteor.log) Meteor.log.info("Server Started");