corrections found while writing documentation

This commit is contained in:
rglover 2017-06-05 16:44:35 -05:00
parent 5485eb9260
commit ab22ebc967
17 changed files with 127 additions and 42 deletions

View file

@ -14,3 +14,4 @@ notices-for-facebook-graph-api-2
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 1.4.3-split-account-service-packages
1.5-add-dynamic-import-package

View file

@ -4,31 +4,32 @@
# 'meteor add' and 'meteor remove' will edit this file for you, # 'meteor add' and 'meteor remove' will edit this file for you,
# but you can also edit it by hand. # but you can also edit it by hand.
meteor-base@1.0.4 # Packages every Meteor app needs to have meteor-base@1.1.0 # 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.17 # The database Meteor supports right now mongo@1.1.18 # The database Meteor supports right now
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
tracker@1.1.3 # Meteor's client-side reactive programming library tracker@1.1.3 # Meteor's client-side reactive programming library
standard-minifier-css@1.3.4 # CSS minifier run for production mode standard-minifier-css@1.3.4 # CSS minifier run for production mode
standard-minifier-js@2.0.0 # JS minifier run for production mode standard-minifier-js@2.1.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.
ecmascript@0.7.3 # Enable ECMAScript2015+ syntax in app code ecmascript@0.8.0 # Enable ECMAScript2015+ syntax in app code
shell-server@0.2.3 # Server-side component of the `meteor shell` command shell-server@0.2.3 # Server-side component of the `meteor shell` command
react-meteor-data react-meteor-data
alanning:roles alanning:roles
fourseven:scss fourseven:scss
twbs:bootstrap twbs:bootstrap
accounts-base@1.2.17 accounts-base@1.3.0
accounts-password@1.3.6 accounts-password@1.3.6
service-configuration@1.0.11 service-configuration@1.0.11
accounts-facebook@1.1.1 accounts-facebook@1.2.0
accounts-github@1.2.1 accounts-github@1.3.0
accounts-google@1.1.2 accounts-google@1.2.0
themeteorchef:bert themeteorchef:bert
fortawesome:fontawesome fortawesome:fontawesome
aldeed:collection2-core@2.0.0 aldeed:collection2-core@2.0.0
audit-argument-checks@1.0.7 audit-argument-checks@1.0.7
ddp-rate-limiter@1.0.7 ddp-rate-limiter@1.0.7
dynamic-import
static-html

View file

@ -1 +1 @@
METEOR@1.4.4.3 METEOR@1.5

View file

@ -1,7 +1,7 @@
accounts-base@1.2.17 accounts-base@1.3.0
accounts-facebook@1.1.1 accounts-facebook@1.2.0
accounts-github@1.2.1 accounts-github@1.3.0
accounts-google@1.1.2 accounts-google@1.2.0
accounts-oauth@1.1.15 accounts-oauth@1.1.15
accounts-password@1.3.6 accounts-password@1.3.6
alanning:roles@1.2.16 alanning:roles@1.2.16
@ -9,14 +9,13 @@ aldeed:collection2-core@2.0.1
allow-deny@1.0.5 allow-deny@1.0.5
audit-argument-checks@1.0.7 audit-argument-checks@1.0.7
autoupdate@1.3.12 autoupdate@1.3.12
babel-compiler@6.18.2 babel-compiler@6.19.1
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.3.2 blaze@2.3.2
blaze-html-templates@1.1.2
blaze-tools@1.0.10 blaze-tools@1.0.10
boilerplate-generator@1.0.11 boilerplate-generator@1.1.0
caching-compiler@1.1.9 caching-compiler@1.1.9
caching-html-compiler@1.1.2 caching-html-compiler@1.1.2
callback-hook@1.0.10 callback-hook@1.0.10
@ -28,12 +27,15 @@ ddp-rate-limiter@1.0.7
ddp-server@1.3.14 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.7.3 dynamic-import@0.1.0
ecmascript-runtime@0.3.15 ecmascript@0.8.0
ecmascript-runtime@0.4.1
ecmascript-runtime-client@0.4.1
ecmascript-runtime-server@0.4.1
ejson@1.0.13 ejson@1.0.13
email@1.2.1 email@1.2.1
es5-shim@4.6.15 es5-shim@4.6.15
facebook-oauth@1.3.0 facebook-oauth@1.3.1
fastclick@1.0.13 fastclick@1.0.13
fortawesome:fontawesome@4.7.0 fortawesome:fontawesome@4.7.0
fourseven:scss@4.5.0 fourseven:scss@4.5.0
@ -48,18 +50,18 @@ id-map@1.0.9
jquery@1.11.10 jquery@1.11.10
launch-screen@1.1.1 launch-screen@1.1.1
livedata@1.0.18 livedata@1.0.18
localstorage@1.0.12 localstorage@1.1.0
logging@1.1.17 logging@1.1.17
meteor@1.6.1 meteor@1.6.1
meteor-base@1.0.4 meteor-base@1.1.0
minifier-css@1.2.16 minifier-css@1.2.16
minifier-js@2.0.0 minifier-js@2.1.0
minimongo@1.0.23 minimongo@1.2.0
mobile-experience@1.0.4 mobile-experience@1.0.4
mobile-status-bar@1.0.14 mobile-status-bar@1.0.14
modules@0.8.2 modules@0.9.0
modules-runtime@0.7.10 modules-runtime@0.8.0
mongo@1.1.17 mongo@1.1.18
mongo-id@1.0.6 mongo-id@1.0.6
npm-bcrypt@0.9.2 npm-bcrypt@0.9.2
npm-mongo@2.2.24 npm-mongo@2.2.24
@ -67,12 +69,12 @@ oauth@1.1.13
oauth2@1.1.11 oauth2@1.1.11
observe-sequence@1.0.16 observe-sequence@1.0.16
ordered-dict@1.0.9 ordered-dict@1.0.9
promise@0.8.8 promise@0.8.9
raix:eventemitter@0.1.3 raix:eventemitter@0.1.3
random@1.0.10 random@1.0.10
rate-limit@1.0.8 rate-limit@1.0.8
react-meteor-data@0.2.11 react-meteor-data@0.2.11
reactive-dict@1.1.8 reactive-dict@1.1.9
reactive-var@1.0.11 reactive-var@1.0.11
reload@1.1.11 reload@1.1.11
retry@1.0.9 retry@1.0.9
@ -85,7 +87,8 @@ spacebars@1.0.15
spacebars-compiler@1.1.2 spacebars-compiler@1.1.2
srp@1.0.10 srp@1.0.10
standard-minifier-css@1.3.4 standard-minifier-css@1.3.4
standard-minifier-js@2.0.0 standard-minifier-js@2.1.0
static-html@1.2.2
templating@1.3.2 templating@1.3.2
templating-compiler@1.3.2 templating-compiler@1.3.2
templating-runtime@1.3.2 templating-runtime@1.3.2
@ -97,5 +100,5 @@ twbs:bootstrap@3.3.6
ui@1.0.13 ui@1.0.13
underscore@1.0.10 underscore@1.0.10
url@1.1.0 url@1.1.0
webapp@1.3.15 webapp@1.3.16
webapp-hashing@1.0.9 webapp-hashing@1.0.9

