Cleaned up the copied project & got the Google authentication working. A lot of work still needs to be done to add content and allow only certain users access.

This commit is contained in:
2022-03-09 07:55:26 -08:00
parent c61ca6b32e
commit 9e0e231152
16 changed files with 257 additions and 448 deletions

View File

@@ -3,51 +3,41 @@
import {onMount} from 'svelte';
import {useTracker} from 'meteor/rdb:svelte-meteor-data';
import {BlazeTemplate} from 'meteor/svelte:blaze-integration';
import Task from './Task.svelte';
import {Tasks} from '../api/tasks.js'
import {Records} from '../api/records.js'
import ServiceConfiguration from "meteor/service-configuration";
let newTask = "";
let hideCompleted = false;
let tasks;
let currentUser;
onMount(async () => {
Meteor.subscribe('tasks');
// Meteor.subscribe('records');
});
$: incompleteCount = useTracker(() => Tasks.find({checked: {$ne: true}}).count());
// $: incompleteCount = useTracker(() => Tasks.find({checked: {$ne: true}}).count());
$: currentUser = useTracker(() => Meteor.user());
const taskStore = Tasks.find({}, {sort: {createdAt: -1}});
$: {
tasks = $taskStore;
if (hideCompleted) {
tasks = tasks.filter(task => !task.checked);
}
}
// const taskStore = Tasks.find({}, {sort: {createdAt: -1}});
// $: {
// tasks = $taskStore;
// if (hideCompleted) {
// tasks = tasks.filter(task => !task.checked);
// }
// }
function handleSubmit(event) {
Meteor.call("tasks.insert", newTask);
// Clear form
newTask = "";
}
// function handleSubmit(event) {
// Meteor.call("tasks.insert", newTask);
// // Clear form
// newTask = "";
// }
function performLogin() {
//console.log("In Perform Login");
//Meteor.call("users.login");
let config = ServiceConfiguration.configurations.findOne({service: 'google'});
console.log(config);
let scope = config.scope;
let loginStyle = "popup";
Meteor.loginWithGoogle({requestPermissions: scope, loginStyle, requestOfflineToken: true}, (err) => {
//Login style can be "popup" or "redirect". I am not sure we need to request and offline token.
Meteor.loginWithGoogle({loginStyle: "popup", requestOfflineToken: true}, (err) => {
if(err) {
console.log(err);
}
else {
console.log("Logged in");
//console.log("Logged in");
}
})
}
@@ -59,42 +49,39 @@
<div class="container">
<header>
<h1>Todo List ({ $incompleteCount })</h1>
<label className="hide-completed">
<input
type="checkbox"
bind:checked={hideCompleted}
/>
Hide Completed Tasks
</label>
<!-- <h1>Todo List ({ $incompleteCount })</h1>-->
<!-- <label className="hide-completed">-->
<!-- <input-->
<!-- type="checkbox"-->
<!-- bind:checked={hideCompleted}-->
<!-- />-->
<!-- Hide Completed Tasks-->
<!-- </label>-->
<BlazeTemplate template="loginButtons"/>
<!-- <BlazeTemplate template="loginButtons"/>-->
{#if !$currentUser}
<button type="button" on:click={performLogin}>Login</button>
{:else}
<button type="button" on:click={performLogout}>Logout</button>
{/if}
{#if $currentUser}
<form class="new-task" on:submit|preventDefault={handleSubmit}>
<input
type="text"
placeholder="Type to add new tasks"
bind:value={newTask}
/>
</form>
{/if}
<!--{#if $currentUser}-->
<!-- <form class="new-task" on:submit|preventDefault={handleSubmit}>-->
<!-- <input-->
<!-- type="text"-->
<!-- placeholder="Type to add new tasks"-->
<!-- bind:value={newTask}-->
<!-- />-->
<!-- </form>-->
<!--{/if}-->
</header>
<ul>
{#each tasks as task}
<Task
key={task._id}
task={task}
/>
{/each}
<!--{#each tasks as task}-->
<!-- <Task-->
<!-- key={task._id}-->
<!-- task={task}-->
<!-- />-->
<!--{/each}-->
</ul>
<div id="game" style="height: 400px; width: 400px">
</div>
</div>