-
Notifications
You must be signed in to change notification settings - Fork 1
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
chore(#155): Fixes #211
chore(#155): Fixes #211
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Main comment is that the /explorer/create route has been changed to /explorer/curate in some places but not in others (e.g., has been changed to curate in home.spec.js but not in router/module/explorer.js or the header)
app/src/pages/explorer/parameterized-query/parameterized-query-page.vue
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Only comment is that there's still a link to /create
in pages/explorer/Home.vue
. Otherwise approved
@@ -0,0 +1 @@ | |||
node_modules |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
#155 mentions ignoring package-lock.json as well. I'm not sure exactly why, since we are committing package-lock in this repo
* #109: Link explorer header tabs * #109: Rewrite chart routes in explorer * #109: Fix linter errors * #109: Fix chart nested routing * #109: Add error handling for chart uri not found * #109: Fix linting errors * #97: Initial commit of search header panel tabs * #97: Add search bar to header * #113: Refactor sample page queries * #97: Fix tab styling, rearrange to match UI presentation * #97: Remove top right search field * #113: refactor sample page components * #113: fix linting errors * #97: Remove test content from tabs * #97: Unit test for search header panel * #113: first draft * #113: Fix for error thrown in unit test * Linting errors * #97: Set up for explorer results state management * Fix linting errors * #113: add tests for state variables * #113: remove page style * #113: fix empty results display * #66 templated view article (#112) * #66 initial article commit * #66: Refactor article page, fetch article metadata Moved Article.vue, separated out into article.js to match file structure of other pages. Progressed on Semantic Scholar API logic. * #66: Refactor article.js * #66: Refactor Article.vue * #66: Add route for Article View Added route to explorer for the article view. Moved DOI from component prop to a watcher and computed property pair. * #66: Refactor article.js to move logic to services Moved article metadata retrieval logic to services. Unified all metadata under one object for simpler reference. * #66: First pass at article HTML view First attempt at displaying all article metadata. Also added pre-push linting fixes. * #66: Add loading state awareness * #66: Add article venue to retrieved fields * #66: Second pass at article view HTML Added basic loading indicator, refactored table to have better structure (I think) * #66: Basic CSS for article view * #66: Removed erroneous comment * #66: Fix scrolling bug Scrolling tables also scrolled their titles, but not their header rows. Isolated tables in their own div, maybe tables should be their own component... * #66: Unify dir structure, nest article page Move explorer/article/services to modules/explorer/article/services, clean up article now that it's nested properly (barring further change to nest completely under sample). Refactor extra function from fetchJSON into getArticleMetadata. * #66: initial Article.vue testing commit Includes mock for Semantic Scholar API calls and article.js whitespace linting fix. * #66: Refactored getArticleMetadata for easier mock Mocking getArticleMetadata easily required moving it into an enclosing object so that the manual mock could do the same, allowing it to access properties. The manual mock was written following along with [jest's manual mock](https://jestjs.io/docs/manual-mocks). The mock of the resulting getArticle also provides a stub of the SemanticScholar API response as of 2/2/22, for reference and testing. * #66: Write tests for Article.vue Wrote tests of DOI loading, reloading; article data loading; API failure. Added classes to article.html items to distinguish them and allow the tests to refer to them. Updated article.js to use the new articleMetadata.js and fixed bugs that appeared in testing. * #66: Fix linting errors * #66: Write tests for module articleMetadata.js Updated articleMetadata mock to include raw and cleaned mock data, and wrote tests of the fetch handler and response cleaning routines. Fixed issues in articleMetadata.js that came up in testing. * #66: Refactored articleMetadata.js to better track API errors Refactored .get function to remove repeated code and allow API calls to occur in parallel. Rewrote how internal fetch returns in order to pass errors (and success codes) in API call along to caller. Updated mock data to include mock version of success codes * #66: Updated tests to match Also added missing response codes to mock data, and fixed citation and reference call status not being passed through * #66: Updated Article.vue to display errors Article view now takes advantage of newly passed API errors to inform the user that an error has occurred. This could be expanded on * #66: Linting fixes * #66: Update test to use createWrapper Replaced localVue, shallowMount with createWrapper for consistency. Added test to ensure error message is displayed to user. * #66: Write comments, refactor error storage * #66: Write jsdoc-style function comments Documented functions, removed unused mock response function, and refactored testing slightly to remove repetition. * #66: Move article to its own route * #25: Remove console.logs, add reusable spinner * #113: remove console.logs and add index key * #113: fix linting errors * #123: Consolidate exports in sparql.js * #123: Modify sparql capitalization to match existing pattern * #28: Link MM/teams to teams page (#122) * #28: Link MM/teams to teams page * #28: Update reference to about, how, news * #123: Merge parseSparql and transformSparqlData into a single function * #61: Add gallery page * remove duplicate spinner component * remove redundant pagination styles * fix lint errors * Remove class that hides pagination buttons * remove unneccessary sass imports * query actual charts in gallery view * remove console.log in test * #130: Linting fix (#131) * feat(#100): knowledge graph rest endpoint (#138) * #100: Add logger service * #100: Updated secrets default and increased token validity to 8hours * #100: testing script for isInternal middleware service * #100: Add isInternal middleware service to validate internal calls * #100: Re-usable logger service for unit test * #100: Moved logger service to initialize first * #100: renamed filestorage directory and added a method to ensure unique file names * #100: Updated test with log service * #100: Added unique name generator to package.json * #100: Added knowledge graph endpoint method * #100: Add KG wrapper route to REST service * #100: Append KG route to server initialization * #100: Re-installed app * #43: Add fuseki service to container * #43: Fuseki volume mount * #43: Add fuseki critical files to ignore * #100: Updated nginx to use a preferred version * #100: File renaming and linter error fixes * #100: Update environment variables * #25 migrate tools (#128) * #25: initial ModuleTools commit Replaced vuetify elements with vue-material and simplified layout. * #25: Refactored module tools page to use store Moved module tools data into store, refactored tool card into component for reuse in simulationTools as well. * #25: Initial simulation tools commit Changed module tools getter name to avoid overlap, added simulation tools store data and getter, added simulation tools assets. * #25: Linting fix * #25: Write tests for simulation, module, ToolCard * #25: Initial chemprops commit Rewrote chemProps.html to use `vue-material`, removed `Axios` and commented out Smiles.vue and Auth.js in chemProps.js. Still need to implement SMILES API, so that chemProps form works -- future ticket. * #25: Initial chempropsapitoken commit Missing Duke shibboleth authorization and chemprops in general, so can't implement the api token functionality just yet. * #25: fix typo, switch to md-layout * #25: Initial csvPlotter commit File upload and display works, but no tests have been written yet. Includes a new dependency, `d3`. * #25: Fix typo * #25: Fix typo in router path * #25: Create reusable ReferenceContainer component * #25: Initial MCR tool commit Migrated MCR tool homepage over, factoring out the references into the new reusable container and migrating the tool descriptions into reusable ToolCard components * #25: Rename state getters to avoid overlap Also added ReferenceContainer to chemProps * #25: Make mcrTools plural * #25: Replace v-bind with shorthand where possible * #25: Linting fix * #25: Added support for external links to ToolCard * #25: Initial dynamfit commit Same deal as other initial commits. New store module for references, migrating vuetify tags to vue-material tags. Added JobMgr.js module, which dynamfit uses. Changed Axios implementation to fetch implementation, mocked auth module as it is not implemented yet. * #25: Fix bug in ToolCard internal link checker Using `new URL()` to test links threw errors (expected) but jest didn't like that. Replaced with a simple externalLink flag that defaults to false unless the store explicitly sets it true. * #25: Fix error thrown by CSV Plotter when mounting, removing data CSV Plotter was trying to display undefined data. Fixed that, in the process also fixed (mostly) removing data. Some style changes too * #25: Fixed CSV Plotter drag and drop * #25: Iterate on csv plotter layout, drag ability Entire "drag file here" section now works as expected. Line spacing leaves something to be desired, but I'll come back to it once I understand the `vue-material` syntax better. Prettified the HTML too. * #25: Initial Dynamfit addons commit * #25: Migrate dynamfit example pages Previously we had three separate files for dynamfit and its two pages of tutorial, which were all very similar except for a few instructions, some disabled fields, and some extra images. I flattened them into one file. * #25: package.json auto-alphabetized * #25: Migrate dynamfit result page Job Manager still not working, that's next. Once it's working, it should provide the content for this page. * #25: Fix/catch dynamfit mounting errors * #25: Simplify button link * #25: Update chemprops to use the new dialog box, and prep for SMILES * #25: Initial SMILES commit Functionality depends on the API being up and running, to return results. * #25: Move LineChart to components * #25: Clear input element, chart on file remove By tying the LineChart key to the filename, removing the file using the button also resets the LineChart. * #25: Refactor store to simplify tools Half of the refactor is in this commit, flattening the `tools/` subdir as it seems unnecessary. moduleTools store will be added next. * #25: Create unified tools store Every tool is now stored consistently. Dynamfit was moved from its own directory into this one and updated to store its own display info. Getters are a first guess at what will work, debugging that will happen once this store migration is complete. * #25: Create unified toolset store Store toolsets as supersets of tools and other toolsets. Again, getters are a first pass, and will be debugged next. * #25: Wrote toolset store for moduletools Also added a pageContent getter and updated MCRTools variable names to match standard * #25: Rename moduleTools to tools in preparation Will eventually move simulationTools under the tools store umbrella, getting ready for that now so I don't have to rename it everywhere * #25: Added missing info to tools, getters, index Some tools were missing namespace flags, some missing image files. One getter needed updating to include external link flag and image filepath, and Dynamfit needed to be added to the index. * #25: Fixed bug in calling rootGetters I had gotten the syntax for calling getters wrong. * #25: Nest tools under nanomine, not metamine * #25: Create reusable tool and toolset pages * #25: Fix typos * #25: move link nesting to getters for easy changes * #25: Fix toolset page not reloading on route change Also add base component for toolsets, tools * #25: Rolling back MCR tool work to revisit later * #25: Nest tools to /nm/tools, update mentions * #25: Move simulation tools under toolsettemplate * #25: Fix references not showing/erroring when empty * #25: Move dynamfit to tools root, remove mcr home MCR homepage is now handled by toolsettemplate * #25: update webpack chunk names * #25: fix typo * #25: tag auth mocks more obviously * #25: Fix typos * #25: Move references to separate file Easier to remove duplicates from a reference list if you can generate the set of all references in a repeatable way. By referring to references with DOI/ISBN numbers, we set the stage for pulling reference info from semantic scholar as well. * #25: Wrote ReferenceContainer unit test Also updated ToolCard unit test to test for link rendering correctly. * #25: Remove old tests for moduletools, simulation Those pages are now handled by ToolSetTemplate, no need for their own specs. * #25: Write unit test for LineChart Had to add a moduleNameMapper to the jest config in order for it to recognize `d3`, which LineChart uses to draw the graph. * #25: Further refactor reference handling Move references to ReferenceContainer store module, for easier replacement later with a SemanticScholar API call or other form of reference checking. Use DOIs (or ISBN in one case so far) as key. * #25: Initial SmilesCanvas unit test For some reason, SmilesCanvas is not able to reach the same document as the jest harness is providing the test, so it errors out when trying to render the SMILES output. Haven't been able to debug, this is a placeholder test that I'll come back to when I'm able to figure it out. * #25: Move CanvasWrapper into SmilesCanvas CanvasWrapper is not used anywhere else in the old repo -- pulled its functionality (not very much) into SmilesCanvas. * #25: Write ToolSetTemplate unit test * #25: Write initial Dynamfit unit test Return to this once the Dynamfit/JobMgr API is completed to write tests for the form logic * #25: Write initial DynamfitResult unit test Return to this once the Dynamfit/JobMgr API is completed to write tests for the API response logic * #25: Remove skipped unit test * #25: Fix bug in testing md-button with `to` attr `RouterLinkStub` (used in `createWrapper` for jest tests) doesn't play nicely with the `md-button` implementation of `router-link`. (`md-button` is using deprecated attributes of `router-link`, and is throwing console.warnings.) So I wrapped `md-button`s in `router-link`s explicitly, which solved the testing bug too. * #25: attempt at spacing toolcards * #25: Remove broken tests Using RouterLinkStub in createWrapper breaks these tests, which aren't testing our code anyway so it's not a big deal. * #25: Move tools that won't use ToolTemplate out Prep for moving all the tools from state into their own components, more like they were stored in previous repo. * #25: Move tools from state into components Each tool now has its own component, instead of its own state module as discussed with Tolu. Each component uses the ToolTemplate component for display, which has two separate views: a card view for ToolSets, and a space for an upcoming tool instruction view for the Tool itself. * #25: Move ToolSets from state to components Each toolset now has its own component, instead of its own state module as discussed with Tolu. Each component uses the ToolSetTemplate component for display, which like the ToolTemplate has two views, a card view and a toolset page view. This does involve some recursive components which seem to be working fine. * #25: Fix ToolSetTemplate Test ToolSetTemplate no longer includes References (they're only accessible to the Tools that cite them), so the ReferenceContainer test was removed. It also no longer calls store getters to retrieve card content. * #25: Fix filepath typo * #25: Cleaning up old files Removed commented out code and console.logs, and parameterized a function * #25: Moved global suppressing to test-setup.js Set up `test-setup.js` to be run before each test file is executed. Moved the suppressing of global.console.log and global.fetch to there, rather than repeating it in every test. * Updated dockerfile to use released whyis. * #144: Data voyager initial working migration * #24 migrate upload (#147) * #24: Initial XML Uploader commit Converted vuetify to vue-material, added references to the reference store. * #24: Fix old references to xml-uploader * #24: Remove mock dataset from testing * #24: Write unit test for dataset viewer * #24: Rename DatasetCreateOrSelect to DatasetViewer * #24: Updated dialog rendering, removed autologin * #132 write slot driven templates (#142) * #132: Add MCR specific tool page Renamed tool template to specify that it is MCR tool specific -- at least given the tools we've added so far. Added a dependency for EditImage.vue, a component of ImageUpload.vue that is itself a component of MCRToolTemplate.vue. Removed the old MCR homepage. Added a pageContent getter for tools as well. * #132: tag auth mock more obviously * #132: Use MCRToolTemplate in all tools, add socket Job Manager uses vue-socket.io -- copied config from old repo and added this and socket.io-client as well. Updated MCRToolTemplate to account for move from state to components -- added card, moved reference container. * #132: Remove old ToolTemplate * #132: Update MCRToolTemplate to use tool prop Also add spinner for loading results * #132: Fix typos * #132: Add optional mocks to test wrapper `$socket` needed to be mocked for some tests, added that functionality to `createWrapper`. * #132: Write Tool Card that uses slots, not props * #132: Move major tool page content to slots Not all content could be moved, as some is needed for job management, but major display content was turned into slots for template HTML. * #132: Move Toolset content from data to slots * #132: Wrote tests of new templates Also updated the wrapper function to allow for user-defined stubs * #132: Remove replacement-tool-page slot Was created for Dynamfit, ChemProps, but those really should be separate components, so I removed the slot. * #132: Make tool cards full-width * #132: Convert Module Tools page to new system * #133: Convert Binarization tools and homepage Moved tool data from the `data` field to slots in the tool page template and moved the homepage data from `data` to the toolset page template slots. * #133: Fix seeming typo in ImageUpload.vue I may be wrong, but the way the selects prop is used in the template seems like it should be an Array, not an Object. All the selects fields in each tool are Arrays as far as I remember. Certainly for the binarization tools. * #134: Convert Characterization tools * #135: Convert reconstruction tools * #136: Convert Intelligent characterization tool * #139: Remove ChemProps, Dynamfit from template ChemProps and Dynamfit rewrite all the job management code already, so they should really be separate components. * #139: Wrap lifecycle events in `this.card` checks If a component is being rendered as a card, it doesn't need to check for authorization or commit its header. Also removed unused minWidth param from renderDialog. * #132: Convert MCR homepage * #132: Remove unnecessary index files ToolSetTemplate no longer needs to keep all tools as components, so the index files that centralized them were removed. * #132: Tweak ToolCard size, layout * #132: Write test for MCRToolTemplate * #132: Remove typos and testing code * #132: Attempt at cleaning up scoped styles * #132: Migrate SimulationTools, Polymerizer Add fallback content for toolset pages, if description is not present. * #132: Change submit button implementation You can't listen to events on slots, so the button was moved to the tool template, and the slot only provides the button text now. * #132: Typo in styles import * #132: Fix MathML syntax * #132: Move tool, toolset routes to own module * #132: Replace MathML with MathJax Includes a CDN script tag in index.html, and a new component, but now math will render in all browsers. * #132: Combine tool scss files into one * #132: Fix style imports for new consolidated file * #132: Updated vue-advanced-cropper version * #132: Wrap styles to avoid overflow * #29 migrate meta mine tools (#148) * #29: Initial PixelUnit commit Converted all vuetify to vue-material, cleaned up JS a little bit. Had to replace the static file reference with a link to the live website's version of the file, as we don't yet have a way to serve static files that I know of. * #29: Update PixelUnit route * #29: Remove console.logs * #29: Write template unit test for PixelUnit Once file storage is implemented, the config file can be loaded for the test as well, which will allow testing of the page's function * #29: Remove commented console.logs * #29: Comment out test rather than skip it * #29: Fix likely location of CI test fail Added dummy catch block to the promise I think is causing the issue. * #29: Remove PixelUnit test from test suite Didn't completely remove it, so that it can be tackled in a future TD ticket. * #29: Move scoped styles to _tools.scss * #29: Wrap styles to avoid overflow * #125 refactor sparql js (#150) * #125: Throw errors instead of failing quietly * #125: Add combined query and parse function Could export it as the default if we want? No need to, of course. * #125: Throw error on response failure * #125: Simplify rethrowing errors * #144: Fix Data Voyager styling and navBack buttons * #144: Fixes to DataVoyager for Jest * #144: Data Voyager component unit tests * #144: Replace uri with chartId * fix(#140): general technical debt (#152) * #126: add functions for chart id resolution * #126 remove scoped styles * Initial commit #98 Currently using duplicated/modified code from Gallery. Added initial standard styling for #114, #115, #118 * #98: Add styling for sample images #115 * #98: Minor styling and linting fixes * #98: Start developing state management for explorer results * #98: Fix linting errors * #140: app scroll behaviour fixes * #140: Ignoring mongodump folder * #140: Update mongo init file to create indexes * #50: Restore shell script replaced with syncdb.sh * #140: Mongodb restore and sync script * #140: Add syncdb shell to script * #140: Add Elastic search to docker compose services * #140: Add Elastic search to docker compose services * #140: Add ES config payload * #140: Add article mappings payload * #140: td - under dev * #140: Fix conflicts * #140: pre-checks commit * #140: pre-checks commit -2 * #140: pre-check temp udates * #140: Update docker compose file port mappings * #140: Remove dependency and added environment variables * #140: Updating frontend nginx settings * #140: Updating frontend nginx settings * #140: Redirect all 50x error back to index page * #140: Rest services update, test fixes, and deployment updates * #140: Changed logger directory * #140: Linter fixes * #140: typo fixes Co-authored-by: Sam Stouffer <samuellstouffer@gmail.com> Co-authored-by: Anya Wallace <aswallace98@gmail.com> * #144: Fix chart uri to match gallery implementation * We are only using the materialsmine ontology now * #156: Updating icos (#157) * #156: Updating icos * #150: Upgraded node version * #150: Re-install node module after upgrade * #150: Blocked out fuseki standalone service implementation * #150: Upgraded node version on BE * #150: Update to specific version of body-parser * #156: Updated log file creation * #156: Updated ES to log pings * #158: fix undefined data return from sparql * #145: add parameterized query page * #145: remove console logs from param. query apge * #145: fix readonly prop warning, add readonly prop functionality to yasqe * #145: fix query template syntax error * #162: Fix overlap in tool styling * #145: adjust VALUES block insertion be inside WHERE * #145: require manual refresh to run param query * #145: use router.back for datavoyager back button * #145: run query when autorefresh turned on * #161: Fix vega chart responsiveness * Add menu item MRS2022 to PageHeader.vue * match the styling of other menu links * fix #163: z-index dropdown * #161: Uncommented and added curly brace to match previous commits * #165: Add Data Voyager tutorial video to how to page * #165: Initial draft of DV instructions * #165: Fix linting error * fix(#156): Update ico fix (#169) * #156: Add unwanted whyis files to gitignore * #156: Add host port to client services * #156: update env variable deployment and update readme file * #156: Update environment variable readme file with additional info * #156: Update readme with information for environment variable deployment * #156: Update search url * #156: Update api url * #156: Disable websocket * #156: temporary service disable * #156: fix connection time * #156: Update api call to use new service port environment variable * #156: Update search url * #156: empty commit to trigger new build * #156: Pull upstream * #156: Update readme on environment variable deployment * #175: add two-property parameterized query * #165: Switch instructions to accordion style instead of button * Fix linting errors * #165: Minor v-bind error fix * #164: fix visualize and Module Tools routes * #164: replace nanomine drawer with generic drawer * #165: Open DV paper link in new tab * #179: Fix dropdown links for galleries * #160 #180 Dialog box styling fixes #160: Dialog box now fits screen when expands to full screen for mobile responsiveness #180: Clicking outside causes unwanted behavior, so instead added scrolling so that close button is always visible * Remove unit * #165: Add link to voyager gitbook * chore(#155): Fixes (#211) * #155: add backup to git ignore * #155: Add node modules to ignore * #155: Add a new library for pixel unit testing * #155: Re-enable pixel unit test * #155: Re-enable pixel unit test * #177: Add 404 page and updated app router * #177: Styling 404 page * #155: updated search, testing and dv link * #155: fix typos and update creation page to use curate * #155: Add header to page not found * #155: update unit test for page-not-found * #155: Updated code owners * #155: Update home link * #205: Recommendation for regex fix for safari * #176: Add ability to replace pq variable names with option selections * #210: Add some of missing properties to pq dropdown Still needs additional work. Dielectric constant won't return results due to not having units, breakdown strength is not directly curated as a property of the samples * add sample metadata author and year (#221) * add sample metadata author and year * add nullish coalesing * lint code * add container to metadata and user computed sampleId * #210: Make units optional in pq to allow unitless attributes * Staging (#227) * #220: UI fixes * #220: styling changes * #220: Add Curae home page and updated parameterized query * #220: Add Curae home page and updated parameterized query * #220: Add Curae home page and updated parameterized query * #190: Update with require library * #190: Remove placeholder files * #190: Migrate globalmiddleware file to index.js * #190: Add validators and global error handlers * #190: Add schema and resolver for user and user management * #190: Allow setting jwt expiration arg * #190: Add image migration logic * #190: Add pagination handler * #190: Update eslint for rest services * #190: Remove unused services * #190: Update auth token source * #190: linter fixes * #190: Update auth token source * #190: Update server file with additional services at startup * #190: Add testing for graphql service pt1 * #190: update test import * #190: Renamed graph resolver * #190: Renamed graph resolver * #190: removed unused import * #190: Install ws package * #155: Work in progress * #220: Update styles for page opt * #220: Added an icon to filter panel * #220: Add parameterized query as tab and remove it as a button * #220: Add image gallery to list of routes * #220: create an image gallery components * #220: test WIP * #190: Refactor graphql and define user, api and image gallery schemas and resolver * #190: Centralizing error for graphql operations * #190: Adding appollo server and remove express-graphql * 190: Modified restful tests * #190: Update rest server config, middleware services and graphql init * #190: Add xmldata model for xmldata collection * #190: Add a new params to pass env var * #190: Ignoring node_modules in docker * #190: Ignore fuseki files * #190: Update validations and add new login controller - wip * WIP: frontend testing * #190: Add proxy to rest environment variables * #190: Rename imageContent method to file content * #190: Renamed expected file param * #190: Separated file controller from admin controller * #190: Update import and added file routes handler * #190: Renamed files * #190: Add single image resolver and updated search resolvers * #190: Add query pipelines directory and image query pipeline * #190: Renamed file * #190: New file route handler for file related services * #190: Renamed files * #190: Update image query with image keywords * #220: Revert ES6 Syntax and Image Gallery WIP * #190: Image gallery * #190: update parameterized query page link * #190: Linter fixes * #190: update gql fetch policy * #190: linter fixes * #190: Linter error fixes * #190: Fix failing tests * #190: Remove path import from vueconfig * #190: Remove optional chaining causing error * #190: Bug fixes for search box * #190: Remove output logs * #190: Update base url * #190: Add logic for image not found * #190: Refactored image base URL - API * #215: Work in progress * #215: remove empty return and linter fixes * #215: gallery unit test WIP * #215: gallery unit test WIP * #220: Add text reducer and image reducer to mixin * #220: Update unit testing * #220: Update docker image setup for UI * #220: general UI optimization update * #220: Linter fixes * #220: Updated UI docker config * #220: Re-install npm library * #220: Update text description for null values * fix (#235): Update Drawer with Curation (#240) * #235: Add test for side drawer * #235: Update side drawer with curation menu options * #235: Linter fixes * feat(#238): Contact us page api (#243) * #238: Created a new mongodb schema for contact * #238: Refactor error formatter to return error instead of throw * #238: Add sinon lib for unit testing * #238: Refactored to return error instead of throwing * #238: Added unit testing for contact and refactored existing test * #238: Added contact query/mutation and schema * #241: MVP of metamaterial visualization tool Important TD: data access is very inefficient right now and needs lots of work - csv needs to be stored on rest, not frontend - should be stored in local storage after initial pull - needs geometry visualization Currently mockup2 is the more up-to-date version * #241: Add unit cell visualization for 10x10 and 50x50, fix screen resize * Whyis Integration 1 of 8 (#246) * #156: Add unwanted whyis files to gitignore * #156: Add host port to client services * #156: update env variable deployment and update readme file * #156: Update environment variable readme file with additional info * #156: Update readme with information for environment variable deployment * #156: Update search url * #156: Update api url * #156: Disable websocket * #156: temporary service disable * #156: fix connection time * #156: Update api call to use new service port environment variable * #156: Update search url * #156: empty commit to trigger new build * #156: Pull upstream * #156: Update readme on environment variable deployment * WIP * Switched back over to the whyis fuseki install. * resolved conflict * Got fuseki working with fast instance and summary views * whyis integration 1 of 8 * Update CI Co-authored-by: Jamie McCusker <mccusj2@rpi.edu> Co-authored-by: Jamie McCusker <mccusker@gmail.com> * #241: Combine mockups but separate vega specification * #241: Remove mockup * update CI (#247) * fix(#236): Update image gallery search (#244) * #236: Refactored unit test * #236: Add search functionality to image gallery * #236: Refactor image gallery * #236: Update container image * chore (#237): Add descriptions to existing query and mutation resolvers (#245) * #237: Add descriptions to existing query and mutation resolvers * #237: Update schema text descriptions * #229: Initial UI for spreadsheet upload interface * #241: Make metamaterial unit cell scale based on number of pixels * Linting errors * #229: dataset curation * #241: Minor UI fixes, add loading spinner * Fix linting error * #241: Metamaterial viz feedback - Add constituent material info under the unit cell image - Temporarily switch to using Papaparse for csv to json conversion since my implementation was buggy * #229: WIP * #229: added a resolver for dataset upload * #229: Add file upload and update data stream * #229: dataset unit testing * #250: UI fixes for demo * #250: Remove click event * #229 spreadsheet file interface (#249) * #229: dataset curation * #229: WIP * #229: added a resolver for dataset upload * #229: Add file upload and update data stream * #229: dataset unit testing * #250: UI fixes for demo * #250: Remove click event * #229: Updates to remove explorer home page latency * #229: Test requires refactoring, passed sanity checks Co-authored-by: Anya Wallace <aswallace98@gmail.com> * #252: Add resolver for pixelated data and updated unit test * #252: Validate user before allowing upload * #252: Linter fixes * #252: Re adding missing library * feat(#252): Add resolver for pixelated data and updated unit test (#257) * #252: Add resolver for pixelated data and updated unit test * #252: Validate user before allowing upload * #252: Linter fixes * #252: Re adding missing library * #241: Pixelated metamaterial viz updates - Switch to using apollo graphql for data - Temporarily remove color coding until datasets have label or title - Temporarily limit to 10x10 OR 50x50, not both - Add loading spinner, fix async behavior * #241: Fix metamaterial viz unit tests * Remove console.log * #241: Combine timeouts and fix vega-lite warning * Fix linting error * #261: Fix MetaMine header styling and add viz link * #261: Remove an unnecessary inline style * Fix (#252): Updates (#263) * #252: Updated graphql schema description * #252: Add changes to automatically create storage at RESTAPI start up * Fix(#252): Updates (#264) * #252: Updated graphql schema description * #252: Add changes to automatically create storage at RESTAPI start up * #252: Refactored pixel data endpoint * #252: Added a centralized log writer * #252 updates (#265) * #252: Updated graphql schema description * #252: Add changes to automatically create storage at RESTAPI start up * #252: Refactored pixel data endpoint * #252: Added a centralized log writer * #252: Refactor isAuth to remove file anytime auth fails * #229: Spreadsheet upload draft * Linting errors * #229: Fixed datasetId mutation bug * #229: update failing test * Update decryptENVARFile.sh (#248) Co-authored-by: tholulomo <94853475+tholulomo@users.noreply.github.com> * [Hotfix] #229: Fixed datasetId mutation bug (#267) * #229: Fixed datasetId mutation bug * #229: update failing test * #229: Fix error messsage * #229: UI fixes; createdDatasetId working * #229: XML Spreadsheet upload wip 400 error in createDataset file upload: `BAD_USER_INPUT` * #229: Fix curation upload route issues (#268) * #229: Fix curation upload route issues * #229: Add validations for curation upload routes * #229 fix upload (#269) * #229: Fix curation upload route issues * #229: Add validations for curation upload routes * #229: Refactor uploadfile to remove middleware service * #229: Pull upstream update * Fix (#229): Fix upload (#274) * #229: Fix curation upload route issues * #229: Add validations for curation upload routes * #229: Refactor uploadfile to remove middleware service * #229: Pull upstream update * #272: Fix dialog box styling and typos * #272: Rename class to reflect use case * #272: Reduce scope of dialog icon styling * #229: Bug fixes * #272: Merge upstream fixes * #229: Update Nodejs version * #229: CI update * #229: Update vue * #229: Docker updates Co-authored-by: Anya Wallace <aswallace98@gmail.com> * #229: Update curation UI and merge dev * #26 migrate contact us (#140) * #26: change contact link from src to nm * #26: create contactus page * #26: apply lint * #26: add contactus route to nm * #26: add contact page tests * #26: remove list style * #26: add error validation html * #26: add validation and onSubmit methods * #26: add post method * #26: add rendering tests for inputs * #26: add platform flag * delete event prevent default * resolve router conflicts * #26: add validation for platform * #26: uncooment platform post data * #30: add test for user inputs * add spacing * rename webpack code chunk name * add contact query * add apollo query * add $ to input Co-authored-by: tholulomo <94853475+tholulomo@users.noreply.github.com> * #275: Separate apolloClient into module * #275: Modify apolloClient to work with Vuex * #275: Put apollo provider back where it was * #275: Remove comments * [Hotfix]: dataset curation updates * [Hotfix]: Dataset curation updates (#278) * [Hotfix]: dataset curation updates * [Hotfix]: Deprecate fields that are no longer supported in GQL * [Hotfix]: Update gql schema test * #229: MVP spreadsheet upload UI * #229: Fix component name and linting * Merge branch 'develop' of https://github.com/Duke-MatSci/materialsmine into #229_spreadsheet_file_interface * #229: Spreadsheet upload - split files and rename * #229: Fix linting * #229: Add unit tests for all supporting components * #224: Update datavoyager link to use button (#281) * [MINOR]: #279 contact page BE integration (#280) * #279: Update form UI and added contact link to metamine page * #279: Remove console.log statement * #279: Integrated BE with contact page and updated unit test * #229: Add unit test for spreadsheet upload page * Undo accidental package-lock commit * #229: Fix async calls in spreadsheet upload * #207 material data filter search (#287) * #207: Update unit test to run in band * #207: Update to remove facet dialog for smaller screen * #207: Add materials property to facet search * #207, #212: Total count fix and added materials property fetch actions * #207: Remove facet call at home page load * #207: Refactor BE api to support materials property functionality on UI * #207: Backend unit testing for admin controller apis * #207: Added unit test for materials property and searchtableresult component * #207: Linter and error fixes * #207: Fix import typo * #207: Upgrade node version * #207: Refactor name to * :bug #207: Update CI node version * 🐛 #207: Downgrade CI node version * #229: Protect curation behind auth to prevent unwanted access * Fix readme typo Update readme ICO * #289 snackbar for error handling (#290) * #289: Implement snackbar two ways * #289: Fix linting * #289: Add Snackbar to App.vue * #289: Add snackbar unit test and an example for calling from vuex * #293 UI & BE Enhancements (#294) * #293: Add coverage to gitignore and update readme icon * #293: Fixed parameterized query UI inconsistency * #293: Sticky header bug fix * #293: Update unit test for viz page * #293: Add new filter types and removed undefined from image response * #293: Refactor auth middleware to use the centralized error writer * 293: Add 404 controller to backend to manage unavailable routes and page not found * #293: Fix mobile bug in viz page * #293: Update to return authors as part of image response * #293: 🔥 Image pipeline hotfix (#295) * #292: Visualization gallery initial fixes * #292: Add authors to image detail view, fix unit tests * #292: Add current page field to pagination component * #292: Add DOI to detail view, add links to search by doi and keyword * #293: Image pipeline, image schema updates and refactoring (#298) * CI: Fixes for build failure (#306) * [MAJOR] #300: Shibb auth (#308) * #300: Add names for each container * 🔥[hotfix]: FE Bug fixes * 🔥[hotfix]: Linter fixes * #300: BE auth service setup * #300: Refactor FE with auth flow implementation * #300: Add auth service to proxy * #300: Update docker environment variables * #300: Linter fix * #300: Refactor failing component and fix test failures * #300: Fixed merged conflict * #300: Add additional logger to auth service * #300: Add additional logger to auth service * #300: Remove unused logger from auth service * #300: Remove unused logger from auth service * #300: Update failed auth response * #300: Refactor login button * #300: Remove sparql query menu * #300: Update logout actions * #300: Update unit test assertions * #300: Remove skipped unit test * Feat(#309): Prod CICD (#310) * feat(upgrade): #309 Add rest coverage report to gitignore * feat(upgrade): #309 Setup coverage testing report for backend * feat(core): #309 Add release versioning to CI pipeline * feat(ci/cd): #309 Update CI pipeline for prod release * feat(ci/cd): #309 Re-enabled image build and deployment for QA CI environment * fix(#292): modify page input and selection styling make the page number input smaller to match surrounding labels, move the selection to the same line as buttons and match styling --------- Co-authored-by: Anya Wallace <aswallace98@gmail.com> Co-authored-by: Kevin Zuniga Cuellar <kzunigac@uvm.edu> Co-authored-by: Rory Schadler <48921090+roryschadler@users.noreply.github.com> Co-authored-by: Kevin Zuniga Cuellar <46791833+kevinzunigacuellar@users.noreply.github.com> Co-authored-by: Sam Stouffer <samuellstouffer@gmail.com> Co-authored-by: Jamie McCusker <mccusj2@rpi.edu> Co-authored-by: Jamie McCusker <mccusker@gmail.com> Co-authored-by: mjpalmeri <95506353+mjpalmeri@users.noreply.github.com> Co-authored-by: bingyinh <32102865+bingyinh@users.noreply.github.com>
* #109: Fix linter errors * #109: Fix chart nested routing * #109: Add error handling for chart uri not found * #109: Fix linting errors * #97: Initial commit of search header panel tabs * #97: Add search bar to header * #113: Refactor sample page queries * #97: Fix tab styling, rearrange to match UI presentation * #97: Remove top right search field * #113: refactor sample page components * #113: fix linting errors * #97: Remove test content from tabs * #97: Unit test for search header panel * #113: first draft * #113: Fix for error thrown in unit test * Linting errors * #97: Set up for explorer results state management * Fix linting errors * #113: add tests for state variables * #113: remove page style * #113: fix empty results display * #66 templated view article (#112) * #66 initial article commit * #66: Refactor article page, fetch article metadata Moved Article.vue, separated out into article.js to match file structure of other pages. Progressed on Semantic Scholar API logic. * #66: Refactor article.js * #66: Refactor Article.vue * #66: Add route for Article View Added route to explorer for the article view. Moved DOI from component prop to a watcher and computed property pair. * #66: Refactor article.js to move logic to services Moved article metadata retrieval logic to services. Unified all metadata under one object for simpler reference. * #66: First pass at article HTML view First attempt at displaying all article metadata. Also added pre-push linting fixes. * #66: Add loading state awareness * #66: Add article venue to retrieved fields * #66: Second pass at article view HTML Added basic loading indicator, refactored table to have better structure (I think) * #66: Basic CSS for article view * #66: Removed erroneous comment * #66: Fix scrolling bug Scrolling tables also scrolled their titles, but not their header rows. Isolated tables in their own div, maybe tables should be their own component... * #66: Unify dir structure, nest article page Move explorer/article/services to modules/explorer/article/services, clean up article now that it's nested properly (barring further change to nest completely under sample). Refactor extra function from fetchJSON into getArticleMetadata. * #66: initial Article.vue testing commit Includes mock for Semantic Scholar API calls and article.js whitespace linting fix. * #66: Refactored getArticleMetadata for easier mock Mocking getArticleMetadata easily required moving it into an enclosing object so that the manual mock could do the same, allowing it to access properties. The manual mock was written following along with [jest's manual mock](https://jestjs.io/docs/manual-mocks). The mock of the resulting getArticle also provides a stub of the SemanticScholar API response as of 2/2/22, for reference and testing. * #66: Write tests for Article.vue Wrote tests of DOI loading, reloading; article data loading; API failure. Added classes to article.html items to distinguish them and allow the tests to refer to them. Updated article.js to use the new articleMetadata.js and fixed bugs that appeared in testing. * #66: Fix linting errors * #66: Write tests for module articleMetadata.js Updated articleMetadata mock to include raw and cleaned mock data, and wrote tests of the fetch handler and response cleaning routines. Fixed issues in articleMetadata.js that came up in testing. * #66: Refactored articleMetadata.js to better track API errors Refactored .get function to remove repeated code and allow API calls to occur in parallel. Rewrote how internal fetch returns in order to pass errors (and success codes) in API call along to caller. Updated mock data to include mock version of success codes * #66: Updated tests to match Also added missing response codes to mock data, and fixed citation and reference call status not being passed through * #66: Updated Article.vue to display errors Article view now takes advantage of newly passed API errors to inform the user that an error has occurred. This could be expanded on * #66: Linting fixes * #66: Update test to use createWrapper Replaced localVue, shallowMount with createWrapper for consistency. Added test to ensure error message is displayed to user. * #66: Write comments, refactor error storage * #66: Write jsdoc-style function comments Documented functions, removed unused mock response function, and refactored testing slightly to remove repetition. * #66: Move article to its own route * #25: Remove console.logs, add reusable spinner * #113: remove console.logs and add index key * #113: fix linting errors * #123: Consolidate exports in sparql.js * #123: Modify sparql capitalization to match existing pattern * #28: Link MM/teams to teams page (#122) * #28: Link MM/teams to teams page * #28: Update reference to about, how, news * #123: Merge parseSparql and transformSparqlData into a single function * #61: Add gallery page * remove duplicate spinner component * remove redundant pagination styles * fix lint errors * Remove class that hides pagination buttons * remove unneccessary sass imports * query actual charts in gallery view * remove console.log in test * #130: Linting fix (#131) * feat(#100): knowledge graph rest endpoint (#138) * #100: Add logger service * #100: Updated secrets default and increased token validity to 8hours * #100: testing script for isInternal middleware service * #100: Add isInternal middleware service to validate internal calls * #100: Re-usable logger service for unit test * #100: Moved logger service to initialize first * #100: renamed filestorage directory and added a method to ensure unique file names * #100: Updated test with log service * #100: Added unique name generator to package.json * #100: Added knowledge graph endpoint method * #100: Add KG wrapper route to REST service * #100: Append KG route to server initialization * #100: Re-installed app * #43: Add fuseki service to container * #43: Fuseki volume mount * #43: Add fuseki critical files to ignore * #100: Updated nginx to use a preferred version * #100: File renaming and linter error fixes * #100: Update environment variables * #25 migrate tools (#128) * #25: initial ModuleTools commit Replaced vuetify elements with vue-material and simplified layout. * #25: Refactored module tools page to use store Moved module tools data into store, refactored tool card into component for reuse in simulationTools as well. * #25: Initial simulation tools commit Changed module tools getter name to avoid overlap, added simulation tools store data and getter, added simulation tools assets. * #25: Linting fix * #25: Write tests for simulation, module, ToolCard * #25: Initial chemprops commit Rewrote chemProps.html to use `vue-material`, removed `Axios` and commented out Smiles.vue and Auth.js in chemProps.js. Still need to implement SMILES API, so that chemProps form works -- future ticket. * #25: Initial chempropsapitoken commit Missing Duke shibboleth authorization and chemprops in general, so can't implement the api token functionality just yet. * #25: fix typo, switch to md-layout * #25: Initial csvPlotter commit File upload and display works, but no tests have been written yet. Includes a new dependency, `d3`. * #25: Fix typo * #25: Fix typo in router path * #25: Create reusable ReferenceContainer component * #25: Initial MCR tool commit Migrated MCR tool homepage over, factoring out the references into the new reusable container and migrating the tool descriptions into reusable ToolCard components * #25: Rename state getters to avoid overlap Also added ReferenceContainer to chemProps * #25: Make mcrTools plural * #25: Replace v-bind with shorthand where possible * #25: Linting fix * #25: Added support for external links to ToolCard * #25: Initial dynamfit commit Same deal as other initial commits. New store module for references, migrating vuetify tags to vue-material tags. Added JobMgr.js module, which dynamfit uses. Changed Axios implementation to fetch implementation, mocked auth module as it is not implemented yet. * #25: Fix bug in ToolCard internal link checker Using `new URL()` to test links threw errors (expected) but jest didn't like that. Replaced with a simple externalLink flag that defaults to false unless the store explicitly sets it true. * #25: Fix error thrown by CSV Plotter when mounting, removing data CSV Plotter was trying to display undefined data. Fixed that, in the process also fixed (mostly) removing data. Some style changes too * #25: Fixed CSV Plotter drag and drop * #25: Iterate on csv plotter layout, drag ability Entire "drag file here" section now works as expected. Line spacing leaves something to be desired, but I'll come back to it once I understand the `vue-material` syntax better. Prettified the HTML too. * #25: Initial Dynamfit addons commit * #25: Migrate dynamfit example pages Previously we had three separate files for dynamfit and its two pages of tutorial, which were all very similar except for a few instructions, some disabled fields, and some extra images. I flattened them into one file. * #25: package.json auto-alphabetized * #25: Migrate dynamfit result page Job Manager still not working, that's next. Once it's working, it should provide the content for this page. * #25: Fix/catch dynamfit mounting errors * #25: Simplify button link * #25: Update chemprops to use the new dialog box, and prep for SMILES * #25: Initial SMILES commit Functionality depends on the API being up and running, to return results. * #25: Move LineChart to components * #25: Clear input element, chart on file remove By tying the LineChart key to the filename, removing the file using the button also resets the LineChart. * #25: Refactor store to simplify tools Half of the refactor is in this commit, flattening the `tools/` subdir as it seems unnecessary. moduleTools store will be added next. * #25: Create unified tools store Every tool is now stored consistently. Dynamfit was moved from its own directory into this one and updated to store its own display info. Getters are a first guess at what will work, debugging that will happen once this store migration is complete. * #25: Create unified toolset store Store toolsets as supersets of tools and other toolsets. Again, getters are a first pass, and will be debugged next. * #25: Wrote toolset store for moduletools Also added a pageContent getter and updated MCRTools variable names to match standard * #25: Rename moduleTools to tools in preparation Will eventually move simulationTools under the tools store umbrella, getting ready for that now so I don't have to rename it everywhere * #25: Added missing info to tools, getters, index Some tools were missing namespace flags, some missing image files. One getter needed updating to include external link flag and image filepath, and Dynamfit needed to be added to the index. * #25: Fixed bug in calling rootGetters I had gotten the syntax for calling getters wrong. * #25: Nest tools under nanomine, not metamine * #25: Create reusable tool and toolset pages * #25: Fix typos * #25: move link nesting to getters for easy changes * #25: Fix toolset page not reloading on route change Also add base component for toolsets, tools * #25: Rolling back MCR tool work to revisit later * #25: Nest tools to /nm/tools, update mentions * #25: Move simulation tools under toolsettemplate * #25: Fix references not showing/erroring when empty * #25: Move dynamfit to tools root, remove mcr home MCR homepage is now handled by toolsettemplate * #25: update webpack chunk names * #25: fix typo * #25: tag auth mocks more obviously * #25: Fix typos * #25: Move references to separate file Easier to remove duplicates from a reference list if you can generate the set of all references in a repeatable way. By referring to references with DOI/ISBN numbers, we set the stage for pulling reference info from semantic scholar as well. * #25: Wrote ReferenceContainer unit test Also updated ToolCard unit test to test for link rendering correctly. * #25: Remove old tests for moduletools, simulation Those pages are now handled by ToolSetTemplate, no need for their own specs. * #25: Write unit test for LineChart Had to add a moduleNameMapper to the jest config in order for it to recognize `d3`, which LineChart uses to draw the graph. * #25: Further refactor reference handling Move references to ReferenceContainer store module, for easier replacement later with a SemanticScholar API call or other form of reference checking. Use DOIs (or ISBN in one case so far) as key. * #25: Initial SmilesCanvas unit test For some reason, SmilesCanvas is not able to reach the same document as the jest harness is providing the test, so it errors out when trying to render the SMILES output. Haven't been able to debug, this is a placeholder test that I'll come back to when I'm able to figure it out. * #25: Move CanvasWrapper into SmilesCanvas CanvasWrapper is not used anywhere else in the old repo -- pulled its functionality (not very much) into SmilesCanvas. * #25: Write ToolSetTemplate unit test * #25: Write initial Dynamfit unit test Return to this once the Dynamfit/JobMgr API is completed to write tests for the form logic * #25: Write initial DynamfitResult unit test Return to this once the Dynamfit/JobMgr API is completed to write tests for the API response logic * #25: Remove skipped unit test * #25: Fix bug in testing md-button with `to` attr `RouterLinkStub` (used in `createWrapper` for jest tests) doesn't play nicely with the `md-button` implementation of `router-link`. (`md-button` is using deprecated attributes of `router-link`, and is throwing console.warnings.) So I wrapped `md-button`s in `router-link`s explicitly, which solved the testing bug too. * #25: attempt at spacing toolcards * #25: Remove broken tests Using RouterLinkStub in createWrapper breaks these tests, which aren't testing our code anyway so it's not a big deal. * #25: Move tools that won't use ToolTemplate out Prep for moving all the tools from state into their own components, more like they were stored in previous repo. * #25: Move tools from state into components Each tool now has its own component, instead of its own state module as discussed with Tolu. Each component uses the ToolTemplate component for display, which has two separate views: a card view for ToolSets, and a space for an upcoming tool instruction view for the Tool itself. * #25: Move ToolSets from state to components Each toolset now has its own component, instead of its own state module as discussed with Tolu. Each component uses the ToolSetTemplate component for display, which like the ToolTemplate has two views, a card view and a toolset page view. This does involve some recursive components which seem to be working fine. * #25: Fix ToolSetTemplate Test ToolSetTemplate no longer includes References (they're only accessible to the Tools that cite them), so the ReferenceContainer test was removed. It also no longer calls store getters to retrieve card content. * #25: Fix filepath typo * #25: Cleaning up old files Removed commented out code and console.logs, and parameterized a function * #25: Moved global suppressing to test-setup.js Set up `test-setup.js` to be run before each test file is executed. Moved the suppressing of global.console.log and global.fetch to there, rather than repeating it in every test. * Updated dockerfile to use released whyis. * #144: Data voyager initial working migration * #24 migrate upload (#147) * #24: Initial XML Uploader commit Converted vuetify to vue-material, added references to the reference store. * #24: Fix old references to xml-uploader * #24: Remove mock dataset from testing * #24: Write unit test for dataset viewer * #24: Rename DatasetCreateOrSelect to DatasetViewer * #24: Updated dialog rendering, removed autologin * #132 write slot driven templates (#142) * #132: Add MCR specific tool page Renamed tool template to specify that it is MCR tool specific -- at least given the tools we've added so far. Added a dependency for EditImage.vue, a component of ImageUpload.vue that is itself a component of MCRToolTemplate.vue. Removed the old MCR homepage. Added a pageContent getter for tools as well. * #132: tag auth mock more obviously * #132: Use MCRToolTemplate in all tools, add socket Job Manager uses vue-socket.io -- copied config from old repo and added this and socket.io-client as well. Updated MCRToolTemplate to account for move from state to components -- added card, moved reference container. * #132: Remove old ToolTemplate * #132: Update MCRToolTemplate to use tool prop Also add spinner for loading results * #132: Fix typos * #132: Add optional mocks to test wrapper `$socket` needed to be mocked for some tests, added that functionality to `createWrapper`. * #132: Write Tool Card that uses slots, not props * #132: Move major tool page content to slots Not all content could be moved, as some is needed for job management, but major display content was turned into slots for template HTML. * #132: Move Toolset content from data to slots * #132: Wrote tests of new templates Also updated the wrapper function to allow for user-defined stubs * #132: Remove replacement-tool-page slot Was created for Dynamfit, ChemProps, but those really should be separate components, so I removed the slot. * #132: Make tool cards full-width * #132: Convert Module Tools page to new system * #133: Convert Binarization tools and homepage Moved tool data from the `data` field to slots in the tool page template and moved the homepage data from `data` to the toolset page template slots. * #133: Fix seeming typo in ImageUpload.vue I may be wrong, but the way the selects prop is used in the template seems like it should be an Array, not an Object. All the selects fields in each tool are Arrays as far as I remember. Certainly for the binarization tools. * #134: Convert Characterization tools * #135: Convert reconstruction tools * #136: Convert Intelligent characterization tool * #139: Remove ChemProps, Dynamfit from template ChemProps and Dynamfit rewrite all the job management code already, so they should really be separate components. * #139: Wrap lifecycle events in `this.card` checks If a component is being rendered as a card, it doesn't need to check for authorization or commit its header. Also removed unused minWidth param from renderDialog. * #132: Convert MCR homepage * #132: Remove unnecessary index files ToolSetTemplate no longer needs to keep all tools as components, so the index files that centralized them were removed. * #132: Tweak ToolCard size, layout * #132: Write test for MCRToolTemplate * #132: Remove typos and testing code * #132: Attempt at cleaning up scoped styles * #132: Migrate SimulationTools, Polymerizer Add fallback content for toolset pages, if description is not present. * #132: Change submit button implementation You can't listen to events on slots, so the button was moved to the tool template, and the slot only provides the button text now. * #132: Typo in styles import * #132: Fix MathML syntax * #132: Move tool, toolset routes to own module * #132: Replace MathML with MathJax Includes a CDN script tag in index.html, and a new component, but now math will render in all browsers. * #132: Combine tool scss files into one * #132: Fix style imports for new consolidated file * #132: Updated vue-advanced-cropper version * #132: Wrap styles to avoid overflow * #29 migrate meta mine tools (#148) * #29: Initial PixelUnit commit Converted all vuetify to vue-material, cleaned up JS a little bit. Had to replace the static file reference with a link to the live website's version of the file, as we don't yet have a way to serve static files that I know of. * #29: Update PixelUnit route * #29: Remove console.logs * #29: Write template unit test for PixelUnit Once file storage is implemented, the config file can be loaded for the test as well, which will allow testing of the page's function * #29: Remove commented console.logs * #29: Comment out test rather than skip it * #29: Fix likely location of CI test fail Added dummy catch block to the promise I think is causing the issue. * #29: Remove PixelUnit test from test suite Didn't completely remove it, so that it can be tackled in a future TD ticket. * #29: Move scoped styles to _tools.scss * #29: Wrap styles to avoid overflow * #125 refactor sparql js (#150) * #125: Throw errors instead of failing quietly * #125: Add combined query and parse function Could export it as the default if we want? No need to, of course. * #125: Throw error on response failure * #125: Simplify rethrowing errors * #144: Fix Data Voyager styling and navBack buttons * #144: Fixes to DataVoyager for Jest * #144: Data Voyager component unit tests * #144: Replace uri with chartId * fix(#140): general technical debt (#152) * #126: add functions for chart id resolution * #126 remove scoped styles * Initial commit #98 Currently using duplicated/modified code from Gallery. Added initial standard styling for #114, #115, #118 * #98: Add styling for sample images #115 * #98: Minor styling and linting fixes * #98: Start developing state management for explorer results * #98: Fix linting errors * #140: app scroll behaviour fixes * #140: Ignoring mongodump folder * #140: Update mongo init file to create indexes * #50: Restore shell script replaced with syncdb.sh * #140: Mongodb restore and sync script * #140: Add syncdb shell to script * #140: Add Elastic search to docker compose services * #140: Add Elastic search to docker compose services * #140: Add ES config payload * #140: Add article mappings payload * #140: td - under dev * #140: Fix conflicts * #140: pre-checks commit * #140: pre-checks commit -2 * #140: pre-check temp udates * #140: Update docker compose file port mappings * #140: Remove dependency and added environment variables * #140: Updating frontend nginx settings * #140: Updating frontend nginx settings * #140: Redirect all 50x error back to index page * #140: Rest services update, test fixes, and deployment updates * #140: Changed logger directory * #140: Linter fixes * #140: typo fixes Co-authored-by: Sam Stouffer <samuellstouffer@gmail.com> Co-authored-by: Anya Wallace <aswallace98@gmail.com> * #144: Fix chart uri to match gallery implementation * We are only using the materialsmine ontology now * #156: Updating icos (#157) * #156: Updating icos * #150: Upgraded node version * #150: Re-install node module after upgrade * #150: Blocked out fuseki standalone service implementation * #150: Upgraded node version on BE * #150: Update to specific version of body-parser * #156: Updated log file creation * #156: Updated ES to log pings * #158: fix undefined data return from sparql * #145: add parameterized query page * #145: remove console logs from param. query apge * #145: fix readonly prop warning, add readonly prop functionality to yasqe * #145: fix query template syntax error * #162: Fix overlap in tool styling * #145: adjust VALUES block insertion be inside WHERE * #145: require manual refresh to run param query * #145: use router.back for datavoyager back button * #145: run query when autorefresh turned on * #161: Fix vega chart responsiveness * Add menu item MRS2022 to PageHeader.vue * match the styling of other menu links * fix #163: z-index dropdown * #161: Uncommented and added curly brace to match previous commits * #165: Add Data Voyager tutorial video to how to page * #165: Initial draft of DV instructions * #165: Fix linting error * fix(#156): Update ico fix (#169) * #156: Add unwanted whyis files to gitignore * #156: Add host port to client services * #156: update env variable deployment and update readme file * #156: Update environment variable readme file with additional info * #156: Update readme with information for environment variable deployment * #156: Update search url * #156: Update api url * #156: Disable websocket * #156: temporary service disable * #156: fix connection time * #156: Update api call to use new service port environment variable * #156: Update search url * #156: empty commit to trigger new build * #156: Pull upstream * #156: Update readme on environment variable deployment * #175: add two-property parameterized query * #165: Switch instructions to accordion style instead of button * Fix linting errors * #165: Minor v-bind error fix * #164: fix visualize and Module Tools routes * #164: replace nanomine drawer with generic drawer * #165: Open DV paper link in new tab * #179: Fix dropdown links for galleries * #160 #180 Dialog box styling fixes #160: Dialog box now fits screen when expands to full screen for mobile responsiveness #180: Clicking outside causes unwanted behavior, so instead added scrolling so that close button is always visible * Remove unit * #165: Add link to voyager gitbook * chore(#155): Fixes (#211) * #155: add backup to git ignore * #155: Add node modules to ignore * #155: Add a new library for pixel unit testing * #155: Re-enable pixel unit test * #155: Re-enable pixel unit test * #177: Add 404 page and updated app router * #177: Styling 404 page * #155: updated search, testing and dv link * #155: fix typos and update creation page to use curate * #155: Add header to page not found * #155: update unit test for page-not-found * #155: Updated code owners * #155: Update home link * #205: Recommendation for regex fix for safari * #176: Add ability to replace pq variable names with option selections * #210: Add some of missing properties to pq dropdown Still needs additional work. Dielectric constant won't return results due to not having units, breakdown strength is not directly curated as a property of the samples * add sample metadata author and year (#221) * add sample metadata author and year * add nullish coalesing * lint code * add container to metadata and user computed sampleId * #210: Make units optional in pq to allow unitless attributes * Staging (#227) * #220: UI fixes * #220: styling changes * #220: Add Curae home page and updated parameterized query * #220: Add Curae home page and updated parameterized query * #220: Add Curae home page and updated parameterized query * #190: Update with require library * #190: Remove placeholder files * #190: Migrate globalmiddleware file to index.js * #190: Add validators and global error handlers * #190: Add schema and resolver for user and user management * #190: Allow setting jwt expiration arg * #190: Add image migration logic * #190: Add pagination handler * #190: Update eslint for rest services * #190: Remove unused services * #190: Update auth token source * #190: linter fixes * #190: Update auth token source * #190: Update server file with additional services at startup * #190: Add testing for graphql service pt1 * #190: update test import * #190: Renamed graph resolver * #190: Renamed graph resolver * #190: removed unused import * #190: Install ws package * #155: Work in progress * #220: Update styles for page opt * #220: Added an icon to filter panel * #220: Add parameterized query as tab and remove it as a button * #220: Add image gallery to list of routes * #220: create an image gallery components * #220: test WIP * #190: Refactor graphql and define user, api and image gallery schemas and resolver * #190: Centralizing error for graphql operations * #190: Adding appollo server and remove express-graphql * 190: Modified restful tests * #190: Update rest server config, middleware services and graphql init * #190: Add xmldata model for xmldata collection * #190: Add a new params to pass env var * #190: Ignoring node_modules in docker * #190: Ignore fuseki files * #190: Update validations and add new login controller - wip * WIP: frontend testing * #190: Add proxy to rest environment variables * #190: Rename imageContent method to file content * #190: Renamed expected file param * #190: Separated file controller from admin controller * #190: Update import and added file routes handler * #190: Renamed files * #190: Add single image resolver and updated search resolvers * #190: Add query pipelines directory and image query pipeline * #190: Renamed file * #190: New file route handler for file related services * #190: Renamed files * #190: Update image query with image keywords * #220: Revert ES6 Syntax and Image Gallery WIP * #190: Image gallery * #190: update parameterized query page link * #190: Linter fixes * #190: update gql fetch policy * #190: linter fixes * #190: Linter error fixes * #190: Fix failing tests * #190: Remove path import from vueconfig * #190: Remove optional chaining causing error * #190: Bug fixes for search box * #190: Remove output logs * #190: Update base url * #190: Add logic for image not found * #190: Refactored image base URL - API * #215: Work in progress * #215: remove empty return and linter fixes * #215: gallery unit test WIP * #215: gallery unit test WIP * #220: Add text reducer and image reducer to mixin * #220: Update unit testing * #220: Update docker image setup for UI * #220: general UI optimization update * #220: Linter fixes * #220: Updated UI docker config * #220: Re-install npm library * #220: Update text description for null values * fix (#235): Update Drawer with Curation (#240) * #235: Add test for side drawer * #235: Update side drawer with curation menu options * #235: Linter fixes * feat(#238): Contact us page api (#243) * #238: Created a new mongodb schema for contact * #238: Refactor error formatter to return error instead of throw * #238: Add sinon lib for unit testing * #238: Refactored to return error instead of throwing * #238: Added unit testing for contact and refactored existing test * #238: Added contact query/mutation and schema * #241: MVP of metamaterial visualization tool Important TD: data access is very inefficient right now and needs lots of work - csv needs to be stored on rest, not frontend - should be stored in local storage after initial pull - needs geometry visualization Currently mockup2 is the more up-to-date version * #241: Add unit cell visualization for 10x10 and 50x50, fix screen resize * Whyis Integration 1 of 8 (#246) * #156: Add unwanted whyis files to gitignore * #156: Add host port to client services * #156: update env variable deployment and update readme file * #156: Update environment variable readme file with additional info * #156: Update readme with information for environment variable deployment * #156: Update search url * #156: Update api url * #156: Disable websocket * #156: temporary service disable * #156: fix connection time * #156: Update api call to use new service port environment variable * #156: Update search url * #156: empty commit to trigger new build * #156: Pull upstream * #156: Update readme on environment variable deployment * WIP * Switched back over to the whyis fuseki install. * resolved conflict * Got fuseki working with fast instance and summary views * whyis integration 1 of 8 * Update CI Co-authored-by: Jamie McCusker <mccusj2@rpi.edu> Co-authored-by: Jamie McCusker <mccusker@gmail.com> * #241: Combine mockups but separate vega specification * #241: Remove mockup * update CI (#247) * fix(#236): Update image gallery search (#244) * #236: Refactored unit test * #236: Add search functionality to image gallery * #236: Refactor image gallery * #236: Update container image * chore (#237): Add descriptions to existing query and mutation resolvers (#245) * #237: Add descriptions to existing query and mutation resolvers * #237: Update schema text descriptions * #229: Initial UI for spreadsheet upload interface * #241: Make metamaterial unit cell scale based on number of pixels * Linting errors * #229: dataset curation * #241: Minor UI fixes, add loading spinner * Fix linting error * #241: Metamaterial viz feedback - Add constituent material info under the unit cell image - Temporarily switch to using Papaparse for csv to json conversion since my implementation was buggy * #229: WIP * #229: added a resolver for dataset upload * #229: Add file upload and update data stream * #229: dataset unit testing * #250: UI fixes for demo * #250: Remove click event * #229 spreadsheet file interface (#249) * #229: dataset curation * #229: WIP * #229: added a resolver for dataset upload * #229: Add file upload and update data stream * #229: dataset unit testing * #250: UI fixes for demo * #250: Remove click event * #229: Updates to remove explorer home page latency * #229: Test requires refactoring, passed sanity checks Co-authored-by: Anya Wallace <aswallace98@gmail.com> * #252: Add resolver for pixelated data and updated unit test * #252: Validate user before allowing upload * #252: Linter fixes * #252: Re adding missing library * feat(#252): Add resolver for pixelated data and updated unit test (#257) * #252: Add resolver for pixelated data and updated unit test * #252: Validate user before allowing upload * #252: Linter fixes * #252: Re adding missing library * #241: Pixelated metamaterial viz updates - Switch to using apollo graphql for data - Temporarily remove color coding until datasets have label or title - Temporarily limit to 10x10 OR 50x50, not both - Add loading spinner, fix async behavior * #241: Fix metamaterial viz unit tests * Remove console.log * #241: Combine timeouts and fix vega-lite warning * Fix linting error * #261: Fix MetaMine header styling and add viz link * #261: Remove an unnecessary inline style * Fix (#252): Updates (#263) * #252: Updated graphql schema description * #252: Add changes to automatically create storage at RESTAPI start up * Fix(#252): Updates (#264) * #252: Updated graphql schema description * #252: Add changes to automatically create storage at RESTAPI start up * #252: Refactored pixel data endpoint * #252: Added a centralized log writer * #252 updates (#265) * #252: Updated graphql schema description * #252: Add changes to automatically create storage at RESTAPI start up * #252: Refactored pixel data endpoint * #252: Added a centralized log writer * #252: Refactor isAuth to remove file anytime auth fails * #229: Spreadsheet upload draft * Linting errors * #229: Fixed datasetId mutation bug * #229: update failing test * Update decryptENVARFile.sh (#248) Co-authored-by: tholulomo <94853475+tholulomo@users.noreply.github.com> * [Hotfix] #229: Fixed datasetId mutation bug (#267) * #229: Fixed datasetId mutation bug * #229: update failing test * #229: Fix error messsage * #229: UI fixes; createdDatasetId working * #229: XML Spreadsheet upload wip 400 error in createDataset file upload: `BAD_USER_INPUT` * #229: Fix curation upload route issues (#268) * #229: Fix curation upload route issues * #229: Add validations for curation upload routes * #229 fix upload (#269) * #229: Fix curation upload route issues * #229: Add validations for curation upload routes * #229: Refactor uploadfile to remove middleware service * #229: Pull upstream update * Fix (#229): Fix upload (#274) * #229: Fix curation upload route issues * #229: Add validations for curation upload routes * #229: Refactor uploadfile to remove middleware service * #229: Pull upstream update * #272: Fix dialog box styling and typos * #272: Rename class to reflect use case * #272: Reduce scope of dialog icon styling * #229: Bug fixes * #272: Merge upstream fixes * #229: Update Nodejs version * #229: CI update * #229: Update vue * #229: Docker updates Co-authored-by: Anya Wallace <aswallace98@gmail.com> * #229: Update curation UI and merge dev * #26 migrate contact us (#140) * #26: change contact link from src to nm * #26: create contactus page * #26: apply lint * #26: add contactus route to nm * #26: add contact page tests * #26: remove list style * #26: add error validation html * #26: add validation and onSubmit methods * #26: add post method * #26: add rendering tests for inputs * #26: add platform flag * delete event prevent default * resolve router conflicts * #26: add validation for platform * #26: uncooment platform post data * #30: add test for user inputs * add spacing * rename webpack code chunk name * add contact query * add apollo query * add $ to input Co-authored-by: tholulomo <94853475+tholulomo@users.noreply.github.com> * #275: Separate apolloClient into module * #275: Modify apolloClient to work with Vuex * #275: Put apollo provider back where it was * #275: Remove comments * [Hotfix]: dataset curation updates * [Hotfix]: Dataset curation updates (#278) * [Hotfix]: dataset curation updates * [Hotfix]: Deprecate fields that are no longer supported in GQL * [Hotfix]: Update gql schema test * #229: MVP spreadsheet upload UI * #229: Fix component name and linting * Merge branch 'develop' of https://github.com/Duke-MatSci/materialsmine into #229_spreadsheet_file_interface * #229: Spreadsheet upload - split files and rename * #229: Fix linting * #229: Add unit tests for all supporting components * #224: Update datavoyager link to use button (#281) * [MINOR]: #279 contact page BE integration (#280) * #279: Update form UI and added contact link to metamine page * #279: Remove console.log statement * #279: Integrated BE with contact page and updated unit test * #229: Add unit test for spreadsheet upload page * Undo accidental package-lock commit * #229: Fix async calls in spreadsheet upload * #207 material data filter search (#287) * #207: Update unit test to run in band * #207: Update to remove facet dialog for smaller screen * #207: Add materials property to facet search * #207, #212: Total count fix and added materials property fetch actions * #207: Remove facet call at home page load * #207: Refactor BE api to support materials property functionality on UI * #207: Backend unit testing for admin controller apis * #207: Added unit test for materials property and searchtableresult component * #207: Linter and error fixes * #207: Fix import typo * #207: Upgrade node version * #207: Refactor name to * :bug #207: Update CI node version * 🐛 #207: Downgrade CI node version * #229: Protect curation behind auth to prevent unwanted access * Fix readme typo Update readme ICO * #289 snackbar for error handling (#290) * #289: Implement snackbar two ways * #289: Fix linting * #289: Add Snackbar to App.vue * #289: Add snackbar unit test and an example for calling from vuex * #293 UI & BE Enhancements (#294) * #293: Add coverage to gitignore and update readme icon * #293: Fixed parameterized query UI inconsistency * #293: Sticky header bug fix * #293: Update unit test for viz page * #293: Add new filter types and removed undefined from image response * #293: Refactor auth middleware to use the centralized error writer * 293: Add 404 controller to backend to manage unavailable routes and page not found * #293: Fix mobile bug in viz page * #293: Update to return authors as part of image response * #293: 🔥 Image pipeline hotfix (#295) * #292: Visualization gallery initial fixes * #292: Add authors to image detail view, fix unit tests * #292: Add current page field to pagination component * #292: Add DOI to detail view, add links to search by doi and keyword * #293: Image pipeline, image schema updates and refactoring (#298) * CI: Fixes for build failure (#306) * [MAJOR] #300: Shibb auth (#308) * #300: Add names for each container * 🔥[hotfix]: FE Bug fixes * 🔥[hotfix]: Linter fixes * #300: BE auth service setup * #300: Refactor FE with auth flow implementation * #300: Add auth service to proxy * #300: Update docker environment variables * #300: Linter fix * #300: Refactor failing component and fix test failures * #300: Fixed merged conflict * #300: Add additional logger to auth service * #300: Add additional logger to auth service * #300: Remove unused logger from auth service * #300: Remove unused logger from auth service * #300: Update failed auth response * #300: Refactor login button * #300: Remove sparql query menu * #300: Update logout actions * #300: Update unit test assertions * #300: Remove skipped unit test * Feat(#309): Prod CICD (#310) * feat(upgrade): #309 Add rest coverage report to gitignore * feat(upgrade): #309 Setup coverage testing report for backend * feat(core): #309 Add release versioning to CI pipeline * feat(ci/cd): #309 Update CI pipeline for prod release * feat(ci/cd): #309 Re-enabled image build and deployment for QA CI environment * fix(#292): modify page input and selection styling make the page number input smaller to match surrounding labels, move the selection to the same line as buttons and match styling * feat(ci/cd): #309 Re-enabled whyis image to build only after pull request approval (#311) --------- Co-authored-by: Anya Wallace <aswallace98@gmail.com> Co-authored-by: Kevin Zuniga Cuellar <kzunigac@uvm.edu> Co-authored-by: Rory Schadler <48921090+roryschadler@users.noreply.github.com> Co-authored-by: Kevin Zuniga Cuellar <46791833+kevinzunigacuellar@users.noreply.github.com> Co-authored-by: Sam Stouffer <samuellstouffer@gmail.com> Co-authored-by: Jamie McCusker <mccusj2@rpi.edu> Co-authored-by: Jamie McCusker <mccusker@gmail.com> Co-authored-by: mjpalmeri <95506353+mjpalmeri@users.noreply.github.com> Co-authored-by: bingyinh <32102865+bingyinh@users.noreply.github.com>
* #109: Fix linter errors * #109: Fix chart nested routing * #109: Add error handling for chart uri not found * #109: Fix linting errors * #97: Initial commit of search header panel tabs * #97: Add search bar to header * #113: Refactor sample page queries * #97: Fix tab styling, rearrange to match UI presentation * #97: Remove top right search field * #113: refactor sample page components * #113: fix linting errors * #97: Remove test content from tabs * #97: Unit test for search header panel * #113: first draft * #113: Fix for error thrown in unit test * Linting errors * #97: Set up for explorer results state management * Fix linting errors * #113: add tests for state variables * #113: remove page style * #113: fix empty results display * #66 templated view article (#112) * #66 initial article commit * #66: Refactor article page, fetch article metadata Moved Article.vue, separated out into article.js to match file structure of other pages. Progressed on Semantic Scholar API logic. * #66: Refactor article.js * #66: Refactor Article.vue * #66: Add route for Article View Added route to explorer for the article view. Moved DOI from component prop to a watcher and computed property pair. * #66: Refactor article.js to move logic to services Moved article metadata retrieval logic to services. Unified all metadata under one object for simpler reference. * #66: First pass at article HTML view First attempt at displaying all article metadata. Also added pre-push linting fixes. * #66: Add loading state awareness * #66: Add article venue to retrieved fields * #66: Second pass at article view HTML Added basic loading indicator, refactored table to have better structure (I think) * #66: Basic CSS for article view * #66: Removed erroneous comment * #66: Fix scrolling bug Scrolling tables also scrolled their titles, but not their header rows. Isolated tables in their own div, maybe tables should be their own component... * #66: Unify dir structure, nest article page Move explorer/article/services to modules/explorer/article/services, clean up article now that it's nested properly (barring further change to nest completely under sample). Refactor extra function from fetchJSON into getArticleMetadata. * #66: initial Article.vue testing commit Includes mock for Semantic Scholar API calls and article.js whitespace linting fix. * #66: Refactored getArticleMetadata for easier mock Mocking getArticleMetadata easily required moving it into an enclosing object so that the manual mock could do the same, allowing it to access properties. The manual mock was written following along with [jest's manual mock](https://jestjs.io/docs/manual-mocks). The mock of the resulting getArticle also provides a stub of the SemanticScholar API response as of 2/2/22, for reference and testing. * #66: Write tests for Article.vue Wrote tests of DOI loading, reloading; article data loading; API failure. Added classes to article.html items to distinguish them and allow the tests to refer to them. Updated article.js to use the new articleMetadata.js and fixed bugs that appeared in testing. * #66: Fix linting errors * #66: Write tests for module articleMetadata.js Updated articleMetadata mock to include raw and cleaned mock data, and wrote tests of the fetch handler and response cleaning routines. Fixed issues in articleMetadata.js that came up in testing. * #66: Refactored articleMetadata.js to better track API errors Refactored .get function to remove repeated code and allow API calls to occur in parallel. Rewrote how internal fetch returns in order to pass errors (and success codes) in API call along to caller. Updated mock data to include mock version of success codes * #66: Updated tests to match Also added missing response codes to mock data, and fixed citation and reference call status not being passed through * #66: Updated Article.vue to display errors Article view now takes advantage of newly passed API errors to inform the user that an error has occurred. This could be expanded on * #66: Linting fixes * #66: Update test to use createWrapper Replaced localVue, shallowMount with createWrapper for consistency. Added test to ensure error message is displayed to user. * #66: Write comments, refactor error storage * #66: Write jsdoc-style function comments Documented functions, removed unused mock response function, and refactored testing slightly to remove repetition. * #66: Move article to its own route * #25: Remove console.logs, add reusable spinner * #113: remove console.logs and add index key * #113: fix linting errors * #123: Consolidate exports in sparql.js * #123: Modify sparql capitalization to match existing pattern * #28: Link MM/teams to teams page (#122) * #28: Link MM/teams to teams page * #28: Update reference to about, how, news * #123: Merge parseSparql and transformSparqlData into a single function * #61: Add gallery page * remove duplicate spinner component * remove redundant pagination styles * fix lint errors * Remove class that hides pagination buttons * remove unneccessary sass imports * query actual charts in gallery view * remove console.log in test * #130: Linting fix (#131) * feat(#100): knowledge graph rest endpoint (#138) * #100: Add logger service * #100: Updated secrets default and increased token validity to 8hours * #100: testing script for isInternal middleware service * #100: Add isInternal middleware service to validate internal calls * #100: Re-usable logger service for unit test * #100: Moved logger service to initialize first * #100: renamed filestorage directory and added a method to ensure unique file names * #100: Updated test with log service * #100: Added unique name generator to package.json * #100: Added knowledge graph endpoint method * #100: Add KG wrapper route to REST service * #100: Append KG route to server initialization * #100: Re-installed app * #43: Add fuseki service to container * #43: Fuseki volume mount * #43: Add fuseki critical files to ignore * #100: Updated nginx to use a preferred version * #100: File renaming and linter error fixes * #100: Update environment variables * #25 migrate tools (#128) * #25: initial ModuleTools commit Replaced vuetify elements with vue-material and simplified layout. * #25: Refactored module tools page to use store Moved module tools data into store, refactored tool card into component for reuse in simulationTools as well. * #25: Initial simulation tools commit Changed module tools getter name to avoid overlap, added simulation tools store data and getter, added simulation tools assets. * #25: Linting fix * #25: Write tests for simulation, module, ToolCard * #25: Initial chemprops commit Rewrote chemProps.html to use `vue-material`, removed `Axios` and commented out Smiles.vue and Auth.js in chemProps.js. Still need to implement SMILES API, so that chemProps form works -- future ticket. * #25: Initial chempropsapitoken commit Missing Duke shibboleth authorization and chemprops in general, so can't implement the api token functionality just yet. * #25: fix typo, switch to md-layout * #25: Initial csvPlotter commit File upload and display works, but no tests have been written yet. Includes a new dependency, `d3`. * #25: Fix typo * #25: Fix typo in router path * #25: Create reusable ReferenceContainer component * #25: Initial MCR tool commit Migrated MCR tool homepage over, factoring out the references into the new reusable container and migrating the tool descriptions into reusable ToolCard components * #25: Rename state getters to avoid overlap Also added ReferenceContainer to chemProps * #25: Make mcrTools plural * #25: Replace v-bind with shorthand where possible * #25: Linting fix * #25: Added support for external links to ToolCard * #25: Initial dynamfit commit Same deal as other initial commits. New store module for references, migrating vuetify tags to vue-material tags. Added JobMgr.js module, which dynamfit uses. Changed Axios implementation to fetch implementation, mocked auth module as it is not implemented yet. * #25: Fix bug in ToolCard internal link checker Using `new URL()` to test links threw errors (expected) but jest didn't like that. Replaced with a simple externalLink flag that defaults to false unless the store explicitly sets it true. * #25: Fix error thrown by CSV Plotter when mounting, removing data CSV Plotter was trying to display undefined data. Fixed that, in the process also fixed (mostly) removing data. Some style changes too * #25: Fixed CSV Plotter drag and drop * #25: Iterate on csv plotter layout, drag ability Entire "drag file here" section now works as expected. Line spacing leaves something to be desired, but I'll come back to it once I understand the `vue-material` syntax better. Prettified the HTML too. * #25: Initial Dynamfit addons commit * #25: Migrate dynamfit example pages Previously we had three separate files for dynamfit and its two pages of tutorial, which were all very similar except for a few instructions, some disabled fields, and some extra images. I flattened them into one file. * #25: package.json auto-alphabetized * #25: Migrate dynamfit result page Job Manager still not working, that's next. Once it's working, it should provide the content for this page. * #25: Fix/catch dynamfit mounting errors * #25: Simplify button link * #25: Update chemprops to use the new dialog box, and prep for SMILES * #25: Initial SMILES commit Functionality depends on the API being up and running, to return results. * #25: Move LineChart to components * #25: Clear input element, chart on file remove By tying the LineChart key to the filename, removing the file using the button also resets the LineChart. * #25: Refactor store to simplify tools Half of the refactor is in this commit, flattening the `tools/` subdir as it seems unnecessary. moduleTools store will be added next. * #25: Create unified tools store Every tool is now stored consistently. Dynamfit was moved from its own directory into this one and updated to store its own display info. Getters are a first guess at what will work, debugging that will happen once this store migration is complete. * #25: Create unified toolset store Store toolsets as supersets of tools and other toolsets. Again, getters are a first pass, and will be debugged next. * #25: Wrote toolset store for moduletools Also added a pageContent getter and updated MCRTools variable names to match standard * #25: Rename moduleTools to tools in preparation Will eventually move simulationTools under the tools store umbrella, getting ready for that now so I don't have to rename it everywhere * #25: Added missing info to tools, getters, index Some tools were missing namespace flags, some missing image files. One getter needed updating to include external link flag and image filepath, and Dynamfit needed to be added to the index. * #25: Fixed bug in calling rootGetters I had gotten the syntax for calling getters wrong. * #25: Nest tools under nanomine, not metamine * #25: Create reusable tool and toolset pages * #25: Fix typos * #25: move link nesting to getters for easy changes * #25: Fix toolset page not reloading on route change Also add base component for toolsets, tools * #25: Rolling back MCR tool work to revisit later * #25: Nest tools to /nm/tools, update mentions * #25: Move simulation tools under toolsettemplate * #25: Fix references not showing/erroring when empty * #25: Move dynamfit to tools root, remove mcr home MCR homepage is now handled by toolsettemplate * #25: update webpack chunk names * #25: fix typo * #25: tag auth mocks more obviously * #25: Fix typos * #25: Move references to separate file Easier to remove duplicates from a reference list if you can generate the set of all references in a repeatable way. By referring to references with DOI/ISBN numbers, we set the stage for pulling reference info from semantic scholar as well. * #25: Wrote ReferenceContainer unit test Also updated ToolCard unit test to test for link rendering correctly. * #25: Remove old tests for moduletools, simulation Those pages are now handled by ToolSetTemplate, no need for their own specs. * #25: Write unit test for LineChart Had to add a moduleNameMapper to the jest config in order for it to recognize `d3`, which LineChart uses to draw the graph. * #25: Further refactor reference handling Move references to ReferenceContainer store module, for easier replacement later with a SemanticScholar API call or other form of reference checking. Use DOIs (or ISBN in one case so far) as key. * #25: Initial SmilesCanvas unit test For some reason, SmilesCanvas is not able to reach the same document as the jest harness is providing the test, so it errors out when trying to render the SMILES output. Haven't been able to debug, this is a placeholder test that I'll come back to when I'm able to figure it out. * #25: Move CanvasWrapper into SmilesCanvas CanvasWrapper is not used anywhere else in the old repo -- pulled its functionality (not very much) into SmilesCanvas. * #25: Write ToolSetTemplate unit test * #25: Write initial Dynamfit unit test Return to this once the Dynamfit/JobMgr API is completed to write tests for the form logic * #25: Write initial DynamfitResult unit test Return to this once the Dynamfit/JobMgr API is completed to write tests for the API response logic * #25: Remove skipped unit test * #25: Fix bug in testing md-button with `to` attr `RouterLinkStub` (used in `createWrapper` for jest tests) doesn't play nicely with the `md-button` implementation of `router-link`. (`md-button` is using deprecated attributes of `router-link`, and is throwing console.warnings.) So I wrapped `md-button`s in `router-link`s explicitly, which solved the testing bug too. * #25: attempt at spacing toolcards * #25: Remove broken tests Using RouterLinkStub in createWrapper breaks these tests, which aren't testing our code anyway so it's not a big deal. * #25: Move tools that won't use ToolTemplate out Prep for moving all the tools from state into their own components, more like they were stored in previous repo. * #25: Move tools from state into components Each tool now has its own component, instead of its own state module as discussed with Tolu. Each component uses the ToolTemplate component for display, which has two separate views: a card view for ToolSets, and a space for an upcoming tool instruction view for the Tool itself. * #25: Move ToolSets from state to components Each toolset now has its own component, instead of its own state module as discussed with Tolu. Each component uses the ToolSetTemplate component for display, which like the ToolTemplate has two views, a card view and a toolset page view. This does involve some recursive components which seem to be working fine. * #25: Fix ToolSetTemplate Test ToolSetTemplate no longer includes References (they're only accessible to the Tools that cite them), so the ReferenceContainer test was removed. It also no longer calls store getters to retrieve card content. * #25: Fix filepath typo * #25: Cleaning up old files Removed commented out code and console.logs, and parameterized a function * #25: Moved global suppressing to test-setup.js Set up `test-setup.js` to be run before each test file is executed. Moved the suppressing of global.console.log and global.fetch to there, rather than repeating it in every test. * Updated dockerfile to use released whyis. * #144: Data voyager initial working migration * #24 migrate upload (#147) * #24: Initial XML Uploader commit Converted vuetify to vue-material, added references to the reference store. * #24: Fix old references to xml-uploader * #24: Remove mock dataset from testing * #24: Write unit test for dataset viewer * #24: Rename DatasetCreateOrSelect to DatasetViewer * #24: Updated dialog rendering, removed autologin * #132 write slot driven templates (#142) * #132: Add MCR specific tool page Renamed tool template to specify that it is MCR tool specific -- at least given the tools we've added so far. Added a dependency for EditImage.vue, a component of ImageUpload.vue that is itself a component of MCRToolTemplate.vue. Removed the old MCR homepage. Added a pageContent getter for tools as well. * #132: tag auth mock more obviously * #132: Use MCRToolTemplate in all tools, add socket Job Manager uses vue-socket.io -- copied config from old repo and added this and socket.io-client as well. Updated MCRToolTemplate to account for move from state to components -- added card, moved reference container. * #132: Remove old ToolTemplate * #132: Update MCRToolTemplate to use tool prop Also add spinner for loading results * #132: Fix typos * #132: Add optional mocks to test wrapper `$socket` needed to be mocked for some tests, added that functionality to `createWrapper`. * #132: Write Tool Card that uses slots, not props * #132: Move major tool page content to slots Not all content could be moved, as some is needed for job management, but major display content was turned into slots for template HTML. * #132: Move Toolset content from data to slots * #132: Wrote tests of new templates Also updated the wrapper function to allow for user-defined stubs * #132: Remove replacement-tool-page slot Was created for Dynamfit, ChemProps, but those really should be separate components, so I removed the slot. * #132: Make tool cards full-width * #132: Convert Module Tools page to new system * #133: Convert Binarization tools and homepage Moved tool data from the `data` field to slots in the tool page template and moved the homepage data from `data` to the toolset page template slots. * #133: Fix seeming typo in ImageUpload.vue I may be wrong, but the way the selects prop is used in the template seems like it should be an Array, not an Object. All the selects fields in each tool are Arrays as far as I remember. Certainly for the binarization tools. * #134: Convert Characterization tools * #135: Convert reconstruction tools * #136: Convert Intelligent characterization tool * #139: Remove ChemProps, Dynamfit from template ChemProps and Dynamfit rewrite all the job management code already, so they should really be separate components. * #139: Wrap lifecycle events in `this.card` checks If a component is being rendered as a card, it doesn't need to check for authorization or commit its header. Also removed unused minWidth param from renderDialog. * #132: Convert MCR homepage * #132: Remove unnecessary index files ToolSetTemplate no longer needs to keep all tools as components, so the index files that centralized them were removed. * #132: Tweak ToolCard size, layout * #132: Write test for MCRToolTemplate * #132: Remove typos and testing code * #132: Attempt at cleaning up scoped styles * #132: Migrate SimulationTools, Polymerizer Add fallback content for toolset pages, if description is not present. * #132: Change submit button implementation You can't listen to events on slots, so the button was moved to the tool template, and the slot only provides the button text now. * #132: Typo in styles import * #132: Fix MathML syntax * #132: Move tool, toolset routes to own module * #132: Replace MathML with MathJax Includes a CDN script tag in index.html, and a new component, but now math will render in all browsers. * #132: Combine tool scss files into one * #132: Fix style imports for new consolidated file * #132: Updated vue-advanced-cropper version * #132: Wrap styles to avoid overflow * #29 migrate meta mine tools (#148) * #29: Initial PixelUnit commit Converted all vuetify to vue-material, cleaned up JS a little bit. Had to replace the static file reference with a link to the live website's version of the file, as we don't yet have a way to serve static files that I know of. * #29: Update PixelUnit route * #29: Remove console.logs * #29: Write template unit test for PixelUnit Once file storage is implemented, the config file can be loaded for the test as well, which will allow testing of the page's function * #29: Remove commented console.logs * #29: Comment out test rather than skip it * #29: Fix likely location of CI test fail Added dummy catch block to the promise I think is causing the issue. * #29: Remove PixelUnit test from test suite Didn't completely remove it, so that it can be tackled in a future TD ticket. * #29: Move scoped styles to _tools.scss * #29: Wrap styles to avoid overflow * #125 refactor sparql js (#150) * #125: Throw errors instead of failing quietly * #125: Add combined query and parse function Could export it as the default if we want? No need to, of course. * #125: Throw error on response failure * #125: Simplify rethrowing errors * #144: Fix Data Voyager styling and navBack buttons * #144: Fixes to DataVoyager for Jest * #144: Data Voyager component unit tests * #144: Replace uri with chartId * fix(#140): general technical debt (#152) * #126: add functions for chart id resolution * #126 remove scoped styles * Initial commit #98 Currently using duplicated/modified code from Gallery. Added initial standard styling for #114, #115, #118 * #98: Add styling for sample images #115 * #98: Minor styling and linting fixes * #98: Start developing state management for explorer results * #98: Fix linting errors * #140: app scroll behaviour fixes * #140: Ignoring mongodump folder * #140: Update mongo init file to create indexes * #50: Restore shell script replaced with syncdb.sh * #140: Mongodb restore and sync script * #140: Add syncdb shell to script * #140: Add Elastic search to docker compose services * #140: Add Elastic search to docker compose services * #140: Add ES config payload * #140: Add article mappings payload * #140: td - under dev * #140: Fix conflicts * #140: pre-checks commit * #140: pre-checks commit -2 * #140: pre-check temp udates * #140: Update docker compose file port mappings * #140: Remove dependency and added environment variables * #140: Updating frontend nginx settings * #140: Updating frontend nginx settings * #140: Redirect all 50x error back to index page * #140: Rest services update, test fixes, and deployment updates * #140: Changed logger directory * #140: Linter fixes * #140: typo fixes Co-authored-by: Sam Stouffer <samuellstouffer@gmail.com> Co-authored-by: Anya Wallace <aswallace98@gmail.com> * #144: Fix chart uri to match gallery implementation * We are only using the materialsmine ontology now * #156: Updating icos (#157) * #156: Updating icos * #150: Upgraded node version * #150: Re-install node module after upgrade * #150: Blocked out fuseki standalone service implementation * #150: Upgraded node version on BE * #150: Update to specific version of body-parser * #156: Updated log file creation * #156: Updated ES to log pings * #158: fix undefined data return from sparql * #145: add parameterized query page * #145: remove console logs from param. query apge * #145: fix readonly prop warning, add readonly prop functionality to yasqe * #145: fix query template syntax error * #162: Fix overlap in tool styling * #145: adjust VALUES block insertion be inside WHERE * #145: require manual refresh to run param query * #145: use router.back for datavoyager back button * #145: run query when autorefresh turned on * #161: Fix vega chart responsiveness * Add menu item MRS2022 to PageHeader.vue * match the styling of other menu links * fix #163: z-index dropdown * #161: Uncommented and added curly brace to match previous commits * #165: Add Data Voyager tutorial video to how to page * #165: Initial draft of DV instructions * #165: Fix linting error * fix(#156): Update ico fix (#169) * #156: Add unwanted whyis files to gitignore * #156: Add host port to client services * #156: update env variable deployment and update readme file * #156: Update environment variable readme file with additional info * #156: Update readme with information for environment variable deployment * #156: Update search url * #156: Update api url * #156: Disable websocket * #156: temporary service disable * #156: fix connection time * #156: Update api call to use new service port environment variable * #156: Update search url * #156: empty commit to trigger new build * #156: Pull upstream * #156: Update readme on environment variable deployment * #175: add two-property parameterized query * #165: Switch instructions to accordion style instead of button * Fix linting errors * #165: Minor v-bind error fix * #164: fix visualize and Module Tools routes * #164: replace nanomine drawer with generic drawer * #165: Open DV paper link in new tab * #179: Fix dropdown links for galleries * #160 #180 Dialog box styling fixes #160: Dialog box now fits screen when expands to full screen for mobile responsiveness #180: Clicking outside causes unwanted behavior, so instead added scrolling so that close button is always visible * Remove unit * #165: Add link to voyager gitbook * chore(#155): Fixes (#211) * #155: add backup to git ignore * #155: Add node modules to ignore * #155: Add a new library for pixel unit testing * #155: Re-enable pixel unit test * #155: Re-enable pixel unit test * #177: Add 404 page and updated app router * #177: Styling 404 page * #155: updated search, testing and dv link * #155: fix typos and update creation page to use curate * #155: Add header to page not found * #155: update unit test for page-not-found * #155: Updated code owners * #155: Update home link * #205: Recommendation for regex fix for safari * #176: Add ability to replace pq variable names with option selections * #210: Add some of missing properties to pq dropdown Still needs additional work. Dielectric constant won't return results due to not having units, breakdown strength is not directly curated as a property of the samples * add sample metadata author and year (#221) * add sample metadata author and year * add nullish coalesing * lint code * add container to metadata and user computed sampleId * #210: Make units optional in pq to allow unitless attributes * Staging (#227) * #220: UI fixes * #220: styling changes * #220: Add Curae home page and updated parameterized query * #220: Add Curae home page and updated parameterized query * #220: Add Curae home page and updated parameterized query * #190: Update with require library * #190: Remove placeholder files * #190: Migrate globalmiddleware file to index.js * #190: Add validators and global error handlers * #190: Add schema and resolver for user and user management * #190: Allow setting jwt expiration arg * #190: Add image migration logic * #190: Add pagination handler * #190: Update eslint for rest services * #190: Remove unused services * #190: Update auth token source * #190: linter fixes * #190: Update auth token source * #190: Update server file with additional services at startup * #190: Add testing for graphql service pt1 * #190: update test import * #190: Renamed graph resolver * #190: Renamed graph resolver * #190: removed unused import * #190: Install ws package * #155: Work in progress * #220: Update styles for page opt * #220: Added an icon to filter panel * #220: Add parameterized query as tab and remove it as a button * #220: Add image gallery to list of routes * #220: create an image gallery components * #220: test WIP * #190: Refactor graphql and define user, api and image gallery schemas and resolver * #190: Centralizing error for graphql operations * #190: Adding appollo server and remove express-graphql * 190: Modified restful tests * #190: Update rest server config, middleware services and graphql init * #190: Add xmldata model for xmldata collection * #190: Add a new params to pass env var * #190: Ignoring node_modules in docker * #190: Ignore fuseki files * #190: Update validations and add new login controller - wip * WIP: frontend testing * #190: Add proxy to rest environment variables * #190: Rename imageContent method to file content * #190: Renamed expected file param * #190: Separated file controller from admin controller * #190: Update import and added file routes handler * #190: Renamed files * #190: Add single image resolver and updated search resolvers * #190: Add query pipelines directory and image query pipeline * #190: Renamed file * #190: New file route handler for file related services * #190: Renamed files * #190: Update image query with image keywords * #220: Revert ES6 Syntax and Image Gallery WIP * #190: Image gallery * #190: update parameterized query page link * #190: Linter fixes * #190: update gql fetch policy * #190: linter fixes * #190: Linter error fixes * #190: Fix failing tests * #190: Remove path import from vueconfig * #190: Remove optional chaining causing error * #190: Bug fixes for search box * #190: Remove output logs * #190: Update base url * #190: Add logic for image not found * #190: Refactored image base URL - API * #215: Work in progress * #215: remove empty return and linter fixes * #215: gallery unit test WIP * #215: gallery unit test WIP * #220: Add text reducer and image reducer to mixin * #220: Update unit testing * #220: Update docker image setup for UI * #220: general UI optimization update * #220: Linter fixes * #220: Updated UI docker config * #220: Re-install npm library * #220: Update text description for null values * fix (#235): Update Drawer with Curation (#240) * #235: Add test for side drawer * #235: Update side drawer with curation menu options * #235: Linter fixes * feat(#238): Contact us page api (#243) * #238: Created a new mongodb schema for contact * #238: Refactor error formatter to return error instead of throw * #238: Add sinon lib for unit testing * #238: Refactored to return error instead of throwing * #238: Added unit testing for contact and refactored existing test * #238: Added contact query/mutation and schema * #241: MVP of metamaterial visualization tool Important TD: data access is very inefficient right now and needs lots of work - csv needs to be stored on rest, not frontend - should be stored in local storage after initial pull - needs geometry visualization Currently mockup2 is the more up-to-date version * #241: Add unit cell visualization for 10x10 and 50x50, fix screen resize * Whyis Integration 1 of 8 (#246) * #156: Add unwanted whyis files to gitignore * #156: Add host port to client services * #156: update env variable deployment and update readme file * #156: Update environment variable readme file with additional info * #156: Update readme with information for environment variable deployment * #156: Update search url * #156: Update api url * #156: Disable websocket * #156: temporary service disable * #156: fix connection time * #156: Update api call to use new service port environment variable * #156: Update search url * #156: empty commit to trigger new build * #156: Pull upstream * #156: Update readme on environment variable deployment * WIP * Switched back over to the whyis fuseki install. * resolved conflict * Got fuseki working with fast instance and summary views * whyis integration 1 of 8 * Update CI Co-authored-by: Jamie McCusker <mccusj2@rpi.edu> Co-authored-by: Jamie McCusker <mccusker@gmail.com> * #241: Combine mockups but separate vega specification * #241: Remove mockup * update CI (#247) * fix(#236): Update image gallery search (#244) * #236: Refactored unit test * #236: Add search functionality to image gallery * #236: Refactor image gallery * #236: Update container image * chore (#237): Add descriptions to existing query and mutation resolvers (#245) * #237: Add descriptions to existing query and mutation resolvers * #237: Update schema text descriptions * #229: Initial UI for spreadsheet upload interface * #241: Make metamaterial unit cell scale based on number of pixels * Linting errors * #229: dataset curation * #241: Minor UI fixes, add loading spinner * Fix linting error * #241: Metamaterial viz feedback - Add constituent material info under the unit cell image - Temporarily switch to using Papaparse for csv to json conversion since my implementation was buggy * #229: WIP * #229: added a resolver for dataset upload * #229: Add file upload and update data stream * #229: dataset unit testing * #250: UI fixes for demo * #250: Remove click event * #229 spreadsheet file interface (#249) * #229: dataset curation * #229: WIP * #229: added a resolver for dataset upload * #229: Add file upload and update data stream * #229: dataset unit testing * #250: UI fixes for demo * #250: Remove click event * #229: Updates to remove explorer home page latency * #229: Test requires refactoring, passed sanity checks Co-authored-by: Anya Wallace <aswallace98@gmail.com> * #252: Add resolver for pixelated data and updated unit test * #252: Validate user before allowing upload * #252: Linter fixes * #252: Re adding missing library * feat(#252): Add resolver for pixelated data and updated unit test (#257) * #252: Add resolver for pixelated data and updated unit test * #252: Validate user before allowing upload * #252: Linter fixes * #252: Re adding missing library * #241: Pixelated metamaterial viz updates - Switch to using apollo graphql for data - Temporarily remove color coding until datasets have label or title - Temporarily limit to 10x10 OR 50x50, not both - Add loading spinner, fix async behavior * #241: Fix metamaterial viz unit tests * Remove console.log * #241: Combine timeouts and fix vega-lite warning * Fix linting error * #261: Fix MetaMine header styling and add viz link * #261: Remove an unnecessary inline style * Fix (#252): Updates (#263) * #252: Updated graphql schema description * #252: Add changes to automatically create storage at RESTAPI start up * Fix(#252): Updates (#264) * #252: Updated graphql schema description * #252: Add changes to automatically create storage at RESTAPI start up * #252: Refactored pixel data endpoint * #252: Added a centralized log writer * #252 updates (#265) * #252: Updated graphql schema description * #252: Add changes to automatically create storage at RESTAPI start up * #252: Refactored pixel data endpoint * #252: Added a centralized log writer * #252: Refactor isAuth to remove file anytime auth fails * #229: Spreadsheet upload draft * Linting errors * #229: Fixed datasetId mutation bug * #229: update failing test * Update decryptENVARFile.sh (#248) Co-authored-by: tholulomo <94853475+tholulomo@users.noreply.github.com> * [Hotfix] #229: Fixed datasetId mutation bug (#267) * #229: Fixed datasetId mutation bug * #229: update failing test * #229: Fix error messsage * #229: UI fixes; createdDatasetId working * #229: XML Spreadsheet upload wip 400 error in createDataset file upload: `BAD_USER_INPUT` * #229: Fix curation upload route issues (#268) * #229: Fix curation upload route issues * #229: Add validations for curation upload routes * #229 fix upload (#269) * #229: Fix curation upload route issues * #229: Add validations for curation upload routes * #229: Refactor uploadfile to remove middleware service * #229: Pull upstream update * Fix (#229): Fix upload (#274) * #229: Fix curation upload route issues * #229: Add validations for curation upload routes * #229: Refactor uploadfile to remove middleware service * #229: Pull upstream update * #272: Fix dialog box styling and typos * #272: Rename class to reflect use case * #272: Reduce scope of dialog icon styling * #229: Bug fixes * #272: Merge upstream fixes * #229: Update Nodejs version * #229: CI update * #229: Update vue * #229: Docker updates Co-authored-by: Anya Wallace <aswallace98@gmail.com> * #229: Update curation UI and merge dev * #26 migrate contact us (#140) * #26: change contact link from src to nm * #26: create contactus page * #26: apply lint * #26: add contactus route to nm * #26: add contact page tests * #26: remove list style * #26: add error validation html * #26: add validation and onSubmit methods * #26: add post method * #26: add rendering tests for inputs * #26: add platform flag * delete event prevent default * resolve router conflicts * #26: add validation for platform * #26: uncooment platform post data * #30: add test for user inputs * add spacing * rename webpack code chunk name * add contact query * add apollo query * add $ to input Co-authored-by: tholulomo <94853475+tholulomo@users.noreply.github.com> * #275: Separate apolloClient into module * #275: Modify apolloClient to work with Vuex * #275: Put apollo provider back where it was * #275: Remove comments * [Hotfix]: dataset curation updates * [Hotfix]: Dataset curation updates (#278) * [Hotfix]: dataset curation updates * [Hotfix]: Deprecate fields that are no longer supported in GQL * [Hotfix]: Update gql schema test * #229: MVP spreadsheet upload UI * #229: Fix component name and linting * Merge branch 'develop' of https://github.com/Duke-MatSci/materialsmine into #229_spreadsheet_file_interface * #229: Spreadsheet upload - split files and rename * #229: Fix linting * #229: Add unit tests for all supporting components * #224: Update datavoyager link to use button (#281) * [MINOR]: #279 contact page BE integration (#280) * #279: Update form UI and added contact link to metamine page * #279: Remove console.log statement * #279: Integrated BE with contact page and updated unit test * #229: Add unit test for spreadsheet upload page * Undo accidental package-lock commit * #229: Fix async calls in spreadsheet upload * #207 material data filter search (#287) * #207: Update unit test to run in band * #207: Update to remove facet dialog for smaller screen * #207: Add materials property to facet search * #207, #212: Total count fix and added materials property fetch actions * #207: Remove facet call at home page load * #207: Refactor BE api to support materials property functionality on UI * #207: Backend unit testing for admin controller apis * #207: Added unit test for materials property and searchtableresult component * #207: Linter and error fixes * #207: Fix import typo * #207: Upgrade node version * #207: Refactor name to * :bug #207: Update CI node version * 🐛 #207: Downgrade CI node version * #229: Protect curation behind auth to prevent unwanted access * Fix readme typo Update readme ICO * #289 snackbar for error handling (#290) * #289: Implement snackbar two ways * #289: Fix linting * #289: Add Snackbar to App.vue * #289: Add snackbar unit test and an example for calling from vuex * #293 UI & BE Enhancements (#294) * #293: Add coverage to gitignore and update readme icon * #293: Fixed parameterized query UI inconsistency * #293: Sticky header bug fix * #293: Update unit test for viz page * #293: Add new filter types and removed undefined from image response * #293: Refactor auth middleware to use the centralized error writer * 293: Add 404 controller to backend to manage unavailable routes and page not found * #293: Fix mobile bug in viz page * #293: Update to return authors as part of image response * #293: 🔥 Image pipeline hotfix (#295) * #292: Visualization gallery initial fixes * #292: Add authors to image detail view, fix unit tests * #292: Add current page field to pagination component * #292: Add DOI to detail view, add links to search by doi and keyword * #293: Image pipeline, image schema updates and refactoring (#298) * CI: Fixes for build failure (#306) * [MAJOR] #300: Shibb auth (#308) * #300: Add names for each container * 🔥[hotfix]: FE Bug fixes * 🔥[hotfix]: Linter fixes * #300: BE auth service setup * #300: Refactor FE with auth flow implementation * #300: Add auth service to proxy * #300: Update docker environment variables * #300: Linter fix * #300: Refactor failing component and fix test failures * #300: Fixed merged conflict * #300: Add additional logger to auth service * #300: Add additional logger to auth service * #300: Remove unused logger from auth service * #300: Remove unused logger from auth service * #300: Update failed auth response * #300: Refactor login button * #300: Remove sparql query menu * #300: Update logout actions * #300: Update unit test assertions * #300: Remove skipped unit test * Feat(#309): Prod CICD (#310) * feat(upgrade): #309 Add rest coverage report to gitignore * feat(upgrade): #309 Setup coverage testing report for backend * feat(core): #309 Add release versioning to CI pipeline * feat(ci/cd): #309 Update CI pipeline for prod release * feat(ci/cd): #309 Re-enabled image build and deployment for QA CI environment * fix(#292): modify page input and selection styling make the page number input smaller to match surrounding labels, move the selection to the same line as buttons and match styling * feat(ci/cd): #309 Re-enabled whyis image to build only after pull request approval (#311) --------- Co-authored-by: Anya Wallace <aswallace98@gmail.com> Co-authored-by: Kevin Zuniga Cuellar <kzunigac@uvm.edu> Co-authored-by: Rory Schadler <48921090+roryschadler@users.noreply.github.com> Co-authored-by: Kevin Zuniga Cuellar <46791833+kevinzunigacuellar@users.noreply.github.com> Co-authored-by: Sam Stouffer <samuellstouffer@gmail.com> Co-authored-by: Jamie McCusker <mccusj2@rpi.edu> Co-authored-by: Jamie McCusker <mccusker@gmail.com> Co-authored-by: mjpalmeri <95506353+mjpalmeri@users.noreply.github.com> Co-authored-by: bingyinh <32102865+bingyinh@users.noreply.github.com>
Add docker ignore, add a 404 page, search rendering bug fixes, fix pixel unit testing, change datavoyager link to a button, with additional bug fixes
closes #177
closes #155
closes #206
closes #182
closes #208
closes #202