View file

@ -1,14 +1,30 @@
import { Meteor } from 'meteor/meteor'; import { Meteor } from 'meteor/meteor';
import { check } from 'meteor/check'; import { check } from 'meteor/check';
import { ServiceConfiguration } from 'meteor/service-configuration'; import { ServiceConfiguration } from 'meteor/service-configuration';
import rateLimit from '../../../modules/rate-limit';
Meteor.methods({ Meteor.methods({
'oauth.verifyConfiguration': function oauthVerifyConfiguration(services) { 'oauth.verifyConfiguration': function oauthVerifyConfiguration(services) {
check(services, Array); check(services, Array);
const verifiedServices = [];
services.forEach((service) => { try {
if (ServiceConfiguration.configurations.findOne({ service })) verifiedServices.push(service); const verifiedServices = [];
}); services.forEach((service) => {
return verifiedServices.sort(); if (ServiceConfiguration.configurations.findOne({ service })) {
verifiedServices.push(service);
}
});
return verifiedServices.sort();
} catch (exception) {
throw new Meteor.Error('500', exception);
}
}, },
}); });
rateLimit({
methods: [
'oauth.verifyConfiguration',
],
limit: 5,
timeRange: 1000,
});

View file

@ -1,6 +1,6 @@
import { Meteor } from 'meteor/meteor'; import { Meteor } from 'meteor/meteor';
import { check, Match } from 'meteor/check'; import { check, Match } from 'meteor/check';
import editProfile from '../../../modules/server/edit-profile'; import editProfile from './edit-profile';
import rateLimit from '../../../modules/rate-limit'; import rateLimit from '../../../modules/rate-limit';
Meteor.methods({ Meteor.methods({

View file

@ -4,7 +4,7 @@ import getPrivateFile from '../../../modules/server/get-private-file';
import parseMarkdown from '../../../modules/parse-markdown'; import parseMarkdown from '../../../modules/parse-markdown';
Meteor.methods({ Meteor.methods({
'utility.getPage': function utilityReadFileAsText(fileName) { 'utility.getPage': function utilityGetPage(fileName) {
check(fileName, String); check(fileName, String);
return parseMarkdown(getPrivateFile(`pages/${fileName}.md`)); return parseMarkdown(getPrivateFile(`pages/${fileName}.md`));
}, },

View file

@ -1,7 +1,7 @@
import React from 'react'; import React from 'react';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import './InputHint.scss'; import './InputHint.css';
const InputHint = ({ children }) => ( const InputHint = ({ children }) => (
<div className="InputHint"> <div className="InputHint">

View file

@ -0,0 +1,56 @@
import React from 'react';
const Loading = () => (
<div className="Loading">
<svg width="44" height="44" viewBox="0 0 44 44" xmlns="http://www.w3.org/2000/svg" stroke="#4285F4">
<g fill="none" fillRule="evenodd" strokeWidth="2">
<circle cx="22" cy="22" r="1">
<animate
attributeName="r"
begin="0s"
dur="1.8s"
values="1; 20"
calcMode="spline"
keyTimes="0; 1"
keySplines="0.165, 0.84, 0.44, 1"
repeatCount="indefinite"
/>
<animate
attributeName="stroke-opacity"
begin="0s"
dur="1.8s"
values="1; 0"
calcMode="spline"
keyTimes="0; 1"
keySplines="0.3, 0.61, 0.355, 1"
repeatCount="indefinite"
/>
</circle>
<circle cx="22" cy="22" r="1">
<animate
attributeName="r"
begin="-0.9s"
dur="1.8s"
values="1; 20"
calcMode="spline"
keyTimes="0; 1"
keySplines="0.165, 0.84, 0.44, 1"
repeatCount="indefinite"
/>
<animate
attributeName="stroke-opacity"
begin="-0.9s"
dur="1.8s"
values="1; 0"
calcMode="spline"
keyTimes="0; 1"
keySplines="0.3, 0.61, 0.355, 1"
repeatCount="indefinite"
/>
</circle>
</g>
</svg>
</div>
);
export default Loading;

View file

@ -7,6 +7,7 @@ import { Meteor } from 'meteor/meteor';
import { createContainer } from 'meteor/react-meteor-data'; import { createContainer } from 'meteor/react-meteor-data';
import { Bert } from 'meteor/themeteorchef:bert'; import { Bert } from 'meteor/themeteorchef:bert';
import DocumentsCollection from '../../../api/Documents/Documents'; import DocumentsCollection from '../../../api/Documents/Documents';
import Loading from '../../components/Loading/Loading';
import './Documents.scss'; import './Documents.scss';
@ -22,7 +23,7 @@ const handleRemove = (documentId) => {
} }
}; };
const Documents = ({ documents, match, history }) => ( const Documents = ({ loading, documents, match, history }) => (!loading ? (
<div className="Documents"> <div className="Documents">
<div className="page-header clearfix"> <div className="page-header clearfix">
<h4 className="pull-left">Documents</h4> <h4 className="pull-left">Documents</h4>
@ -63,9 +64,10 @@ const Documents = ({ documents, match, history }) => (
</tbody> </tbody>
</Table> : <Alert bsStyle="warning">No documents yet!</Alert>} </Table> : <Alert bsStyle="warning">No documents yet!</Alert>}
</div> </div>
); ) : <Loading />);
Documents.propTypes = { Documents.propTypes = {
loading: PropTypes.bool.isRequired,
documents: PropTypes.arrayOf(PropTypes.object).isRequired, documents: PropTypes.arrayOf(PropTypes.object).isRequired,
match: PropTypes.object.isRequired, match: PropTypes.object.isRequired,
history: PropTypes.object.isRequired, history: PropTypes.object.isRequired,

View file

@ -6,6 +6,7 @@ import { Meteor } from 'meteor/meteor';
import { Bert } from 'meteor/themeteorchef:bert'; import { Bert } from 'meteor/themeteorchef:bert';
import Documents from '../../../api/Documents/Documents'; import Documents from '../../../api/Documents/Documents';
import NotFound from '../NotFound/NotFound'; import NotFound from '../NotFound/NotFound';
import Loading from '../../components/Loading/Loading';
const handleRemove = (documentId, history) => { const handleRemove = (documentId, history) => {
if (confirm('Are you sure? This is permanent!')) { if (confirm('Are you sure? This is permanent!')) {
@ -20,7 +21,7 @@ const handleRemove = (documentId, history) => {
} }
}; };
const ViewDocument = ({ doc, match, history }) => (doc ? ( const renderDocument = (doc, match, history) => (doc ? (
<div className="ViewDocument"> <div className="ViewDocument">
<div className="page-header clearfix"> <div className="page-header clearfix">
<h4 className="pull-left">{ doc && doc.title }</h4> <h4 className="pull-left">{ doc && doc.title }</h4>
@ -37,7 +38,12 @@ const ViewDocument = ({ doc, match, history }) => (doc ? (
</div> </div>
) : <NotFound />); ) : <NotFound />);
const ViewDocument = ({ loading, doc, match, history }) => (
!loading ? renderDocument(doc, match, history) : <Loading />
);
ViewDocument.propTypes = { ViewDocument.propTypes = {
loading: PropTypes.bool.isRequired,
doc: PropTypes.object.isRequired, doc: PropTypes.object.isRequired,
match: PropTypes.object.isRequired, match: PropTypes.object.isRequired,
history: PropTypes.object.isRequired, history: PropTypes.object.isRequired,