Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

features: vue task library #784

Draft
wants to merge 194 commits into
base: develop
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
194 commits
Select commit Hold shift + click to select a range
a924161
feat: create vuetify app
BillClinton Feb 10, 2023
ce2422e
feat: remove boilerplate
Feb 10, 2023
a0bee31
feat: add script to serve build
BillClinton Feb 12, 2023
41e5e4b
feat: add data table to vuetify plugin
BillClinton Feb 12, 2023
e3cf9dc
feat: add task data table w/ test data
BillClinton Feb 12, 2023
2eb4d17
chore: update app title
BillClinton Feb 12, 2023
a16357a
feat: add template for ParentTask column header
BillClinton Feb 12, 2023
a0c2c5d
feat: add col/item templates
BillClinton Feb 12, 2023
264be77
feat: add Creator template
BillClinton Feb 12, 2023
08d5349
feat: add ParentTask item template
BillClinton Feb 12, 2023
508fb35
feat: add Skills item template
BillClinton Feb 12, 2023
aae075a
feat: install pinia `npm install pinia@latest`
BillClinton Feb 12, 2023
3a7e604
feat: add pinia to app
BillClinton Feb 12, 2023
1b50b28
chore: rename data table
BillClinton Feb 12, 2023
3ae5354
fix: resolve CORS issue with devServer proxy
BillClinton Feb 13, 2023
e419b6a
feat: convert data table to server version
BillClinton Feb 14, 2023
59106f2
feat: add simple data store
BillClinton Feb 14, 2023
475c145
feat: use state vars for paging
BillClinton Feb 14, 2023
94f78cf
feat: install eslint/prettier and format code
BillClinton Feb 14, 2023
ed5dd8e
feat: add layout in anticipation of side panel
BillClinton Feb 15, 2023
cb4b134
feat: add row selection
BillClinton Feb 16, 2023
7b77757
feat: change event variable to send row
BillClinton Feb 16, 2023
53e757b
feat: add sorting by column
BillClinton Feb 17, 2023
88038b2
feat: add pagination
BillClinton Feb 17, 2023
aa9628b
feat: add task details pane
BillClinton Feb 17, 2023
3547dcf
feat: add buttons to header
BillClinton Feb 20, 2023
c5c3e85
feat: add delete confirmation dialog
BillClinton Feb 20, 2023
77769c7
feat: minor refactoring of store
BillClinton Feb 21, 2023
86ecc0f
feat: install axios library
BillClinton Feb 22, 2023
f974164
feat: implement record deletion
BillClinton Feb 22, 2023
0f58fd2
refactor: update app structure
BillClinton Feb 23, 2023
b00264d
feat: some minor theme refactoring
BillClinton Feb 23, 2023
b0ebabd
refactor: change name of UI state class
BillClinton Feb 24, 2023
8e5139e
feat: add task form
BillClinton Feb 24, 2023
83eb704
fix: remove console.log statement
BillClinton Feb 24, 2023
8b995b6
feat: add pinia plugin for common store functions
BillClinton Feb 24, 2023
1638996
feat: add new store method name
BillClinton Feb 24, 2023
0d227ae
refactor: remove event that is no longer used
BillClinton Feb 25, 2023
c8f68a6
fix: correct selection issue after delete
BillClinton Feb 25, 2023
29bb9bc
feat: add form component with ref
BillClinton Feb 25, 2023
d02e0a5
feat: deselect grid when creating new task
BillClinton Feb 25, 2023
2c355fd
feat: load form and add date fields
BillClinton Feb 25, 2023
bb493b9
feat: add custom field for attachments
BillClinton Feb 27, 2023
728336b
refactor: remove unused properties and methods
BillClinton Feb 27, 2023
030d10e
feat: add Parent Task combo field
BillClinton Feb 27, 2023
d01327a
feat: add edit mode to task form
BillClinton Feb 27, 2023
f0c9cfe
fix: correct event name
BillClinton Feb 27, 2023
b45b523
fix: correct error when no parent task
BillClinton Feb 27, 2023
09b0600
fix: resolve form clearing issue
BillClinton Feb 27, 2023
1afca5e
refactor: remove superfluous fields
BillClinton Feb 27, 2023
9d90d4d
feat: add update to API
BillClinton Feb 27, 2023
1f0a68c
fix: comment out dark theme
BillClinton Feb 27, 2023
cc89761
refactor: remove unnecessary transformData action
BillClinton Feb 27, 2023
9e39d54
feat: implement form update
BillClinton Feb 27, 2023
19d2f18
feat: add edit on row double click
BillClinton Feb 27, 2023
7a32eaa
refactor: ensure asyn methos return result
BillClinton Feb 27, 2023
b5b9c5b
feat: add toast confirmations for api operations
BillClinton Feb 27, 2023
354a408
fix: remove row doubleclick for now
BillClinton Feb 27, 2023
8aad98a
feat: install xstate `npm i xstate @xstate/vue`
BillClinton Feb 28, 2023
76a284b
feat: install lodash `npm install lodash`
BillClinton Mar 1, 2023
e8184ae
feat: implement XState to manage component state
BillClinton Mar 1, 2023
da8e304
fix: only display unremoved attachments in details
BillClinton Mar 1, 2023
6d59b62
fix: adjust machine layout visulaization
BillClinton Mar 1, 2023
032938f
feat: use deep equal for record changes
BillClinton Mar 1, 2023
85296a0
feat: fix/re-enable attachment form validation
BillClinton Mar 1, 2023
220e24e
fix: send a copy of record to form
BillClinton Mar 2, 2023
3934a3a
fix: correct object copying
BillClinton Mar 2, 2023
3b18071
feat: add tooltips and make icons real buttons
BillClinton Mar 2, 2023
6e9b0ba
fix: unify button colors
BillClinton Mar 2, 2023
cea06b5
feat: add colors and lengthen timeout of toasts
BillClinton Mar 2, 2023
51201a8
fix: correct validation on attachment form
BillClinton Mar 2, 2023
a589210
feat: add toast colors to UI state store
BillClinton Mar 2, 2023
ccc05ff
feat: implement validation and refactor update
BillClinton Mar 2, 2023
b4c5715
fix: prop no longer needed
BillClinton Mar 2, 2023
d4d445b
fix: remove unused import
BillClinton Mar 4, 2023
c7235b4
feat: reset on unmount component
BillClinton Mar 4, 2023
565baea
fix: remove unused action
BillClinton Mar 4, 2023
75c9b6a
feat: implement XState for UI state management
BillClinton Mar 4, 2023
1588ab1
chore: remove commented lines
BillClinton Mar 4, 2023
c27cad0
fix: remove unused actions
BillClinton Mar 4, 2023
2ecd413
feat: unify button variants
BillClinton Mar 4, 2023
bbffa6f
feat: adjust column widths
BillClinton Mar 4, 2023
3b8795b
fix: remove unimplemented prop
BillClinton Mar 5, 2023
f150dcd
chore: remove commented, unused code
BillClinton Mar 5, 2023
8ac0293
fix: remove quotes around expression
BillClinton Mar 6, 2023
c4d650b
feat: move combos to components
BillClinton Mar 6, 2023
1672834
fix: correct prop type
BillClinton Mar 6, 2023
d9033c0
refactor: clean up form component
BillClinton Mar 6, 2023
dc87b59
fix: display URL for attachments with no title
BillClinton Mar 6, 2023
fa9425b
feat: fix header and height of data table
BillClinton Mar 6, 2023
820029c
refactor: rearrange components
BillClinton Mar 6, 2023
86d244b
feat: remove unused state store
BillClinton Mar 6, 2023
bb20697
feat: add menu to include archived/unshared
BillClinton Mar 6, 2023
9f798db
feat: set loading on ExperienceType combo
BillClinton Mar 6, 2023
67b3b12
fix: remove unneeded line, add extra safety check
BillClinton Mar 6, 2023
9b6b2d3
feat: update the way selected is being stored
BillClinton Mar 6, 2023
8ec2043
fix: correct selection target
BillClinton Mar 6, 2023
0d234a7
refactor: clean up api creation method
BillClinton Mar 6, 2023
ec876d6
feat: select after creating or updating
BillClinton Mar 6, 2023
b7b9a3c
refactor: use service in Attachment field
BillClinton Mar 7, 2023
5f9954b
feat: reset toast defaults when clearing toast
BillClinton Mar 7, 2023
40173df
chore: improve log message
BillClinton Mar 7, 2023
7ae8a33
feat: don't show parentTask field for parent tasks
BillClinton Mar 7, 2023
d8ba131
feat: add edit on row double click
BillClinton Mar 7, 2023
52642d7
refactor: use preferred syntax
BillClinton Mar 7, 2023
34e96e1
feat: clear selection when loading
BillClinton Mar 7, 2023
f1c3ddd
feat: show cloned from label if applicable
BillClinton Mar 7, 2023
6897feb
feat: add arrow key listeners for selection change
BillClinton Mar 7, 2023
2c54647
fix: correct error when openng add form
BillClinton Mar 7, 2023
6cd610c
fix: tighten up the padding
BillClinton Mar 7, 2023
770007a
fix: grid column definitions
BillClinton Mar 7, 2023
0005f98
fix: use preferred import path syntax
BillClinton Mar 7, 2023
9774ee0
refactor: adjust top margin/remove log statements
BillClinton Mar 7, 2023
f509ed2
feat: make details pane collapsible
BillClinton Mar 7, 2023
ca03f43
chore: update packages `npm update`
BillClinton Mar 7, 2023
ada0a88
chore: turn off component logging
BillClinton Mar 7, 2023
5ff29a0
feat: manage opening/closing of details panel
BillClinton Mar 7, 2023
6486dbe
fix: correct directive syntax
BillClinton Mar 7, 2023
54a223b
feat: add logging of hierarchical state values
BillClinton Mar 7, 2023
d56951a
fix: clone blank copy so it is not altered
BillClinton Mar 8, 2023
24872ba
feat: add ClonedTask field
BillClinton Mar 8, 2023
a184188
feat: add confirmation dialog for task cloning
BillClinton Mar 8, 2023
1eaae6a
feat: add status field (shared, private)
BillClinton Mar 8, 2023
7b0fe7d
feat: add FindByID to API plugin
BillClinton Mar 8, 2023
8eadc0b
feat: add a store for clone task combo
BillClinton Mar 8, 2023
cf0b55e
fix: correct defaul and unshared variable
BillClinton Mar 8, 2023
a11da32
feat: add archive/unarchive buttons
BillClinton Mar 8, 2023
7fa57f0
feat: add a title to options menu
BillClinton Mar 8, 2023
377586a
fix: combined const per ESLint one-var rule
BillClinton Mar 8, 2023
e497c87
feat: implement custom items per page options
BillClinton Mar 10, 2023
d326afa
feat: import VDataTableFooter
BillClinton Mar 10, 2023
5b6082c
fix: move prepend for bottom template addition
BillClinton Mar 10, 2023
5994838
refactor: restructure fetch to match other methods
BillClinton Mar 13, 2023
84b4602
feat: add state machines to control API calls
BillClinton Mar 13, 2023
a00db64
feat: Add a machine to manage toast messages
BillClinton Mar 13, 2023
b19bf6f
feat: adjust machine so new toasts not blocked
BillClinton Mar 13, 2023
9317fc1
feat: use API and Toast machines in task machine
BillClinton Mar 13, 2023
141c0dc
fix: remove old API machine file, add proper one
BillClinton Mar 13, 2023
b714795
feat: refactor and use state machine
BillClinton Mar 13, 2023
77ccba0
feat: remove activator, add state machine events
BillClinton Mar 13, 2023
d48a59c
fix: remove old file I never meant to check in
BillClinton Mar 13, 2023
cd9412f
feat: refactor state and API machines
BillClinton Mar 14, 2023
b905c75
feat: refactor API methods
BillClinton Mar 14, 2023
8c44664
feat: add specificity to state trandition logs
BillClinton Mar 14, 2023
5b60534
feat: organize state chart diagram
BillClinton Mar 14, 2023
5741fb1
feat: toast component reference its own machine
BillClinton Mar 14, 2023
4e236d1
fix: send the task with the event
BillClinton Mar 14, 2023
2bb179d
fix: turn off transition logging for toasts
BillClinton Mar 14, 2023
beb2e07
feat: refactor components to reflect machine changes
BillClinton Mar 14, 2023
15324f7
fix: remove unused import
BillClinton Mar 20, 2023
8fbe75a
feat: details status from state to context flag
BillClinton Mar 20, 2023
061442b
feat: use assign object syntax for actions
BillClinton Mar 20, 2023
5ef3b2b
feat: use assign object syntax for setTask action
BillClinton Mar 20, 2023
bf371cf
fix: correct machine name
BillClinton Mar 22, 2023
4b29652
feat: add loading indicator on submit button
BillClinton Apr 4, 2023
bde6a2e
refactor: code cleanup
BillClinton Apr 4, 2023
e4ec146
refactor: API now returns promises with response
BillClinton Apr 17, 2023
7148979
refactor: toaster now spawned, update event names
BillClinton Apr 17, 2023
c2cb9d7
refactor: update load action, propogate disabled
BillClinton Apr 17, 2023
1d71e62
refactor: prepare record to format skills
BillClinton Apr 17, 2023
6c1a6d7
refactor: restructure machines
BillClinton Apr 17, 2023
5397c74
refactor: integrate components with new machines
BillClinton Apr 17, 2023
7558c04
refactor: remove unused machine definition
BillClinton May 2, 2023
957fe49
refactor: add predictableActionArguments setting
BillClinton May 2, 2023
1904cb1
feat: add clone task action to machine
BillClinton May 11, 2023
c53b7bc
refactor: update form machine visulaization
BillClinton May 11, 2023
bc82467
feat: send target task along with clone event
BillClinton May 11, 2023
1ff6dc2
feat: add requesthandler for task library
BillClinton May 16, 2023
3679479
feat: add hologit lense config
BillClinton May 16, 2023
77759e8
fix: remove debugging code
BillClinton Apr 17, 2023
e11ee8e
refactor: remove unused action
BillClinton May 3, 2023
f2b41c9
feat: set up custom template for vue task library
BillClinton May 23, 2023
7df6d93
feat: add ENV to build command
BillClinton May 23, 2023
bd8e9d7
fix(task-library): don't prepend API protocol when host unset
themightychris Jun 20, 2023
7801bd6
fix(task-library): standardize app container element ID
themightychris Jun 20, 2023
022c1d6
fix(task-library): fix asset base URL
themightychris Jun 20, 2023
57047df
updating old package.lock after npm install
BillClinton Jul 4, 2023
8fc1f93
feat: add a login dialog WIP
BillClinton Aug 11, 2023
72b1de4
feat: add a button to test login dialog
BillClinton Aug 11, 2023
8b27b38
feat: add some spacing between buttons
BillClinton Aug 11, 2023
e4d60d7
feat: update API client to add login
BillClinton Aug 13, 2023
4536e85
feat: update event names and comment
BillClinton Aug 13, 2023
548acb1
feat: add machine to manage login form state
BillClinton Aug 13, 2023
769ffe8
feat: add login to DataTableMachine
BillClinton Aug 13, 2023
8d452ec
chore: ran `npm audit fix`
BillClinton Aug 13, 2023
c876375
fix: update state name
BillClinton Aug 13, 2023
585cd68
refactor: lookup object rather than switch/case
BillClinton Aug 15, 2023
b4ef0f6
refactor: don't pass as prop; exists on parent
BillClinton Aug 15, 2023
c3d2c86
fix: remove test button
BillClinton Aug 15, 2023
b3f706a
refactor: remove unused var
BillClinton Aug 15, 2023
be1c217
feat: update machine simulation layout
BillClinton Aug 15, 2023
a8e53aa
feat: add a reload button to footer toolbar
BillClinton Aug 15, 2023
fd0250c
refactor: settings button to match other buttons
BillClinton Aug 15, 2023
fedf945
fix: update with new method name
BillClinton Aug 15, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions .holo/lenses/slate-task-library.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
[hololens]
package = "holo/lens-npm-run/14"

[hololens.npm-run]
env = "development"
command = "build"
output_dir = "dist"

[hololens.input]
root = "static-webapps/slate-task-library"
files = "**"

[hololens.output]
root = "webapp-builds/SlateTaskLibrary"
merge = "replace"
18 changes: 18 additions & 0 deletions html-templates/webapps/SlateTaskLibrary/vue.tpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{extends "webapps/slate-vue.tpl"}

{block meta}
{capture assign=title}Task Library — {Site::$title|escape}{/capture}
{$dwoo.parent}
{/block}

{block body}
{$dwoo.parent}

<div class="wrapper site">
<main class="content site" role="main">
<div id="app-container">
<!-- app renders here -->
</div>
</main>
</div>
{/block}
29 changes: 29 additions & 0 deletions php-classes/Slate/CBL/Tasks/LibraryRequestHandler.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
<?php

namespace Slate\CBL\Tasks;

use Emergence\WebApps\VueApp;

class LibraryRequestHandler extends \Emergence\Site\RequestHandler
{
public static function handleRequest()
{
switch (static::shiftPath()) {
case '':
case false:
return static::handleDashboardRequest();

default:
return static::throwNotFoundError();
}
}

public static function handleDashboardRequest()
{
$GLOBALS['Session']->requireAccountLevel('Administrator');

$app = VueApp::load('SlateTaskLibrary');

return static::sendResponse($app->render());
}
}
3 changes: 3 additions & 0 deletions site-root/cbl/dashboards/tasks/library.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
<?php

Slate\CBL\Tasks\LibraryRequestHandler::handleRequest();
4 changes: 4 additions & 0 deletions static-webapps/slate-task-library/.browserslistrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
> 1%
last 2 versions
not dead
not ie 11
5 changes: 5 additions & 0 deletions static-webapps/slate-task-library/.editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
[*.{js,jsx,ts,tsx,vue}]
indent_style = space
indent_size = 2
trim_trailing_whitespace = true
insert_final_newline = true
12 changes: 12 additions & 0 deletions static-webapps/slate-task-library/.eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
module.exports = {
env: {
node: true,
},
extends: ["eslint:recommended", "plugin:vue/vue3-recommended", "prettier"],
rules: {
// override/add rules settings here
"vue/valid-v-slot": "off",
"sort-imports": "off",
"vue/require-default-prop": "off",
},
};
23 changes: 23 additions & 0 deletions static-webapps/slate-task-library/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
.DS_Store
node_modules
/dist


# local env files
.env.local
.env.*.local

# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*

# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
44 changes: 44 additions & 0 deletions static-webapps/slate-task-library/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# default

## Project setup

```
# yarn
yarn

# npm
npm install

# pnpm
pnpm install
```

### Compiles and hot-reloads for development

```
# yarn
yarn dev

# npm
npm run dev

# pnpm
pnpm dev
```

### Compiles and minifies for production

```
# yarn
yarn build

# npm
npm run build

# pnpm
pnpm build
```

### Customize configuration

See [Configuration Reference](https://vitejs.dev/config/).
14 changes: 14 additions & 0 deletions static-webapps/slate-task-library/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" href="/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Task Library</title>
</head>

<body>
<div id="app-container"></div>
<script type="module" src="/src/main.js"></script>
</body>
</html>
12 changes: 12 additions & 0 deletions static-webapps/slate-task-library/jsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"compilerOptions": {
"target": "es5",
"module": "esnext",
"baseUrl": "./",
"moduleResolution": "node",
"paths": {
"@/*": ["src/*"]
},
"lib": ["esnext", "dom", "dom.iterable", "scripthost"]
}
}
Loading