From f2ff2f316617d1a7f6fb046b940e8424e3ea573d Mon Sep 17 00:00:00 2001 From: Christian Date: Tue, 4 Apr 2023 16:41:37 -0400 Subject: [PATCH 01/74] Generalization of the ErrorBannerComponent (#622) __Pull Request Description__ This PR closes #601. This pull request generalizes the functionality of the `ErrorBannerComponent` into the newer `BannerComponent` which can display error, success, and generic message banners. Additionally, the refactored component can support timeout (instead of clicking an _X_ to close the component, it'll collapse itself after 5secs) and is has a sticky style which makes it appear on screen without the intrusive auto scroll. This PR will not remove the pre-existing `ErrorBannerComponent` from the project. That is something that will need to be done in a separate PR that also replaces those instances with the new `BannerComponent`. This PR is **NOT** ready to be merged into main. Prior to merging, the following items must be completed. - [x] Complete code review - [x] Remove all instances of the `ErrorBannerComponent` from the ui.html page. - [x] Update the end-2-end test for the ui.html page. - [x] Remove all lingering debugging code from the PR. This includes unnecessary comments. - [x] ~~Regenerate documentation~~ (This is generated locally now) Edit: Closes #635. --- __Licensing Certification__ FarmData2 is a [Free Cultural Work](https://freedomdefined.org/Definition) and all accepted contributions are licensed as described in the LICENSE.md file. This requires that the contributor holds the rights to do so. By submitting this pull request __I certify that I satisfy the terms of the [Developer Certificate of Origin](https://developercertificate.org/)__ for its contents. --- docker/dev/Dockerfile | 1 + docker/dev/bash_aliases | 2 +- .../fd2_config/fd2_config.info | 2 + .../fd2_example/ui/ui.api.error.spec.js | 18 +- .../fd2_example/ui/ui.banner.spec.js | 321 ++++++++++++++++++ .../farmdata2_modules/fd2_example/ui/ui.html | 81 ++++- .../resources/BannerComponent.js | 133 ++++++++ .../resources/BannerComponent.spec.comp.js | 219 ++++++++++++ .../resources/BannerMessageConstants.js | 18 + farmdata2/jsdoc/JSDoc.json | 3 +- 10 files changed, 782 insertions(+), 16 deletions(-) create mode 100644 farmdata2/farmdata2_modules/fd2_example/ui/ui.banner.spec.js create mode 100644 farmdata2/farmdata2_modules/resources/BannerComponent.js create mode 100644 farmdata2/farmdata2_modules/resources/BannerComponent.spec.comp.js create mode 100644 farmdata2/farmdata2_modules/resources/BannerMessageConstants.js diff --git a/docker/dev/Dockerfile b/docker/dev/Dockerfile index cd163f68..be978dab 100644 --- a/docker/dev/Dockerfile +++ b/docker/dev/Dockerfile @@ -49,6 +49,7 @@ RUN apt install -y --no-install-recommends \ && npm install -g \ @vue/cli@5.0.8 \ jsdoc@3.6.7 \ + jsdoc-escape-at \ jsdoc-vuejs@3.0.9 \ vue-template-compiler@2.6.14 diff --git a/docker/dev/bash_aliases b/docker/dev/bash_aliases index 099c6f1c..62616baf 100644 --- a/docker/dev/bash_aliases +++ b/docker/dev/bash_aliases @@ -8,7 +8,7 @@ setDB () } # Clear the drupal cache in the fd2_farmdata2 container. -alias clearDupalCache="docker exec -it fd2_farmdata2 drush cc all" +alias clearDrupalCache="docker exec -it fd2_farmdata2 drush cc all" # Alias codium for running VSCodium with no-sandbox. codium () diff --git a/farmdata2/farmdata2_modules/fd2_config/fd2_config.info b/farmdata2/farmdata2_modules/fd2_config/fd2_config.info index 52821259..b4b706c0 100644 --- a/farmdata2/farmdata2_modules/fd2_config/fd2_config.info +++ b/farmdata2/farmdata2_modules/fd2_config/fd2_config.info @@ -8,10 +8,12 @@ dependencies[] = entity stylesheets[all][] = '../resources/fd2.css' scripts[] = '../resources/FarmData2.js' scripts[] = '../resources/RegularExpressionConstants.js' +scripts[] = '../resources/BannerMessageConstants.js' scripts[] = '../resources/DateSelectionComponent.js' scripts[] = '../resources/DateRangeSelectionComponent.js' scripts[] = '../resources/DropdownWithAllComponent.js' scripts[] = '../resources/RegexInputComponent.js' scripts[] = '../resources/FarmOSAPI.js' scripts[] = '../resources/ErrorBannerComponent.js' +scripts[] = '../resources/BannerComponent.js' scripts[] = '../resources/CustomTableComponent.js' \ No newline at end of file diff --git a/farmdata2/farmdata2_modules/fd2_example/ui/ui.api.error.spec.js b/farmdata2/farmdata2_modules/fd2_example/ui/ui.api.error.spec.js index 8ef93306..2c361773 100644 --- a/farmdata2/farmdata2_modules/fd2_example/ui/ui.api.error.spec.js +++ b/farmdata2/farmdata2_modules/fd2_example/ui/ui.api.error.spec.js @@ -12,19 +12,19 @@ describe('Test the display of the error banner when network errors occur.', () = }) it('Click Fetch button but force bad status and check error banner is shown.', () => { - cy.get('[data-cy=alert-err-handler]') + cy.get('[data-cy=api-err-banner]') .should('not.visible') cy.get('[data-cy=loading-err-spinner]') .should('not.exist') - cy.intercept('GET', '/farm/fd2-example/abc',{ statusCode: 500 }) + cy.intercept('GET', '/farm/fd2-example/abc', { statusCode: 500 }) .as('getServerFailure') cy.get('[data-cy=fetch-err-api]') .click() cy.wait('@getServerFailure') - cy.get('[data-cy=alert-err-handler]') + cy.get('[data-cy=api-err-banner]') .should('be.visible') cy.get('[data-cy=first-log-name]') .should('have.text','') @@ -40,14 +40,16 @@ describe('Test the display of the error banner when network errors occur.', () = cy.get('[data-cy=loading-err-spinner]') .should('not.exist') - cy.get('[data-cy=alert-err-handler]') + cy.get('[data-cy=api-err-banner]') .should('be.visible') + cy.get('[data-cy=api-err-banner] > [data-cy=banner-close]') .click() + cy.get('[data-cy=api-err-banner]') .should('not.visible') }) it('Click Fetch button but force network failure and check error banner is shown.', () => { - cy.get('[data-cy=alert-err-handler]') + cy.get('[data-cy=api-err-banner]') .should('not.visible') cy.get('[data-cy=loading-err-spinner]') .should('not.exist') @@ -59,7 +61,7 @@ describe('Test the display of the error banner when network errors occur.', () = .click() cy.wait('@getNetworkFailure') - cy.get('[data-cy=alert-err-handler]') + cy.get('[data-cy=api-err-banner]') .should('be.visible') cy.get('[data-cy=first-log-name]') .should('have.text','') @@ -75,9 +77,11 @@ describe('Test the display of the error banner when network errors occur.', () = cy.get('[data-cy=loading-err-spinner]') .should('not.exist') - cy.get('[data-cy=alert-err-handler]') + cy.get('[data-cy=api-err-banner]') .should('be.visible') + cy.get('[data-cy=api-err-banner] > [data-cy=banner-close]') .click() + cy.get('[data-cy=api-err-banner]') .should('not.visible') }) }) diff --git a/farmdata2/farmdata2_modules/fd2_example/ui/ui.banner.spec.js b/farmdata2/farmdata2_modules/fd2_example/ui/ui.banner.spec.js new file mode 100644 index 00000000..ea583ae9 --- /dev/null +++ b/farmdata2/farmdata2_modules/fd2_example/ui/ui.banner.spec.js @@ -0,0 +1,321 @@ +/** + * The BannerComponent section of the UI subtab demonstrates + * how to use the BannerComponent. This spec checks that + * this the behavior of this section is correct including that: + * - The component is only visible when one of the buttons are clicked. + * - The component displays the correct message in the component. + * - The component is closed appropriately (timeout/click to dismiss) + * - That the element can be disabled and enabled programmatically. + */ +describe('Test the display of the error banner when network errors occur.', () => { + + beforeEach(() => { + cy.login('manager1', 'farmdata2') + cy.visit('/farm/fd2-example/ui') + }) + + it('successful banner is displayed, without timeout', () => { + cy.get('[data-cy=alert-banner]') + .should('not.visible') + + cy.get('[data-cy=trigger-success]') + .click() + + cy.get('[data-cy=trigger-success]') + .should('be.disabled') + cy.get('[data-cy=trigger-error]') + .should('be.disabled') + cy.get('[data-cy=trigger-message]') + .should('be.disabled') + cy.get('[data-cy=timeout-enable]') + .should('be.disabled') + + cy.get('[data-cy=alert-banner]') + .should('be.visible') + cy.get('[data-cy=alert-banner]') + .should('have.css', 'position') + .should('include', 'sticky') + cy.get('[data-cy=alert-banner]') + .should('have.css', 'top') + .should('include', '63px') + cy.get('[data-cy=alert-banner] > [data-cy=banner-message]') + .should('be.visible') + .should('have.text', 'Success! This is what a success banner looks like.') + + cy.get('[data-cy=alert-banner] > [data-cy=banner-close]') + .should('be.visible') + .click() + + cy.get('[data-cy=alert-banner]') + .should('not.visible') + + cy.get('[data-cy=trigger-success]') + .should('not.be.disabled') + cy.get('[data-cy=trigger-error]') + .should('not.be.disabled') + cy.get('[data-cy=trigger-message]') + .should('not.be.disabled') + cy.get('[data-cy=timeout-enable]') + .should('not.be.disabled') + + }) + + it('error banner is displayed, without timeout', () => { + cy.get('[data-cy=alert-banner]') + .should('not.visible') + + cy.get('[data-cy=trigger-error]') + .click() + + cy.get('[data-cy=trigger-success]') + .should('be.disabled') + cy.get('[data-cy=trigger-error]') + .should('be.disabled') + cy.get('[data-cy=trigger-message]') + .should('be.disabled') + cy.get('[data-cy=timeout-enable]') + .should('be.disabled') + + cy.get('[data-cy=alert-banner]') + .should('be.visible') + cy.get('[data-cy=alert-banner]') + .should('have.css', 'position') + .should('include', 'sticky') + cy.get('[data-cy=alert-banner]') + .should('have.css', 'top') + .should('include', '63px') + cy.get('[data-cy=alert-banner] > [data-cy=banner-message]') + .should('be.visible') + .should('have.text', 'Error! This is what an error banner looks like.') + + cy.get('[data-cy=alert-banner] > [data-cy=banner-close]') + .should('be.visible') + .click() + + cy.get('[data-cy=alert-banner]') + .should('not.visible') + + cy.get('[data-cy=trigger-success]') + .should('not.be.disabled') + cy.get('[data-cy=trigger-error]') + .should('not.be.disabled') + cy.get('[data-cy=trigger-message]') + .should('not.be.disabled') + cy.get('[data-cy=timeout-enable]') + .should('not.be.disabled') + + }) + + it('message banner is displayed, without timeout', () => { + cy.get('[data-cy=alert-banner]') + .should('not.visible') + + cy.get('[data-cy=trigger-message]') + .click() + + cy.get('[data-cy=trigger-success]') + .should('be.disabled') + cy.get('[data-cy=trigger-error]') + .should('be.disabled') + cy.get('[data-cy=trigger-message]') + .should('be.disabled') + cy.get('[data-cy=timeout-enable]') + .should('be.disabled') + + cy.get('[data-cy=alert-banner]') + .should('be.visible') + cy.get('[data-cy=alert-banner]') + .should('have.css', 'position') + .should('include', 'sticky') + cy.get('[data-cy=alert-banner]') + .should('have.css', 'top') + .should('include', '63px') + cy.get('[data-cy=alert-banner] > [data-cy=banner-message]') + .should('be.visible') + .should('have.text', 'Message! This is what a message banner looks like.') + + cy.get('[data-cy=alert-banner] > [data-cy=banner-close]') + .should('be.visible') + .click() + + cy.get('[data-cy=alert-banner]') + .should('not.visible') + + cy.get('[data-cy=trigger-success]') + .should('not.be.disabled') + cy.get('[data-cy=trigger-error]') + .should('not.be.disabled') + cy.get('[data-cy=trigger-message]') + .should('not.be.disabled') + cy.get('[data-cy=timeout-enable]') + .should('not.be.disabled') + + }) + + it('successful banner is displayed, with timeout', () => { + cy.get('[data-cy=alert-banner]') + .should('not.visible') + + cy.get('[data-cy=timeout-enable]') + .click() + cy.get('[data-cy=trigger-success]') + .click() + + cy.get('[data-cy=trigger-success]') + .should('be.disabled') + cy.get('[data-cy=trigger-error]') + .should('be.disabled') + cy.get('[data-cy=trigger-message]') + .should('be.disabled') + cy.get('[data-cy=timeout-enable]') + .should('be.disabled') + + cy.get('[data-cy=alert-banner]') + .should('be.visible') + cy.get('[data-cy=alert-banner]') + .should('have.css', 'position') + .should('include', 'sticky') + cy.get('[data-cy=alert-banner]') + .should('have.css', 'top') + .should('include', '63px') + cy.get('[data-cy=alert-banner] > [data-cy=banner-message]') + .should('be.visible') + .should('have.text', 'Success! This is what a success banner looks like.') + + cy.get('[data-cy=alert-banner] > [data-cy=banner-close]') + .should('not.be.visible') + + cy.wait(5000) + + cy.get('[data-cy=alert-banner]') + .should('not.visible') + + cy.get('[data-cy=trigger-success]') + .should('not.be.disabled') + cy.get('[data-cy=trigger-error]') + .should('not.be.disabled') + cy.get('[data-cy=trigger-message]') + .should('not.be.disabled') + cy.get('[data-cy=timeout-enable]') + .should('not.be.disabled') + + }) + + it('error banner is displayed, with timeout', () => { + cy.get('[data-cy=alert-banner]') + .should('not.visible') + + cy.get('[data-cy=timeout-enable]') + .click() + cy.get('[data-cy=trigger-error]') + .click() + + cy.get('[data-cy=trigger-success]') + .should('be.disabled') + cy.get('[data-cy=trigger-error]') + .should('be.disabled') + cy.get('[data-cy=trigger-message]') + .should('be.disabled') + cy.get('[data-cy=timeout-enable]') + .should('be.disabled') + + cy.get('[data-cy=alert-banner]') + .should('be.visible') + cy.get('[data-cy=alert-banner]') + .should('have.css', 'position') + .should('include', 'sticky') + cy.get('[data-cy=alert-banner]') + .should('have.css', 'top') + .should('include', '63px') + cy.get('[data-cy=alert-banner] > [data-cy=banner-message]') + .should('be.visible') + .should('have.text', 'Error! This is what an error banner looks like.') + + cy.get('[data-cy=alert-banner] > [data-cy=banner-close]') + .should('not.be.visible') + + cy.wait(5000) + + cy.get('[data-cy=alert-banner]') + .should('not.visible') + + cy.get('[data-cy=trigger-success]') + .should('not.be.disabled') + cy.get('[data-cy=trigger-error]') + .should('not.be.disabled') + cy.get('[data-cy=trigger-message]') + .should('not.be.disabled') + cy.get('[data-cy=timeout-enable]') + .should('not.be.disabled') + + }) + + it('message banner is displayed, with timeout', () => { + cy.get('[data-cy=alert-banner]') + .should('not.visible') + + cy.get('[data-cy=timeout-enable]') + .click() + cy.get('[data-cy=trigger-message]') + .click() + + cy.get('[data-cy=trigger-success]') + .should('be.disabled') + cy.get('[data-cy=trigger-error]') + .should('be.disabled') + cy.get('[data-cy=trigger-message]') + .should('be.disabled') + cy.get('[data-cy=timeout-enable]') + .should('be.disabled') + + cy.get('[data-cy=alert-banner]') + .should('be.visible') + cy.get('[data-cy=alert-banner]') + .should('have.css', 'position') + .should('include', 'sticky') + cy.get('[data-cy=alert-banner]') + .should('have.css', 'top') + .should('include', '63px') + cy.get('[data-cy=alert-banner] > [data-cy=banner-message]') + .should('be.visible') + .should('have.text', 'Message! This is what a message banner looks like.') + + cy.get('[data-cy=alert-banner] > [data-cy=banner-close]') + .should('not.be.visible') + + cy.wait(5000) + + cy.get('[data-cy=alert-banner]') + .should('not.visible') + + cy.get('[data-cy=trigger-success]') + .should('not.be.disabled') + cy.get('[data-cy=trigger-error]') + .should('not.be.disabled') + cy.get('[data-cy=trigger-message]') + .should('not.be.disabled') + cy.get('[data-cy=timeout-enable]') + .should('not.be.disabled') + + }) + + it('enabling and disabling timeout button works.', () => { + cy.get('[data-cy=alert-banner]') + .should('not.visible') + + cy.get('[data-cy=timeout-disable]') + .should('not.be.visible') + cy.get('[data-cy=timeout-enable]') + .should('be.visible') + .click() + cy.get('[data-cy=timeout-enable]') + .should('not.be.visible') + cy.get('[data-cy=timeout-disable]') + .should('be.visible') + .click() + .should('not.be.visible') + cy.get('[data-cy=timeout-enable]') + .should('be.visible') + }) + +}) diff --git a/farmdata2/farmdata2_modules/fd2_example/ui/ui.html b/farmdata2/farmdata2_modules/fd2_example/ui/ui.html index 0b8a4e1f..6cba7754 100644 --- a/farmdata2/farmdata2_modules/fd2_example/ui/ui.html +++ b/farmdata2/farmdata2_modules/fd2_example/ui/ui.html @@ -1,6 +1,12 @@
+ +

FarmData2 provides a number of custom Vue components, bootstrap elements and CSS styles that are used throught the application to give it a consistent look and feel. This page gives examples of how the components and styles are created, used and tested (see ui.spec.js).

@@ -61,6 +67,26 @@ +

BannerComponent

+ +

DateSelectionComponent

`, + props: { + message: { + type: Object, + default: null + }, + visible: { + type: Boolean, + required: true, + }, + timeout: { + type: Boolean, + default: false + } + }, + data() { + return { + bannerClass: this.message.class, + bannerMsg: this.message.msg, + isVisible: this.visible, + timeoutBool: this.timeout, + topNav: '0px', + } + }, + watch: { + message(newObj) { + this.bannerClass = newObj.class + this.bannerMsg = newObj.msg + + }, + visible(newbool) { + this.isVisible = newbool + if(this.timeoutBool == true && this.isVisible){ + setTimeout(() => { + this.isVisible = false + this.$emit('banner-hidden') + }, 5000) + } + }, + + timeout(newBool){ + this.timeoutBool = newBool + } + }, + methods: { + hideBanner() { + this.isVisible = false + this.$emit('banner-hidden') + }, + }, + mounted: + // try/catch block exists for Cypress component testing since those are + // isolated. Naturally there will be no navbar in those isolated tests. + function () { + this.$nextTick(function () { + try{ + var pageHeader = document.getElementById('navbar') + var headerBounds = pageHeader.getBoundingClientRect() + this.topNav = String(headerBounds.height) + 'px' + } + catch(err){ + this.topNav = '0px' + } + }) + }, +} +/* + * Export the ErrorBannerComponent object as a CommonJS component + * so that it can be required by the component test. + */ +try { + module.exports = { + BannerComponent + } +} +catch {} diff --git a/farmdata2/farmdata2_modules/resources/BannerComponent.spec.comp.js b/farmdata2/farmdata2_modules/resources/BannerComponent.spec.comp.js new file mode 100644 index 00000000..ea8d7c4e --- /dev/null +++ b/farmdata2/farmdata2_modules/resources/BannerComponent.spec.comp.js @@ -0,0 +1,219 @@ +import { mount } from '@cypress/vue2' +import { shallowMount } from '@vue/test-utils' + +var BannerComponent = require("./BannerComponent.js") +var BannerComponent = BannerComponent.BannerComponent + +describe('BannerComponent tests', () => { + context('test if props set the initial values', () => { + beforeEach(() => { + mount(BannerComponent, { + propsData: { + message: {"msg": "Test: Hello, I render!", "class": "alert alert-info"}, + visible: true, + }, + }) + }) + + it('renders the component in DOM', () => { + cy.get('[data-cy=banner-handler]').should('exist') + }) + + it('component should be visible', () => { + cy.get('[data-cy=banner-handler]').should('be.visible') + }) + + it('has default banner message', () => { + cy.get('[data-cy=banner-handler] > [data-cy=banner-message]') + .should('have.text', 'Test: Hello, I render!') + }) + + it('has default banner class', () => { + cy.get('[data-cy=banner-handler]') + .should('have.class', 'alert alert-info') + }) + }) + + context('test prop with an updated banner object', () => { + beforeEach(() => { + mount(BannerComponent, { + propsData: { + message: {"msg": "Test: I am a test message", "class": "alert alert-info"}, + visible: true, + }, + }) + }) + + it('renders the component', () => { + cy.get('[data-cy=banner-handler]').should('exist') + }) + + it('has updated banner message', () => { + cy.get('[data-cy=banner-handler] > [data-cy=banner-message]') + .should('have.text', 'Test: I am a test message') + }) + + it('has updated banner class', () => { + cy.get('[data-cy=banner-handler]') + .should('have.class', 'alert alert-info') + }) + }) + + context('test banner with timeout', () => { + let wrapper + let div + let spy + beforeEach(() => { + div = document.createElement('div') + document.body.appendChild(div) + spy = cy.spy() + wrapper = shallowMount(BannerComponent, { + attachTo: div, + propsData: { + message: {"msg": "Test: I am a test message", "class": "alert alert-info"}, + visible: false, + timeout: true, + }, + }) + }) + + afterEach(() => { + wrapper.destroy() + }) + + it('test hide banner', () => { + expect(wrapper.vm.visible).to.equal(false) + expect(wrapper.vm.isVisible).to.equal(false) + cy.wrap(wrapper.setProps({ visible: true })) + cy.wait(5000) + .then(() => { + expect(wrapper.vm.isVisible).to.equal(false) + }) + }) + + it('test no emit if parent page set prop to false', () => { + expect(wrapper.vm.visible).to.equal(false) + expect(wrapper.vm.isVisible).to.equal(false) + cy.wrap(wrapper.setProps({ visible: true })) + .then(() => { + expect(wrapper.vm.isVisible).to.equal(false) + }) + cy.wrap(wrapper.setProps({ visible: false })) + .then(() => { + expect(wrapper.vm.isVisible).to.equal(false) + expect(spy).to.not.be.called + }) + }) + }) + + context('test banner without timeout', () => { + beforeEach(() => { + mount(BannerComponent, { + propsData: { + message: {"msg": "Test: I am a test message", "class": "alert alert-info"}, + visible: true, + }, + }) + }) + + it('test hide banner', () => { + cy.get('[data-cy=banner-handler]') + .should('be.visible') + + cy.get('[data-cy=banner-handler] > [data-cy=banner-close]') + .click() + + cy.get('[data-cy=banner-handler]') + .should('not.be.visible') + }) + }) + + context('test prop changes', () => { + let comp; + beforeEach(() => { + comp = shallowMount(BannerComponent, { + propsData: { + message: {"msg": "Test: I am a test message", "class": "alert alert-info"}, + visible: true, + timeout: 5000, + }, + }) + }) + + it('change update banner object', () => { + expect(comp.vm.message.msg).to.equal('Test: I am a test message') + expect(comp.vm.message.class).to.equal('alert alert-info') + cy.wrap(comp.setProps({ message: {"msg": "Cypress Test: Hello!", "class": "alert alert-warning"}})) + .then(() => { + expect(comp.vm.message.msg).to.equal('Cypress Test: Hello!') + expect(comp.vm.message.class).to.equal('alert alert-warning') + }) + }) + + it('change visibility', () => { + expect(comp.vm.visible).to.equal(true) + cy.wrap(comp.setProps({ visible: false })) + .then(() => { + expect(comp.vm.visible).to.equal(false) + }) + }) + + it('change timeout', () => { + expect(comp.vm.timeout).to.equal(5000) + cy.wrap(comp.setProps({ timeout: null })) + .then(() => { + expect(comp.vm.timeout).to.equal(null) + }) + }) + }) + + context('test banner hidden emit', () => { + + it('banner emit occurs when x is clicked', () => { + const spy = cy.spy() + mount(BannerComponent, { + propsData: { + message: {"msg": "Test: I am a test message", "class": "alert alert-info"}, + visible: true, + }, + listeners: { + 'banner-hidden' : spy + }, + }) + cy.get('[data-cy=banner-handler]').should('exist') + cy.get('[data-cy=banner-handler] > [data-cy=banner-close]') + .click() + .then(() => { + expect(spy).to.be.called + }) + }) + + it('banner emit occurs when timeout is enabled', () => { + let wrapper + let div + const spy = cy.spy() + + div = document.createElement('div') + document.body.appendChild(div) + + wrapper = shallowMount(BannerComponent, { + attachTo: div, + propsData: { + message: {"msg": "Test: I am a test message", "class": "alert alert-info"}, + visible: false, + timeout: true, + }, + listeners: { + 'banner-hidden' : spy + }, + }) + + cy.get('[data-cy=banner-handler]').should('exist') + cy.wrap(wrapper.setProps({visible : true})) + cy.wait(5000) + .then(() => { + expect(spy).to.be.called + }) + }) + }) +}) \ No newline at end of file diff --git a/farmdata2/farmdata2_modules/resources/BannerMessageConstants.js b/farmdata2/farmdata2_modules/resources/BannerMessageConstants.js new file mode 100644 index 00000000..6788eb1c --- /dev/null +++ b/farmdata2/farmdata2_modules/resources/BannerMessageConstants.js @@ -0,0 +1,18 @@ +/** + * Map of common banner messages used in the BannerComponent. + * // ui { contains banner messages for the ui page. } + */ +var bannerMessageMap = { + ui: { + error: {"msg": "Error! This is what an error banner looks like.", "class": "alert alert-danger alert-dismissible"}, + success: {"msg": "Success! This is what a success banner looks like.", "class": "alert alert-success alert-dismissible"}, + msg: {"msg": "Message! This is what a message banner looks like.", "class": "alert alert-info alert-dismissible"}, + } +} + +try { + module.exports = { + bannerMessageMap + } +} +catch {} \ No newline at end of file diff --git a/farmdata2/jsdoc/JSDoc.json b/farmdata2/jsdoc/JSDoc.json index 37a301a0..a7a5a3ce 100644 --- a/farmdata2/jsdoc/JSDoc.json +++ b/farmdata2/jsdoc/JSDoc.json @@ -1,6 +1,7 @@ { "plugins": [ - "jsdoc-vuejs" + "jsdoc-vuejs", + "jsdoc-escape-at" ], "source": { "includePattern": "\\.(vue|js)$" From 6e189cda54ff2534c77924e04971113bbc49fa1b Mon Sep 17 00:00:00 2001 From: Grant Braught Date: Wed, 12 Apr 2023 13:02:18 -0400 Subject: [PATCH 02/74] Db test waits (#646) __Pull Request Description__ Modified the `dbtest` examples so that they use the `cy.waitForPage()` pattern that will be typical of real use cases. --- __Licensing Certification__ FarmData2 is a [Free Cultural Work](https://freedomdefined.org/Definition) and all accepted contributions are licensed as described in the LICENSE.md file. This requires that the contributor holds the rights to do so. By submitting this pull request __I certify that I satisfy the terms of the [Developer Certificate of Origin](https://developercertificate.org/)__ for its contents. --------- Signed-off-by: Foogabob <80643562+Foogabob@users.noreply.github.com> Co-authored-by: pranavm2109 <98339495+pranavm2109@users.noreply.github.com> Co-authored-by: Alexandrialexie Co-authored-by: andrewscheiner53 Co-authored-by: sidlamsal <98344853+sidlamsal@users.noreply.github.com> Co-authored-by: EliasBerhe Co-authored-by: Foogabob Co-authored-by: Foogabob <80643562+Foogabob@users.noreply.github.com> Co-authored-by: Michael K <56452607+Mikek16@users.noreply.github.com> Co-authored-by: nathang15 Co-authored-by: infantlikesprogramming --- .../dbtest/dbtest.get.seedings.spec.js | 102 ++++++++ .../fd2_example/dbtest/dbtest.html | 48 ++++ .../fd2_example/dbtest/dbtest.maps.spec.js | 106 ++++++++ .../dbtest/dbtest.modify.seedings.spec.js | 240 ++++++++++++++++++ .../dbtest/dbtest.sessionToken.spec.js | 68 +++++ .../fd2_example/fd2_example.module | 9 + .../seedingInput.data.defaults.spec.js | 29 +++ .../seedingInput/seedingInput.html | 6 +- .../seedingInput.labor.defaults.spec.js | 52 ++++ .../seedingInput.type.defaults.spec.js | 40 +++ 10 files changed, 697 insertions(+), 3 deletions(-) create mode 100644 farmdata2/farmdata2_modules/fd2_example/dbtest/dbtest.get.seedings.spec.js create mode 100644 farmdata2/farmdata2_modules/fd2_example/dbtest/dbtest.html create mode 100644 farmdata2/farmdata2_modules/fd2_example/dbtest/dbtest.maps.spec.js create mode 100644 farmdata2/farmdata2_modules/fd2_example/dbtest/dbtest.modify.seedings.spec.js create mode 100644 farmdata2/farmdata2_modules/fd2_example/dbtest/dbtest.sessionToken.spec.js create mode 100644 farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.data.defaults.spec.js create mode 100644 farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.labor.defaults.spec.js create mode 100644 farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.type.defaults.spec.js diff --git a/farmdata2/farmdata2_modules/fd2_example/dbtest/dbtest.get.seedings.spec.js b/farmdata2/farmdata2_modules/fd2_example/dbtest/dbtest.get.seedings.spec.js new file mode 100644 index 00000000..baa3954e --- /dev/null +++ b/farmdata2/farmdata2_modules/fd2_example/dbtest/dbtest.get.seedings.spec.js @@ -0,0 +1,102 @@ +/** + * The tests in this file illustrate how to get seeding logs from + * the database using the functions in the FarmOSAPI library and then + * make assertions about their contents. + */ + +/* + * The dayjs library can be imported into a test using the following + * line. This is particularly useful for conversions between dates + * and time stamps. + */ +const dayjs = require('dayjs') + +var FarmOSAPI = require("../../resources/FarmOSAPI.js") +var getRecord = FarmOSAPI.getRecord +var getAllPages = FarmOSAPI.getAllPages + +describe("Examples of getting seeding logs via the FarmOSAPI functions in a test", () => { + + beforeEach(() => { + cy.login("manager1", "farmdata2") + + /* + * Load any maps (see dbtest.maps.spec) or get a session token + * (see dbtest.sessionToken.spec.js) as necessary here. + */ + + cy.visit("/farm/fd2-example/dbTest") + cy.waitForPage() + }) + + /** + * If you have the id of a log it can be retrieved using the getRecord + * function from the FarmOSAPI library. + */ + it("Get a seeding log by its id", () => { + + /* + * Request the log with id=6. This is a direct seeding of Radish in + * CHUAU-2 on February 04, 2019. + */ + cy.wrap(getRecord("/log.json?id=6")).as("get-log") + + /* + * Wait for the promise returned from getRecord to resolve. + */ + cy.get("@get-log") + .then((response) => { + + /* + * Once the response is received we can make assertions about the values + * in the response to verify that it is as expected. + * + * To know the structure and content of the log it is helpful to access + * the URL in a browser or through a tool such as Hoppscotch or postman + * and inspect the JSON directly. + */ + expect(response.data.list[0].movement.area[0].name).to.equal("CHUAU-2") + expect(response.data.list[0].type).to.equal("farm_seeding") + expect(response.data.list[0].log_category[0].name).to.equal("Direct Seedings") + }) + }) + + /** + * If you want all of the logs in a date range, they can be retrieved + * using the getAllPAges function from the FarmOSAPI library. + */ + it("Get all of the seeding logs in a date range", () => { + + // Get the start and end timestamps for the date range we want. + let start = dayjs("2020-05-01","YYYY-MM-DD").unix() + // Add 1 day here to get to the end of May 5th. + let end = dayjs("2020-05-05","YYYY-MM-DD").add(1,'day').unix() + + /* + * Request all of the farm seedings between 2020-05-01 and 2020-05-05. There + * were 14 seeding in this date range. + */ + let url = "/log.json?type=farm_seeding×tamp[gt]="+start+"×tamp[lt]="+end + let seedingLogs = [] + cy.wrap(getAllPages(url, seedingLogs)).as("get-logs") + + /* + * Wait for the promise returned from getAllPages to resolve. + */ + cy.get("@get-logs") + .then((response) => { + + /* + * Once the response is received we can make assertions about the values + * in the array that was filled with the results to verify that they are + * as expected. + * + * To know the structure and content of the array it is helpful to access + * the URL in a browser or through a tool such as Hoppscotch or postman + * and inspect the JSON directly. + */ + + expect(seedingLogs.length).to.equal(14) + }) + }) +}) \ No newline at end of file diff --git a/farmdata2/farmdata2_modules/fd2_example/dbtest/dbtest.html b/farmdata2/farmdata2_modules/fd2_example/dbtest/dbtest.html new file mode 100644 index 00000000..8f73b9bf --- /dev/null +++ b/farmdata2/farmdata2_modules/fd2_example/dbtest/dbtest.html @@ -0,0 +1,48 @@ +
+ +

Unlike other sample modules, this sample module does not have content here. + Instead, the dbTest sample module consists of a number of .spec.js + files that illustrate common patterns used in tests that + interact with the database. The contents of those files should be reviewed + their comments read and studied. In addition, the tests can be run in + the Cypress Test environment.

+ +

Each of the files has comments describing what they are doing. It is recommended + to study the files in the order below as later examples may not include comments + describing things that are documented in an earlier example.

+
    +
  1. dbtest.maps.spec.js
  2. : Shows how to get maps (e.g. userToIDMap) from the database and use them in tests. +
  3. dbtest.get.seedings.js
  4. : Shows how to get seeding logs from the database and use them in tests. +
  5. dbtest.sessionToken.spec.js
  6. : Shows how to get a session token needed for operations that modify the database. +
  7. dbtest.modify.seedings.spec.js
  8. : Shows how to create, delete and update seeding logs in the database. +
+ + +
{{ pageLoaded }}
+
+ + \ No newline at end of file diff --git a/farmdata2/farmdata2_modules/fd2_example/dbtest/dbtest.maps.spec.js b/farmdata2/farmdata2_modules/fd2_example/dbtest/dbtest.maps.spec.js new file mode 100644 index 00000000..10b1b30b --- /dev/null +++ b/farmdata2/farmdata2_modules/fd2_example/dbtest/dbtest.maps.spec.js @@ -0,0 +1,106 @@ +/** + * The tests in this file show how to get a map from the FarmOSAPI and + * use it in tests. This can be useful when the one of the maps is + * needed to translate between ids and names in a test (e.g. from + * crop id to crop name or vice versa). + */ + +/** + * Tests that interact with the database will often make use of the + * Functions in the FarmOSAPI library to access and modify the database. + * + * The lines below illustrate how functions from the FarmOSAPI library + * can be brought into a spec.js file for testing. + * + * The farmdata2/README.md contains information about the documentation + * for all of the functions in the FarmOSAPI library. + */ +var FarmOSAPI = require('../../resources/FarmOSAPI.js') +var getUserToIDMap = FarmOSAPI.getUserToIDMap + +describe('Example of getting a map to via the FarmOSAPI functions in a test', () => { + + /* + * If multiple tests in the same describe will be using the userToIDMap + * then define a variable, like userMap here, and set it in the beforeEach + * as illustrated below. This variable will then be accessible in all of the + * tests (its). + * + * If the map is only needed in a single test (it) then the same approach can + * be used within that test (it) and this variable will not be necessary. + */ + let userMap = null + + beforeEach(() => { + // Log in + cy.login("manager1", "farmdata2") + .then (() => { + + /* + * Once we are logged in we can Use the getUserToIDMap() function from the FarmOSAPI library + * to get the map. + * + * The getUserToIDMap() function makes an API call to farmOS to get the data and create the map. + * This function returns a promise that resolves to the map when the API call returns. + * + * The map will not be available until the promise returned by the getUserToIDMap() + * resolves. So we need to wait for that promise to resolve. + * The cy.wrap(...).as(...) command is how we setup to wait for a promise to resolve in Cypress. + * + * The name "get-map" used here is just an identifier that describes what we are waiting on. + * It is used below when we actually wait for the promise to resolve. + */ + cy.wrap(getUserToIDMap()).as("get-map") + }) + + /* + * We use cy.get(...).then(...) in Cypress to wait for a promise that has + * been wrapped to resolve. + * + * Here we wait for the promise wrapped as "get-map" above. + */ + cy.get("@get-map") + .then((map) => { + /* + * The parameter map will be set to the map from the promise. Here we assign + * it to the userMap variable so that it will be accessible to all of the it + * tests. + */ + userMap = map + }) + + // Visit the page that will be tested. + cy.visit("/farm/fd2-example/dbTest") + + /* + * Almost always the page being visited will load maps and other + * content in its created() hook. If the page follows the pattern + * used in FarmData2 pages (see Maps.html for an example with explanation) + * then this causes the tests to wait here until the entire page and + * all of its data is loaded before continuing. + */ + cy.waitForPage() + }) + + /** + * All tests can then use the userToIDMap that was assigned to the + * userMap variable in the beforeEach. + */ + it("Use the map in a test", () => { + + /* + * The tests can then use the userMap in tests. + * + * The expect(...) function is like the .should(...) statement. While + * .should(...) is used to make assertions about elements found with cy.get(...), + * expect(...) is used to make assertions about variables. + * + * For every assertion that can be made with .should(...) there is an equivalent + * assertion for use with expect(...). For a complete reference see: + * https://docs.cypress.io/guides/references/assertions + */ + expect(userMap).to.not.be.null + expect(userMap.get("manager1")).to.equal("3") + expect(userMap.get("worker1")).to.equal("5") + }) +}) \ No newline at end of file diff --git a/farmdata2/farmdata2_modules/fd2_example/dbtest/dbtest.modify.seedings.spec.js b/farmdata2/farmdata2_modules/fd2_example/dbtest/dbtest.modify.seedings.spec.js new file mode 100644 index 00000000..78f7b7f6 --- /dev/null +++ b/farmdata2/farmdata2_modules/fd2_example/dbtest/dbtest.modify.seedings.spec.js @@ -0,0 +1,240 @@ +/** + * The tests in this file show how to create new seeing logs, delete + * seeding logs and modify existing seeding logs. + */ +const dayjs = require('dayjs') + +var FarmOSAPI = require('../../resources/FarmOSAPI.js') +var deleteRecord = FarmOSAPI.deleteRecord +var getSessionToken = FarmOSAPI.getSessionToken +var createRecord = FarmOSAPI.createRecord + +describe('Example of creating and deleting seeding logs in a test', () => { + + /* + * We are going to be modifying the database so we will need a session token. + * We will also be using the session token in multiple tests (its). So we define + * a variable here that will be set in the beforeEach(). + */ + let sessionToken = null + + beforeEach(() => { + // Log in + cy.login("manager1", "farmdata2") + .then (() => { + cy.wrap(getSessionToken()).as("get-token") + }) + + cy.get("@get-token").then((token) => { + sessionToken = token + }) + + cy.visit("/farm/fd2-example/dbTest") + cy.waitForPage() + }) + + /** + * A context allows us to have a beforeEach and an afterEach just for this test. + * + * The beforeEach in the context will run before the it in the context. It can be used + * to create a log that is used for testing. + * + * The afterEach in the context will run after the it in the context. It can be used + * it to delete any logs that were created for the test or during the test. + */ + context("Create a new log, do some tests, delete the log(s) ", () => { + + let logID = null + + /** + * This beforeEach will run before the it in this context. It is used to + * create a new log. The id of the log is saved in the logID variable + * declared in the context so that it can be deleted in the afterEach. + */ + beforeEach(() => { + cy.wrap(makeDirectSeeding("Test Seeding")).as("make-seeding") + //cy.wrap(makeDirectSeeding("Test Seeding")).as("make-seeding") + + cy.get("@make-seeding") + .then((response) => { + logID = response.data.id + }) + }) + + /** + * Do your testing in this it. + */ + it("Do your test using the new log(s) here.", () => { + /* + * This test can be changed to expect(true).to.equal(true) + * in order to check that the record is still deleted by the + * afterEach() even if the test fails. + */ + expect(true).to.equal(true) + }) + + /** + * Delete the log created in the beforeEach so that the database + * is back to where it started. + */ + afterEach(() => { + cy.wrap(deleteRecord("/log/"+logID, sessionToken)).as("delete-seeding") + cy.get("@delete-seeding") + }) + }) + + /** + * This function will return a promise that creates a new Direct Seeding log. + */ + function makeDirectSeeding(name) { + let json = { + "name": name, + "type": "farm_seeding", + "timestamp": dayjs("1999-01-01").unix(), + "done": "1", //any seeding recorded is done. + "notes": { + "value": "This is a test direct seeding", + "format": "farm_format" + }, + "asset": [{ + "id": "6", //Associated planting + "resource": "farm_asset" + }], + "log_category": [{ + "id": "240", + "resource": "taxonomy_term" + }], + "movement": { + "area": [{ + "id": "180", + "resource": "taxonomy_term" + }] + }, + "quantity": [ + { + "measure": "length", + "value": "10", //total row feet + "unit": { + "id": "20", + "resource": "taxonomy_term" + }, + "label": "Amount planted" + }, + { + "measure": "ratio", + "value": "20", + "unit": { + "id": "38", + "resource": "taxonomy_term" + }, + "label": "Rows/Bed" + }, + { + "measure": "time", + "value": "1.23", + "unit": { + "id": "29", + "resource": "taxonomy_term" + }, + "label": "Labor" + }, + { + "measure": "count", + "value": "30", + "unit": { + "id": "15", + "resource": "taxonomy_term" + }, + "label": "Workers" + }, + ], + "created": dayjs().unix(), + "lot_number": "N/A (No Variety)", + "data": "{\"crop_tid\": \"161\"}" + } + + return createRecord('/log', json, sessionToken) + } + + /** + * This function will return a promise that creates a new Tray Seeding log. + */ + function makeTraySeeding(name) { + let json = { + "name": name, + "type": "farm_seeding", + "timestamp": dayjs("1999-01-01").unix(), + "done": "1", //any seeding recorded is done. + "notes": { + "value": "This is a test tray seeding", + "format": "farm_format" + }, + "asset": [{ + "id": "6", //Associated planting + "resource": "farm_asset" + }], + "log_category": [{ + "id": "241", + "resource": "taxonomy_term" + }], + "movement": { + "area": [{ + "id": "180", + "resource": "taxonomy_term" + }] + }, + "quantity": [ + { + "measure": "count", + "value": "10", //number of seed planted + "unit": { + "id": "17", + "resource": "taxonomy_term" + }, + "label": "Seeds planted" + }, + { + "measure": "count", + "value": "20", //number of flats(trays) + "unit": { + "id": "12", + "resource": "taxonomy_term" + }, + "label": "Flats used" + }, + { + "measure": "ratio", + "value": "30", //cells per flat + "unit": { + "id": "37", + "resource": "taxonomy_term" + }, + "label": "Cells/Flat" + }, + { + "measure": "time", + "value": "1.23", //hours worked + "unit": { + "id": "29", + "resource": "taxonomy_term" + }, + "label": "Labor" + }, + { + "measure": "count", + "value": "40", + "unit": { + "id": "15", + "resource": "taxonomy_term" + }, + "label": "Workers" + }, + ], + "created": dayjs().unix(), + "lot_number": "N/A (No Variety)", + "data": "{\"crop_tid\": \"161\"}" + } + + return createRecord('/log', json, sessionToken) + } +}) \ No newline at end of file diff --git a/farmdata2/farmdata2_modules/fd2_example/dbtest/dbtest.sessionToken.spec.js b/farmdata2/farmdata2_modules/fd2_example/dbtest/dbtest.sessionToken.spec.js new file mode 100644 index 00000000..7efeea76 --- /dev/null +++ b/farmdata2/farmdata2_modules/fd2_example/dbtest/dbtest.sessionToken.spec.js @@ -0,0 +1,68 @@ +/** + * Any test that modify the database (create logs, modify logs, delete logs) + * will need to have a session token. The session token ensures that the user + * has permission to modify the database. + * + * The sample code in this file illustrates how tests can get a session token. + */ + +var FarmOSAPI = require("../../resources/FarmOSAPI.js") +var getSessionToken = FarmOSAPI.getSessionToken + +describe("Illustration of how to get a session token.", () => { + + /* + * If multiple tests in the same describe will be using the FarmOSAPI functions + * to modify the database then define a variable here and set it in the + * beforeEach as illustrated below. + */ + let sessionToken = null; + + beforeEach(() => { + // Log in as a user with permissions to modify the database. + cy.login("manager1", "farmdata2") + .then(() => { + /* + * Once we are logged in, use the getSessionToken() function from the + * FarmOSAPI library makes an API call to farmOS to get a session token + * as the logged in user. + * + * The cy.wrap(...).as(...) allows us to wait (just below) for the + * API request for the session token to complete before we continue and + * try to use the sessionToken variable. + * + * The name "get-token" is just an identifier for the wrap that we will use + * below when we wait for the API call to complete. + */ + cy.wrap(getSessionToken()).as("get-token") + }) + + /* + * This cy.get uses the name "get-token" from the cy.wrap above to wait here + * until the session token is returned from the API request. When the session + * token is returned it is assigned to the sessionToken variable defined above. + */ + cy.get("@get-token").then((token) => { + sessionToken = token + }) + + // Visit the page that will be tested. + cy.visit("/farm/fd2-example/dbTest") + cy.waitForPage() + }) + + /** + * Any it can then use the sessionToken variable to modify the database. + */ + it("Check that the sessionToken variable is not null", () => { + /* + * The tests would then use the sessionToken in calls to the functions + * in the FarmOSAPI library as needed. The examples in the other .spec.js + * files in this module illustrate those use cases. + * + * Here we test that the sessionToken variable is not null just to show + * that it was set. + */ + expect(sessionToken).to.not.be.null + }) +}) \ No newline at end of file diff --git a/farmdata2/farmdata2_modules/fd2_example/fd2_example.module b/farmdata2/farmdata2_modules/fd2_example/fd2_example.module index 6b080cfc..60f0864a 100644 --- a/farmdata2/farmdata2_modules/fd2_example/fd2_example.module +++ b/farmdata2/farmdata2_modules/fd2_example/fd2_example.module @@ -108,6 +108,15 @@ function fd2_example_menu() { 'weight' => 120, ); + $items['farm/fd2-example/dbtest'] = array( + 'title' => 'dbtest', + 'type' => MENU_LOCAL_TASK, + 'page callback' => 'fd2_example_view', + 'page arguments' => array('dbtest'), + 'access arguments' => array('view fd2 example'), + 'weight' => 125, + ); + return $items; }; diff --git a/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.data.defaults.spec.js b/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.data.defaults.spec.js new file mode 100644 index 00000000..0d46bde3 --- /dev/null +++ b/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.data.defaults.spec.js @@ -0,0 +1,29 @@ +const dayjs = require('dayjs') + +describe("Test Data section of Seeding Input form", () =>{ + + + beforeEach(() => { + cy.login('manager1', 'farmdata2') + cy.visit('/farm/fd2-field-kit/seedingInput') + }) + + it("Checks the Data header", () => { + cy.get("[data-cy=data-header").should('have.text',"Data") + }) + + it("Checks the Date input defaults", () => { + cy.get("[data-cy=date-selection").should('not.be.disabled') + cy.get('[data-cy=date-selection] input[type=date]').should('be.visible').should('have.value', dayjs().format('YYYY-MM-DD')); + }) + + it("Checks the crop-dropdown defaults", ()=>{ + cy.waitForPage() + + cy.get("[data-cy=crop-selection] > [data-cy=dropdown-input]").should("not.be.disabled") + cy.get("[data-cy=crop-selection] > [data-cy=dropdown-input]").should('have.value', null) + cy.get("[data-cy=crop-selection] > [data-cy=dropdown-input] > [data-cy=option0").should("have.text","ARUGULA") + cy.get("[data-cy=crop-selection] > [data-cy=dropdown-input] > [data-cy=option110").should("have.text","ZUCCHINI") + cy.get("[data-cy=crop-selection] > select").find("option").should("have.length", 111); + }) +}) \ No newline at end of file diff --git a/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.html b/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.html index 172cf138..3b5b0db6 100644 --- a/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.html +++ b/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.html @@ -12,7 +12,7 @@

Seeding Input Log


- Data + Data
Date:
@@ -25,7 +25,7 @@

Seeding Input Log

-

Please Select Tray Seeding or Direct Seeding

+

Please Select Tray Seeding or Direct Seeding

Area: @@ -53,7 +53,7 @@

Seeding Input Log

- Labor + Labor
diff --git a/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.labor.defaults.spec.js b/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.labor.defaults.spec.js new file mode 100644 index 00000000..407fdba6 --- /dev/null +++ b/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.labor.defaults.spec.js @@ -0,0 +1,52 @@ +describe('Test the labor input section', () => { + + beforeEach(() => { + cy.login('manager1', 'farmdata2') + cy.visit('/farm/fd2-field-kit/seedingInput') + }) + + it("Check header", () => { + cy.get("[data-cy='labor-header']") + .should("have.text", "Labor") + }) + + it("Checks Worker input test", () => { + cy.get("[data-cy='num-worker-input'] > [data-cy=text-input]") + .should('have.value', '') + cy.get("[data-cy='num-worker-input'] > [data-cy=text-input]") + .should('have.prop', 'disabled', false) + }) + + it("Checks Time worked input test", () => { + cy.get("[data-cy='minute-input'] > [data-cy=text-input]") + .should('have.value', '') + cy.get("[data-cy='minute-input'] > [data-cy=text-input]") + .should('have.prop', 'disabled', false) + }) + + it("Checks unit dropdown selection activates correct selected time unit", () => { + //check minute-input + cy.get("[data-cy='time-unit'] > [data-cy='dropdown-input']") + .select("minutes") + cy.get("[data-cy='minute-input']").should("be.visible") + cy.get("[data-cy='hour-input']").should("not.be.visible") + + //check hour-input + cy.get("[data-cy='time-unit'] > [data-cy='dropdown-input']") + .select("hours") + cy.get("[data-cy='hour-input']").should("be.visible") + cy.get("[data-cy='minute-input']").should("not.be.visible") + }) + + it("Checks Time units dropdown", () => { + cy.get("[data-cy='time-unit'] > [data-cy='dropdown-input'] > [data-cy='option0']") + .should('have.value', 'minutes') + cy.get("[data-cy='time-unit'] > [data-cy='dropdown-input'] > [data-cy='option1']") + .should('have.value', 'hours') + }) + + it("Checks Time units default is minutes", () => { + cy.get("[data-cy='time-unit'] > [data-cy='dropdown-input']") + .find('option:selected').should("have.text", "minutes") + }) +}) diff --git a/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.type.defaults.spec.js b/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.type.defaults.spec.js new file mode 100644 index 00000000..eeee7d8e --- /dev/null +++ b/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.type.defaults.spec.js @@ -0,0 +1,40 @@ + +/** + * The seeding type selection section of the Seeding Input Log allows the user to select + * the appropriate type of seeding, either tray seeding or direct seeding, for their log. + * This spec tests that both of these options are enabled, that neither of these options + * are selected by default, that a message is visible directing the user to select either + * the Tray or Direct type, and that the form elements for Tray and Direct are not visible + * unless their respective option has been selected. + */ + +describe("Test the seeding input type default values in the Seeding Input Log", () => { + beforeEach(() => { + cy.login("manager1", "farmdata2") + cy.visit("/farm/fd2-field-kit/seedingInput") + }) + + it("Tests whether Tray and Direct elements are enabled", () => { + cy.get("[data-cy='tray-seedings']").should('be.enabled') + cy.get("[data-cy='direct-seedings']").should('be.enabled') + }) + + it("Tests that neither the Tray nor the Direct element is selected, and a message to prompt the selection of either element is visible", () => { + cy.get("[data-cy='tray-seedings']").should('not.be.selected') + cy.get("[data-cy='direct-seedings']").should('not.be.selected') + cy.get("[data-cy='seeding-type-prompt']").should('be.visible') + }) + + it("Tests that the form elements for Tray or Direct are not visible until clicked", () => { + //check form elements in tray seeding - should not be visible until tray radio button clicked + cy.get("[data-cy='tray-area-selection']").should('not.be.visible') + cy.get("[data-cy='num-cell-input']").should('not.be.visible') + cy.get("[data-cy='num-tray-input']").should('not.be.visible') + cy.get("[data-cy='num-seed-input']").should('not.be.visible') + ///check form elements in direct seeding - should not be visible until direct radio button clicked + cy.get("[data-cy='direct-area-selection']").should('not.be.visible') + cy.get("[data-cy='num-rowbed-input']").should('not.be.visible') + cy.get("[data-cy='unit-feet']").should('not.be.visible') + cy.get("[data-cy='num-feet-input']").should('not.be.visible') + }) +}) From 6a6bdd5d3a1b7ce0d1f10228006133fc193a8b61 Mon Sep 17 00:00:00 2001 From: Grant Braught Date: Wed, 12 Apr 2023 13:07:56 -0400 Subject: [PATCH 03/74] Revert "Db test waits" (#647) Reverts DickinsonCollege/FarmData2#646 This was to be merged into the FD2School_FarmData2 fork instead of into the upstream. --- .../dbtest/dbtest.get.seedings.spec.js | 102 -------- .../fd2_example/dbtest/dbtest.html | 48 ---- .../fd2_example/dbtest/dbtest.maps.spec.js | 106 -------- .../dbtest/dbtest.modify.seedings.spec.js | 240 ------------------ .../dbtest/dbtest.sessionToken.spec.js | 68 ----- .../fd2_example/fd2_example.module | 9 - .../seedingInput.data.defaults.spec.js | 29 --- .../seedingInput/seedingInput.html | 6 +- .../seedingInput.labor.defaults.spec.js | 52 ---- .../seedingInput.type.defaults.spec.js | 40 --- 10 files changed, 3 insertions(+), 697 deletions(-) delete mode 100644 farmdata2/farmdata2_modules/fd2_example/dbtest/dbtest.get.seedings.spec.js delete mode 100644 farmdata2/farmdata2_modules/fd2_example/dbtest/dbtest.html delete mode 100644 farmdata2/farmdata2_modules/fd2_example/dbtest/dbtest.maps.spec.js delete mode 100644 farmdata2/farmdata2_modules/fd2_example/dbtest/dbtest.modify.seedings.spec.js delete mode 100644 farmdata2/farmdata2_modules/fd2_example/dbtest/dbtest.sessionToken.spec.js delete mode 100644 farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.data.defaults.spec.js delete mode 100644 farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.labor.defaults.spec.js delete mode 100644 farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.type.defaults.spec.js diff --git a/farmdata2/farmdata2_modules/fd2_example/dbtest/dbtest.get.seedings.spec.js b/farmdata2/farmdata2_modules/fd2_example/dbtest/dbtest.get.seedings.spec.js deleted file mode 100644 index baa3954e..00000000 --- a/farmdata2/farmdata2_modules/fd2_example/dbtest/dbtest.get.seedings.spec.js +++ /dev/null @@ -1,102 +0,0 @@ -/** - * The tests in this file illustrate how to get seeding logs from - * the database using the functions in the FarmOSAPI library and then - * make assertions about their contents. - */ - -/* - * The dayjs library can be imported into a test using the following - * line. This is particularly useful for conversions between dates - * and time stamps. - */ -const dayjs = require('dayjs') - -var FarmOSAPI = require("../../resources/FarmOSAPI.js") -var getRecord = FarmOSAPI.getRecord -var getAllPages = FarmOSAPI.getAllPages - -describe("Examples of getting seeding logs via the FarmOSAPI functions in a test", () => { - - beforeEach(() => { - cy.login("manager1", "farmdata2") - - /* - * Load any maps (see dbtest.maps.spec) or get a session token - * (see dbtest.sessionToken.spec.js) as necessary here. - */ - - cy.visit("/farm/fd2-example/dbTest") - cy.waitForPage() - }) - - /** - * If you have the id of a log it can be retrieved using the getRecord - * function from the FarmOSAPI library. - */ - it("Get a seeding log by its id", () => { - - /* - * Request the log with id=6. This is a direct seeding of Radish in - * CHUAU-2 on February 04, 2019. - */ - cy.wrap(getRecord("/log.json?id=6")).as("get-log") - - /* - * Wait for the promise returned from getRecord to resolve. - */ - cy.get("@get-log") - .then((response) => { - - /* - * Once the response is received we can make assertions about the values - * in the response to verify that it is as expected. - * - * To know the structure and content of the log it is helpful to access - * the URL in a browser or through a tool such as Hoppscotch or postman - * and inspect the JSON directly. - */ - expect(response.data.list[0].movement.area[0].name).to.equal("CHUAU-2") - expect(response.data.list[0].type).to.equal("farm_seeding") - expect(response.data.list[0].log_category[0].name).to.equal("Direct Seedings") - }) - }) - - /** - * If you want all of the logs in a date range, they can be retrieved - * using the getAllPAges function from the FarmOSAPI library. - */ - it("Get all of the seeding logs in a date range", () => { - - // Get the start and end timestamps for the date range we want. - let start = dayjs("2020-05-01","YYYY-MM-DD").unix() - // Add 1 day here to get to the end of May 5th. - let end = dayjs("2020-05-05","YYYY-MM-DD").add(1,'day').unix() - - /* - * Request all of the farm seedings between 2020-05-01 and 2020-05-05. There - * were 14 seeding in this date range. - */ - let url = "/log.json?type=farm_seeding×tamp[gt]="+start+"×tamp[lt]="+end - let seedingLogs = [] - cy.wrap(getAllPages(url, seedingLogs)).as("get-logs") - - /* - * Wait for the promise returned from getAllPages to resolve. - */ - cy.get("@get-logs") - .then((response) => { - - /* - * Once the response is received we can make assertions about the values - * in the array that was filled with the results to verify that they are - * as expected. - * - * To know the structure and content of the array it is helpful to access - * the URL in a browser or through a tool such as Hoppscotch or postman - * and inspect the JSON directly. - */ - - expect(seedingLogs.length).to.equal(14) - }) - }) -}) \ No newline at end of file diff --git a/farmdata2/farmdata2_modules/fd2_example/dbtest/dbtest.html b/farmdata2/farmdata2_modules/fd2_example/dbtest/dbtest.html deleted file mode 100644 index 8f73b9bf..00000000 --- a/farmdata2/farmdata2_modules/fd2_example/dbtest/dbtest.html +++ /dev/null @@ -1,48 +0,0 @@ -
- -

Unlike other sample modules, this sample module does not have content here. - Instead, the dbTest sample module consists of a number of .spec.js - files that illustrate common patterns used in tests that - interact with the database. The contents of those files should be reviewed - their comments read and studied. In addition, the tests can be run in - the Cypress Test environment.

- -

Each of the files has comments describing what they are doing. It is recommended - to study the files in the order below as later examples may not include comments - describing things that are documented in an earlier example.

-
    -
  1. dbtest.maps.spec.js
  2. : Shows how to get maps (e.g. userToIDMap) from the database and use them in tests. -
  3. dbtest.get.seedings.js
  4. : Shows how to get seeding logs from the database and use them in tests. -
  5. dbtest.sessionToken.spec.js
  6. : Shows how to get a session token needed for operations that modify the database. -
  7. dbtest.modify.seedings.spec.js
  8. : Shows how to create, delete and update seeding logs in the database. -
- - -
{{ pageLoaded }}
-
- - \ No newline at end of file diff --git a/farmdata2/farmdata2_modules/fd2_example/dbtest/dbtest.maps.spec.js b/farmdata2/farmdata2_modules/fd2_example/dbtest/dbtest.maps.spec.js deleted file mode 100644 index 10b1b30b..00000000 --- a/farmdata2/farmdata2_modules/fd2_example/dbtest/dbtest.maps.spec.js +++ /dev/null @@ -1,106 +0,0 @@ -/** - * The tests in this file show how to get a map from the FarmOSAPI and - * use it in tests. This can be useful when the one of the maps is - * needed to translate between ids and names in a test (e.g. from - * crop id to crop name or vice versa). - */ - -/** - * Tests that interact with the database will often make use of the - * Functions in the FarmOSAPI library to access and modify the database. - * - * The lines below illustrate how functions from the FarmOSAPI library - * can be brought into a spec.js file for testing. - * - * The farmdata2/README.md contains information about the documentation - * for all of the functions in the FarmOSAPI library. - */ -var FarmOSAPI = require('../../resources/FarmOSAPI.js') -var getUserToIDMap = FarmOSAPI.getUserToIDMap - -describe('Example of getting a map to via the FarmOSAPI functions in a test', () => { - - /* - * If multiple tests in the same describe will be using the userToIDMap - * then define a variable, like userMap here, and set it in the beforeEach - * as illustrated below. This variable will then be accessible in all of the - * tests (its). - * - * If the map is only needed in a single test (it) then the same approach can - * be used within that test (it) and this variable will not be necessary. - */ - let userMap = null - - beforeEach(() => { - // Log in - cy.login("manager1", "farmdata2") - .then (() => { - - /* - * Once we are logged in we can Use the getUserToIDMap() function from the FarmOSAPI library - * to get the map. - * - * The getUserToIDMap() function makes an API call to farmOS to get the data and create the map. - * This function returns a promise that resolves to the map when the API call returns. - * - * The map will not be available until the promise returned by the getUserToIDMap() - * resolves. So we need to wait for that promise to resolve. - * The cy.wrap(...).as(...) command is how we setup to wait for a promise to resolve in Cypress. - * - * The name "get-map" used here is just an identifier that describes what we are waiting on. - * It is used below when we actually wait for the promise to resolve. - */ - cy.wrap(getUserToIDMap()).as("get-map") - }) - - /* - * We use cy.get(...).then(...) in Cypress to wait for a promise that has - * been wrapped to resolve. - * - * Here we wait for the promise wrapped as "get-map" above. - */ - cy.get("@get-map") - .then((map) => { - /* - * The parameter map will be set to the map from the promise. Here we assign - * it to the userMap variable so that it will be accessible to all of the it - * tests. - */ - userMap = map - }) - - // Visit the page that will be tested. - cy.visit("/farm/fd2-example/dbTest") - - /* - * Almost always the page being visited will load maps and other - * content in its created() hook. If the page follows the pattern - * used in FarmData2 pages (see Maps.html for an example with explanation) - * then this causes the tests to wait here until the entire page and - * all of its data is loaded before continuing. - */ - cy.waitForPage() - }) - - /** - * All tests can then use the userToIDMap that was assigned to the - * userMap variable in the beforeEach. - */ - it("Use the map in a test", () => { - - /* - * The tests can then use the userMap in tests. - * - * The expect(...) function is like the .should(...) statement. While - * .should(...) is used to make assertions about elements found with cy.get(...), - * expect(...) is used to make assertions about variables. - * - * For every assertion that can be made with .should(...) there is an equivalent - * assertion for use with expect(...). For a complete reference see: - * https://docs.cypress.io/guides/references/assertions - */ - expect(userMap).to.not.be.null - expect(userMap.get("manager1")).to.equal("3") - expect(userMap.get("worker1")).to.equal("5") - }) -}) \ No newline at end of file diff --git a/farmdata2/farmdata2_modules/fd2_example/dbtest/dbtest.modify.seedings.spec.js b/farmdata2/farmdata2_modules/fd2_example/dbtest/dbtest.modify.seedings.spec.js deleted file mode 100644 index 78f7b7f6..00000000 --- a/farmdata2/farmdata2_modules/fd2_example/dbtest/dbtest.modify.seedings.spec.js +++ /dev/null @@ -1,240 +0,0 @@ -/** - * The tests in this file show how to create new seeing logs, delete - * seeding logs and modify existing seeding logs. - */ -const dayjs = require('dayjs') - -var FarmOSAPI = require('../../resources/FarmOSAPI.js') -var deleteRecord = FarmOSAPI.deleteRecord -var getSessionToken = FarmOSAPI.getSessionToken -var createRecord = FarmOSAPI.createRecord - -describe('Example of creating and deleting seeding logs in a test', () => { - - /* - * We are going to be modifying the database so we will need a session token. - * We will also be using the session token in multiple tests (its). So we define - * a variable here that will be set in the beforeEach(). - */ - let sessionToken = null - - beforeEach(() => { - // Log in - cy.login("manager1", "farmdata2") - .then (() => { - cy.wrap(getSessionToken()).as("get-token") - }) - - cy.get("@get-token").then((token) => { - sessionToken = token - }) - - cy.visit("/farm/fd2-example/dbTest") - cy.waitForPage() - }) - - /** - * A context allows us to have a beforeEach and an afterEach just for this test. - * - * The beforeEach in the context will run before the it in the context. It can be used - * to create a log that is used for testing. - * - * The afterEach in the context will run after the it in the context. It can be used - * it to delete any logs that were created for the test or during the test. - */ - context("Create a new log, do some tests, delete the log(s) ", () => { - - let logID = null - - /** - * This beforeEach will run before the it in this context. It is used to - * create a new log. The id of the log is saved in the logID variable - * declared in the context so that it can be deleted in the afterEach. - */ - beforeEach(() => { - cy.wrap(makeDirectSeeding("Test Seeding")).as("make-seeding") - //cy.wrap(makeDirectSeeding("Test Seeding")).as("make-seeding") - - cy.get("@make-seeding") - .then((response) => { - logID = response.data.id - }) - }) - - /** - * Do your testing in this it. - */ - it("Do your test using the new log(s) here.", () => { - /* - * This test can be changed to expect(true).to.equal(true) - * in order to check that the record is still deleted by the - * afterEach() even if the test fails. - */ - expect(true).to.equal(true) - }) - - /** - * Delete the log created in the beforeEach so that the database - * is back to where it started. - */ - afterEach(() => { - cy.wrap(deleteRecord("/log/"+logID, sessionToken)).as("delete-seeding") - cy.get("@delete-seeding") - }) - }) - - /** - * This function will return a promise that creates a new Direct Seeding log. - */ - function makeDirectSeeding(name) { - let json = { - "name": name, - "type": "farm_seeding", - "timestamp": dayjs("1999-01-01").unix(), - "done": "1", //any seeding recorded is done. - "notes": { - "value": "This is a test direct seeding", - "format": "farm_format" - }, - "asset": [{ - "id": "6", //Associated planting - "resource": "farm_asset" - }], - "log_category": [{ - "id": "240", - "resource": "taxonomy_term" - }], - "movement": { - "area": [{ - "id": "180", - "resource": "taxonomy_term" - }] - }, - "quantity": [ - { - "measure": "length", - "value": "10", //total row feet - "unit": { - "id": "20", - "resource": "taxonomy_term" - }, - "label": "Amount planted" - }, - { - "measure": "ratio", - "value": "20", - "unit": { - "id": "38", - "resource": "taxonomy_term" - }, - "label": "Rows/Bed" - }, - { - "measure": "time", - "value": "1.23", - "unit": { - "id": "29", - "resource": "taxonomy_term" - }, - "label": "Labor" - }, - { - "measure": "count", - "value": "30", - "unit": { - "id": "15", - "resource": "taxonomy_term" - }, - "label": "Workers" - }, - ], - "created": dayjs().unix(), - "lot_number": "N/A (No Variety)", - "data": "{\"crop_tid\": \"161\"}" - } - - return createRecord('/log', json, sessionToken) - } - - /** - * This function will return a promise that creates a new Tray Seeding log. - */ - function makeTraySeeding(name) { - let json = { - "name": name, - "type": "farm_seeding", - "timestamp": dayjs("1999-01-01").unix(), - "done": "1", //any seeding recorded is done. - "notes": { - "value": "This is a test tray seeding", - "format": "farm_format" - }, - "asset": [{ - "id": "6", //Associated planting - "resource": "farm_asset" - }], - "log_category": [{ - "id": "241", - "resource": "taxonomy_term" - }], - "movement": { - "area": [{ - "id": "180", - "resource": "taxonomy_term" - }] - }, - "quantity": [ - { - "measure": "count", - "value": "10", //number of seed planted - "unit": { - "id": "17", - "resource": "taxonomy_term" - }, - "label": "Seeds planted" - }, - { - "measure": "count", - "value": "20", //number of flats(trays) - "unit": { - "id": "12", - "resource": "taxonomy_term" - }, - "label": "Flats used" - }, - { - "measure": "ratio", - "value": "30", //cells per flat - "unit": { - "id": "37", - "resource": "taxonomy_term" - }, - "label": "Cells/Flat" - }, - { - "measure": "time", - "value": "1.23", //hours worked - "unit": { - "id": "29", - "resource": "taxonomy_term" - }, - "label": "Labor" - }, - { - "measure": "count", - "value": "40", - "unit": { - "id": "15", - "resource": "taxonomy_term" - }, - "label": "Workers" - }, - ], - "created": dayjs().unix(), - "lot_number": "N/A (No Variety)", - "data": "{\"crop_tid\": \"161\"}" - } - - return createRecord('/log', json, sessionToken) - } -}) \ No newline at end of file diff --git a/farmdata2/farmdata2_modules/fd2_example/dbtest/dbtest.sessionToken.spec.js b/farmdata2/farmdata2_modules/fd2_example/dbtest/dbtest.sessionToken.spec.js deleted file mode 100644 index 7efeea76..00000000 --- a/farmdata2/farmdata2_modules/fd2_example/dbtest/dbtest.sessionToken.spec.js +++ /dev/null @@ -1,68 +0,0 @@ -/** - * Any test that modify the database (create logs, modify logs, delete logs) - * will need to have a session token. The session token ensures that the user - * has permission to modify the database. - * - * The sample code in this file illustrates how tests can get a session token. - */ - -var FarmOSAPI = require("../../resources/FarmOSAPI.js") -var getSessionToken = FarmOSAPI.getSessionToken - -describe("Illustration of how to get a session token.", () => { - - /* - * If multiple tests in the same describe will be using the FarmOSAPI functions - * to modify the database then define a variable here and set it in the - * beforeEach as illustrated below. - */ - let sessionToken = null; - - beforeEach(() => { - // Log in as a user with permissions to modify the database. - cy.login("manager1", "farmdata2") - .then(() => { - /* - * Once we are logged in, use the getSessionToken() function from the - * FarmOSAPI library makes an API call to farmOS to get a session token - * as the logged in user. - * - * The cy.wrap(...).as(...) allows us to wait (just below) for the - * API request for the session token to complete before we continue and - * try to use the sessionToken variable. - * - * The name "get-token" is just an identifier for the wrap that we will use - * below when we wait for the API call to complete. - */ - cy.wrap(getSessionToken()).as("get-token") - }) - - /* - * This cy.get uses the name "get-token" from the cy.wrap above to wait here - * until the session token is returned from the API request. When the session - * token is returned it is assigned to the sessionToken variable defined above. - */ - cy.get("@get-token").then((token) => { - sessionToken = token - }) - - // Visit the page that will be tested. - cy.visit("/farm/fd2-example/dbTest") - cy.waitForPage() - }) - - /** - * Any it can then use the sessionToken variable to modify the database. - */ - it("Check that the sessionToken variable is not null", () => { - /* - * The tests would then use the sessionToken in calls to the functions - * in the FarmOSAPI library as needed. The examples in the other .spec.js - * files in this module illustrate those use cases. - * - * Here we test that the sessionToken variable is not null just to show - * that it was set. - */ - expect(sessionToken).to.not.be.null - }) -}) \ No newline at end of file diff --git a/farmdata2/farmdata2_modules/fd2_example/fd2_example.module b/farmdata2/farmdata2_modules/fd2_example/fd2_example.module index 60f0864a..6b080cfc 100644 --- a/farmdata2/farmdata2_modules/fd2_example/fd2_example.module +++ b/farmdata2/farmdata2_modules/fd2_example/fd2_example.module @@ -108,15 +108,6 @@ function fd2_example_menu() { 'weight' => 120, ); - $items['farm/fd2-example/dbtest'] = array( - 'title' => 'dbtest', - 'type' => MENU_LOCAL_TASK, - 'page callback' => 'fd2_example_view', - 'page arguments' => array('dbtest'), - 'access arguments' => array('view fd2 example'), - 'weight' => 125, - ); - return $items; }; diff --git a/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.data.defaults.spec.js b/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.data.defaults.spec.js deleted file mode 100644 index 0d46bde3..00000000 --- a/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.data.defaults.spec.js +++ /dev/null @@ -1,29 +0,0 @@ -const dayjs = require('dayjs') - -describe("Test Data section of Seeding Input form", () =>{ - - - beforeEach(() => { - cy.login('manager1', 'farmdata2') - cy.visit('/farm/fd2-field-kit/seedingInput') - }) - - it("Checks the Data header", () => { - cy.get("[data-cy=data-header").should('have.text',"Data") - }) - - it("Checks the Date input defaults", () => { - cy.get("[data-cy=date-selection").should('not.be.disabled') - cy.get('[data-cy=date-selection] input[type=date]').should('be.visible').should('have.value', dayjs().format('YYYY-MM-DD')); - }) - - it("Checks the crop-dropdown defaults", ()=>{ - cy.waitForPage() - - cy.get("[data-cy=crop-selection] > [data-cy=dropdown-input]").should("not.be.disabled") - cy.get("[data-cy=crop-selection] > [data-cy=dropdown-input]").should('have.value', null) - cy.get("[data-cy=crop-selection] > [data-cy=dropdown-input] > [data-cy=option0").should("have.text","ARUGULA") - cy.get("[data-cy=crop-selection] > [data-cy=dropdown-input] > [data-cy=option110").should("have.text","ZUCCHINI") - cy.get("[data-cy=crop-selection] > select").find("option").should("have.length", 111); - }) -}) \ No newline at end of file diff --git a/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.html b/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.html index 3b5b0db6..172cf138 100644 --- a/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.html +++ b/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.html @@ -12,7 +12,7 @@

Seeding Input Log


- Data + Data
Date:
@@ -25,7 +25,7 @@

Seeding Input Log

-

Please Select Tray Seeding or Direct Seeding

+

Please Select Tray Seeding or Direct Seeding

Area: @@ -53,7 +53,7 @@

Seeding Input Log

- Labor + Labor
diff --git a/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.labor.defaults.spec.js b/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.labor.defaults.spec.js deleted file mode 100644 index 407fdba6..00000000 --- a/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.labor.defaults.spec.js +++ /dev/null @@ -1,52 +0,0 @@ -describe('Test the labor input section', () => { - - beforeEach(() => { - cy.login('manager1', 'farmdata2') - cy.visit('/farm/fd2-field-kit/seedingInput') - }) - - it("Check header", () => { - cy.get("[data-cy='labor-header']") - .should("have.text", "Labor") - }) - - it("Checks Worker input test", () => { - cy.get("[data-cy='num-worker-input'] > [data-cy=text-input]") - .should('have.value', '') - cy.get("[data-cy='num-worker-input'] > [data-cy=text-input]") - .should('have.prop', 'disabled', false) - }) - - it("Checks Time worked input test", () => { - cy.get("[data-cy='minute-input'] > [data-cy=text-input]") - .should('have.value', '') - cy.get("[data-cy='minute-input'] > [data-cy=text-input]") - .should('have.prop', 'disabled', false) - }) - - it("Checks unit dropdown selection activates correct selected time unit", () => { - //check minute-input - cy.get("[data-cy='time-unit'] > [data-cy='dropdown-input']") - .select("minutes") - cy.get("[data-cy='minute-input']").should("be.visible") - cy.get("[data-cy='hour-input']").should("not.be.visible") - - //check hour-input - cy.get("[data-cy='time-unit'] > [data-cy='dropdown-input']") - .select("hours") - cy.get("[data-cy='hour-input']").should("be.visible") - cy.get("[data-cy='minute-input']").should("not.be.visible") - }) - - it("Checks Time units dropdown", () => { - cy.get("[data-cy='time-unit'] > [data-cy='dropdown-input'] > [data-cy='option0']") - .should('have.value', 'minutes') - cy.get("[data-cy='time-unit'] > [data-cy='dropdown-input'] > [data-cy='option1']") - .should('have.value', 'hours') - }) - - it("Checks Time units default is minutes", () => { - cy.get("[data-cy='time-unit'] > [data-cy='dropdown-input']") - .find('option:selected').should("have.text", "minutes") - }) -}) diff --git a/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.type.defaults.spec.js b/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.type.defaults.spec.js deleted file mode 100644 index eeee7d8e..00000000 --- a/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.type.defaults.spec.js +++ /dev/null @@ -1,40 +0,0 @@ - -/** - * The seeding type selection section of the Seeding Input Log allows the user to select - * the appropriate type of seeding, either tray seeding or direct seeding, for their log. - * This spec tests that both of these options are enabled, that neither of these options - * are selected by default, that a message is visible directing the user to select either - * the Tray or Direct type, and that the form elements for Tray and Direct are not visible - * unless their respective option has been selected. - */ - -describe("Test the seeding input type default values in the Seeding Input Log", () => { - beforeEach(() => { - cy.login("manager1", "farmdata2") - cy.visit("/farm/fd2-field-kit/seedingInput") - }) - - it("Tests whether Tray and Direct elements are enabled", () => { - cy.get("[data-cy='tray-seedings']").should('be.enabled') - cy.get("[data-cy='direct-seedings']").should('be.enabled') - }) - - it("Tests that neither the Tray nor the Direct element is selected, and a message to prompt the selection of either element is visible", () => { - cy.get("[data-cy='tray-seedings']").should('not.be.selected') - cy.get("[data-cy='direct-seedings']").should('not.be.selected') - cy.get("[data-cy='seeding-type-prompt']").should('be.visible') - }) - - it("Tests that the form elements for Tray or Direct are not visible until clicked", () => { - //check form elements in tray seeding - should not be visible until tray radio button clicked - cy.get("[data-cy='tray-area-selection']").should('not.be.visible') - cy.get("[data-cy='num-cell-input']").should('not.be.visible') - cy.get("[data-cy='num-tray-input']").should('not.be.visible') - cy.get("[data-cy='num-seed-input']").should('not.be.visible') - ///check form elements in direct seeding - should not be visible until direct radio button clicked - cy.get("[data-cy='direct-area-selection']").should('not.be.visible') - cy.get("[data-cy='num-rowbed-input']").should('not.be.visible') - cy.get("[data-cy='unit-feet']").should('not.be.visible') - cy.get("[data-cy='num-feet-input']").should('not.be.visible') - }) -}) From e92f04f147e8016a7ad81c886a5477d054bef731 Mon Sep 17 00:00:00 2001 From: Grant Braught Date: Sun, 30 Apr 2023 15:47:25 -0400 Subject: [PATCH 04/74] Created Swagger Doc for fd2_api; Refactored of cropmap and areamap in seeding report; Updated FarmData2API.js (#650) __Pull Request Description__ See PR #630 for a full description of changes. Closes #630, #597, #606, #607 --- __Licensing Certification__ FarmData2 is a [Free Cultural Work](https://freedomdefined.org/Definition) and all accepted contributions are licensed as described in the LICENSE.md file. This requires that the contributor holds the rights to do so. By submitting this pull request __I certify that I satisfy the terms of the [Developer Certificate of Origin](https://developercertificate.org/)__ for its contents. --------- Co-authored-by: JingyuMarcelLee Co-authored-by: Jingyu (Marcel) Lee <46755208+JingyuMarcelLee@users.noreply.github.com> --- docker/api/Dockerfile | 8 +- docker/api/after.bash | 3 +- docker/api/before.bash | 3 +- docker/api/repo.txt | 2 +- docker/docker-compose.yml | 2 +- .../farmdata2_api/cypress/areas.api.spec.js | 32 + .../farmdata2_api/cypress/crops.api.spec.js | 32 + .../farmdata2_api/cypress/users.api.spec.js | 32 + farmdata2/farmdata2_api/package-lock.json | 1200 ++++++++++++++++- farmdata2/farmdata2_api/package.json | 3 +- farmdata2/farmdata2_api/src/app.js | 295 +++- farmdata2/farmdata2_api/src/swaggerspec.json | 24 + .../farmdata2_modules/resources/FarmOSAPI.js | 64 +- .../resources/FarmOSAPI.spec.js | 2 +- 14 files changed, 1662 insertions(+), 40 deletions(-) create mode 100644 farmdata2/farmdata2_api/cypress/areas.api.spec.js create mode 100644 farmdata2/farmdata2_api/cypress/crops.api.spec.js create mode 100644 farmdata2/farmdata2_api/cypress/users.api.spec.js create mode 100644 farmdata2/farmdata2_api/src/swaggerspec.json diff --git a/docker/api/Dockerfile b/docker/api/Dockerfile index 1514a6d1..366e7d29 100644 --- a/docker/api/Dockerfile +++ b/docker/api/Dockerfile @@ -3,9 +3,11 @@ FROM node:alpine3.17 WORKDIR /app -# Get the package.json and install dependencies -COPY package.json . -RUN npm install +# Get the package.json, package-lock.json and install the dependencies +# NOTE: Use npm ci here so that we use package-lock.json and +# so that we are alerted if there are any changes. +COPY package.json package-lock.json ./ +RUN npm ci # Start the express api hander. CMD ["npm", "start"] \ No newline at end of file diff --git a/docker/api/after.bash b/docker/api/after.bash index 43fa448e..53a77105 100644 --- a/docker/api/after.bash +++ b/docker/api/after.bash @@ -1,2 +1,3 @@ # Delete the package.json file that was copied into the build context. -rm package.json \ No newline at end of file +rm package.json +rm package-lock.json \ No newline at end of file diff --git a/docker/api/before.bash b/docker/api/before.bash index 7e8ce85a..8e68c8b9 100644 --- a/docker/api/before.bash +++ b/docker/api/before.bash @@ -1,2 +1,3 @@ # Copy the package.json file to the build context. -cp ../../farmdata2/farmdata2_api/package.json . +cp ../../farmdata2/farmdata2_api/package.json ./ +cp ../../farmdata2/farmdata2_api/package-lock.json ./ \ No newline at end of file diff --git a/docker/api/repo.txt b/docker/api/repo.txt index 43ef8435..43ba32af 100644 --- a/docker/api/repo.txt +++ b/docker/api/repo.txt @@ -1 +1 @@ -api:fd2.1 +api:fd2.2 diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 90597045..06777680 100755 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -1,7 +1,7 @@ version: '2.2' services: express: - image: farmdata2/api:fd2.1 + image: farmdata2/api:fd2.2 container_name: fd2_api ports: - 8080:80 diff --git a/farmdata2/farmdata2_api/cypress/areas.api.spec.js b/farmdata2/farmdata2_api/cypress/areas.api.spec.js new file mode 100644 index 00000000..15978a32 --- /dev/null +++ b/farmdata2/farmdata2_api/cypress/areas.api.spec.js @@ -0,0 +1,32 @@ +describe("Test http://fd2_api/areas", () => { + before(() => { + // change base url from http://fd2_farmdata2 to http://fd2_api + Cypress.config("baseUrl", "http://fd2_api"); + }); + + it("Test mapByName", () => { + cy.request("/areas/mapbyName").as("mapByName"); + cy.get("@mapByName").then((mapByName) => { + expect(mapByName.status).to.eq(200); + assert.isObject(mapByName.body, "mapByName Response is an object"); + expect(Object.keys(mapByName.body)[0]).to.eq("A"); + expect( + Object.keys(mapByName.body)[Object.keys(mapByName.body).length - 1] + ).to.eq("Z"); + expect(Object.keys(mapByName.body).length).to.eq(70); + }); + }); + + it("Test mapById", () => { + cy.request("/areas/mapById").as("mapById"); + cy.get("@mapById").then((mapById) => { + expect(mapById.status).to.eq(200); + assert.isObject(mapById.body, "mapById Response is an object"); + expect(Object.keys(mapById.body)[0]).to.eq("170"); + expect( + Object.keys(mapById.body)[Object.keys(mapById.body).length - 1] + ).to.eq("239"); + expect(Object.keys(mapById.body).length).to.eq(70); + }); + }); +}); \ No newline at end of file diff --git a/farmdata2/farmdata2_api/cypress/crops.api.spec.js b/farmdata2/farmdata2_api/cypress/crops.api.spec.js new file mode 100644 index 00000000..fb5560bf --- /dev/null +++ b/farmdata2/farmdata2_api/cypress/crops.api.spec.js @@ -0,0 +1,32 @@ +describe('Test http://fd2_api/crops', () => { + before(() => { + // change base url from http://fd2_farmdata2 to http://fd2_api + Cypress.config('baseUrl', "http://fd2_api") + }) + + it('Test mapByName', () => { + cy.request('/crops/mapbyName').as('mapByName'); + cy.get('@mapByName').then(mapByName => { + expect(mapByName.status).to.eq(200); + assert.isObject(mapByName.body, 'mapByName Response is an object') + expect(Object.keys(mapByName.body)[0]).to.eq("ARUGULA"); + expect( + Object.keys(mapByName.body)[Object.keys(mapByName.body).length - 1] + ).to.eq("ZUCCHINI"); + expect(Object.keys(mapByName.body).length).to.eq(111); + }); + }) + + it('Test mapById', () => { + cy.request('/crops/mapById').as('mapById'); + cy.get('@mapById').then(mapById => { + expect(mapById.status).to.eq(200); + assert.isObject(mapById.body, 'mapById Response is an object') + expect(Object.keys(mapById.body)[0]).to.eq("41"); + expect( + Object.keys(mapById.body)[Object.keys(mapById.body).length - 1] + ).to.eq("169"); + expect(Object.keys(mapById.body).length).to.eq(111); + }); + }) +}) \ No newline at end of file diff --git a/farmdata2/farmdata2_api/cypress/users.api.spec.js b/farmdata2/farmdata2_api/cypress/users.api.spec.js new file mode 100644 index 00000000..1456c023 --- /dev/null +++ b/farmdata2/farmdata2_api/cypress/users.api.spec.js @@ -0,0 +1,32 @@ +describe('Test http://fd2_api/users', () => { + before(() => { + // change base url from http://fd2_farmdata2 to http://fd2_api + Cypress.config('baseUrl', "http://fd2_api") + }) + + it('Test mapByName', () => { + cy.request('/users/mapbyName').as('mapByName'); + cy.get('@mapByName').then(mapByName => { + expect(mapByName.status).to.eq(200); + assert.isObject(mapByName.body, 'mapByName Response is an object'); + expect(Object.keys(mapByName.body)[0]).to.eq("admin"); + expect( + Object.keys(mapByName.body)[Object.keys(mapByName.body).length - 1] + ).to.eq("worker5"); + expect(Object.keys(mapByName.body).length).to.eq(10); + }); + }) + + it('Test mapById', () => { + cy.request('/users/mapById').as('mapById'); + cy.get('@mapById').then(mapById => { + expect(mapById.status).to.eq(200); + assert.isObject(mapById.body, "mapById Response is an object"); + expect(Object.keys(mapById.body)[0]).to.eq("1"); + expect( + Object.keys(mapById.body)[Object.keys(mapById.body).length - 1] + ).to.eq("11"); + expect(Object.keys(mapById.body).length).to.eq(10); + }); + }) +}) \ No newline at end of file diff --git a/farmdata2/farmdata2_api/package-lock.json b/farmdata2/farmdata2_api/package-lock.json index 40d9baa6..1c0fd336 100644 --- a/farmdata2/farmdata2_api/package-lock.json +++ b/farmdata2/farmdata2_api/package-lock.json @@ -11,19 +11,78 @@ "dependencies": { "cors": "^2.8.5", "express": "^4.18.2", - "mariadb": "^3.0.2" + "express-jsdoc-swagger": "^1.8.0", + "mariadb": "^3.0.2", + "nodemon": "^2.0.20", + "swagger-jsdoc": "^6.2.8", + "swagger-ui-express": "^4.6.0" } }, + "node_modules/@apidevtools/json-schema-ref-parser": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.1.2.tgz", + "integrity": "sha512-r1w81DpR+KyRWd3f+rk6TNqMgedmAxZP5v5KWlXQWlgMUUtyEJch0DKEci1SorPMiSeM8XPl7MZ3miJ60JIpQg==", + "dependencies": { + "@jsdevtools/ono": "^7.1.3", + "@types/json-schema": "^7.0.6", + "call-me-maybe": "^1.0.1", + "js-yaml": "^4.1.0" + } + }, + "node_modules/@apidevtools/openapi-schemas": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@apidevtools/openapi-schemas/-/openapi-schemas-2.1.0.tgz", + "integrity": "sha512-Zc1AlqrJlX3SlpupFGpiLi2EbteyP7fXmUOGup6/DnkRgjP9bgMM/ag+n91rsv0U1Gpz0H3VILA/o3bW7Ua6BQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/@apidevtools/swagger-methods": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@apidevtools/swagger-methods/-/swagger-methods-3.0.2.tgz", + "integrity": "sha512-QAkD5kK2b1WfjDS/UQn/qQkbwF31uqRjPTrsCs5ZG9BQGAkjwvqGFjjPqAuzac/IYzpPtRzjCP1WrTuAIjMrXg==" + }, + "node_modules/@apidevtools/swagger-parser": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/@apidevtools/swagger-parser/-/swagger-parser-10.0.3.tgz", + "integrity": "sha512-sNiLY51vZOmSPFZA5TF35KZ2HbgYklQnTSDnkghamzLb3EkNtcQnrBQEj5AOCxHpTtXpqMCRM1CrmV2rG6nw4g==", + "dependencies": { + "@apidevtools/json-schema-ref-parser": "^9.0.6", + "@apidevtools/openapi-schemas": "^2.0.4", + "@apidevtools/swagger-methods": "^3.0.2", + "@jsdevtools/ono": "^7.1.3", + "call-me-maybe": "^1.0.1", + "z-schema": "^5.0.1" + }, + "peerDependencies": { + "openapi-types": ">=7" + } + }, + "node_modules/@jsdevtools/ono": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", + "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==" + }, "node_modules/@types/geojson": { "version": "7946.0.10", "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.10.tgz", "integrity": "sha512-Nmh0K3iWQJzniTuPRcJn5hxXkfB1T1pgB89SBig5PlJQU5yocazeu4jATJlaA0GYFKWMqDdvYemoSnF2pXgLVA==" }, + "node_modules/@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" + }, "node_modules/@types/node": { "version": "17.0.45", "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz", "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==" }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -36,11 +95,55 @@ "node": ">= 0.6" } }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, "node_modules/array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "engines": { + "node": ">=8" + } + }, "node_modules/body-parser": { "version": "1.20.1", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", @@ -75,6 +178,26 @@ "node": ">=0.10.0" } }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", @@ -95,6 +218,100 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/call-me-maybe": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz", + "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==" + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chalk/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/commander": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.0.tgz", + "integrity": "sha512-zP4jEKbe8SHzKJYQmq8Y9gYjtO/POJLgIdKgV7B9qNmABVFVc+ctqSX6iXh4mCpJfRBOabiZ2YKPg8ciDw6C+Q==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, "node_modules/content-disposition": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", @@ -172,6 +389,17 @@ "npm": "1.2.8000 || >= 1.4.16" } }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -190,6 +418,14 @@ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", @@ -239,6 +475,33 @@ "node": ">= 0.10.0" } }, + "node_modules/express-jsdoc-swagger": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/express-jsdoc-swagger/-/express-jsdoc-swagger-1.8.0.tgz", + "integrity": "sha512-1Ij+2tSRldJzduxi56Dm3zS87UKQl83VXanhy7GPmXHxChCxafPcbf0SCJTIu+NdO0kq0seSPE1fQdwaEq+Vrg==", + "dependencies": { + "chalk": "^4.1.0", + "doctrine": "^3.0.0", + "express": "^4.17.1", + "glob": "^7.1.6", + "merge": "^2.1.1", + "swagger-ui-express": "^4.3.0" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/finalhandler": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", @@ -272,6 +535,24 @@ "node": ">= 0.6" } }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -290,6 +571,36 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -301,6 +612,14 @@ "node": ">= 0.4.0" } }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, "node_modules/has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", @@ -338,6 +657,20 @@ "node": ">=0.10.0" } }, + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==" + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", @@ -351,6 +684,70 @@ "node": ">= 0.10" } }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==" + }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==" + }, + "node_modules/lodash.mergewith": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", + "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==" + }, "node_modules/lru-cache": { "version": "7.14.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", @@ -383,6 +780,11 @@ "node": ">= 0.6" } }, + "node_modules/merge": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/merge/-/merge-2.1.1.tgz", + "integrity": "sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==" + }, "node_modules/merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", @@ -426,6 +828,17 @@ "node": ">= 0.6" } }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/moment": { "version": "2.29.4", "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", @@ -458,6 +871,68 @@ "node": ">= 0.6" } }, + "node_modules/nodemon": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.20.tgz", + "integrity": "sha512-Km2mWHKKY5GzRg6i1j5OxOHQtuvVsgskLfigG25yTtbyfRGn/GNvIbRyOf1PSCKJ2aT/58TiuUsuOU5UToVViw==", + "dependencies": { + "chokidar": "^3.5.2", + "debug": "^3.2.7", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^5.7.1", + "simple-update-notifier": "^1.0.7", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=8.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/nodemon/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/nodemon/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -485,6 +960,20 @@ "node": ">= 0.8" } }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/openapi-types": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/openapi-types/-/openapi-types-12.1.0.tgz", + "integrity": "sha512-XpeCy01X6L5EpP+6Hc3jWN7rMZJ+/k1lwki/kTmWzbVhdPie3jd5O2ZtedEx8Yp58icJ0osVldLMrTB/zslQXA==", + "peer": true + }, "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -493,11 +982,30 @@ "node": ">= 0.8" } }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -510,6 +1018,11 @@ "node": ">= 0.10" } }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==" + }, "node_modules/qs": { "version": "6.11.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", @@ -557,6 +1070,17 @@ "node": ">=0.10.0" } }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -581,6 +1105,14 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, + "node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "bin": { + "semver": "bin/semver" + } + }, "node_modules/send": { "version": "0.18.0", "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", @@ -641,6 +1173,25 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/simple-update-notifier": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz", + "integrity": "sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==", + "dependencies": { + "semver": "~7.0.0" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/simple-update-notifier/node_modules/semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", @@ -649,6 +1200,77 @@ "node": ">= 0.8" } }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/swagger-jsdoc": { + "version": "6.2.8", + "resolved": "https://registry.npmjs.org/swagger-jsdoc/-/swagger-jsdoc-6.2.8.tgz", + "integrity": "sha512-VPvil1+JRpmJ55CgAtn8DIcpBs0bL5L3q5bVQvF4tAW/k/9JYSj7dCpaYCAv5rufe0vcCbBRQXGvzpkWjvLklQ==", + "dependencies": { + "commander": "6.2.0", + "doctrine": "3.0.0", + "glob": "7.1.6", + "lodash.mergewith": "^4.6.2", + "swagger-parser": "^10.0.3", + "yaml": "2.0.0-1" + }, + "bin": { + "swagger-jsdoc": "bin/swagger-jsdoc.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/swagger-parser": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/swagger-parser/-/swagger-parser-10.0.3.tgz", + "integrity": "sha512-nF7oMeL4KypldrQhac8RyHerJeGPD1p2xDh900GPvc+Nk7nWP6jX2FcC7WmkinMoAmoO774+AFXcWsW8gMWEIg==", + "dependencies": { + "@apidevtools/swagger-parser": "10.0.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/swagger-ui-dist": { + "version": "4.15.5", + "resolved": "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-4.15.5.tgz", + "integrity": "sha512-V3eIa28lwB6gg7/wfNvAbjwJYmDXy1Jo1POjyTzlB6wPcHiGlRxq39TSjYGVjQrUSAzpv+a7nzp7mDxgNy57xA==" + }, + "node_modules/swagger-ui-express": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/swagger-ui-express/-/swagger-ui-express-4.6.0.tgz", + "integrity": "sha512-ZxpQFp1JR2RF8Ar++CyJzEDdvufa08ujNUJgMVTMWPi86CuQeVdBtvaeO/ysrz6dJAYXf9kbVNhWD7JWocwqsA==", + "dependencies": { + "swagger-ui-dist": ">=4.11.0" + }, + "engines": { + "node": ">= v0.10.32" + }, + "peerDependencies": { + "express": ">=4.0.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, "node_modules/toidentifier": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", @@ -657,6 +1279,17 @@ "node": ">=0.6" } }, + "node_modules/touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "dependencies": { + "nopt": "~1.0.10" + }, + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, "node_modules/type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", @@ -669,6 +1302,11 @@ "node": ">= 0.6" } }, + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==" + }, "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", @@ -685,6 +1323,14 @@ "node": ">= 0.4.0" } }, + "node_modules/validator": { + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.7.0.tgz", + "integrity": "sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==", + "engines": { + "node": ">= 0.10" + } + }, "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", @@ -692,19 +1338,109 @@ "engines": { "node": ">= 0.8" } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/yaml": { + "version": "2.0.0-1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.0.0-1.tgz", + "integrity": "sha512-W7h5dEhywMKenDJh2iX/LABkbFnBxasD27oyXWDS/feDsxiw0dD5ncXdYXgkvAsXIY2MpW/ZKkr9IU30DBdMNQ==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/z-schema": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/z-schema/-/z-schema-5.0.5.tgz", + "integrity": "sha512-D7eujBWkLa3p2sIpJA0d1pr7es+a7m0vFAnZLlCEKq/Ij2k0MLi9Br2UPxoxdYystm5K1yeBGzub0FlYUEWj2Q==", + "dependencies": { + "lodash.get": "^4.4.2", + "lodash.isequal": "^4.5.0", + "validator": "^13.7.0" + }, + "bin": { + "z-schema": "bin/z-schema" + }, + "engines": { + "node": ">=8.0.0" + }, + "optionalDependencies": { + "commander": "^9.4.1" + } + }, + "node_modules/z-schema/node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "optional": true, + "engines": { + "node": "^12.20.0 || >=14" + } } }, "dependencies": { + "@apidevtools/json-schema-ref-parser": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.1.2.tgz", + "integrity": "sha512-r1w81DpR+KyRWd3f+rk6TNqMgedmAxZP5v5KWlXQWlgMUUtyEJch0DKEci1SorPMiSeM8XPl7MZ3miJ60JIpQg==", + "requires": { + "@jsdevtools/ono": "^7.1.3", + "@types/json-schema": "^7.0.6", + "call-me-maybe": "^1.0.1", + "js-yaml": "^4.1.0" + } + }, + "@apidevtools/openapi-schemas": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@apidevtools/openapi-schemas/-/openapi-schemas-2.1.0.tgz", + "integrity": "sha512-Zc1AlqrJlX3SlpupFGpiLi2EbteyP7fXmUOGup6/DnkRgjP9bgMM/ag+n91rsv0U1Gpz0H3VILA/o3bW7Ua6BQ==" + }, + "@apidevtools/swagger-methods": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@apidevtools/swagger-methods/-/swagger-methods-3.0.2.tgz", + "integrity": "sha512-QAkD5kK2b1WfjDS/UQn/qQkbwF31uqRjPTrsCs5ZG9BQGAkjwvqGFjjPqAuzac/IYzpPtRzjCP1WrTuAIjMrXg==" + }, + "@apidevtools/swagger-parser": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/@apidevtools/swagger-parser/-/swagger-parser-10.0.3.tgz", + "integrity": "sha512-sNiLY51vZOmSPFZA5TF35KZ2HbgYklQnTSDnkghamzLb3EkNtcQnrBQEj5AOCxHpTtXpqMCRM1CrmV2rG6nw4g==", + "requires": { + "@apidevtools/json-schema-ref-parser": "^9.0.6", + "@apidevtools/openapi-schemas": "^2.0.4", + "@apidevtools/swagger-methods": "^3.0.2", + "@jsdevtools/ono": "^7.1.3", + "call-me-maybe": "^1.0.1", + "z-schema": "^5.0.1" + } + }, + "@jsdevtools/ono": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", + "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==" + }, "@types/geojson": { "version": "7946.0.10", "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.10.tgz", "integrity": "sha512-Nmh0K3iWQJzniTuPRcJn5hxXkfB1T1pgB89SBig5PlJQU5yocazeu4jATJlaA0GYFKWMqDdvYemoSnF2pXgLVA==" }, + "@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" + }, "@types/node": { "version": "17.0.45", "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz", "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==" }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, "accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -714,11 +1450,43 @@ "negotiator": "0.6.3" } }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, "array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + }, "body-parser": { "version": "1.20.1", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", @@ -748,6 +1516,23 @@ } } }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, "bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", @@ -762,6 +1547,73 @@ "get-intrinsic": "^1.0.2" } }, + "call-me-maybe": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz", + "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==" + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "commander": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.0.tgz", + "integrity": "sha512-zP4jEKbe8SHzKJYQmq8Y9gYjtO/POJLgIdKgV7B9qNmABVFVc+ctqSX6iXh4mCpJfRBOabiZ2YKPg8ciDw6C+Q==" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, "content-disposition": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", @@ -817,6 +1669,14 @@ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "requires": { + "esutils": "^2.0.2" + } + }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -832,6 +1692,11 @@ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + }, "etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", @@ -875,6 +1740,27 @@ "vary": "~1.1.2" } }, + "express-jsdoc-swagger": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/express-jsdoc-swagger/-/express-jsdoc-swagger-1.8.0.tgz", + "integrity": "sha512-1Ij+2tSRldJzduxi56Dm3zS87UKQl83VXanhy7GPmXHxChCxafPcbf0SCJTIu+NdO0kq0seSPE1fQdwaEq+Vrg==", + "requires": { + "chalk": "^4.1.0", + "doctrine": "^3.0.0", + "express": "^4.17.1", + "glob": "^7.1.6", + "merge": "^2.1.1", + "swagger-ui-express": "^4.3.0" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, "finalhandler": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", @@ -899,6 +1785,17 @@ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "optional": true + }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -914,6 +1811,27 @@ "has-symbols": "^1.0.3" } }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -922,6 +1840,11 @@ "function-bind": "^1.1.1" } }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" + }, "has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", @@ -947,6 +1870,20 @@ "safer-buffer": ">= 2.1.2 < 3.0.0" } }, + "ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, "inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", @@ -957,6 +1894,55 @@ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "requires": { + "argparse": "^2.0.1" + } + }, + "lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==" + }, + "lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==" + }, + "lodash.mergewith": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", + "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==" + }, "lru-cache": { "version": "7.14.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", @@ -980,6 +1966,11 @@ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" }, + "merge": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/merge/-/merge-2.1.1.tgz", + "integrity": "sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==" + }, "merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", @@ -1008,6 +1999,14 @@ "mime-db": "1.52.0" } }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, "moment": { "version": "2.29.4", "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", @@ -1031,6 +2030,51 @@ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" }, + "nodemon": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.20.tgz", + "integrity": "sha512-Km2mWHKKY5GzRg6i1j5OxOHQtuvVsgskLfigG25yTtbyfRGn/GNvIbRyOf1PSCKJ2aT/58TiuUsuOU5UToVViw==", + "requires": { + "chokidar": "^3.5.2", + "debug": "^3.2.7", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^5.7.1", + "simple-update-notifier": "^1.0.7", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + } + } + }, + "nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", + "requires": { + "abbrev": "1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -1049,16 +2093,40 @@ "ee-first": "1.1.1" } }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "requires": { + "wrappy": "1" + } + }, + "openapi-types": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/openapi-types/-/openapi-types-12.1.0.tgz", + "integrity": "sha512-XpeCy01X6L5EpP+6Hc3jWN7rMZJ+/k1lwki/kTmWzbVhdPie3jd5O2ZtedEx8Yp58icJ0osVldLMrTB/zslQXA==", + "peer": true + }, "parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" + }, "path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + }, "proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -1068,6 +2136,11 @@ "ipaddr.js": "1.9.1" } }, + "pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==" + }, "qs": { "version": "6.11.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", @@ -1102,6 +2175,14 @@ } } }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "requires": { + "picomatch": "^2.2.1" + } + }, "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -1112,6 +2193,11 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, "send": { "version": "0.18.0", "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", @@ -1165,16 +2251,89 @@ "object-inspect": "^1.9.0" } }, + "simple-update-notifier": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz", + "integrity": "sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==", + "requires": { + "semver": "~7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==" + } + } + }, "statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "swagger-jsdoc": { + "version": "6.2.8", + "resolved": "https://registry.npmjs.org/swagger-jsdoc/-/swagger-jsdoc-6.2.8.tgz", + "integrity": "sha512-VPvil1+JRpmJ55CgAtn8DIcpBs0bL5L3q5bVQvF4tAW/k/9JYSj7dCpaYCAv5rufe0vcCbBRQXGvzpkWjvLklQ==", + "requires": { + "commander": "6.2.0", + "doctrine": "3.0.0", + "glob": "7.1.6", + "lodash.mergewith": "^4.6.2", + "swagger-parser": "^10.0.3", + "yaml": "2.0.0-1" + } + }, + "swagger-parser": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/swagger-parser/-/swagger-parser-10.0.3.tgz", + "integrity": "sha512-nF7oMeL4KypldrQhac8RyHerJeGPD1p2xDh900GPvc+Nk7nWP6jX2FcC7WmkinMoAmoO774+AFXcWsW8gMWEIg==", + "requires": { + "@apidevtools/swagger-parser": "10.0.3" + } + }, + "swagger-ui-dist": { + "version": "4.15.5", + "resolved": "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-4.15.5.tgz", + "integrity": "sha512-V3eIa28lwB6gg7/wfNvAbjwJYmDXy1Jo1POjyTzlB6wPcHiGlRxq39TSjYGVjQrUSAzpv+a7nzp7mDxgNy57xA==" + }, + "swagger-ui-express": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/swagger-ui-express/-/swagger-ui-express-4.6.0.tgz", + "integrity": "sha512-ZxpQFp1JR2RF8Ar++CyJzEDdvufa08ujNUJgMVTMWPi86CuQeVdBtvaeO/ysrz6dJAYXf9kbVNhWD7JWocwqsA==", + "requires": { + "swagger-ui-dist": ">=4.11.0" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, "toidentifier": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" }, + "touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "requires": { + "nopt": "~1.0.10" + } + }, "type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", @@ -1184,6 +2343,11 @@ "mime-types": "~2.1.24" } }, + "undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==" + }, "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", @@ -1194,10 +2358,44 @@ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" }, + "validator": { + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.7.0.tgz", + "integrity": "sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==" + }, "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "yaml": { + "version": "2.0.0-1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.0.0-1.tgz", + "integrity": "sha512-W7h5dEhywMKenDJh2iX/LABkbFnBxasD27oyXWDS/feDsxiw0dD5ncXdYXgkvAsXIY2MpW/ZKkr9IU30DBdMNQ==" + }, + "z-schema": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/z-schema/-/z-schema-5.0.5.tgz", + "integrity": "sha512-D7eujBWkLa3p2sIpJA0d1pr7es+a7m0vFAnZLlCEKq/Ij2k0MLi9Br2UPxoxdYystm5K1yeBGzub0FlYUEWj2Q==", + "requires": { + "commander": "^9.4.1", + "lodash.get": "^4.4.2", + "lodash.isequal": "^4.5.0", + "validator": "^13.7.0" + }, + "dependencies": { + "commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "optional": true + } + } } } } diff --git a/farmdata2/farmdata2_api/package.json b/farmdata2/farmdata2_api/package.json index 5d00c867..7cf4e2a7 100644 --- a/farmdata2/farmdata2_api/package.json +++ b/farmdata2/farmdata2_api/package.json @@ -5,13 +5,14 @@ "description": "Express API endpoints for FarmData2", "main": "app.js", "scripts": { - "start":"nodemon --es-module-specifier-resolution=node src/app.js" + "start": "nodemon --es-module-specifier-resolution=node src/app.js" }, "author": "", "license": "ISC", "dependencies": { "cors": "^2.8.5", "express": "^4.18.2", + "express-jsdoc-swagger": "^1.8.0", "mariadb": "^3.0.2", "nodemon": "^2.0.20" } diff --git a/farmdata2/farmdata2_api/src/app.js b/farmdata2/farmdata2_api/src/app.js index d7ae3d16..ab128629 100644 --- a/farmdata2/farmdata2_api/src/app.js +++ b/farmdata2/farmdata2_api/src/app.js @@ -1,15 +1,27 @@ import express, { request } from 'express' +import swaggerDefinition from './swaggerspec.json' assert { type: 'json' } +import expressJSDocSwagger from 'express-jsdoc-swagger' import pool from './db.js' import cors from 'cors' +import { fileURLToPath } from 'url'; +import path from 'path'; + +// Specification configuration. This is needed for ES6 compatibility +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); +swaggerDefinition.baseDir = __dirname const app = express() +expressJSDocSwagger(app)(swaggerDefinition) -// Home Route +// Default API server app.get("/", async (req, res) => { res.json({ message: "FarmData2 API server", }); }); + +// Enable cors for communcation between containers app.use(cors()) app.use(express.json()); @@ -20,19 +32,112 @@ app.listen(port, () => { console.log(`Server is up at port:${port}`); }); -// use : to specify route parameters -app.get("/user/:userid?", async (req, res) => { +/** + * GET /crops/mapByName + * @summary Returns a mapping of crop names to their corresponding tid. + * @tags Maps + * @return {object} 200 - Returns a mapping of crop names to their corresponding tid. + * @example response - 200 - success response + * { + * "DANDILION": "41", + * "GRASS": "42", + * "WHEATGRASS": "43", + * "BROCCOLI": "45", + * "BROCCOLI RABE": "46" + * } + */ +app.get("/crops/mapByName", async (req, res) => { + let conn; + try { + conn = await pool.getConnection(); + var sql = ` + SELECT JSON_OBJECTAGG(name, CAST(tid AS CHAR)) AS data + FROM ( + SELECT tid, t1.name + FROM taxonomy_term_data AS t1 + JOIN taxonomy_vocabulary AS t2 + ON t1.vid = t2.vid + WHERE t2.machine_name = "farm_crops" + ) t + `; + const results = await conn.execute(sql); + res.json(results[0].data); + } catch (error) { + throw error; + } finally { + if (conn) { + conn.release(); + } + } +}); + +/** + * GET /crops/mapById + * @summary Returns a mapping of crop tid to their corresponding crop names. + * @tags Maps + * @return {object} 200 - Returns a mapping of crop tid to their corresponding crop names. + * @example response - 200 - success response + * { + * "41": "DANDILION", + * "42": "GRASS", + * "43": "WHEATGRASS", + * "45": "BROCCOLI", + * "46": "BROCCOLI RABE" + * } + */ +app.get("/crops/mapById", async (req, res) => { let conn; try { conn = await pool.getConnection(); - if (req.params.userid == null) { - var sql = `SELECT name, mail FROM users`; - } else { - var sql = `SELECT name, mail FROM users WHERE uid = ${req.params.userid}`; + var sql = ` + SELECT JSON_OBJECTAGG(tid, name) AS data + FROM ( + SELECT tid, t1.name + FROM taxonomy_term_data AS t1 + JOIN taxonomy_vocabulary AS t2 + ON t1.vid = t2.vid + WHERE t2.machine_name = "farm_crops" + ) t` + const results = await conn.execute(sql); + res.json(results[0].data); + } catch (error) { + throw error; + } finally { + if (conn) { + conn.release(); } - let result = await conn.query(sql); - // result = express.json(result); - res.json({result}); + } +}); + +/** + * GET /areas/mapByName + * @summary Returns a mapping of area names to their corresponding tid. + * @tags Maps + * @return {object} 200 - Returns a mapping of area names to their corresponding tid. + * @example response - 200 - success response + * { + * "A": "170", + * "ALF": "171", + * "ALF-1": "172", + * "ALF-2": "173", + * "ALF-3": "174" + * } + */ +app.get("/areas/mapByName", async (req, res) => { + let conn; + try { + conn = await pool.getConnection(); + var sql = ` + SELECT JSON_OBJECTAGG(name, CAST(tid AS CHAR)) AS data + FROM ( + SELECT tid, t1.name + FROM taxonomy_term_data AS t1 + JOIN taxonomy_vocabulary AS t2 + ON t1.vid = t2.vid + WHERE t2.machine_name = "farm_areas" + ) t` + const results = await conn.execute(sql); + res.json(results[0].data); } catch (error) { throw error; } finally { @@ -42,6 +147,176 @@ app.get("/user/:userid?", async (req, res) => { } }); +/** + * GET /areas/mapById + * @summary Returns a mapping of area tid to their corresponding area names. + * @tags Maps + * @return {object} 200 - Returns a mapping of area tid to their corresponding area names. + * @example response - 200 - success response + * { + * "170": "A", + * "171": "ALF", + * "172": "ALF-1", + * "173": "ALF-2", + * "174": "ALF-3" + * } + */ +app.get("/areas/mapById", async (req, res) => { + let conn; + try { + conn = await pool.getConnection(); + var sql = ` + SELECT JSON_OBJECTAGG(tid, name) AS data + FROM ( + SELECT tid, t1.name + FROM taxonomy_term_data AS t1 + JOIN taxonomy_vocabulary AS t2 + ON t1.vid = t2.vid + WHERE t2.machine_name = "farm_areas" + ) t` + const results = await conn.execute(sql); + res.json(results[0].data); + } catch (error) { + throw error; + } finally { + if (conn) { + conn.release(); + } + } +}); + +/** + * GET /users/mapByName + * @summary Returns a mapping of usernames to their corresponding uid. + * @tags Maps + * @return {object} 200 - Returns a mapping of usernames to their corresponding uid. + * @example response - 200 - success response + * { + * "admin": "1", + * "guest": "10", + * "manager1": "3", + * "manager2": "4", + * "restws1": "11" + * } + */ +app.get("/users/mapByName", async (req, res) => { + let conn; + try { + conn = await pool.getConnection(); + var sql = ` + SELECT JSON_OBJECTAGG(name, CAST(uid AS CHAR)) AS data + FROM ( + SELECT uid, name + FROM users + WHERE name != "" + ) t + ` + const results = await conn.execute(sql); + res.json(results[0].data); + } catch (error) { + throw error; + } finally { + if (conn) { + conn.release(); + } + } +}); + +/** + * GET /users/mapById + * @summary Returns a mapping of uid to their corresponding usernames. + * @tags Maps + * @return {object} 200 - Returns a mapping of uid to their corresponding usernames. + * @example response - 200 - success response + * { + * "1": "admin", + * "10": "guest", + * "3": "manager1", + * "4": "manager2", + * "11": "restws1" + * } + */ +app.get("/users/mapById", async (req, res) => { + let conn; + try { + conn = await pool.getConnection(); + + var sql = ` + SELECT JSON_OBJECTAGG(uid, name) AS data + FROM ( + SELECT uid, name + FROM users + WHERE name != "" + ) t + ` + const results = await conn.execute(sql); + res.json(results[0].data); + } catch (error) { + throw error; + } finally { + if (conn) { + conn.release(); + } + } +}); + +// APIs below are for testing purposes +/** + * @swagger + * "/users": + * get: + * summary: Returns a list of Farmdata2 users + * description: Returns a list of Farmdata2 users from Farmdata2 Database. + * parameters: + * - in: query + * name: id + * schema: + * type: string + * description: the userid + * responses: + * "200": + * description: A list of users. + * content: + * application/json: + * schema: + * type: object + * properties: + * data: + * type: object + * properties: + * items: + * type: object + * properties: + * name: + * type: string + * description: The username + * example: admin + * mail: + * type: string + * description: The email address of the user + * example: admin@example.com + */ +// app.get("/users/:userid?", async (req, res) => { +// let conn; +// try { +// conn = await pool.getConnection(); +// if (req.params.userid == null) { +// var sql = `SELECT name, mail FROM users`; +// } else { +// var sql = `SELECT name, mail FROM users WHERE uid = ${req.params.userid}`; +// } +// let data = await conn.query(sql); +// // result = express.json(result); +// res.json({data}); +// } catch (error) { +// throw error; +// } finally { +// if (conn) { +// conn.release(); +// } +// } +// }); + // test paging http://localhost:8000/paging/?page=1&limit=5 app.get("/paging", async (req, res) => { let conn; diff --git a/farmdata2/farmdata2_api/src/swaggerspec.json b/farmdata2/farmdata2_api/src/swaggerspec.json new file mode 100644 index 00000000..1b492a08 --- /dev/null +++ b/farmdata2/farmdata2_api/src/swaggerspec.json @@ -0,0 +1,24 @@ +{ + "info": { + "title": "FarmData2 API", + "version": "2.1", + "description": "FarmData2 is a web application for recording and reporting on crop and livestock production within the context of small organic farming operations. Crop production records include seeding, transplanting, harvest, cover crop, compost, fertilization, irrigation, pest scouting, and spray activities. Livestock production records track animals from birth to slaughter or sale and include pasture moves, periodic and veterinary care and logging of egg production. Records of packing, distribution and customer invoicing are also maintained. All records and reporting features are designed to closely align with organic certification requirements and to support the certification and recertification process.", + "license": { + "name": "Licensed Under Creative Commons", + "url": "https://creativecommons.org/licenses/by-sa/4.0/" + }, + "contact": { + "name": "FarmData2 GitHub Repository", + "url": "https://github.com/DickinsonCollege/FarmData2" + } + }, + "servers": [ + { + "url": "http://fd2_api/", + "description": "Farmdata2 Express server" + } + ], + "baseDir": null, + "filesPattern": "./**/*.js", + "swaggerUIPath": "/docs" +} \ No newline at end of file diff --git a/farmdata2/farmdata2_modules/resources/FarmOSAPI.js b/farmdata2/farmdata2_modules/resources/FarmOSAPI.js index 59fc6d4b..002b22ad 100644 --- a/farmdata2/farmdata2_modules/resources/FarmOSAPI.js +++ b/farmdata2/farmdata2_modules/resources/FarmOSAPI.js @@ -97,14 +97,12 @@ function getAllPages(endpoint, arr=[]) { * // Note that the Map will not be available until the then() executes. */ function getIDToUserMap(){ - return new Promise((resolve, reject) => { - getMap('/user', 'uid', 'name') - .then((map) => { - map.delete(null); - resolve(map) - }, - (error) => { - reject(error); + return new Promise ((resolve, reject) => { + axios.get("http://fd2_api/users/mapById") + .then((response) => { + resolve(new Map(Object.entries(response.data))) + }).catch(function (err) { + reject(err) }) }) } @@ -127,14 +125,12 @@ function getIDToUserMap(){ * // Note that the Map will not be available until the then() executes. */ function getUserToIDMap(){ - return new Promise((resolve, reject) => { - getMap('/user', 'name', 'uid') - .then((map) => { - map.delete('Anonymous'); - resolve(map) - }, - (error) => { - reject(error); + return new Promise ((resolve, reject) => { + axios.get("http://fd2_api/users/mapByName") + .then((response) => { + resolve(new Map(Object.entries(response.data))) + }).catch(function (err) { + reject(err) }) }) } @@ -157,7 +153,14 @@ function getUserToIDMap(){ * // Note that the Map will not be available until the then() executes. */ function getIDToCropMap(){ - return getMap('/taxonomy_term.json?bundle=farm_crops', 'tid', 'name') + return new Promise ((resolve, reject) => { + axios.get("http://fd2_api/crops/mapById") + .then((response) => { + resolve(new Map(Object.entries(response.data))) + }).catch(function (err) { + reject(err) + }) + }) } /** @@ -178,7 +181,14 @@ function getIDToCropMap(){ * // Note that the Map will not be available until the then() executes. */ function getCropToIDMap(){ - return getMap('/taxonomy_term.json?bundle=farm_crops', 'name', 'tid') + return new Promise ((resolve, reject) => { + axios.get("http://fd2_api/crops/mapByName") + .then((response) => { + resolve(new Map(Object.entries(response.data))) + }).catch(function (err) { + reject(err) + }) + }) } /** @@ -199,7 +209,14 @@ function getCropToIDMap(){ * // Note that the Map will not be available until the then() executes. */ function getIDToAreaMap(){ - return getMap('/taxonomy_term.json?bundle=farm_areas', 'tid', 'name') + return new Promise ((resolve, reject) => { + axios.get("http://fd2_api/areas/mapById") + .then((response) => { + resolve(new Map(Object.entries(response.data))) + }).catch(function (err) { + reject(err) + }) + }) } /** @@ -220,7 +237,14 @@ function getIDToAreaMap(){ * // Note that the Map will not be available until the then() executes. */ function getAreaToIDMap(){ - return getMap('/taxonomy_term.json?bundle=farm_areas', 'name', 'tid') + return new Promise ((resolve, reject) => { + axios.get("http://fd2_api/areas/mapByName") + .then((response) => { + resolve(new Map(Object.entries(response.data))) + }).catch(function (err) { + reject(err) + }) + }) } /** diff --git a/farmdata2/farmdata2_modules/resources/FarmOSAPI.spec.js b/farmdata2/farmdata2_modules/resources/FarmOSAPI.spec.js index e17f439f..d3237e86 100644 --- a/farmdata2/farmdata2_modules/resources/FarmOSAPI.spec.js +++ b/farmdata2/farmdata2_modules/resources/FarmOSAPI.spec.js @@ -185,7 +185,7 @@ describe('API Request Functions', () => { it('map failure', () => { // All of the get functions for maps use the same // helper function so only need to test the failure once. - cy.intercept('GET', '/user', + cy.intercept('GET', 'http://fd2_api/users/mapByName', { statusCode: 500, body: '500 Interal Server Error!', From 9a3610cd70d619c363bdb82721213e58111f07e2 Mon Sep 17 00:00:00 2001 From: Grant Braught Date: Sun, 30 Apr 2023 16:37:26 -0400 Subject: [PATCH 05/74] Add Bootstrap support to Vue Component Tests (#652) __Pull Request Description__ Builds on #649, see that PR for additional information. --- __Licensing Certification__ FarmData2 is a [Free Cultural Work](https://freedomdefined.org/Definition) and all accepted contributions are licensed as described in the LICENSE.md file. This requires that the contributor holds the rights to do so. By submitting this pull request __I certify that I satisfy the terms of the [Developer Certificate of Origin](https://developercertificate.org/)__ for its contents. --------- Co-authored-by: futzmonitor --- docker/dev/Dockerfile | 4 +++- docker/dev/repo.txt | 2 +- docker/docker-compose.yml | 8 ++++---- farmdata2/cypress/support/component.js | 6 ++++++ 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/docker/dev/Dockerfile b/docker/dev/Dockerfile index be978dab..9fd44d32 100644 --- a/docker/dev/Dockerfile +++ b/docker/dev/Dockerfile @@ -143,7 +143,9 @@ RUN npm install -d \ @cypress/webpack-dev-server@2.5.0 \ @cypress/vue2@1.1.2 \ path@0.12.7 \ - axios@0.24.0 + axios@0.24.0 \ + bootstrap@3.3.7 + WORKDIR /home/$USERNAME # Configure the VNC server so that it allows fd2dev to connect without diff --git a/docker/dev/repo.txt b/docker/dev/repo.txt index 768cc8e6..4b73c190 100644 --- a/docker/dev/repo.txt +++ b/docker/dev/repo.txt @@ -1 +1 @@ -dev:fd2.3 +dev:fd2.4 diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 06777680..bdda6c74 100755 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -65,7 +65,7 @@ services: # Necessary to mount /var/run/docker.sock due to # absolute path syntax on windows. fd2dev-unix: - image: farmdata2/dev:fd2.3 + image: farmdata2/dev:fd2.4 container_name: fd2_dev init: true networks: @@ -77,7 +77,7 @@ services: - ../farmdata2/cypress:/home/fd2dev/fd2test/cypress - ../farmdata2/cypress/cypress.config.js:/home/fd2dev/fd2test/cypress.config.js - /var/run/docker.sock:/var/run/docker.sock - - farmdev_home_fd2.2:/home/fd2dev # preserve home dir on volume. + - farmdev_home_fd2.4:/home/fd2dev # preserve home dir on volume. - farmos_db:/home/fd2dev/FarmData2/docker/db # use volume for performance. - ~/.fd2gids:/home/fd2dev/.fd2/gids # mount GID information. ports: @@ -88,7 +88,7 @@ services: - linux fd2dev-win: - image: farmdata2/dev:fd2.3 + image: farmdata2/dev:fd2.4 container_name: fd2_dev init: true networks: @@ -100,7 +100,7 @@ services: - ../farmdata2/cypress:/home/fd2dev/fd2test/cypress - ../farmdata2/cypress/cypress.config.js:/home/fd2dev/fd2test/cypress.config.js - //var/run/docker.sock:/var/run/docker.sock - - farmdev_home_fd2.2:/home/fd2dev # preserve home dir on volume. + - farmdev_home_fd2.4:/home/fd2dev # preserve home dir on volume. - farmos_db:/home/fd2dev/FarmData2/docker/db # use volume for performance. - ~/.fd2gids:/home/fd2dev/.fd2/gids # mount GID information. ports: diff --git a/farmdata2/cypress/support/component.js b/farmdata2/cypress/support/component.js index 26c969e1..112c951e 100644 --- a/farmdata2/cypress/support/component.js +++ b/farmdata2/cypress/support/component.js @@ -16,6 +16,12 @@ // Import commands.js using ES2015 syntax: import './commands' +// Import specific FD2 style sheet +import '/home/fd2dev/fd2test/farmdata2/farmdata2_modules/resources/fd2.css' + +// Import Bootstrap style sheet +import 'bootstrap/dist/css/bootstrap.css' + // Alternatively you can use CommonJS syntax: // require('./commands') From 5cd18e5628b8f8c416a5007de3e618ea0d3b1db9 Mon Sep 17 00:00:00 2001 From: Grant Braught Date: Sun, 30 Apr 2023 16:41:23 -0400 Subject: [PATCH 06/74] Revert "Add Bootstrap support to Vue Component Tests" (#653) Reverts DickinsonCollege/FarmData2#652 --- docker/dev/Dockerfile | 4 +--- docker/dev/repo.txt | 2 +- docker/docker-compose.yml | 8 ++++---- farmdata2/cypress/support/component.js | 6 ------ 4 files changed, 6 insertions(+), 14 deletions(-) diff --git a/docker/dev/Dockerfile b/docker/dev/Dockerfile index 9fd44d32..be978dab 100644 --- a/docker/dev/Dockerfile +++ b/docker/dev/Dockerfile @@ -143,9 +143,7 @@ RUN npm install -d \ @cypress/webpack-dev-server@2.5.0 \ @cypress/vue2@1.1.2 \ path@0.12.7 \ - axios@0.24.0 \ - bootstrap@3.3.7 - + axios@0.24.0 WORKDIR /home/$USERNAME # Configure the VNC server so that it allows fd2dev to connect without diff --git a/docker/dev/repo.txt b/docker/dev/repo.txt index 4b73c190..768cc8e6 100644 --- a/docker/dev/repo.txt +++ b/docker/dev/repo.txt @@ -1 +1 @@ -dev:fd2.4 +dev:fd2.3 diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index bdda6c74..06777680 100755 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -65,7 +65,7 @@ services: # Necessary to mount /var/run/docker.sock due to # absolute path syntax on windows. fd2dev-unix: - image: farmdata2/dev:fd2.4 + image: farmdata2/dev:fd2.3 container_name: fd2_dev init: true networks: @@ -77,7 +77,7 @@ services: - ../farmdata2/cypress:/home/fd2dev/fd2test/cypress - ../farmdata2/cypress/cypress.config.js:/home/fd2dev/fd2test/cypress.config.js - /var/run/docker.sock:/var/run/docker.sock - - farmdev_home_fd2.4:/home/fd2dev # preserve home dir on volume. + - farmdev_home_fd2.2:/home/fd2dev # preserve home dir on volume. - farmos_db:/home/fd2dev/FarmData2/docker/db # use volume for performance. - ~/.fd2gids:/home/fd2dev/.fd2/gids # mount GID information. ports: @@ -88,7 +88,7 @@ services: - linux fd2dev-win: - image: farmdata2/dev:fd2.4 + image: farmdata2/dev:fd2.3 container_name: fd2_dev init: true networks: @@ -100,7 +100,7 @@ services: - ../farmdata2/cypress:/home/fd2dev/fd2test/cypress - ../farmdata2/cypress/cypress.config.js:/home/fd2dev/fd2test/cypress.config.js - //var/run/docker.sock:/var/run/docker.sock - - farmdev_home_fd2.4:/home/fd2dev # preserve home dir on volume. + - farmdev_home_fd2.2:/home/fd2dev # preserve home dir on volume. - farmos_db:/home/fd2dev/FarmData2/docker/db # use volume for performance. - ~/.fd2gids:/home/fd2dev/.fd2/gids # mount GID information. ports: diff --git a/farmdata2/cypress/support/component.js b/farmdata2/cypress/support/component.js index 112c951e..26c969e1 100644 --- a/farmdata2/cypress/support/component.js +++ b/farmdata2/cypress/support/component.js @@ -16,12 +16,6 @@ // Import commands.js using ES2015 syntax: import './commands' -// Import specific FD2 style sheet -import '/home/fd2dev/fd2test/farmdata2/farmdata2_modules/resources/fd2.css' - -// Import Bootstrap style sheet -import 'bootstrap/dist/css/bootstrap.css' - // Alternatively you can use CommonJS syntax: // require('./commands') From e0000e45863767f29bf5a56beab9bcb1e7d6f932 Mon Sep 17 00:00:00 2001 From: Grant Braught Date: Sun, 30 Apr 2023 16:48:33 -0400 Subject: [PATCH 07/74] Add Bootstrap support to Vue Component Tests (#654) __Pull Request Description__ Builds on #649. See that PR for a fuller description. Closes #649. --- __Licensing Certification__ FarmData2 is a [Free Cultural Work](https://freedomdefined.org/Definition) and all accepted contributions are licensed as described in the LICENSE.md file. This requires that the contributor holds the rights to do so. By submitting this pull request __I certify that I satisfy the terms of the [Developer Certificate of Origin](https://developercertificate.org/)__ for its contents. --------- Co-authored-by: futzmonitor --- docker/dev/Dockerfile | 4 +++- docker/dev/repo.txt | 2 +- docker/docker-compose.yml | 10 +++++----- farmdata2/cypress/support/component.js | 6 ++++++ 4 files changed, 15 insertions(+), 7 deletions(-) diff --git a/docker/dev/Dockerfile b/docker/dev/Dockerfile index be978dab..9fd44d32 100644 --- a/docker/dev/Dockerfile +++ b/docker/dev/Dockerfile @@ -143,7 +143,9 @@ RUN npm install -d \ @cypress/webpack-dev-server@2.5.0 \ @cypress/vue2@1.1.2 \ path@0.12.7 \ - axios@0.24.0 + axios@0.24.0 \ + bootstrap@3.3.7 + WORKDIR /home/$USERNAME # Configure the VNC server so that it allows fd2dev to connect without diff --git a/docker/dev/repo.txt b/docker/dev/repo.txt index 768cc8e6..4b73c190 100644 --- a/docker/dev/repo.txt +++ b/docker/dev/repo.txt @@ -1 +1 @@ -dev:fd2.3 +dev:fd2.4 diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 06777680..11e046b5 100755 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -65,7 +65,7 @@ services: # Necessary to mount /var/run/docker.sock due to # absolute path syntax on windows. fd2dev-unix: - image: farmdata2/dev:fd2.3 + image: farmdata2/dev:fd2.4 container_name: fd2_dev init: true networks: @@ -77,7 +77,7 @@ services: - ../farmdata2/cypress:/home/fd2dev/fd2test/cypress - ../farmdata2/cypress/cypress.config.js:/home/fd2dev/fd2test/cypress.config.js - /var/run/docker.sock:/var/run/docker.sock - - farmdev_home_fd2.2:/home/fd2dev # preserve home dir on volume. + - farmdev_home_fd2.4:/home/fd2dev # preserve home dir on volume. - farmos_db:/home/fd2dev/FarmData2/docker/db # use volume for performance. - ~/.fd2gids:/home/fd2dev/.fd2/gids # mount GID information. ports: @@ -88,7 +88,7 @@ services: - linux fd2dev-win: - image: farmdata2/dev:fd2.3 + image: farmdata2/dev:fd2.4 container_name: fd2_dev init: true networks: @@ -100,7 +100,7 @@ services: - ../farmdata2/cypress:/home/fd2dev/fd2test/cypress - ../farmdata2/cypress/cypress.config.js:/home/fd2dev/fd2test/cypress.config.js - //var/run/docker.sock:/var/run/docker.sock - - farmdev_home_fd2.2:/home/fd2dev # preserve home dir on volume. + - farmdev_home_fd2.4:/home/fd2dev # preserve home dir on volume. - farmos_db:/home/fd2dev/FarmData2/docker/db # use volume for performance. - ~/.fd2gids:/home/fd2dev/.fd2/gids # mount GID information. ports: @@ -110,7 +110,7 @@ services: - windows volumes: - farmdev_home_fd2.2: + farmdev_home_fd2.4: farmos_db: networks: diff --git a/farmdata2/cypress/support/component.js b/farmdata2/cypress/support/component.js index 26c969e1..112c951e 100644 --- a/farmdata2/cypress/support/component.js +++ b/farmdata2/cypress/support/component.js @@ -16,6 +16,12 @@ // Import commands.js using ES2015 syntax: import './commands' +// Import specific FD2 style sheet +import '/home/fd2dev/fd2test/farmdata2/farmdata2_modules/resources/fd2.css' + +// Import Bootstrap style sheet +import 'bootstrap/dist/css/bootstrap.css' + // Alternatively you can use CommonJS syntax: // require('./commands') From a5dec763b02d8d381f89c9d42ed050406884a68d Mon Sep 17 00:00:00 2001 From: Christian Date: Sat, 29 Jul 2023 10:00:31 -0400 Subject: [PATCH 08/74] Fixed Total Bedft not Rounded in Seeding Report (#678) __Pull Request Description__ Closes #657. This PR makes small changes to two computed methods in the Seeding Report page that concerns how the total bed feet is returned for the page to display in the direct seeding summary. Since logs can make the number a long decimal numbers, the return in these methods now rounds the value to the nearest integer to resolve this issue on the frontend. --- __Licensing Certification__ FarmData2 is a [Free Cultural Work](https://freedomdefined.org/Definition) and all accepted contributions are licensed as described in the LICENSE.md file. This requires that the contributor holds the rights to do so. By submitting this pull request __I certify that I satisfy the terms of the [Developer Certificate of Origin](https://developercertificate.org/)__ for its contents. --- .../fd2_barn_kit/seedingReport/seedingReport.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/farmdata2/farmdata2_modules/fd2_barn_kit/seedingReport/seedingReport.html b/farmdata2/farmdata2_modules/fd2_barn_kit/seedingReport/seedingReport.html index 27344c0a..fb6c8006 100644 --- a/farmdata2/farmdata2_modules/fd2_barn_kit/seedingReport/seedingReport.html +++ b/farmdata2/farmdata2_modules/fd2_barn_kit/seedingReport/seedingReport.html @@ -568,7 +568,7 @@

Seeding Report

tableData.map(h => { sumBedFeet = sumBedFeet + parseFloat(h.data[5]) }) - return sumBedFeet + return Math.round(sumBedFeet) }, /** * returns the total bed feet for Direct Seeding excluding the logs without labor data @@ -581,7 +581,7 @@

Seeding Report

sumBedFeet = sumBedFeet + parseFloat(h.data[5]) } }) - return sumBedFeet + return Math.round(sumBedFeet) }, /** * returns the total hours worked for direct seedings. Calculated by mulpitplying hours by workers for each log From c800854069052aaee7e85c3fd22a1ed168b0a484 Mon Sep 17 00:00:00 2001 From: Roland Locke <80643562+RolandLocke@users.noreply.github.com> Date: Sat, 29 Jul 2023 10:02:20 -0400 Subject: [PATCH 09/74] Migrates: Main fd2 tabs test #228 (#661) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit …l/228 This pull request was orignially created on [FD2School-FarmData2](https://github.com/DickinsonCollege/FD2School-FarmData2). Link to the original pull request: [#288](https://github.com/DickinsonCollege/FD2School-FarmData2/pull/228) Authors of the original Commit are listed here as co-Authors: Co-authored-by: jamesng5 Co-authored-by: vuphuongha Co-authored-by: tainguyen103 Partially Addresses #662 --- __Licensing Certification__ FarmData2 is a [Free Cultural Work](https://freedomdefined.org/Definition) and all accepted contributions are licensed as described in the LICENSE.md file. This requires that the contributor holds the rights to do so. By submitting this pull request __I certify that I satisfy the terms of the [Developer Certificate of Origin](https://developercertificate.org/)__ for its contents. Co-authored-by: James Ng <98336522+jamesng5@users.noreply.github.com> --- .../cypress/fd2tabs.existence.spec.js | 76 +++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 farmdata2/farmdata2_modules/cypress/fd2tabs.existence.spec.js diff --git a/farmdata2/farmdata2_modules/cypress/fd2tabs.existence.spec.js b/farmdata2/farmdata2_modules/cypress/fd2tabs.existence.spec.js new file mode 100644 index 00000000..f7a6457b --- /dev/null +++ b/farmdata2/farmdata2_modules/cypress/fd2tabs.existence.spec.js @@ -0,0 +1,76 @@ + + +describe("Test tabs existence for each user's account", ()=>{ + /** + * Check the existence of FieldKit, BarnKit, and FD2 Config tabs if + * a manager account is logged in. + */ + context('Manager account is logged in', () => { + + beforeEach(()=>{ + cy.login("manager1", "farmdata2") + cy.visit('/farm') + }) + + it("Check the FieldKit tab", () => { + cy.get('.tabs--primary > li > .glyphicons-processed').should("contain", "FieldKit") + }) + + it("Check the BarnKit tab", () => { + cy.get('.tabs--primary > li > .glyphicons-processed').should("contain", "BarnKit") + }) + + it("Check the FD2 Config tab", () => { + cy.get('.tabs--primary > li > .glyphicons-processed').should("contain", "FD2 Config") + }) + }) + + + /** + * Check the existence of FieldKit and BarnKit, but not FD2 Config + * tabs if a worker account is logged in. + */ + context('Worker account is logged in', () => { + + beforeEach(()=>{ + cy.login("worker1", "farmdata2") + cy.visit('/farm') + }) + + it("Check the FieldKit tab", () => { + cy.get('.tabs--primary > li > .glyphicons-processed').should("contain", "FieldKit") + }) + + it("Check the BarnKit tab", () => { + cy.get('.tabs--primary > li > .glyphicons-processed').should("contain", "BarnKit") + }) + + it("Check the FD2 Config tab", () => { + cy.get('.tabs--primary > li > .glyphicons-processed').should("not.contain", "FD2 Config") + }) + }) + + /** + * Check the non-existence of FieldKit, BarnKit and FD2 Config + * tabs if a guest account is logged in. + */ + context('Guest account is logged in', () => { + + beforeEach(()=>{ + cy.login("guest", "farmdata2") + cy.visit('/farm') + }) + + it("Check the FieldKit tab", () => { + cy.get('.tabs--primary > li > .glyphicons-processed').should("not.contain", "FieldKit") + }) + + it("Check the BarnKit tab", () => { + cy.get('.tabs--primary > li > .glyphicons-processed').should("not.contain", "BarnKit") + }) + + it("Check the FD2 Config tab", () => { + cy.get('.tabs--primary > li > .glyphicons-processed').should("not.contain", "FD2 Config") + }) + }) +}) From 517231e828eb00aabd94072dd2b3297e175a6593 Mon Sep 17 00:00:00 2001 From: Roland Locke <80643562+RolandLocke@users.noreply.github.com> Date: Sat, 29 Jul 2023 10:03:04 -0400 Subject: [PATCH 10/74] Migrates: Test Barn Kit Seeding Report columns by seeding type #210 (#663) Co-authored-by: nathang15 Co-authored-by: infantlikesprogramming __Pull Request Description__ This pull request was orignially created on [FD2School-FarmData2](https://github.com/DickinsonCollege/FD2School-FarmData2). Link to the original pull request: [210](https://github.com/DickinsonCollege/FD2School-FarmData2/pull/210) Partially Addresses https://github.com/DickinsonCollege/FarmData2/issues/662 --- __Licensing Certification__ FarmData2 is a [Free Cultural Work](https://freedomdefined.org/Definition) and all accepted contributions are licensed as described in the LICENSE.md file. This requires that the contributor holds the rights to do so. By submitting this pull request __I certify that I satisfy the terms of the [Developer Certificate of Origin](https://developercertificate.org/)__ for its contents. Co-authored-by: Michael K <56452607+Mikek16@users.noreply.github.com> --- .../seedingReport.columns.spec.js | 106 ++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 farmdata2/farmdata2_modules/fd2_barn_kit/seedingReport/seedingReport.columns.spec.js diff --git a/farmdata2/farmdata2_modules/fd2_barn_kit/seedingReport/seedingReport.columns.spec.js b/farmdata2/farmdata2_modules/fd2_barn_kit/seedingReport/seedingReport.columns.spec.js new file mode 100644 index 00000000..d5c7b804 --- /dev/null +++ b/farmdata2/farmdata2_modules/fd2_barn_kit/seedingReport/seedingReport.columns.spec.js @@ -0,0 +1,106 @@ +const allExpectedHeaders = [ + { "header": 'Date'}, + { "header": 'Crop'}, + { "header": 'Area'}, + { "header": 'Seeding'}, + { "header": 'Row Feet'}, + { "header": 'Bed Feet'}, + { "header": 'Rows/Bed'}, + { "header": 'Seeds'}, + { "header": 'Trays'}, + { "header": 'Cells/Tray'}, + { "header": 'Workers'}, + { "header": 'Hours'}, + { "header": 'Varieties'}, + { "header": 'Comments'}, + { "header": 'User'}, +]; + +describe("Test the seeding report columns by seeding type", () => { + beforeEach(() => { + + cy.login('manager1', 'farmdata2') + cy.visit('/farm/fd2-barn-kit/seedingReport') + + // Wait here for the maps to load in the page. + cy.waitForPage() + + //first generate a report + cy.get('[data-cy=start-date-select]').type('2020-01-01') + cy.get('[data-cy=end-date-select]').type('2020-07-01') + cy.get('[data-cy=generate-rpt-btn]') + .click() + }) + + it('Checks the Report Table header for the "all" option', () => { + cy.get('[data-cy=report-table]') + .should('exist') + + // Check to see if the checkboxes are visible and enabled + cy.get("[data-cy=r1-cbuttonCheckbox]").should('not.be.disabled') + cy.get("[data-cy=r1-cbuttonCheckbox]").should('be.visible') + + //Make sure these headers exist on the page and the rest are not + let includedHeaders = ["Date", "Crop", "Area", "Seeding", "Workers", "Hours", "Varieties", "Comments", "User"] + let i = 0 + allExpectedHeaders.forEach(header => { + if (includedHeaders.includes(header.header)) { + cy.get("[data-cy=h" + i + "]").should('exist') + } else { + cy.get("[data-cy=h" + i + "]").should('not.exist') + } + i++ + }) + + cy.get('[data-cy=r1-edit-button]').should('exist'); + }); + + it("Tests the direct seeding columns", () => { + cy.get('[data-cy=seeding-type-dropdown] > [data-cy=dropdown-input]').select('Direct Seedings') + + cy.get('[data-cy=report-table]') + .should('exist') + + cy.get("[data-cy=r1-cbuttonCheckbox]").should('not.be.disabled') + cy.get('[data-cy=selectAll-checkbox]').should('be.visible'); + + //Make sure these headers exist on the page and the rest are not + let includedHeaders = ["Date", "Crop", "Area", "Seeding", "Row Feet", "Bed Feet", "Rows/Bed", + "Workers", "Hours", "Varieties", "Comments", "User"] + let i = 0 + allExpectedHeaders.forEach(header => { + if (includedHeaders.includes(header.header)) { + cy.get("[data-cy=h" + i + "]").should('exist') + } else { + cy.get("[data-cy=h" + i + "]").should('not.exist') + } + i++ + }) + + cy.get('[data-cy=r1-edit-button]').should('exist'); + }); + + it("Tests the tray seeding columns", () => { + cy.get('[data-cy=seeding-type-dropdown] > [data-cy=dropdown-input]').select('Tray Seedings') + + cy.get('[data-cy=report-table]') + .should('exist') + + cy.get("[data-cy=r1-cbuttonCheckbox]").should('not.be.disabled') + cy.get('[data-cy=selectAll-checkbox]').should('be.visible'); + + //Make sure these headers exist on the page and the rest are not + let includedHeaders = ["Date", "Crop", "Area", "Seeding", "Seeds", "Trays", "Cells/Tray", "Workers", "Hours", "Varieties", "Comments", "User"] + let i = 0 + allExpectedHeaders.forEach(header => { + if (includedHeaders.includes(header.header)) { + cy.get("[data-cy=h" + i + "]").should('exist') + } else { + cy.get("[data-cy=h" + i + "]").should('not.exist') + } + i++ + }) + + cy.get('[data-cy=r1-edit-button]').should('exist'); + }); +}); From aa4588fed2c70fe48240b21face398bd5fe006e1 Mon Sep 17 00:00:00 2001 From: Roland Locke <80643562+RolandLocke@users.noreply.github.com> Date: Sat, 29 Jul 2023 10:03:37 -0400 Subject: [PATCH 11/74] Migrates: edited documentation in lines 33 and 34 of CustomTableComponent (#239) (#664) Co-authored-by: pranavm2109 __Pull Request Description__ This pull request was orignially created on [FD2School-FarmData2](https://github.com/DickinsonCollege/FD2School-FarmData2). Link to the original pull request: https://github.com/DickinsonCollege/FD2School-FarmData2/pull/239 Partially Addresses https://github.com/DickinsonCollege/FarmData2/issues/662 --- __Licensing Certification__ FarmData2 is a [Free Cultural Work](https://freedomdefined.org/Definition) and all accepted contributions are licensed as described in the LICENSE.md file. This requires that the contributor holds the rights to do so. By submitting this pull request __I certify that I satisfy the terms of the [Developer Certificate of Origin](https://developercertificate.org/)__ for its contents. Co-authored-by: Alexandrialexie <98338885+Alexandrialexie@users.noreply.github.com> Co-authored-by: pranavm2109 --- farmdata2/farmdata2_modules/resources/CustomTableComponent.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/farmdata2/farmdata2_modules/resources/CustomTableComponent.js b/farmdata2/farmdata2_modules/resources/CustomTableComponent.js index 4b9b0cdf..cbb1169f 100644 --- a/farmdata2/farmdata2_modules/resources/CustomTableComponent.js +++ b/farmdata2/farmdata2_modules/resources/CustomTableComponent.js @@ -30,8 +30,8 @@ catch(err) { * ri-cbutton The td element containing the checkbox for the ith table row if it appears. i=0,1,2... * ri-cbuttonCheckbox The checkbox element for the ith table row if custom buttons or deleting is enabled, i=0,1,2,... * ri The tr element for the ith table row, i=0,1,2,... - * td-ricj The td element in the ith row and jth column, i,j=0,1,2... - * ri-* The div for plain text in the ith row and the indicated column, * is replaced by the column header. i=0,1,2.... + * td-ricj The td element in the ith row and jth column, i,j=0,1,2... Note: using td-ricj in cypress tests will cause five additional whitespaces to appear in the td element retrieved. To fix this issue, make sure to use contains.text instead of have.text + * ri-* The div for plain text in the ith row and the indicated column, * is replaced by the column header. i=0,1,2.... Note: using this cy attribute circumvents the issue mentioned in the line above since it does not add five extra whitespaces to the td element. Therefore, it is fine to use have.text * ri-*-input The input element ith row and the indicated column in edit mode, * is replaced by the column header. i=0,1,2.... * ri-edit-button The edit button in the ith row, i=0,1,2.... * ri-save-button The save button in the ith row, i=0,1,2.... From 18224d479f69a78f5d27355a3d579351c8f996c1 Mon Sep 17 00:00:00 2001 From: Roland Locke <80643562+RolandLocke@users.noreply.github.com> Date: Sat, 29 Jul 2023 10:15:46 -0400 Subject: [PATCH 12/74] Migrates: Seeding Input: Tests for Submit Button Behavior (#208) (#665) Co-authored-by: Foogabob Co-authored-by: EliasBerhe __Pull Request Description__ This pull request was orignially created on [FD2School-FarmData2](https://github.com/DickinsonCollege/FD2School-FarmData2). Link to the original pull request: https://github.com/DickinsonCollege/FD2School-FarmData2/pull/208 Partially Addresses https://github.com/DickinsonCollege/FarmData2/issues/662 --- __Licensing Certification__ FarmData2 is a [Free Cultural Work](https://freedomdefined.org/Definition) and all accepted contributions are licensed as described in the LICENSE.md file. This requires that the contributor holds the rights to do so. By submitting this pull request __I certify that I satisfy the terms of the [Developer Certificate of Origin](https://developercertificate.org/)__ for its contents. Signed-off-by: Foogabob <80643562+Foogabob@users.noreply.github.com> Co-authored-by: sidlamsal <98344853+sidlamsal@users.noreply.github.com> Co-authored-by: Foogabob Co-authored-by: EliasBerhe Co-authored-by: Foogabob <80643562+Foogabob@users.noreply.github.com> --- .../seedingInput.submit.button.spec.js | 243 ++++++++++++++++++ 1 file changed, 243 insertions(+) create mode 100644 farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.submit.button.spec.js diff --git a/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.submit.button.spec.js b/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.submit.button.spec.js new file mode 100644 index 00000000..a15c5cad --- /dev/null +++ b/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.submit.button.spec.js @@ -0,0 +1,243 @@ +/** + * These tests are for the submit button of the seeding input. + * They test the following: + * - button is initially disabled. + * - button is enabled when all required fields of tray seeding have valid values. + * - button is enabled when all required fields of direct seeding have valid values. + */ +describe('Test the submit button behavior', () => { + + beforeEach(() => { + cy.login('manager1', 'farmdata2') + cy.visit('/farm/fd2-field-kit/seedingInput') + cy.waitForPage() + }) + + it('Test submit button initially disabled', () => { + cy.get("[data-cy='submit-button']") + .should("be.disabled") + }) + + context("Fills in every input field, then perform tests", () => { + beforeEach(() => { + //Select a date + cy.get('[data-cy="date-selection"] > [data-cy="date-select"]').click() + .type('2021-04-10') + .blur() + //select a crop + cy.get('[data-cy="crop-selection"] > [data-cy="dropdown-input"]') + .select('BEAN') + .blur() + //choose Tray Seeding + cy.get('[data-cy="tray-seedings"]') + .click() + //Choose crop area + cy.get('[data-cy="tray-area-selection"] > [data-cy="dropdown-input"]') + .select('CHUAU') + .blur() + //Input Cells/Tray + cy.get('[data-cy="num-cell-input"] > [data-cy="text-input"]') + .type(5) + .blur() + //Input Trays + cy.get('[data-cy="num-tray-input"] > [data-cy="text-input"]') + .type(5) + .blur() + //Input Seeds + cy.get('[data-cy="num-seed-input"] > [data-cy="text-input"]') + .type(100) + .blur() + //Input workers + cy.get('[data-cy="num-worker-input"] > [data-cy="text-input"]') + .type(3) + .blur() + //Input minutes + cy.get('[data-cy="minute-input"] > [data-cy="text-input"]') + .type(30) + .blur() + }) + + it('Test submit button is enabled', () => { + //with all blank fields filled, the submission button should be enabled + cy.get('[data-cy="submit-button"]') + .should('not.be.disabled') + }) + + it('Test the Data Panel', () => { + //Test date selection is required to enable submission button + cy.get('[data-cy="date-selection"] > [data-cy="date-select"]').click() + .invoke('val', '') + cy.get('[data-cy="submit-button"]') + .should('be.disabled') + //populate the date selection and check that the submission button is re-enabled + cy.get('[data-cy="date-selection"] > [data-cy="date-select"]').click() + .type('2021-04-10') + .blur() + cy.get('[data-cy="submit-button"]') + .should('not.be.disabled') + + //Test crop selection is required to enable submission button + cy.get('[data-cy="crop-selection"] > [data-cy="dropdown-input"]') + .invoke('val', '') + .trigger('change') + cy.get('[data-cy="submit-button"]') + .should('be.disabled') + }) + + it('Test the Tray seeding Panel', () => { + //Test area dropdown is required to be populated to enable submission button + cy.get('[data-cy="tray-area-selection"] > [data-cy="dropdown-input"]') + .invoke('val', '') + .trigger('change') + cy.get('[data-cy="submit-button"]') + .should('be.disabled') + //populate the area selection and check that the submission button is re-enabled + cy.get('[data-cy="tray-area-selection"] > [data-cy="dropdown-input"]') + .select('CHUAU') + .blur() + cy.get('[data-cy="submit-button"]') + .should('not.be.disabled') + + //Test Cells/Tray input is required to be populated to enable submission button + cy.get('[data-cy="num-cell-input"] > [data-cy="text-input"]').click() + .type('{selectall}{backspace}') + .blur() + cy.get('[data-cy="submit-button"]') + .should('be.disabled') + //populate Cells/Tray input and check submission button is enabled + cy.get('[data-cy="num-cell-input"] > [data-cy="text-input"]').click() + .type('5') + .blur() + cy.get('[data-cy="submit-button"]') + .should('not.be.disabled') + + //Test Trays input is required to be populated to enable submission button + cy.get('[data-cy="num-tray-input"] > [data-cy="text-input"]').click() + .type('{selectall}{backspace}') + .blur() + cy.get('[data-cy="submit-button"]') + .should('be.disabled') + //populate Trays input and check submission button is enabled + cy.get('[data-cy="num-tray-input"] > [data-cy="text-input"]').click() + .type('3') + .blur() + cy.get('[data-cy="submit-button"]') + .should('not.be.disabled') + + //Test Seeds input is required to be populated to enable submission button + cy.get('[data-cy="num-seed-input"] > [data-cy="text-input"]').click() + .type('{selectall}{backspace}') + .blur() + cy.get('[data-cy="submit-button"]') + .should('be.disabled') + //populate Seeds input and check submission button is enabled + cy.get('[data-cy="num-seed-input"] > [data-cy="text-input"]').click() + .type('50') + .blur() + cy.get('[data-cy="submit-button"]') + .should('not.be.disabled') + }) + + it('Test the Direct seeding Panel', () => { + //Change to the Direct seeding panel + cy.get('[data-cy="direct-seedings"]') + .click() + .blur() + //populate the direct seeding panel + cy.get('[data-cy="direct-area-selection"] > [data-cy="dropdown-input"]') + .select('CHUAU-1') + .blur() + cy.get('[data-cy="num-feet-input"] > [data-cy="text-input"]').click() + .type('50') + .blur() + cy.get('[data-cy="num-rowbed-input"] > [data-cy="text-input"]').click() + .type('5') + .blur() + cy.get('[data-cy="submit-button"]') + .should('not.be.disabled') + + //Test area dropdown is required to be populated to enable submission button + cy.get('[data-cy="direct-area-selection"] > [data-cy="dropdown-input"]') + .invoke('val', '') + .trigger('change') + cy.get('[data-cy="submit-button"]') + .should('be.disabled') + //populate the area selection and check that the submission button is re-enabled + cy.get('[data-cy="direct-area-selection"] > [data-cy="dropdown-input"]') + .select('CHUAU-1') + .blur() + cy.get('[data-cy="submit-button"]') + .should('not.be.disabled') + + //Test Rows/Bed input is required to be populated to enable submission button + cy.get('[data-cy="num-rowbed-input"] > [data-cy="text-input"]').click() + .type('{selectall}{backspace}') + .blur() + cy.get('[data-cy="submit-button"]') + .should('be.disabled') + //populate Rows/Bed input and check submission button is enabled + cy.get('[data-cy="num-rowbed-input"] > [data-cy="text-input"]').click() + .type('5') + .blur() + cy.get('[data-cy="submit-button"]') + .should('not.be.disabled') + + //Test Bed Feet input is required to be populated to enable submission button + cy.get('[data-cy="num-feet-input"] > [data-cy="text-input"]').click() + .type('{selectall}{backspace}') + .blur() + cy.get('[data-cy="submit-button"]') + .should('be.disabled') + //populate Bed Feet input and check submission button is enabled + cy.get('[data-cy="num-feet-input"] > [data-cy="text-input"]').click() + .type('50') + .blur() + cy.get('[data-cy="submit-button"]') + .should('not.be.disabled') + }) + + it('Test the Labor Panel', () => { + //Test number of laborers input is required to be populated to enable submission button + cy.get('[data-cy="num-worker-input"] > [data-cy="text-input"]').click() + .type('{selectall}{backspace}') + .blur() + cy.get('[data-cy="submit-button"]') + .should('be.disabled') + //populate number of laborers input and check submission button is enabled + cy.get('[data-cy="num-worker-input"] > [data-cy="text-input"]').click() + .type('6') + .blur() + cy.get('[data-cy="submit-button"]') + .should('not.be.disabled') + + //Test the minutes input is required to be populated to enable submission button + cy.get('[data-cy="minute-input"] > [data-cy="text-input"]').click() + .type('{selectall}{backspace}') + .blur() + cy.get('[data-cy="submit-button"]') + .should('be.disabled') + //populate number of laborers input and check submission button is enabled + cy.get('[data-cy="minute-input"] > [data-cy="text-input"]').click() + .type('30') + .blur() + cy.get('[data-cy="submit-button"]') + .should('not.be.disabled') + //clear the minute input + cy.get('[data-cy="minute-input"] > [data-cy="text-input"]') + .type('{selectall}{backspace}') + .blur() + + //switch to the hours time input and test it is required to be populated to enable submission button + cy.get('[data-cy="time-unit"] > [data-cy="dropdown-input"]') + .select('hours') + .blur() + cy.get('[data-cy="submit-button"]') + .should('be.disabled') + cy.get('[data-cy="hour-input"] > [data-cy="text-input"]').click() + .type('2') + .blur() + cy.get('[data-cy="submit-button"]') + .should('not.be.disabled') + }) + }) +}) \ No newline at end of file From 5ece3829c294b5255e7fd95efa84f9ae12305984 Mon Sep 17 00:00:00 2001 From: Roland Locke <80643562+RolandLocke@users.noreply.github.com> Date: Sat, 29 Jul 2023 10:18:27 -0400 Subject: [PATCH 13/74] Migrates: Tested the Seeding Report Crop Filter (#196) (#666) Co-authored-by: andrewscheiner53 Co-authored-by: pranavm2109 __Pull Request Description__ This pull request was orignially created on [FD2School-FarmData2](https://github.com/DickinsonCollege/FD2School-FarmData2). Link to the original pull request: https://github.com/DickinsonCollege/FD2School-FarmData2/pull/196 Partially Addresses https://github.com/DickinsonCollege/FarmData2/issues/662 --- __Licensing Certification__ FarmData2 is a [Free Cultural Work](https://freedomdefined.org/Definition) and all accepted contributions are licensed as described in the LICENSE.md file. This requires that the contributor holds the rights to do so. By submitting this pull request __I certify that I satisfy the terms of the [Developer Certificate of Origin](https://developercertificate.org/)__ for its contents. Co-authored-by: Alexandrialexie <98338885+Alexandrialexie@users.noreply.github.com> Co-authored-by: andrewscheiner53 Co-authored-by: pranavm2109 --- .../seedingReport.crop.filter.spec.js | 77 +++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 farmdata2/farmdata2_modules/fd2_barn_kit/seedingReport/seedingReport.crop.filter.spec.js diff --git a/farmdata2/farmdata2_modules/fd2_barn_kit/seedingReport/seedingReport.crop.filter.spec.js b/farmdata2/farmdata2_modules/fd2_barn_kit/seedingReport/seedingReport.crop.filter.spec.js new file mode 100644 index 00000000..4d75f0f4 --- /dev/null +++ b/farmdata2/farmdata2_modules/fd2_barn_kit/seedingReport/seedingReport.crop.filter.spec.js @@ -0,0 +1,77 @@ +/** + * The crop dropdown in the Seeding Report allows the user to filter the crops that appear + * in the generated table. This spec tests that when the table is generated that if the + * option "All" is selected that multiple crops will be allowed to appear in the table + * and that when one of the crop options is selected then only that crop will appear in + * the table. This spec will also test that only the crops that appear in the selected date + * range, and "All", will be options in the crop dropdown. + */ +describe("Test that the crop filter in the Seeding Report works as intended", () => { + beforeEach(() => { + cy.login("manager1", "farmdata2") + cy.visit("/farm/fd2-barn-kit/seedingReport") + cy.waitForPage() + }) + + it("Tests that the dropdown for the crop filter only contains the crops that exist in the given date range", () => { + cy.get('[data-cy=start-date-select]').type('2019-07-06') + cy.get('[data-cy=end-date-select]').type('2019-07-12') + cy.get('[data-cy=generate-rpt-btn]').click() + //There should be four options: the three crops in this date range and the "All" option. + cy.get('[data-cy=crop-dropdown] > [data-cy=dropdown-input]').children().should("have.length", 4) + //the first option in the drop down should be "All" + cy.get('[data-cy=crop-dropdown] > [data-cy=dropdown-input] > [data-cy=option0]').should('have.value', 'All') + //the second option in the drop down should be "BROCCOLI" + cy.get('[data-cy=crop-dropdown] > [data-cy=dropdown-input] > [data-cy=option1]').should('have.value', 'BROCCOLI') + //the third option in the drop down should be "CAULIFLOWER" + cy.get('[data-cy=crop-dropdown] > [data-cy=dropdown-input] > [data-cy=option2]').should('have.value', 'CAULIFLOWER') + //the fourth, and final, option in the drop down should be "KOHLRABI" + cy.get('[data-cy=crop-dropdown] > [data-cy=dropdown-input] > [data-cy=option3]').should('have.value', 'KOHLRABI') + }) + + /** + * The test below will check that when the All option is selected, + * the seeding report table will contain several different crops. + * First, the table should have 6 rows, and the length has been validated. + * Next, the crops variable is a list of crops which should appear in the table. + * The cropsRegex variable uses regex to combine the expected crops + * into a list which can act as an "or" statement when .contains() is used. + * This will check that a crop value existing in our table is expected. + * Thus, for each row in the table, the crop value is checked + * using its data-cy attribute to validate that the crop exists in + * the list of expected crops, and that there are several unique crops. + */ + it("Tests that when 'All' crops are selected, the table will have seeding logs for several crops", () => { + cy.get('[data-cy=start-date-select]').type('2019-07-06') + cy.get('[data-cy=end-date-select]').type('2019-07-12') + cy.get('[data-cy=generate-rpt-btn]').click() + cy.get('[data-cy=crop-dropdown] > [data-cy=dropdown-input]').should('have.value', 'All') + cy.get('[data-cy=table-body]').children().should('have.length', 6) + const crops = ['KOHLRABI', 'BROCCOLI', 'CAULIFLOWER'] + const cropsRegex = new RegExp(`${crops.join('|')}`, 'g') + for(let i = 0; i < 6; i++) + { + cy.get('[data-cy=td-r'+i+'c1]').contains(cropsRegex) + } + }) + + it("Tests that when a specific crop is selected, the table will have only the seeding logs for that crop", () => { + //Selecting date range 07/06/2019 - 07/12/2019 + cy.get('[data-cy=start-date-select]').type('2019-07-06') + cy.get('[data-cy=end-date-select]').type('2019-07-12') + cy.get('[data-cy=generate-rpt-btn]').click() + //Selecting CAULIFLOWER in the crops dropdown menu: + cy.get('[data-cy=crop-dropdown] > [data-cy=dropdown-input]').select('CAULIFLOWER') + //checking to ensure CAULIFLOWER is selected in the dropdown menu: + cy.get('[data-cy=crop-dropdown] > [data-cy=dropdown-input]').should('have.value', 'CAULIFLOWER') + //checking that only 3 logs exist in the table: + cy.get('[data-cy=table-body]') + .children() + .should('have.length', 3) + //Check that only logs pertaining to CAULIFLOWER exist in the table + for(let i = 0; i < 3; i++){ + cy.get('[data-cy=r'+i+"-Crop]") + .should('have.text', 'CAULIFLOWER') + } + }) +}) \ No newline at end of file From 7e0d5b959ab258823b681a8555436982de4d0925 Mon Sep 17 00:00:00 2001 From: Roland Locke <80643562+RolandLocke@users.noreply.github.com> Date: Sat, 29 Jul 2023 10:18:43 -0400 Subject: [PATCH 14/74] Migrates: FieldKit Tab: Test for FieldKit Sub-Tabs (#212) (#667) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Created txt file for initialize branch * Created epr1.md * deleted created_branch.txt * Revised EPR1 * cypress file created for fieldkit sub-tab * beforeEach added for login in farmdata2 web * changed url for beforeEach and sub-task1 finished * finished sub-task 1 * Checks that the order of the tabs is “Info” and then “Seeding Input.” * ignore this commit * Revert "deleted created_branch.txt" This reverts commit fff6611033b011469f6543c3964db1433d084306. * Implemented a test that checks the correct number of sub-tabs * Removed create_branch.txt and reports directory. * Verifies that the number of sub- tabs is exactly 2 and adds a general comment at the top of the file Co-authored-by: won369369 Co-authored-by: Shahir-47 --------- __Pull Request Description__ This pull request was orignially created on [FD2School-FarmData2](https://github.com/DickinsonCollege/FD2School-FarmData2). Link to the original pull request: https://github.com/DickinsonCollege/FD2School-FarmData2/pull/212 Partially Addresses https://github.com/DickinsonCollege/FarmData2/issues/662 --- __Licensing Certification__ FarmData2 is a [Free Cultural Work](https://freedomdefined.org/Definition) and all accepted contributions are licensed as described in the LICENSE.md file. This requires that the contributor holds the rights to do so. By submitting this pull request __I certify that I satisfy the terms of the [Developer Certificate of Origin](https://developercertificate.org/)__ for its contents. Co-authored-by: GyuJin Lee <98343991+JinLeeGG@users.noreply.github.com> Co-authored-by: won369369 Co-authored-by: Shahir-47 --- .../cypress/fieldkit.tab.spec.js | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 farmdata2/farmdata2_modules/fd2_field_kit/cypress/fieldkit.tab.spec.js diff --git a/farmdata2/farmdata2_modules/fd2_field_kit/cypress/fieldkit.tab.spec.js b/farmdata2/farmdata2_modules/fd2_field_kit/cypress/fieldkit.tab.spec.js new file mode 100644 index 00000000..9c045961 --- /dev/null +++ b/farmdata2/farmdata2_modules/fd2_field_kit/cypress/fieldkit.tab.spec.js @@ -0,0 +1,42 @@ +/** + * This file contains Cypress tests for the FieldKit tabbed interface on the fd2_farmdata2 website. + * The tests check the following: + * + * - The FieldKit tab contains sub-tabs for "Info" and "Seeding Input." + * - The order of the tabs is "Info" and then "Seeding Input." + * - There are the correct number of sub-tabs (2 at this time). + * + * These tests are intended to ensure that the FieldKit tabbed interface is implemented correctly + * and that it meets the requirements specified by the design. + */ + +describe('Test for FieldKit Sub-Tabs', () => { + + beforeEach(() => { + cy.login('manager1', 'farmdata2') + cy.visit('/farm/fd2-field-kit') + }) + + //issue #200, sub-task 1 + it('Verify that FieldKit tab contains sub-tabs for "Info" and "Seeding Input"', () => { + cy.get('.pagination-sm').contains('Info').should('exist') + cy.get('.pagination-sm').contains('Seeding Input').should('exist') + }) + + //issue #200, sub-task 2 + it('checks the order of the tabs is “Info” and then “Seeding Input.”', () => { + cy.get('ul.pagination-sm') + .find('li') + .filter(':contains("Info")') + .next() + .should('contain', 'Seeding Input'); + }) + + //issue #200, sub-task 3 + it('checks the correct number of sub-tabs', () => { + cy.get('ul.pagination-sm') + .find('li') + .should('have.length', 2) + }) + +}) \ No newline at end of file From 6e4980ac6a6a66a0d48e5e5e0400367382218472 Mon Sep 17 00:00:00 2001 From: Roland Locke <80643562+RolandLocke@users.noreply.github.com> Date: Sat, 29 Jul 2023 10:24:13 -0400 Subject: [PATCH 15/74] Migrates: Testing Seeding Input Tray Seeding Defaults (#194) (#668) * add tray selection test * add area dropdown test * Adding test for seeding field and trays field * Write tests for area dropdown and cells/tray field in Tray Seeding Input * reformat the tests and add test no area is selected by default * Fixing test for input value * fix testing on tray seeding input * reformat the test and modify the test dropdown area * Reformat Testing tray and seed fields * add blank line and test enable Co-authored-by: nguyenbanhducA1K51 Co-authored-by: phong260702 --------- __Pull Request Description__ This pull request was originally created on [FD2School-FarmData2](https://github.com/DickinsonCollege/FD2School-FarmData2). Link to the original pull request: https://github.com/DickinsonCollege/FD2School-FarmData2/pull/194 Partially Addresses https://github.com/DickinsonCollege/FarmData2/issues/662 --- __Licensing Certification__ FarmData2 is a [Free Cultural Work](https://freedomdefined.org/Definition) and all accepted contributions are licensed as described in the LICENSE.md file. This requires that the contributor holds the rights to do so. By submitting this pull request __I certify that I satisfy the terms of the [Developer Certificate of Origin](https://developercertificate.org/)__ for its contents. Co-authored-by: Quan Nguyen <101671879+qnhn22@users.noreply.github.com> Co-authored-by: nguyenbanhducA1K51 Co-authored-by: phong260702 --- .../seedingInput/seedingInput.html | 2 +- .../seedingInput.tray.defaults.spec.js | 52 +++++++++++++++++++ .../seedingInput/seedingReport.spec.js | 0 3 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.tray.defaults.spec.js create mode 100644 farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingReport.spec.js diff --git a/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.html b/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.html index 172cf138..36bcceb4 100644 --- a/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.html +++ b/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.html @@ -27,7 +27,7 @@

Seeding Input Log

Please Select Tray Seeding or Direct Seeding

-
+
Area:
- Comments + Comments
diff --git a/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.misc.defaults.spec.js b/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.misc.defaults.spec.js new file mode 100644 index 00000000..81591f3c --- /dev/null +++ b/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.misc.defaults.spec.js @@ -0,0 +1,32 @@ +/** + * This file test some default contents of the Seeding Input Form in the FieldKit tab. + */ +describe('Test Seeding Input Miscellaneous Defaults', () =>{ + beforeEach(()=>{ + cy.login("manager1", "farmdata2") + cy.visit('/farm/fd2-field-kit/seedingInput') + }) + + it("Check that the SUBMIT button is disabled", () => { + cy.get("[data-cy=submit-button]").should("be.disabled") + }) + + it('Test the comment text box is empty and enabled', ()=>{ + cy.get("[data-cy=comments").should("be.empty") + cy.get("[data-cy=comments").should('not.be.disabled') + }) + + it('Test the Submit button box is labeled', ()=>{ + cy.get("[data-cy=submit-button]").should("have.text","Submit").should('be.visible') + }) + + it("Check that the page has a header", () => { + cy.get("[data-cy=header]").should("have.text", "Seeding Input Log") + }) + + it("Check that the section has a label comment", () => { + cy.get("[data-cy=comments-label]").should("have.text","Comments") + cy.get("[data-cy=comments-label]").should("be.visible") + }) + +}) From b019f81dd94f5f41b362138ac4f5dd6f6260d581 Mon Sep 17 00:00:00 2001 From: Roland Locke <80643562+RolandLocke@users.noreply.github.com> Date: Sat, 29 Jul 2023 10:24:44 -0400 Subject: [PATCH 17/74] Migrates: BarnKit Subtab testing (#219) (#670) * Initial commit for BarnKit tab testing * Tested the BarnKit tab contains the 3 sub-tabs * Added the Second test and initiated the third test of the barnkitTab.spec.js * Testing on proper branch * Revised test for BarnKit subtabs ordering and length * Delete transplantingReport.defaults.spec.js * Revised the test for checking number of subtabs * Resolved issues and committed final changes Signed-off-by: Udval Enkhtaivan <74579865+udvale@users.noreply.github.com> Co-authored-by: thorpIV Co-authored-by: aliouas --------- __Pull Request Description__ This pull request was orignially created on [FD2School-FarmData2](https://github.com/DickinsonCollege/FD2School-FarmData2). Link to the original pull request: https://github.com/DickinsonCollege/FD2School-FarmData2/pull/219 Partially Addresses https://github.com/DickinsonCollege/FarmData2/issues/662 --- __Licensing Certification__ FarmData2 is a [Free Cultural Work](https://freedomdefined.org/Definition) and all accepted contributions are licensed as described in the LICENSE.md file. This requires that the contributor holds the rights to do so. By submitting this pull request __I certify that I satisfy the terms of the [Developer Certificate of Origin](https://developercertificate.org/)__ for its contents. Signed-off-by: Udval Enkhtaivan <74579865+udvale@users.noreply.github.com> Co-authored-by: Udval Enkhtaivan <74579865+udvale@users.noreply.github.com> Co-authored-by: thorpIV Co-authored-by: aliouas --- .../fd2_barn_kit/cypress/barnkitTab.spec.js | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 farmdata2/farmdata2_modules/fd2_barn_kit/cypress/barnkitTab.spec.js diff --git a/farmdata2/farmdata2_modules/fd2_barn_kit/cypress/barnkitTab.spec.js b/farmdata2/farmdata2_modules/fd2_barn_kit/cypress/barnkitTab.spec.js new file mode 100644 index 00000000..cc4d67ad --- /dev/null +++ b/farmdata2/farmdata2_modules/fd2_barn_kit/cypress/barnkitTab.spec.js @@ -0,0 +1,22 @@ +describe("Testing SubTabs in BarnKit", () => { + beforeEach(() => { + cy.login('manager1', 'farmdata2') + cy.visit('/farm/fd2-barn-kit') + }) + + it("BarnKit tab contains the subtabs" , () => { + cy.get(".pagination-sm").contains("Info").should("exist") + cy.get(".pagination-sm").contains("Seeding Report").should("exist") + cy.get(".pagination-sm").contains("Transplanting Report").should("exist") + }) + + it("BarnKit tabs are ordered properly" , () => { + cy.get(".pagination-sm > li > a").eq(0).should("contain.text", "Info") + cy.get(".pagination-sm > li > a").eq(1).should("contain.text", "Seeding Report") + cy.get(".pagination-sm > li > a").eq(2).should("contain.text", "Transplanting Report") + }) + + it("BarnKit has three sub tabs" , () => { + cy.get(".pagination-sm > li").should("have.length", "3") + }) +}) From d6a51453449ef5ff88ce8b975ebbebd13f32802e Mon Sep 17 00:00:00 2001 From: Roland Locke <80643562+RolandLocke@users.noreply.github.com> Date: Sat, 29 Jul 2023 10:24:58 -0400 Subject: [PATCH 18/74] Migrates: Test Seeding Input Direct Seeding Defaults (#182) (#671) * Created txt file for initialize branch * testing commit on feature branch * SeedingInput cypress file created * Tests must check that the Direct Seeding section of the Seeding Input Form appears when "Direct" is selected * deleted create_branch.txt * cypress test name changed * Test that it displays dropdown for units * comment for numbering sub-task 6 added * test for dropdown area * Reviewed Gyujin's solution to sub-task 3, 7 * checks that there is a field for Row/Bed that is empty and enabled * checks that there is a field for Bed Feed that is empty and enabled * checks that Bed Feet is the default units * rearranged the order of each sub-test * changed cypress file name * changed correct cypress file name * resolved all conversations from prof. braught * added comments to each sub-tasks * changed unit dropdown * removed then() and added cy.waitForPage() for subtasks 2, 6 * Implemented the test that checks the area dropdown is enabled and removed cy.waitForPage due to error. * "added cy.waitForPage()" * Removed sub-task comments * add a comment at the top of the file describing what the purpose of the file is. Co-authored-by: won369369 Co-authored-by: JinLeeGG Co-authored-by: Shahir-47 --------- __Pull Request Description__ This pull request was orignially created on [FD2School-FarmData2](https://github.com/DickinsonCollege/FD2School-FarmData2). Link to the original pull request: https://github.com/DickinsonCollege/FD2School-FarmData2/pull/182 Partially Addresses https://github.com/DickinsonCollege/FarmData2/issues/662 --- __Licensing Certification__ FarmData2 is a [Free Cultural Work](https://freedomdefined.org/Definition) and all accepted contributions are licensed as described in the LICENSE.md file. This requires that the contributor holds the rights to do so. By submitting this pull request __I certify that I satisfy the terms of the [Developer Certificate of Origin](https://developercertificate.org/)__ for its contents. Co-authored-by: won369369 <60108250+won369369@users.noreply.github.com> Co-authored-by: won369369 Co-authored-by: JinLeeGG Co-authored-by: Shahir-47 --- .../seedingInput.direct.defaults.spec.js | 75 +++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.direct.defaults.spec.js diff --git a/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.direct.defaults.spec.js b/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.direct.defaults.spec.js new file mode 100644 index 00000000..5adaf9a4 --- /dev/null +++ b/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.direct.defaults.spec.js @@ -0,0 +1,75 @@ +/* +This file contains tests for the seeding input functionality in the FarmData2 Field Kit application. +The purpose of these tests is to verify the proper functioning of the seeding input form elements, +such as display, loading of area data, field states, and default values. +*/ + +describe("Tests for seeding input", () => { + + beforeEach(() => { + cy.login('manager1', 'farmdata2') + cy.visit('/farm/fd2-field-kit/seedingInput') + }) + + it('should display the Direct Seeding section when Direct is selected', () => { + cy.get('[data-cy=direct-seedings]').check(); + cy.get('[data-cy=direct-area-selection]').should('be.visible'); + cy.get('[data-cy=num-rowbed-input]').should('be.visible'); + cy.get('[data-cy=unit-feet]').should('be.visible'); + cy.get('[data-cy=num-feet-input]').should('be.visible'); + }); + + it('checks that the area dropdown is enabled', () => { + cy.get('[data-cy=direct-seedings]').click() + cy.get('[data-cy=direct-area-selection] > [data-cy=dropdown-input]') + .should('be.enabled') + }); + + it('test if areas are correctly loaded to the dropdown for direct seeding', () => { + cy.waitForPage() + cy.get('[data-cy=direct-seedings]') + .click() + cy.get('[data-cy=direct-area-selection] > [data-cy=dropdown-input] > [data-cy=option0]') + .should('have.value', 'A') + cy.get('[data-cy=direct-area-selection] > [data-cy=dropdown-input] > [data-cy=option64]') + .should('have.value', 'Z') + cy.get('[data-cy=direct-area-selection] > [data-cy=dropdown-input]') + .children() + .should('have.length', 65) + }) + + it('checks that there is a field for "Row/Bed" that is empty and enabled', () => { + cy.get('[data-cy=direct-seedings]').click() + cy.get('[data-cy=num-rowbed-input] > [data-cy=text-input]') + .should('be.enabled') // check that it is enabled + .should('have.value', '') + }) + + it('checks that there is a field for "Bed Feed" that is empty and enabled', () => { + cy.get('[data-cy=direct-seedings]').click() + cy.get('[data-cy=unit-feet] > [data-cy=dropdown-input]') + .select('Bed Feet') + + cy.get('[data-cy=num-feet-input] > [data-cy=text-input]') + .should('be.enabled') // check that it is enabled + .should('have.value', '') + }) + + it('should display dropdown for units that is enabled', () => { + cy.get('[data-cy=direct-seedings]') + .click() + cy.get('[data-cy=unit-feet] > [data-cy=dropdown-input] > [data-cy=option0]') + .should('have.value', 'Bed Feet') + cy.get('[data-cy=unit-feet] > [data-cy=dropdown-input] > [data-cy=option1]') + .should('have.value', 'Row Feet') + cy.get('[data-cy=unit-feet] > [data-cy=dropdown-input]') + .children() + .should('have.length', 2) + }) + + it('checks that "Bed Feet" is the default units', () => { + cy.get('[data-cy=direct-seedings]').click() + cy.get('[data-cy=unit-feet] > [data-cy=dropdown-input]') + .should('have.value', 'Bed Feet') + }) +}) \ No newline at end of file From e3d7027aec8fc3f9f8d7516154eb7a60da44b3fb Mon Sep 17 00:00:00 2001 From: Roland Locke <80643562+RolandLocke@users.noreply.github.com> Date: Sat, 29 Jul 2023 10:25:13 -0400 Subject: [PATCH 19/74] Migrates: Testing Transplanting Report Defaults (#197) (#672) * Added spec.js file for testing transplating report * Tested page header and section label * Tested if the generate button has correct value and is enabled * The report table is not visible * Tested default start, end dates using dayjs * Changed data-cy atrribute name for - Set Dates * click() is removed when getting the default dates * Made final changes for the test * Made final changes to the test __Pull Request Description__ This pull request was orignially created on [FD2School-FarmData2](https://github.com/DickinsonCollege/FD2School-FarmData2). Link to the original pull request: https://github.com/DickinsonCollege/FD2School-FarmData2/pull/197 Partially Addresses https://github.com/DickinsonCollege/FarmData2/issues/662 --- __Licensing Certification__ FarmData2 is a [Free Cultural Work](https://freedomdefined.org/Definition) and all accepted contributions are licensed as described in the LICENSE.md file. This requires that the contributor holds the rights to do so. By submitting this pull request __I certify that I satisfy the terms of the [Developer Certificate of Origin](https://developercertificate.org/)__ for its contents. Co-authored-by: Udval Enkhtaivan <74579865+udvale@users.noreply.github.com> --- .../transplantingReport.defaults.spec.js | 29 +++++++++++++++++++ .../transplantingReport.html | 4 +-- 2 files changed, 31 insertions(+), 2 deletions(-) create mode 100644 farmdata2/farmdata2_modules/fd2_barn_kit/transplantingReport/transplantingReport.defaults.spec.js diff --git a/farmdata2/farmdata2_modules/fd2_barn_kit/transplantingReport/transplantingReport.defaults.spec.js b/farmdata2/farmdata2_modules/fd2_barn_kit/transplantingReport/transplantingReport.defaults.spec.js new file mode 100644 index 00000000..e541b9f5 --- /dev/null +++ b/farmdata2/farmdata2_modules/fd2_barn_kit/transplantingReport/transplantingReport.defaults.spec.js @@ -0,0 +1,29 @@ +const dayjs = require('dayjs') + +describe("Testing Transplanting Report in BarnKit", () => { + beforeEach(() => { + cy.login('manager1', 'farmdata2') + cy.visit('/farm/fd2-barn-kit/transplantingReport') + }) + + it("Check page and table header" ,() => { + cy.get("[data-cy = report-header]").should("have.text", "Transplanting Report") + cy.get("[data-cy = table-header]").should("have.text", "Set Dates") + }) + + it("The report table shouldn't be visible", () => { + cy.get("[data-cy = report-table]").should("not.exist") + }) + + it("Check generate button functionality", () => { + cy.get("[data-cy = generate-rpt-btn]").should("have.text", "Generate Report") + cy.get("[data-cy = generate-rpt-btn]").should("be.enabled") + }) + + it("Check start and end date with current year", () => { + cy.get("[data-cy = date-range-selection] > [data-cy = end-date-select] > [data-cy = date-select]") + .should('have.value',dayjs().format("YYYY-MM-DD")) + cy.get("[data-cy = date-range-selection] > [data-cy = start-date-select] > [data-cy = date-select]") + .should('have.value',dayjs().format("YYYY-01-01")) + }) +}) \ No newline at end of file diff --git a/farmdata2/farmdata2_modules/fd2_barn_kit/transplantingReport/transplantingReport.html b/farmdata2/farmdata2_modules/fd2_barn_kit/transplantingReport/transplantingReport.html index 1eb9ae52..62523cde 100644 --- a/farmdata2/farmdata2_modules/fd2_barn_kit/transplantingReport/transplantingReport.html +++ b/farmdata2/farmdata2_modules/fd2_barn_kit/transplantingReport/transplantingReport.html @@ -1,9 +1,9 @@
-

Transplanting Report

+

Transplanting Report

- Set Dates + Set Dates
Date: Sat, 29 Jul 2023 10:25:49 -0400 Subject: [PATCH 20/74] Migrates: Initial commit, adding seeding input data cypress test (#175) (#674) * Initial commit, adding seeding input data cypress test * subtask #1 Assert header has 'Data' * Check the crop dropdown list size * Testing crop dropdown * Testing for crop dropdown length * Testing for crop dropdown length * test input date element enabled and has correct default value * Created test to check if crop selected has been enabled * Cleaning cypress test * Add test to check if any option was selected * Remove dropdown element reference via children function * combined similar 'it' blocks * Created test to check that the crop drop down does not have a selected value Co-authored-by: nathang15 Co-authored-by: infantlikesprogramming --------- __Pull Request Description__ This pull request was orignially created on [FD2School-FarmData2](https://github.com/DickinsonCollege/FD2School-FarmData2). Link to the original pull request: https://github.com/DickinsonCollege/FD2School-FarmData2/pull/175 Partially Addresses https://github.com/DickinsonCollege/FarmData2/issues/662 --- __Licensing Certification__ FarmData2 is a [Free Cultural Work](https://freedomdefined.org/Definition) and all accepted contributions are licensed as described in the LICENSE.md file. This requires that the contributor holds the rights to do so. By submitting this pull request __I certify that I satisfy the terms of the [Developer Certificate of Origin](https://developercertificate.org/)__ for its contents. Co-authored-by: Michael K <56452607+Mikek16@users.noreply.github.com> Co-authored-by: nathang15 Co-authored-by: infantlikesprogramming --- .../seedingInput.data.defaults.spec.js | 29 +++++++++++++++++++ .../seedingInput/seedingInput.html | 2 +- 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.data.defaults.spec.js diff --git a/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.data.defaults.spec.js b/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.data.defaults.spec.js new file mode 100644 index 00000000..0d46bde3 --- /dev/null +++ b/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.data.defaults.spec.js @@ -0,0 +1,29 @@ +const dayjs = require('dayjs') + +describe("Test Data section of Seeding Input form", () =>{ + + + beforeEach(() => { + cy.login('manager1', 'farmdata2') + cy.visit('/farm/fd2-field-kit/seedingInput') + }) + + it("Checks the Data header", () => { + cy.get("[data-cy=data-header").should('have.text',"Data") + }) + + it("Checks the Date input defaults", () => { + cy.get("[data-cy=date-selection").should('not.be.disabled') + cy.get('[data-cy=date-selection] input[type=date]').should('be.visible').should('have.value', dayjs().format('YYYY-MM-DD')); + }) + + it("Checks the crop-dropdown defaults", ()=>{ + cy.waitForPage() + + cy.get("[data-cy=crop-selection] > [data-cy=dropdown-input]").should("not.be.disabled") + cy.get("[data-cy=crop-selection] > [data-cy=dropdown-input]").should('have.value', null) + cy.get("[data-cy=crop-selection] > [data-cy=dropdown-input] > [data-cy=option0").should("have.text","ARUGULA") + cy.get("[data-cy=crop-selection] > [data-cy=dropdown-input] > [data-cy=option110").should("have.text","ZUCCHINI") + cy.get("[data-cy=crop-selection] > select").find("option").should("have.length", 111); + }) +}) \ No newline at end of file diff --git a/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.html b/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.html index eba8428b..badbc35b 100644 --- a/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.html +++ b/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.html @@ -12,7 +12,7 @@

Seeding Input Log


- Data + Data
Date:
From 4fe95f2e5130d7bcdd1458e18cfbe2e549b4e63c Mon Sep 17 00:00:00 2001 From: Roland Locke <80643562+RolandLocke@users.noreply.github.com> Date: Sat, 29 Jul 2023 10:26:00 -0400 Subject: [PATCH 21/74] Migrates: Cypress Tests for Seeding Input Labor Defaults (#173) (#675) * added spec.js file * Added it block for testing header * checked the number of workers field is empty and enabled * checked the number of time worked field is empty and enabled * Added the "check correct dropdown for selected time unit" "Checks Time units dropdown" "checks time units default is minutes" * couple of spacing and alignment issues fixed. * changed a test name to be more descriptive Signed-off-by: Foogabob <80643562+Foogabob@users.noreply.github.com> Co-authored-by: EliasBerhe Co-authored-by: Foogabob Co-authored-by: Foogabob <80643562+Foogabob@users.noreply.github.com> --------- __Pull Request Description__ This pull request was orignially created on [FD2School-FarmData2](https://github.com/DickinsonCollege/FD2School-FarmData2). Link to the original pull request: https://github.com/DickinsonCollege/FD2School-FarmData2/pull/173 Partially Addresses https://github.com/DickinsonCollege/FarmData2/issues/662 --- __Licensing Certification__ FarmData2 is a [Free Cultural Work](https://freedomdefined.org/Definition) and all accepted contributions are licensed as described in the LICENSE.md file. This requires that the contributor holds the rights to do so. By submitting this pull request __I certify that I satisfy the terms of the [Developer Certificate of Origin](https://developercertificate.org/)__ for its contents. Signed-off-by: Foogabob <80643562+Foogabob@users.noreply.github.com> Co-authored-by: sidlamsal <98344853+sidlamsal@users.noreply.github.com> Co-authored-by: EliasBerhe Co-authored-by: Foogabob Co-authored-by: Foogabob <80643562+Foogabob@users.noreply.github.com> --- .../seedingInput/seedingInput.html | 2 +- .../seedingInput.labor.defaults.spec.js | 52 +++++++++++++++++++ 2 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.labor.defaults.spec.js diff --git a/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.html b/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.html index badbc35b..5cd2f183 100644 --- a/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.html +++ b/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.html @@ -53,7 +53,7 @@

Seeding Input Log

- Labor + Labor
diff --git a/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.labor.defaults.spec.js b/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.labor.defaults.spec.js new file mode 100644 index 00000000..407fdba6 --- /dev/null +++ b/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.labor.defaults.spec.js @@ -0,0 +1,52 @@ +describe('Test the labor input section', () => { + + beforeEach(() => { + cy.login('manager1', 'farmdata2') + cy.visit('/farm/fd2-field-kit/seedingInput') + }) + + it("Check header", () => { + cy.get("[data-cy='labor-header']") + .should("have.text", "Labor") + }) + + it("Checks Worker input test", () => { + cy.get("[data-cy='num-worker-input'] > [data-cy=text-input]") + .should('have.value', '') + cy.get("[data-cy='num-worker-input'] > [data-cy=text-input]") + .should('have.prop', 'disabled', false) + }) + + it("Checks Time worked input test", () => { + cy.get("[data-cy='minute-input'] > [data-cy=text-input]") + .should('have.value', '') + cy.get("[data-cy='minute-input'] > [data-cy=text-input]") + .should('have.prop', 'disabled', false) + }) + + it("Checks unit dropdown selection activates correct selected time unit", () => { + //check minute-input + cy.get("[data-cy='time-unit'] > [data-cy='dropdown-input']") + .select("minutes") + cy.get("[data-cy='minute-input']").should("be.visible") + cy.get("[data-cy='hour-input']").should("not.be.visible") + + //check hour-input + cy.get("[data-cy='time-unit'] > [data-cy='dropdown-input']") + .select("hours") + cy.get("[data-cy='hour-input']").should("be.visible") + cy.get("[data-cy='minute-input']").should("not.be.visible") + }) + + it("Checks Time units dropdown", () => { + cy.get("[data-cy='time-unit'] > [data-cy='dropdown-input'] > [data-cy='option0']") + .should('have.value', 'minutes') + cy.get("[data-cy='time-unit'] > [data-cy='dropdown-input'] > [data-cy='option1']") + .should('have.value', 'hours') + }) + + it("Checks Time units default is minutes", () => { + cy.get("[data-cy='time-unit'] > [data-cy='dropdown-input']") + .find('option:selected').should("have.text", "minutes") + }) +}) From 93c39c4f1e95a91e60ddfa0eebc6650e1853ac2f Mon Sep 17 00:00:00 2001 From: Roland Locke <80643562+RolandLocke@users.noreply.github.com> Date: Sat, 29 Jul 2023 10:26:22 -0400 Subject: [PATCH 22/74] Migrates: Tested Seeding Input Type Defaults (#178) (#676) * created file to test seeding input type defaults * Filled out before each * Our team's test shows up in correct folder so we can run in Cypress * Added test to check if the Tray element is enabled * Added test to check if the Direct element is enabled * tested that neither the tray nor the direct element is selected * tested whether the message to prompt tray/direct element selection is visible * Tested that the form elements for Tray and Direct are not visible * Finished testing visibility of form elements - had to add one more * Deleted unnecessary (duplicate) test file from field kit * Adjusted the comment in the describe and added a descriptive comment at the top of the file. * merged second and third individual test into one test * changed data-cy attribute of message to prompt selection of tray or direct element Co-authored-by: Alexandrialexie Co-authored-by: andrewscheiner53 --------- __Pull Request Description__ Pull Request Description This pull request was orignially created on [FD2School-FarmData2](https://github.com/DickinsonCollege/FD2School-FarmData2). Link to the original pull request: https://github.com/DickinsonCollege/FD2School-FarmData2/pull/178 Partially Addresses https://github.com/DickinsonCollege/FarmData2/issues/662 --- __Licensing Certification__ FarmData2 is a [Free Cultural Work](https://freedomdefined.org/Definition) and all accepted contributions are licensed as described in the LICENSE.md file. This requires that the contributor holds the rights to do so. By submitting this pull request __I certify that I satisfy the terms of the [Developer Certificate of Origin](https://developercertificate.org/)__ for its contents. Co-authored-by: pranavm2109 <98339495+pranavm2109@users.noreply.github.com> Co-authored-by: Alexandrialexie Co-authored-by: andrewscheiner53 --- .../seedingInput/seedingInput.html | 2 +- .../seedingInput.type.defaults.spec.js | 40 +++++++++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.type.defaults.spec.js diff --git a/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.html b/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.html index 5cd2f183..4c9e70d0 100644 --- a/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.html +++ b/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.html @@ -25,7 +25,7 @@

Seeding Input Log

-

Please Select Tray Seeding or Direct Seeding

+

Please Select Tray Seeding or Direct Seeding

Area: diff --git a/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.type.defaults.spec.js b/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.type.defaults.spec.js new file mode 100644 index 00000000..eeee7d8e --- /dev/null +++ b/farmdata2/farmdata2_modules/fd2_field_kit/seedingInput/seedingInput.type.defaults.spec.js @@ -0,0 +1,40 @@ + +/** + * The seeding type selection section of the Seeding Input Log allows the user to select + * the appropriate type of seeding, either tray seeding or direct seeding, for their log. + * This spec tests that both of these options are enabled, that neither of these options + * are selected by default, that a message is visible directing the user to select either + * the Tray or Direct type, and that the form elements for Tray and Direct are not visible + * unless their respective option has been selected. + */ + +describe("Test the seeding input type default values in the Seeding Input Log", () => { + beforeEach(() => { + cy.login("manager1", "farmdata2") + cy.visit("/farm/fd2-field-kit/seedingInput") + }) + + it("Tests whether Tray and Direct elements are enabled", () => { + cy.get("[data-cy='tray-seedings']").should('be.enabled') + cy.get("[data-cy='direct-seedings']").should('be.enabled') + }) + + it("Tests that neither the Tray nor the Direct element is selected, and a message to prompt the selection of either element is visible", () => { + cy.get("[data-cy='tray-seedings']").should('not.be.selected') + cy.get("[data-cy='direct-seedings']").should('not.be.selected') + cy.get("[data-cy='seeding-type-prompt']").should('be.visible') + }) + + it("Tests that the form elements for Tray or Direct are not visible until clicked", () => { + //check form elements in tray seeding - should not be visible until tray radio button clicked + cy.get("[data-cy='tray-area-selection']").should('not.be.visible') + cy.get("[data-cy='num-cell-input']").should('not.be.visible') + cy.get("[data-cy='num-tray-input']").should('not.be.visible') + cy.get("[data-cy='num-seed-input']").should('not.be.visible') + ///check form elements in direct seeding - should not be visible until direct radio button clicked + cy.get("[data-cy='direct-area-selection']").should('not.be.visible') + cy.get("[data-cy='num-rowbed-input']").should('not.be.visible') + cy.get("[data-cy='unit-feet']").should('not.be.visible') + cy.get("[data-cy='num-feet-input']").should('not.be.visible') + }) +}) From cb324e2f06f53b0227be114b3ac544f3b306c311 Mon Sep 17 00:00:00 2001 From: Roland Locke <80643562+RolandLocke@users.noreply.github.com> Date: Sat, 29 Jul 2023 10:26:49 -0400 Subject: [PATCH 23/74] Migrates: 227 testing the default values of the seeding report (#677) * updated fd2 branch + tests * Updated tests * test for Barn-Kit seeding report default * updated tests * updated tests * "Made minor corrections to tests" > > Co-authored-by: Sai Atluri * Updated date selection header test * Updated date selection header test * Corrected minor minor merging error * Fixed formatting Co-authored-by: Melantha-Chen __Pull Request Description__ This pull request was originally created on [FD2School-FarmData2](https://github.com/DickinsonCollege/FD2School-FarmData2). Link to the original pull request: https://github.com/DickinsonCollege/FD2School-FarmData2/pull/227 Partially Addresses https://github.com/DickinsonCollege/FarmData2/issues/662 --- __Licensing Certification__ FarmData2 is a [Free Cultural Work](https://freedomdefined.org/Definition) and all accepted contributions are licensed as described in the LICENSE.md file. This requires that the contributor holds the rights to do so. By submitting this pull request __I certify that I satisfy the terms of the [Developer Certificate of Origin](https://developercertificate.org/)__ for its contents. --------- Co-authored-by: saiatl2354 <75409740+saiatl2354@users.noreply.github.com> Co-authored-by: Melantha-Chen --- ...Dicksinson-SSD-FolderCOMP-290fd2School.txt | 5459 +++++++++++++++++ ...neDriveDocumentsDickinsonWork2023-2024Work | 0 ...cumentsDickinsonWork2023-2024fd2School.txt | 5459 +++++++++++++++++ .../seedingReport.default.spec.js | 32 + .../seedingReport/seedingReport.html | 5 +- 5 files changed, 10952 insertions(+), 3 deletions(-) create mode 100644 farmdata2/C:UsersrolanDocumentsDicksinson-SSD-FolderCOMP-290fd2School.txt create mode 100644 farmdata2/C:UsersrolanOneDriveDocumentsDickinsonWork2023-2024Work create mode 100644 farmdata2/C:UsersrolanOneDriveDocumentsDickinsonWork2023-2024fd2School.txt create mode 100644 farmdata2/farmdata2_modules/fd2_barn_kit/seedingReport/seedingReport.default.spec.js diff --git a/farmdata2/C:UsersrolanDocumentsDicksinson-SSD-FolderCOMP-290fd2School.txt b/farmdata2/C:UsersrolanDocumentsDicksinson-SSD-FolderCOMP-290fd2School.txt new file mode 100644 index 00000000..9d4f800b --- /dev/null +++ b/farmdata2/C:UsersrolanDocumentsDicksinson-SSD-FolderCOMP-290fd2School.txt @@ -0,0 +1,5459 @@ +commit e15fa9bf09065fa088a62a90e3eaf7f34aea87d5 +Author: Michael K <56452607+Mikek16@users.noreply.github.com> +Date: Mon May 15 13:58:35 2023 -0400 + + Test Barn Kit Seeding Report columns by seeding type (#210) + + * Initial commit, adding seeding input data cypress test + + * subtask #1 Assert header has 'Data' + + * Check the crop dropdown list size + + * Testing crop dropdown + + * Testing for crop dropdown length + + * Testing for crop dropdown length + + * test input date element enabled and has correct default value + + * Cleaning cypress test + + * Add spec.js file for testing seeding report columns by seeding type + + * Add test column for Tray Seedings + + * Completed testing for Direct Seeding column headers + + * Added a test to check where proper columns are displayed in the table for "All" seeding type + + * Reformat Tray Seeding test to look like Direct Seeding test format + + * Rewrite the test for all option (checking the table columns) for better efficiency and readability + + * Delete unnecessary folder + + * Modify test for the table column for the all option. Specifically, modified the for loop that check the visibility of table headers to use cypress tag instead of using .children() for to get the header elements + + * delete an unnecessary folder + + * Standardized tests and addressed requested changes + + * Cleaned comments + + * Address PR change requests + + * Add test for Edit header back + + * Check for report table before checkbuttons and add check that the checkbuttons are not disabled + + --------- + + Co-authored-by: nathang15 + Co-authored-by: infantlikesprogramming + +commit cb0d76889439415c10a4e6b1d94cf19989230dea +Author: Alexandrialexie <98338885+Alexandrialexie@users.noreply.github.com> +Date: Sun May 14 08:46:52 2023 -0400 + + edited documentation in lines 33 and 34 of CustomTableComponent (#239) + + Co-authored-by: pranavm2109 + +commit 83793e4e4da4bce29610f5684805f8618f8e230d +Author: James Ng <98336522+jamesng5@users.noreply.github.com> +Date: Fri May 12 11:09:28 2023 -0400 + + Main fd2 tabs test (#228) + + * Create test file for the Seeding Input + + * Test the comment box + + * test for HaTest + + * added page heade + + * tested to check that submit button is disabled + + * Test for Submit button + + * Add test the comment box is enable and the submit button is labeled + + * Tested to check that SUBMIT button is disabled + + * solved merge conflict + + * modified page header test + + * added label comment + + * Fix type error for testing the submit button is enabled + + * Create new branch to test Main FD2 Tabs for each user + + * Create new branch to test Main FD2 Tabs for each user + + * Add test for the existence of FieldKit, BarnKit, FD2 Config tabs when manager is logged in + + * Rename the spec.js file to be more appropriate and combine all test for different account in 1 file + + * Test tabs existence for worker account + + * Test tabs non-existence for guest account + + * try a new way to access each tab + + * Fixed when other account login in the test, it will not always return pass + + Signed-off-by: James Ng <98336522+jamesng5@users.noreply.github.com> + + * Rename file to fd2tabs.existence.spec.js for easier read + + Signed-off-by: James Ng <98336522+jamesng5@users.noreply.github.com> + + --------- + + Signed-off-by: James Ng <98336522+jamesng5@users.noreply.github.com> + Co-authored-by: vuphuongha + Co-authored-by: ha vu <60118892+vuphuongha@users.noreply.github.com> + Co-authored-by: tainguyen103 + +commit 3063d28a2321ef6fcb0cc4cb32d103aadcddc64c +Author: sidlamsal <98344853+sidlamsal@users.noreply.github.com> +Date: Tue May 9 09:31:12 2023 -0400 + + Seeding Input: Tests for Submit Button Behavior (#208) + + * created a spec file for testing submit button behavior + + * Test submit button is initially disabled + + * Changed test file name to match others + + * Added description at top of test file + + * added tests for tray seeding data section + + * added tests for tray seeding labor selection + + * added tests for the tray seeding section + + * created test for direct seeding section + + * added test for the direct seeding section + + * Fixed typos + + * Update seedingInput.submit.button.spec.js + + made @braughtg corrections + + Signed-off-by: Foogabob <80643562+Foogabob@users.noreply.github.com> + + * changes to the sructure of the test + + * Another re-orginization of the test as a whole, the commit is only to save progress + + * added comprehensive tests for the Data, Tray, and Direct seedings + + * added comprehensive test for the labor panel + + * removed old commented out reference material + + --------- + + Signed-off-by: Foogabob <80643562+Foogabob@users.noreply.github.com> + Co-authored-by: Foogabob + Co-authored-by: EliasBerhe + Co-authored-by: Foogabob <80643562+Foogabob@users.noreply.github.com> + Co-authored-by: foogabob + +commit a19c428537bb3c5589268ae49d05a74205195c81 +Author: Alexandrialexie <98338885+Alexandrialexie@users.noreply.github.com> +Date: Tue May 9 09:24:54 2023 -0400 + + Tested the Seeding Report Crop Filter (#196) + + * Added new test file with before each + + * Added an it block to test that the crop dropdown holds the correct crops for the selected date range + + * Added comment to introduce the test file + + * Checked that several crops have logs when All selected + + * added it to test that report table contains only the logs pertaining to the selected crop + + * Changed the date range for the crop dropdown tests and ajusted the tests accordingly + + * revised third it to use a for loop to check that table only contains logs pertaining to the selected crop + + * Modified second it: when All selected, different crops validated by td-ri-c1, loop, or's + + * Changed crop dropdown tests to use the data-cy attribute instead of .children + + * removed excess lines in second and third individual test + + * For 'All' option test, added general comment and removed individual comments + + * used have.text instead of contains.text in third it + + --------- + + Co-authored-by: andrewscheiner53 + Co-authored-by: pranavm2109 + +commit cb8538622a6ed972161bd95d963dff3ddbfb792f +Author: GyuJin Lee <98343991+JinLeeGG@users.noreply.github.com> +Date: Mon May 8 15:01:32 2023 -0400 + + FieldKit Tab: Test for FieldKit Sub-Tabs (#212) + + * Created txt file for initialize branch + + * Created epr1.md + + * deleted created_branch.txt + + * Revised EPR1 + + * cypress file created for fieldkit sub-tab + + * beforeEach added for login in farmdata2 web + + * changed url for beforeEach and sub-task1 finished + + * finished sub-task 1 + + * Checks that the order of the tabs is “Info” and then “Seeding Input.” + + * ignore this commit + + * Revert "deleted created_branch.txt" + + This reverts commit fff6611033b011469f6543c3964db1433d084306. + + * Implemented a test that checks the correct number of sub-tabs + + * Removed create_branch.txt and reports directory. + + * Verifies that the number of sub- tabs is exactly 2 and adds a general comment at the top of the file + + --------- + + Co-authored-by: won369369 + Co-authored-by: Shahir-47 + +commit b4c5e830bcf64bf935b8745eb82776d58ec7551b +Author: Quan Nguyen <101671879+qnhn22@users.noreply.github.com> +Date: Wed May 3 14:44:46 2023 -0400 + + Testing Seeding Input Tray Seeding Defaults (#194) + + * add tray selection test + + * add area dropdown test + + * Adding test for seeding field and trays field + + * Write tests for area dropdown and cells/tray field in Tray Seeding Input + + * reformat the tests and add test no area is selected by default + + * Fixing test for input value + + * fix testing on tray seeding input + + * reformat the test and modify the test dropdown area + + * Reformat Testing tray and seed fields + + * add blank line and test enable + + --------- + + Co-authored-by: nguyenbanhducA1K51 + Co-authored-by: phong260702 + +commit f6317c17a323b17c0db73a1e22e1ebfcec0498e9 +Author: James Ng <98336522+jamesng5@users.noreply.github.com> +Date: Wed May 3 14:06:45 2023 -0400 + + Create test file for the Seeding Input (#211) + + * Create test file for the Seeding Input + + * Test the comment box + + * test for HaTest + + * added page heade + + * tested to check that submit button is disabled + + * Test for Submit button + + * Add test the comment box is enable and the submit button is labeled + + * Tested to check that SUBMIT button is disabled + + * solved merge conflict + + * modified page header test + + * added label comment + + * Fix type error for testing the submit button is enabled + + * edit space between it() block to have consistent spacing + + * Add comment to give the purpose of the test file + + * Fix the test for the section with label Comments + + --------- + + Co-authored-by: vuphuongha + Co-authored-by: ha vu <60118892+vuphuongha@users.noreply.github.com> + Co-authored-by: tainguyen103 + +commit 23eb676eaca553e53a596b3bcc09c04e783100e6 +Author: saiatl2354 <75409740+saiatl2354@users.noreply.github.com> +Date: Sun Apr 30 17:00:20 2023 -0400 + + Testing the default values of the seeding report (#227) + + * updated fd2 branch + tests + + * Updated tests + + * test for Barn-Kit seeding report default + + * updated tests + + * updated tests + + * "Made minor corrections to tests" + > + > + Co-authored-by: Sai Atluri + + * Updated date selection header test + + * Updated date selection header test + + * Corrected minor minor merging error + + * Fixed formatting + + --------- + + Co-authored-by: Melantha-Chen + +commit 2adea935e873fdff8677c0fb96577222da4b9fb5 +Author: Udval Enkhtaivan <74579865+udvale@users.noreply.github.com> +Date: Thu Apr 27 13:51:46 2023 -0400 + + BarnKit Subtab testing (#219) + + * Initial commit for BarnKit tab testing + + * Tested the BarnKit tab contains the 3 sub-tabs + + * Added the Second test and initiated the third test of the barnkitTab.spec.js + + * Testing on proper branch + + * Revised test for BarnKit subtabs ordering and length + + * Delete transplantingReport.defaults.spec.js + + Signed-off-by: Udval Enkhtaivan <74579865+udvale@users.noreply.github.com> + + * Revised the test for checking number of subtabs + + * Resolved issues and committed final changes + + --------- + + Signed-off-by: Udval Enkhtaivan <74579865+udvale@users.noreply.github.com> + Co-authored-by: thorpIV + Co-authored-by: aliouas + +commit 7601a5ceae1f07b2fca22d38f018094a82baa6f3 +Author: won369369 <60108250+won369369@users.noreply.github.com> +Date: Mon Apr 24 18:57:18 2023 -0400 + + Test Seeding Input Direct Seeding Defaults (#182) + + * Created txt file for initialize branch + + * testing commit on feature branch + + * SeedingInput cypress file created + + * Tests must check that the Direct Seeding section of the Seeding Input Form appears when "Direct" is selected + + * deleted create_branch.txt + + * cypress test name changed + + * Test that it displays dropdown for units + + * comment for numbering sub-task 6 added + + * test for dropdown area + + * Reviewed Gyujin's solution to sub-task 3, 7 + + * checks that there is a field for Row/Bed that is empty and enabled + + * checks that there is a field for Bed Feed that is empty and enabled + + * checks that Bed Feet is the default units + + * rearranged the order of each sub-test + + * changed cypress file name + + * changed correct cypress file name + + * resolved all conversations from prof. braught + + * added comments to each sub-tasks + + * changed unit dropdown + + * removed then() and added cy.waitForPage() for subtasks 2, 6 + + * Implemented the test that checks the area dropdown is enabled and removed cy.waitForPage due to error. + + * "added cy.waitForPage()" + + * Removed sub-task comments + + * add a comment at the top of the file describing what the purpose of the file is. + + --------- + + Co-authored-by: won369369 + Co-authored-by: JinLeeGG + Co-authored-by: Shahir-47 + +commit 5b4479fa9cd0a36035e9399f656d56c624e17e53 +Author: Udval Enkhtaivan <74579865+udvale@users.noreply.github.com> +Date: Fri Apr 21 11:34:58 2023 -0400 + + Testing Transplanting Report Defaults (#197) + + * Added spec.js file for testing transplating report + + * Tested page header and section label + + * Tested if the generate button has correct value and is enabled + + * The report table is not visible + + * Tested default start, end dates using dayjs + + * Changed data-cy atrribute name for - Set Dates + + * click() is removed when getting the default dates + + * Made final changes for the test + + * Made final changes to the test + +commit 1a180ac720c0adee283924eea1568316129e2443 +Author: Grant Braught +Date: Wed Apr 12 13:05:45 2023 -0400 + + Added cy.waitForPage() to dbtest testing examples (#209) + +commit 0e1df8dcdcc4ebdb2e58ca369c6a4de7ef3c1e09 +Author: Michael K <56452607+Mikek16@users.noreply.github.com> +Date: Tue Apr 11 15:47:01 2023 -0400 + + Initial commit, adding seeding input data cypress test (#175) + + * Initial commit, adding seeding input data cypress test + + * subtask #1 Assert header has 'Data' + + * Check the crop dropdown list size + + * Testing crop dropdown + + * Testing for crop dropdown length + + * Testing for crop dropdown length + + * test input date element enabled and has correct default value + + * Created test to check if crop selected has been enabled + + * Cleaning cypress test + + * Add test to check if any option was selected + + * Remove dropdown element reference via children function + + * combined similar 'it' blocks + + * Created test to check that the crop drop down does not have a selected value + + --------- + + Co-authored-by: nathang15 + Co-authored-by: infantlikesprogramming + +commit 870cdf25453d93699671db8d6d09d96dbc54a6da +Author: Grant Braught +Date: Tue Apr 11 00:17:26 2023 -0400 + + Added FD2 Example sub-tab for testing with database access (#198) + +commit 83f3a2facfdb813c554847e89c0914dc80f729fd +Author: sidlamsal <98344853+sidlamsal@users.noreply.github.com> +Date: Wed Apr 5 17:18:43 2023 -0400 + + Cypress Tests for Seeding Input Labor Defaults (#173) + + * added spec.js file + + * Added it block for testing header + + * checked the number of workers field is empty and enabled + + * checked the number of time worked field is empty and enabled + + * Added the "check correct dropdown for selected time unit" + "Checks Time units dropdown" + "checks time units default is minutes" + + * couple of spacing and alignment issues fixed. + + Signed-off-by: Foogabob <80643562+Foogabob@users.noreply.github.com> + + * changed a test name to be more descriptive + + Signed-off-by: Foogabob <80643562+Foogabob@users.noreply.github.com> + + --------- + + Signed-off-by: Foogabob <80643562+Foogabob@users.noreply.github.com> + Co-authored-by: EliasBerhe + Co-authored-by: Foogabob + Co-authored-by: Foogabob <80643562+Foogabob@users.noreply.github.com> + +commit a4b37a1038f9da6a112504f0b15e49f00aaa2b0f +Author: pranavm2109 <98339495+pranavm2109@users.noreply.github.com> +Date: Wed Apr 5 17:14:10 2023 -0400 + + Tested Seeding Input Type Defaults (#178) + + * created file to test seeding input type defaults + + * Filled out before each + + * Our team's test shows up in correct folder so we can run in Cypress + + * Added test to check if the Tray element is enabled + + * Added test to check if the Direct element is enabled + + * tested that neither the tray nor the direct element is selected + + * tested whether the message to prompt tray/direct element selection is visible + + * Tested that the form elements for Tray and Direct are not visible + + * Finished testing visibility of form elements - had to add one more + + * Deleted unnecessary (duplicate) test file from field kit + + * Adjusted the comment in the describe and added a descriptive comment at the top of the file. + + * merged second and third individual test into one test + + * changed data-cy attribute of message to prompt selection of tray or direct element + + --------- + + Co-authored-by: Alexandrialexie + Co-authored-by: andrewscheiner53 + +commit 453ac8615404b8afc79915bf8cbd3ba55126f36c +Author: braughtg +Date: Sat Mar 25 12:53:22 2023 -0400 + + Added clarifications to FD2School 06 + +commit f4e7d753d4d1e40ec1a9b561a4eb0da7d35c08d1 +Author: braughtg +Date: Sat Mar 25 12:53:01 2023 -0400 + + Added clarification to FD2School 08 question #31 + +commit 55f826bb51c4b2ca8fb3202aa1a08f28c70e0aa7 +Author: braughtg +Date: Wed Mar 22 12:53:36 2023 -0400 + + Clarified use of > in FD2 School activity 08. + +commit 2cb918f629a9b18e5c13e8cfe943ebd59d531d68 +Author: braughtg +Date: Wed Mar 22 12:16:06 2023 -0400 + + Typo fixes in FDSchool Activity 08 + +commit 8713b1dba10228c1c79f30c01784279433309dda +Author: braughtg +Date: Tue Mar 21 21:03:01 2023 -0400 + + Moved synch to start of FD2 School 08 to ensure doc updates are synched + +commit 15f78d76f33505fc803ebe76486a5d89ba9fcb46 +Author: braughtg +Date: Tue Mar 21 21:02:23 2023 -0400 + + Cleaned up CustomTableComponent example in the UI sub-tab of FD2 Examples + +commit a196881e7363eaeb1a9fec0371396fbf4c59a663 +Author: braughtg +Date: Tue Mar 21 20:26:22 2023 -0400 + + Fixed typo in data-cy=ri-* doc in CustomTableComponent + +commit b3f9c1f6fb8104aca68f656720e601ebf2c2d236 +Author: braughtg +Date: Tue Mar 21 13:24:59 2023 -0400 + + Added FD2 School activity 08 materials + +commit 13090541989bcf650dae9dc0220fd5edcd51ecb1 +Author: braughtg +Date: Tue Mar 21 11:34:15 2023 -0400 + + Added data-cy attribute to CustomTableComponent for the table body + +commit a86aed7fea3f86e552702851ca761f98ae7435c4 +Author: braughtg +Date: Mon Mar 20 22:55:43 2023 -0400 + + Fixed terminology in CustomTableComponent docs + +commit 09c3cbbc9e6fdb923d06ad3fab254bba928e2ecf +Author: braught +Date: Mon Mar 20 22:48:50 2023 -0400 + + Updated documentation for CustomTableComponent + +commit da8401b1a323332fe234b3cd9c06e3d6a7892085 +Author: braughtg +Date: Thu Mar 9 08:38:17 2023 -0500 + + Fixed typo on FD2School 07 - added () to children call + +commit 1fb657cd1a50b72076c95257c1e511f82d2b5a4b +Author: braughtg +Date: Tue Mar 7 20:57:26 2023 -0500 + + Modified test steps in FD2 School 07 + +commit cfc688ef44b0892e1c9ff54acdd03bcd33aef6e5 +Author: braughtg +Date: Tue Mar 7 15:11:37 2023 -0500 + + Added Cypres E2E Testing spike to FD2 School + +commit da2f86a8aa71254e6c65e865d08409c654425790 +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Sun Mar 5 15:00:35 2023 -0500 + + Surpressing Standard Name Error (#627) + + __Pull Request Description__ + + Closes #565. Adds a simple simple `@` in front of the cmd command that + maps the user ID's and names as a preprocessing function. This error + would appear when users attempted to access a page without being logged + into the page. The warning no longer appears due to this surpression and + a comment explaining the `@` placement is now present in the module + files. + + --- + __Licensing Certification__ + + FarmData2 is a [Free Cultural + Work](https://freedomdefined.org/Definition) and all accepted + contributions are licensed as described in the LICENSE.md file. This + requires that the contributor holds the rights to do so. By submitting + this pull request __I certify that I satisfy the terms of the [Developer + Certificate of Origin](https://developercertificate.org/)__ for its + contents. + +commit ef39a87e66dd78bc3738a6301616183eb9994cbb +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Fri Mar 3 15:06:31 2023 -0500 + + Encapsulating Button Cases for the CustomTableComponent (#626) + + __Pull Request Description__ + + Closes #599. This PR adds a computed property to the + `CustomTableComponent.js` to remove the multiple locations in the + template checking when to make the selection bar appear in the table. + Because it would be easy to miss these locations when adding new button + cases, this computed method serves as a general locations for adding + this button locations without worrying about making changes to the + template. + + Because this doesn't alter functionality, no additional testing was + added. However, the table's unit test was updated because the Cypress + tests for the CSV download broke with the reorganization of the project. + The path is currently fixed. This is fine because the structure of the + project doesn't change frequently but should we consider putting more + resources into making it dynamic to not worry about this in the future? + This is outside the scope of the issue this PR aims to resolve, but I + could make an issue if it's worthwhile. + + --- + __Licensing Certification__ + + FarmData2 is a [Free Cultural + Work](https://freedomdefined.org/Definition) and all accepted + contributions are licensed as described in the LICENSE.md file. This + requires that the contributor holds the rights to do so. By submitting + this pull request __I certify that I satisfy the terms of the [Developer + Certificate of Origin](https://developercertificate.org/)__ for its + contents. + +commit 4488554aa68841a4100ce6ef3050f73a20a7ed69 +Author: Grant Braught +Date: Thu Mar 2 15:53:22 2023 -0500 + + Added the pageLoaded pattern to barnKit and fieldKit (#624) + + __Pull Request Description__ + + The pageLoaded pattern has been applied to the barnKit and fieldKit + pages. This pattern places a hidden element in the page that has its + value set to true when all of the API calls in the `created` method have + completed. This is used in testing to ensure that the page has fully + loaded before the tests are run. + + This is important because when pages are loading information in the + `created` method, fast running tests were completing and the next test + was starting before those API requests had completed or even been + initiated. This was generating flakiness in the test suite. It would run + fine one time and not the next. Waiting for the page to load introduces + delays, but removes the flakiness. + + --- + __Licensing Certification__ + + FarmData2 is a [Free Cultural + Work](https://freedomdefined.org/Definition) and all accepted + contributions are licensed as described in the LICENSE.md file. This + requires that the contributor holds the rights to do so. By submitting + this pull request __I certify that I satisfy the terms of the [Developer + Certificate of Origin](https://developercertificate.org/)__ for its + contents. + +commit a23b4f9dbe4f6dc3e03bcfc9de141fa30fda5ae6 +Author: Grant Braught +Date: Wed Mar 1 20:26:38 2023 -0500 + + Clarified and fixed CustomTable data-cy attributes for input elements (#623) + + __Pull Request Description__ + + The CustomTableComponent `data-cy` attributes for input elements did not + uniquely identify the input element. In particular, if two elements had + the same type of input they would have had the same `data-cy` attribute + value. They now have the value `ri-columnHeader-input` where the + `columnHeader` is the header of their column in the table. This matches + what is done for cells when the table is not in edit mode. + + --- + __Licensing Certification__ + + FarmData2 is a [Free Cultural + Work](https://freedomdefined.org/Definition) and all accepted + contributions are licensed as described in the LICENSE.md file. This + requires that the contributor holds the rights to do so. By submitting + this pull request __I certify that I satisfy the terms of the [Developer + Certificate of Origin](https://developercertificate.org/)__ for its + contents. + +commit 28d5953fd9abf7f1985c9e37c474ffe1b9c01053 +Author: braughtg +Date: Wed Mar 1 10:38:43 2023 -0500 + + Clarification on severl optional extras in FD2School activity 06 + +commit e693e21f9dc16c1a46571f6f34f7582cdaf0a753 +Author: braughtg +Date: Tue Feb 28 13:15:46 2023 -0500 + + Fixed typo in #7a in activity 05 + +commit b776489f0932a87ffafb32a94b5ebaac2e72d56a +Author: braughtg +Date: Tue Feb 28 12:42:05 2023 -0500 + + Full update of activity 06 + +commit a744233c23ae93b87706035e38184df10d28d8d3 +Author: braughtg +Date: Tue Feb 28 12:41:50 2023 -0500 + + Updates to activity 05 + +commit 9060074f57105c97e42523658ab431a5389c234b +Author: braughtg +Date: Tue Feb 28 12:41:33 2023 -0500 + + Updates to 02 pdf + +commit 402d0d1185febb54ad25e46c7b3ecbf76461bea5 +Author: braughtg +Date: Tue Feb 14 12:37:28 2023 -0500 + + Update to FD2School Activity 05 + +commit d72a6d6aceb5d44101ee469e9680c4cbb121fff3 +Author: braughtg +Date: Tue Feb 14 12:37:02 2023 -0500 + + Minor typo fixes in FD2School activity 04 + +commit b89dd443d9890848f297ee365ff12740ae8fd534 +Author: braughtg +Date: Sun Feb 12 15:54:30 2023 -0500 + + Updated FD2 School activity 04 + +commit ed56a205eb0658fa07bda9564dfef6a4fa12d861 +Author: braughtg +Date: Sun Feb 12 15:54:15 2023 -0500 + + Updates to FD2 School activity 03 + +commit e4ab6786307e9a4f7a0c8300cf89828a33197a09 +Author: braughtg +Date: Sun Feb 12 13:13:32 2023 -0500 + + Added Q to 03 Vue Data Binding to convert draft PR to full PR + +commit 64be3c243c63bf6341fa43d4673529066c25f284 +Author: braughtg +Date: Sat Feb 11 08:40:21 2023 -0500 + + Fixed Q1 in FD2 School 03 Vue Data Binding. + +commit 1e1badc45383fe968a7eb0563d8dd199d469fca1 +Author: braughtg +Date: Tue Feb 7 12:54:39 2023 -0500 + + Fixed typos and formatting in FD2School activity 01 + +commit 5a4bcc7b1c3d7dafdc791b497ee0397713d855c7 +Author: braughtg +Date: Mon Feb 6 17:00:34 2023 -0500 + + Removed review request question in FD2 school activity 02 + +commit 20cebefb656429953a4ce3ac0e3db8cd48a09160 +Author: braughtg +Date: Sat Feb 4 17:53:28 2023 -0500 + + Fixed typos in FD2School Activity 03 + +commit 9569104335ba15c6ab74ac4b9071ea88b07febcd +Author: braughtg +Date: Sat Feb 4 16:47:10 2023 -0500 + + Corrected Field -> Area in HTML activity 02. + +commit 79f2c7ea27c8863d405343c57575c0df29114f73 +Author: braughtg +Date: Sat Feb 4 15:48:57 2023 -0500 + + Standardized on double quotes on activity 03 + +commit 08a643c7dc2f48393ed787d674fe77b06cf6e5ed +Author: braughtg +Date: Fri Feb 3 16:17:09 2023 -0500 + + Edits to FD2School activity 03 + +commit ce7531fdac5f7d076fd736b2f1f27aac05bb1d38 +Author: braughtg +Date: Fri Feb 3 15:56:42 2023 -0500 + + Updates to FD2School activity 03 + +commit 2614919cb086942b981142dec17ffb4724357591 +Author: braughtg +Date: Fri Feb 3 15:55:47 2023 -0500 + + Minor edits to activity 02 + +commit 939574115e5892459d6e317ac6b8ff273fbbd9f7 +Author: braughtg +Date: Mon Jan 30 14:17:31 2023 -0500 + + Added linking to issue in PR to activity 02 + +commit 639b03c07841688d8b7d8f04bbf9b91df4e875d5 +Author: braughtg +Date: Sat Jan 28 12:08:15 2023 -0500 + + Updated FD2School Activity 02 + +commit 06d624d56122cdb8238a1df651b5ed3e7c6d1232 +Author: braught +Date: Sat Jan 28 11:35:18 2023 -0500 + + Updated link in FD2School info tab + +commit f6c2d526e03c7ea3fe26800bf86565769beef381 +Author: braughtg +Date: Sat Jan 28 09:55:35 2023 -0500 + + Updated FD2School Activity 02 + +commit 5c16a93325b502cb091535ce7638f16a42764fa3 +Author: Grant Braught +Date: Fri Jan 27 14:52:58 2023 -0500 + + Emphasized use of WSL Terminal for Windows on appropriate steps. + + Signed-off-by: Grant Braught + +commit 9074be712fa88471c745bfe172aed4e8dfd947a2 +Author: Grant Braught +Date: Fri Jan 27 14:50:57 2023 -0500 + + Emphasized use of WSL terminal for Windows at appropriate steps. + + Signed-off-by: Grant Braught + +commit 44b8b2f633134347dcbdf4d0cf8b96fb8fb5eefc +Author: Grant Braught +Date: Thu Jan 26 14:07:45 2023 -0500 + + Quoted path in fd2_up.bash to allow spaces (#618) + + __Pull Request Description__ + + Closes #617 + + --- + __Licensing Certification__ + + FarmData2 is a [Free Cultural + Work](https://freedomdefined.org/Definition) and all accepted + contributions are licensed as described in the LICENSE.md file. This + requires that the contributor holds the rights to do so. By submitting + this pull request __I certify that I satisfy the terms of the [Developer + Certificate of Origin](https://developercertificate.org/)__ for its + contents. + +commit 9940f2733fcb47f513dcf3c24d4b8527ddc69690 +Author: Grant Braught +Date: Thu Jan 26 08:02:15 2023 -0500 + + Added information about how to start WSL Terminal for Windows. + + Signed-off-by: Grant Braught + +commit df3152bd55035e83c1b8c592596f9c65be39b8dd +Author: Grant Braught +Date: Thu Jan 26 07:57:30 2023 -0500 + + Fixed a broken link to the Other Ways to Contribute document. + + Signed-off-by: Grant Braught + +commit e3d1a1a7c17ca2b8413cce8660c8ebe0d7e47eac +Author: Grant Braught +Date: Wed Jan 25 07:44:27 2023 -0500 + + Fixed broken FD2School links (#616) + + __Pull Request Description__ + + The activities in the `FD2School/materials` directory were renumbered + but the links were not updated. This PR updates the links to match the + filenames of the materials. + + Co-authored-by: John MacCormick + + --- + __Licensing Certification__ + + FarmData2 is a [Free Cultural + Work](https://freedomdefined.org/Definition) and all accepted + contributions are licensed as described in the LICENSE.md file. This + requires that the contributor holds the rights to do so. By submitting + this pull request __I certify that I satisfy the terms of the [Developer + Certificate of Origin](https://developercertificate.org/)__ for its + contents. + +commit a29dbcc9bfa0ab779af84293cf9fae6bdac049df +Author: braught +Date: Thu Jan 19 15:50:46 2023 -0500 + + Renumbered FD2 Schvities + +commit 09441cfa8aec6aa2fb5760d2da7c025d705ed692 +Author: braught +Date: Thu Jan 19 14:46:49 2023 -0500 + + Updates to FD2School activites 01 and 02 + +commit b2f439f0748a9860fc05eadc850760a3cd50fc78 +Author: braught +Date: Thu Jan 19 14:46:31 2023 -0500 + + Small documentation updates + +commit 363ec3e0a166b31509b71c465257430170446514 +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Wed Jan 18 13:53:54 2023 -0500 + + Backend and Frontend Fixes for Transplanting Report (#615) + + __Pull Request Description__ + + Closes #562. This issue makes some changes to the `updateRow` function + located in the Transplanting Report HTML file + [[here](https://github.com/FarmData-2-Dev-Team-2022/FarmData2/blob/fixTransplantingBackend/farmdata2/farmdata2_modules/fd2_barn_kit/transplantingReport/transplantingReport.html)]. + These changes are not accompanied by any Cypress e2e testing as that is + a separate issue to be addressed in issue #578. As a result, these + changes have been tested by sight using Hoppscotch. + + Additionally, this PR makes a quick fix of the filters for both the + Seeding Report and Transplanting Report where editing once would + permanently disable the filters until the page was refreshed because the + name of the edit cancellation event was changed and the pages were not + updated accordingly to reflect this change. + + This PR also brings up the topic of #585 (and #466) of what should be + edit-able. I disabled the ability to edit `bed feet` in the + Transplanting Report because transplanting logs don't have quantity data + for `bed feet` but also enabled the ability to edit `row/bed` because + that does exist in the logs' quantity data. However, should users be + allowed to edit that data? This is beyond the scope of this PR but + wanted to quickly mention this quick thought that occurred to me whilst + making this fix. + + --- + __Licensing Certification__ + + FarmData2 is a [Free Cultural + Work](https://freedomdefined.org/Definition) and all accepted + contributions are licensed as described in the LICENSE.md file. This + requires that the contributor holds the rights to do so. By submitting + this pull request __I certify that I satisfy the terms of the [Developer + Certificate of Origin](https://developercertificate.org/)__ for its + contents. + +commit f2085adeee37045075d6906866663857799cdab1 +Author: braught +Date: Mon Jan 16 19:38:01 2023 -0500 + + Touched up docker test output description + +commit 604aa1a8e1425e5f68b8d8c355c172af45d0be5c +Author: braught +Date: Mon Jan 16 19:36:22 2023 -0500 + + Added output and images to identify expected behavior + +commit 294af3151a0b107842e2cc63d4c596847df7346f +Author: Grant Braught +Date: Mon Jan 16 19:20:27 2023 -0500 + + Reorganizes the Documentation across the repo. (#614) + + __Pull Request Description__ + + This PR reorganizes the documentation as follows: + - CONTRIBUTING focuses on making a first contribution. + - A RESOURCES page is added serves as a pointer to all other + documentation. + - READMEs for each type of work (modules, libraries, api, etc.) are kept + with their code and linked from RESOURCES. + - A root level `docs` folder is added to hold "big picture" docs that + are not tied to a specific directory and are linked from RESOURCES. + + - This is not quite complete but is largely complete. After this is + merged it will still be necessary to write a few docs, including: + - Revise `farmdata2_modules/README.md` + - Write `farmdata2_modules/fd2_example/README.md` + - Write `farmdata2_api/README.md` + + New issues should be created for each of these when this PR is merged. + + Closes #609 + Closes #610 + Closes #572 + + Changes to the INSTALL.md document were + Co-authored-by: John MacCormick + as adapted from his PR #612. + + --- + __Licensing Certification__ + + FarmData2 is a [Free Cultural + Work](https://freedomdefined.org/Definition) and all accepted + contributions are licensed as described in the LICENSE.md file. This + requires that the contributor holds the rights to do so. By submitting + this pull request __I certify that I satisfy the terms of the [Developer + Certificate of Origin](https://developercertificate.org/)__ for its + contents. + +commit 3109297906a708de99087923437bd482382e6d3a +Author: Grant Braught +Date: Fri Jan 13 12:04:05 2023 -0500 + + Added ENV var to prevent WSL warning for Codium (#611) + + __Pull Request Description__ + + When running VSCodium on Windows/WSL it detected that it was running in + Docker and suggested using it under WSL directly. The added environment + variable silences this warning. + + --- + __Licensing Certification__ + + FarmData2 is a [Free Cultural + Work](https://freedomdefined.org/Definition) and all accepted + contributions are licensed as described in the LICENSE.md file. This + requires that the contributor holds the rights to do so. By submitting + this pull request __I certify that I satisfy the terms of the [Developer + Certificate of Origin](https://developercertificate.org/)__ for its + contents. + +commit 5a77f024a2191331921ef2ef65c5b52327369ef0 +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Wed Dec 28 12:33:12 2022 -0500 + + Report Pages: Updating Default Date (#605) + + __Pull Request Description__ + + Closes #539. This branch uncomments some pre-existing code that already + set the date to the first day of the year. + + --- + __Licensing Certification__ + + FarmData2 is a [Free Cultural + Work](https://freedomdefined.org/Definition) and all accepted + contributions are licensed as described in the LICENSE.md file. This + requires that the contributor holds the rights to do so. By submitting + this pull request __I certify that I satisfy the terms of the [Developer + Certificate of Origin](https://developercertificate.org/)__ for its + contents. + +commit 23eedcbf01dfb7bf3c3dda1f7d442d879f422cf3 +Author: Grant Braught +Date: Fri Dec 23 22:14:15 2022 -0500 + + Added id to PayLoad of CustomTable edit-clicked event (#604) + + __Pull Request Description__ + + This PR adds the id of the row being edited in the CustomTableComponent + to the `edit-clicked` event. It makes corresponding changes in the unit + tests for the component and in the UI example page and its tests. + + --- + __Licensing Certification__ + + FarmData2 is a [Free Cultural + Work](https://freedomdefined.org/Definition) and all accepted + contributions are licensed as described in the LICENSE.md file. This + requires that the contributor holds the rights to do so. By submitting + this pull request __I certify that I satisfy the terms of the [Developer + Certificate of Origin](https://developercertificate.org/)__ for its + contents. + + Co-authored-by: Chris <31524934+FutzMonitor@users.noreply.github.com> + +commit 8466707f5b144ae7f5287a14cadc4d1fe1007af0 +Author: Grant Braught +Date: Fri Dec 23 20:25:12 2022 -0500 + + Updated fd2-down.bash to remove dev container. (#603) + + __Pull Request Description__ + + Updates fd2-down.bash to remove the dev container when FarmData2 is shut + down. There was an issue when running in WSL that is addressed by this + fix. The fix is a little unsatisfactory in that the writeable later in + the dev container is lost. Thus, any local installs done are lost when + FarmData2 is taken down. If this presents a challenge for lots of + developers then this issue should be revisited. + + This closes #584. + + --- + __Licensing Certification__ + + FarmData2 is a [Free Cultural + Work](https://freedomdefined.org/Definition) and all accepted + contributions are licensed as described in the LICENSE.md file. This + requires that the contributor holds the rights to do so. By submitting + this pull request __I certify that I satisfy the terms of the [Developer + Certificate of Origin](https://developercertificate.org/)__ for its + contents. + +commit d83f2d1b490566903840b97ff5e6cbaa979dd4ab +Author: Grant Braught +Date: Fri Dec 23 16:56:32 2022 -0500 + + Reorganization of the farmdata2 modules (#602) + + __Pull Request Description__ + + This PR reorganizes the code for the FarmData2 modules and api. There is + now a `farmdata2` directory that contains all of the api and application + code for FarmData2 in a single location. In that directory there are + directories for `farmdata2_api` and `farmdata2_modules`. + + In the `farmdata2_modules` directory there is a directory for each of + the modules (e.g. `fd2_barn_kit`, `fd2_example`, etc) and the + `resources` directory. + + In the directory for each module there are the `.info` and `.module` + files along with any other files necessary to create the Drupal module. + There is then a directory for each sub-tab that appears in the farmOS + UI. For example, in the `fd2_example` folder there are folders for + `Info`, `Vars`, `Maps`, `API`, `Cache` and `UI`. + + In each of the sub-tab folders is the `.html` file that contains the + code for the sub-tab along with a collection of `.spec.js` files that + hold the e2e tests for the sub-tab. + + This organization should make it easier to create new sub-tabs and to + organize the tests for each sub-tab. + + The testing and documentation scripts were moved up to the `farmdata2` + directory so that they can now be used both with the modules and the + api. + + --- + __Licensing Certification__ + + FarmData2 is a [Free Cultural + Work](https://freedomdefined.org/Definition) and all accepted + contributions are licensed as described in the LICENSE.md file. This + requires that the contributor holds the rights to do so. By submitting + this pull request __I certify that I satisfy the terms of the [Developer + Certificate of Origin](https://developercertificate.org/)__ for its + contents. + +commit a3d9228ffe879d632653cb8b8045a7c74b381960 +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Mon Dec 19 09:48:32 2022 -0500 + + Updating Export Button Functionality (#591) + + * CustomTableComponent Changes + 1. Updated the exportCSV() function to only print rows whose IDs can be found in the indexesToAction array. + 2. Made sure the button is disabled when nothing is selected just like the delete button and custom buttons. + + * CustomTableComponent Changes + 1. Changed the way the csv file object was created. Apparently using the URI encoder limits the amount of data that can be downloaded into the csv. Using a blob object seems to solve this issue. + 2. Made it so that if the delete or custom buttons are not present, the select a row feature still appears if the dev allows for csv buttons. This did not exist before, probably an oversight due to export functionality being considered after the fact. + CustomTable Unit Test Changes + 1. Updated the unit test to verify that the export button is unclickable when no rows are selected. Made sure downloading one row is assured. Made sure downloading multiple rows is assured. + + * Removed 'Only' from the CustomTable Unit Test + + * Removed Double // + + * CustomTable Changes + 1. Added the ' -' back to replacing new lines among other things + +commit a1fc5d6ae18975e624c9c2679164e00421589e41 +Author: Grant Braught +Date: Sun Dec 18 18:20:51 2022 -0500 + + Add Custom FarmData2 API container (#596) + + Adds a container for an express API. This api will allow FarmData2 to have custom API endpoints that gather data directly from the farmOS database rather than using the farmOS API. This can improve performance because the farmOS data model is general and many FarmData2 views require joins across farmOS tables. + + Co-authored-by: JingyuMarcelLee + +commit e45e6edab2d4142803bdd8fe6489149ddbc6d06b +Author: Grant Braught +Date: Sat Dec 17 20:19:53 2022 -0500 + + Added Chromium browser to image (#594) + +commit 3c6a1b2a2620249c9c433456797212a8fabf1b9d +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Mon Dec 12 14:26:54 2022 -0500 + + Refactoring CustomTableComponent (and other updates) (#570) + + * Added Two New Files for the Updated CustomTableComponent + 1. These files will be updated with the request changed in the issue + 2. This initial commit is to make sure the remote is working correctly + + * Loaded Test Component into UI Page + 1. Had to add a script path to the example tab because the new test component wasn't loading in otherwise + 2. Messing around with making things appear with the new structure of the CustomTableComponent + 3. Modifying the template to iterate through the array of objects correctly (in progress) + 4. Seriously need to look into updating some of the computed methods that deal with visibility since visibility has been updated + + * Continued Work on Headers and Input Types + 1. Removed number box input type and replaced it with the RegexInputComponent. Its implementation is unfininshed since it still needs to check for valid inputs and make sure that the save button is disabled when an invalid input it inputted. However, these changes will come after the other abstractions are completed. + 2. The buttons have been abstracted. I haven't deleted all the code for the predefined buttons since I'm using them as a template but the new general button isn't working as intended. It's not rendering in the table when the conditions for it to be rendered are being met. + + * Added the Boolean Input Type + 1. Added the Boolean type to the CustomTableComponent. This is a checkbox that, when clicked, that entire row has been selected to be passed for some function (whatever that may be). + 2. Just like the button, the checkboxes don't want to render into the table. Hopefully these two bugs will be fixed in the next commit + + * Rendering Incorrectly During Edits + 1. The checkboxes and buttons are now rendering. + However, whatever is being passed into the table row data (say boolean/button) to indicate that we want a column of checkboxes/unique button is actually being filled into the table data. However, the actual checkbox/button is visible when you want to edit that row. It's as if somehow the states are reversed but we don't want to reverse them back (i.e button/checkbox is rendered but when row is edited they revert to text button/checkbock). We want them to always be rendered as the proper element and not text regardless of whether that row is being edited or not + + * Rendering Issue Persists, Continuing on with other Features + 1. The rendering issue has been partially solved by removing the editing row index inside the Vue conditional. However, for the time being, this means that the element being rendered in (e.g. checkbox/button) are manipulate-able whilest editing rows. This will have to be patched out later (or a better implementation should be explored). + 2. Implemented a function for checking all the checkboxes in a column. Currently it changes the Vue data for that row, but it's currently a little buggy and the checkboxes themselves are not checked even though the row itself is checked inside the row data. + + * Solved Rendering Problem, Select All & Select Continue to Have Problems + 1. The rendering issue has been solved, the rows data doesn't populate the div anymore in the table for checkboxes/buttons specifically. If additional functionality is added to the table then those also have to be added to the conditional. + 2. Disabled ALL checkboxes/buttons during edits. This choice should be discussed. + 3. Select All works but still continues to make no changes to the actual visual tick in the box which is an indication to the user that the box is actually checked + 4. Select function declared but currently unoperational + + * Modified Boolean Type + 1. Removed the selectAll method from this input type since you shouldn't be able to check multiple boxes when only one checkbox can be checked at a time when being edited. This keeps functionality consistent. + 2. Used a more clever trick for the select function which just grabs the column index as well to change the checkbox's boolean value which gets rid of the for loop entirely. + 3. Removed the header box for the boolean input type, it's just a regular text header now. + + * Completed Button Additions + 1. Custom Buttons now emit an event for the page to handle + 2. Added a leftmost column that dictates which rows will be affected by the custom button's event + 3. Added a select all feature which allows you to select all the rows + 4. The leftmost column is disabled during edit and so are the custom buttons + 5. None of these changes apply to the export button. + The new thing on the agenda is the RegExp implementation, after that the refactored CustomTable should be done + + * Updated Leftmost Column & Button Changes + 1. Disregard changes to the old CustomTableComponent file. I use it as a testing ground for understanding how the table works and thus making the improved version better. + 2. The leftmost column needs a bit of work due to some inconsistencies between select all and individual selects of the buttons. + 3. The buttons are now using their own emits to grab their things from the child component to the parent page. + 4. RegexInputComponent is still not updating and still has the same issues. + + * Updated Checkboxes For Buttons & Cancel Button Moved + 1. Fixed a bug where selecting all and then unchecking one of the rows caused the row to effecively 'disappear' and didn't allow for any action on it anymore. + 2. Updated the clone method in the UI page to be more secure: uses IDs for rows now and shows a case of updating the IDs for a cloned row because otherwise buttons share the same IDs and checking/unchecking one does the same for the other. + 3. Moved the cancel button down to the edit button's space and it only appears when you're editing that one row. It's a bit unpleasing UI wise, but it's not that intrusive. + + * RegexInputComponent Integration into Refactored CustomTableComponent + 1. The RegexInComponent finally works with the refactored CustomTableComponent. + However, the editing is done in a rather indirect way. Unlike the other types of editing types inside the table, the RegexInputComponent has to use it's @input-changed and pass it to another function to make the necessary changes. + Additionally, a change had to be made to the RegexInputComponent. + The v-model had to be removed as well. + + * Changes to RegexInputComponent Integration + 1. The default value prop is now being provided with the editedRowData.data[i] to be consistent with the rest of the input types in the table. + 2. Made some changes to the setMatchVal (previous logic was pretty roundabout) + 3. RegexInputComponent had it match emit only on change restored and moved the emitting of the value until after that check to give the table time to update its own isMatch value before adding the value into the editedRowData.data[i]. This fixes a bug where the isMatch value wasn't being updated in time and thus invalid values were being passed into the regex-input which broke it even when the value inside was altered to a valid one. + + * Updated Code According to Feedback in Code Review + 1. UI PAGE CHANGES + Removed the match value from the Regex input type, was leftover from initial design which was changed. + Renamed 'box' for button box colors to 'buttonClass' to be more inline with what it's actually attached to in the component. Additionally the 'header' was renamed to 'hoverTip' to be more self explanatory. + 2. CUSTOMTABLECOMPONENT CHANGES + Changes the data-cy values for the buttons to be inline with the data-cy values of the pre-existing buttons. Got rid of any instance of 'btn' and just used 'button' instead. + Dropped the '-event' from the button emit and it just now emits the name of the event for the parent page to catch. No more '@eventName-event' just '@event' in the parent page now. + Couldn't find anything about the payload being copied for the emit so in the meantime the payload is being copies to make sure an empty payload isn't being sent. + Got rid of a potentially unobservable bug of multiple select all boxes being overlapped because of an unnecessary v-for when creating the button in the header. + Cleaned the columns from any dated code (boolean types used to be separate and checking for cases that weren't necessary anymore) + Updated data-cy for all the row data (e.g row0-date). + Moved v-if for the table row data to the top for each HTML element + Removed select function for boolean types. Unnecessary. + UpdateSelectAll function has been rewritten. NOTE: should receive another lookover for soundness. + Linger CustomTableComponent computed methods removed. + Deep watch commented out in the meantime. + 3. REGEXINPUTCOMPONENT Changes + Simply added a comment explaining why the match value is initially null + + * More Code Review Changes + 1. CUSTOMTABLECOMPONENT CHANGES + Simplified the logic for selectAll function + Removed all debugging code (i.e console.logs) + + * Radical Changes + 1. DELETED + Deleted the old CustomTableComponent + Deleted the old CustomTableComponents unit test + Deleted a script from the example.info file for the refactored CustomTableComponent + 2. RENAMED + Renamed the newCustomTableComponent to CustomTableComponent + Same as above for the unit test + 3. PROBLEMS + All sub-tabs using the CustomTableComponent are broken, including the UI page. + Unit test for the CustomTableComponent doesn't want to start. + + * Removed Lingering Mentions of the NewCustomTableComponent + 1. UI PAGE + Removed any lingering method names that had the 'new' label to differentiate them from the old CustomTable methods. + 2. CUSTOMTABLECOMPONENT.js + Removed any lingering mentions of the 'NewCustomTableComponent' from the file. + + * Fixed Bug where CustomTable Wasn't Initialized Properly + 1. CONFIG INFO + Moved the RegexInputComponent's initialization higher to fix a bug where it was being initialized after the CustomTable was trying to use + 2. CustomTableComponent.js + Added the export at the top for the RegexInputComponent + + * CustomTableComponent Changes + 1. Fixed a bug where the leftmost column was still actionable when editing a row + 2. Fixed a bug where the delete button was still enabled while editing. This allowed for an edited row to be deleted during editing which kept the table stuck in an editing state + 3. CONCERN: The CustomTable needs to be fed a customButton array. Even if its empty, it needs to be feed one or it runs into rendering errors. This should be discussed. + CustomTableComponent Cypress Changes + 1. All tests have been updated to reflect the refactoring of the CustomTable + 2. The CSV context no longer works due to a OS process issue + 3. Save button test isn't working properly + RegexInputComponent Changes + 1. Some small changes. + RegexInputComponent Cypress Changes + 1. Made some small changes to account for the isMatch being null initially + UI Changes + 1. Some small UI changes were made to test the CustomTable visually. + + * Changes to UI Page + 1. Removed (hopefully) remaining vestiges of the 'new' variable names from the UI page. The last remaining instances of it had not been removed from the show/hide column button. + Changes to UI End-to-End Test + 1. Updated CustomTable tests. + Changes to CustomTableComponent + 1. Updated the finishEditRow() function to correctly update the JSONObject returned to the page. For whatever reason, it didn't actually affect editing in any visible capacity but this should fix any unforeseeable bugs (hopefully). + 2. Gave the CustomButtons prop a default value of empty array to avoid problems when devs do not give a CustomButton prop to their table which caused rendering issues due to a null assignment + Changes to CustomTable Unit Test + 1. Thanks to the fix of the finishEditRow(), the save tests are now working as expected. + 2. CSV context suite has been restored but only works within the vnc (fd2dev container). + + * Changes in Seeding Report + 1. Reconfigured the table to remove the input types, headers, and visible columns which were all combined into the new tableColumns data. + 2. There's a bug where the user, crop, and area maps aren't being properly loading in for editing. + 3. The table can display the correct headers according to the type of seeding. + 4. Delete and edit functionality need to be updated. + Changes in Transplanting Report + 1. Reconfigured the table to remove input types, headers, and visible columns which were all combined into the new tableColumns data. + 2. There's a bug where the user, crop, and area maps aren't being properly loaded in while editing + 3. The table needs to have its edit and delete fuctionalities updated. + Changes in UI Page + 1. Simple changed a small inconsistency in the columns data. + + * Seeding Report Changes + 1. Updated the deleting function so that it can support multiple deletes. + 2. Removed debugging code and reminants of old table data. + Transplanting Report Changes + 1. Updated the deleting function so that it can support multiple deletes. + CustomTable Changes: + 1. Fixed a bug where regex inputs weren't returning anything in the json object so updating the backend wasn't happening. + + * Added Documentation + Transplanting Report Changes + 1. Removed debugging code + + * Changes to Seeding Report + 1. Added a promise check for the deletion of logs. + Changes to Transplanting Report + 1. Added a promise check for the deletion of logs. + Changes to UI Page + 1. Added a promise check for the deletion of rows + Changes to CustomTableComponent + 1. Added a deep watch that's supposed to keep an eye on the columns prop and update it on the table end. It's currently not functioning correctly. + + * Seeding Report Changes + 1. Returning the columns prop in the CustomTable through a computed propety now. The generation of the user, area, and crop name arrays have also been separated into their own properties in anticiaption of another issue. + 2. Removed old code + CustomTableComponent Changes + 1. Removed watcher. + 2. Left updatedColumns piece in anticipation that it might be used again + + * CustomTable Changes + 1. Commented out updatedColumns piece + + * Seeding Report Changes + 1. Realized that I didn't save the file and thus my removal of old code wasn't present in the last commit. + Transplanting Report Changes + 1. Made sure it was using the same computed property structure as the Seeding Report page. + +commit e9512f3450729a61148aa0920c7e069c6fc59df7 +Author: Grant Braught +Date: Sat Dec 10 18:10:40 2022 -0500 + + Updated INSTALL.md - fixed typos (#587) + +commit 88952e66e223aa49c6abf3c62a7f98795a7206e0 +Author: Grant Braught +Date: Sat Dec 10 17:47:42 2022 -0500 + + Dev cont patches (#586) + + * Added some git configuration. + + * Pinned cypress versions + +commit 310fd221bd3b31e72d73852c7016f881513637a8 +Author: Grant Braught +Date: Sun Nov 6 16:51:21 2022 -0500 + + Patch Dev Container to ensure JSDoc and its Vue Dependencies are installed. (#582) + + * Installed JSDoc and its Vue dependencies in dev container + + * Patched JSDoc.json for global install + +commit 211e1aba0028e39d60502e784a38a6bfe9793cb3 +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Sun Nov 6 15:09:17 2022 -0500 + + Fixed Average Row Feet/Hour Calculation (#576) + + 1. Seeding Report HTML + Change where the row feet was being grabbed from because the index was incorrect. + 2. Seeding Report e2e + Unchanged because it'll be addressed in another issue. + +commit 6dfac2f6a2ede8848fbca94ac885cf5faacfee24 +Author: braughtg +Date: Tue Nov 1 11:53:52 2022 -0400 + + Treat windows(WSL) like Linux when starting fd2 + +commit f97484dc2d49cddd76b6977a2f4ba166b9f156f7 +Author: Grant Braught +Date: Thu Oct 27 11:33:04 2022 -0400 + + Refactoring Containerization (#569) + + Move FarmData2 to a fully containerized model. Images are built by maintainers and hosted on dockerhub to freeze images. Both amd64 and arm64 are supported. A containerized development environment is also provided via VNC and noVNC. + +commit f69688abcb75d0cd3571e4c6594069f0179b8030 +Author: braughtg +Date: Tue Oct 25 08:19:28 2022 -0400 + + Added theia container back - had been commented out by mistake + +commit 8a34aba167115b652852df183ceac11c7bcc5130 +Author: braughtg +Date: Mon Oct 10 14:38:52 2022 -0400 + + Clarified some licensing language + +commit 23baeedcac9e6ac91fb12bb5f9dfe7962677881c +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Thu Jul 28 09:44:28 2022 -0400 + + Repairing Updating Rows from within the Seeding Report (#551) + + * Everything updates except for Crop, Area, and Date. These need to be updated. + 1. Cypress tests need to be added to more rigorously test this change + + * Updated Cypress Test to Be More Rigorous + 1. There's a bug where changing area and quantity is causing a 422 status code. + 2. The Cypress test seems to not be updating the values. This has to seriosuly be investigated. + + * Updated Seeding Report Page + 1. Fixed a bug where updating the quantity and the area at the same time would result in a 422 status code from the server. + 2. FIxed a bug where editing date, crop, area, comments, or user alongside any of the quantities would not update the log on the frontend with the appropriate information. + 3. Added the IDToAreaMap in order to fix an issue where area would be empty inside the report page when updating it alongside other quantities. + 4. Still need to update/add Cypress test(s) to test these changes + + * Removed the Addition of the IDToAreaMap Solution + 1. Made sure that the log inside of the report is accurate to the backend + + * Adding More Rigorous Cypress Tests for the Editing Functionality + 1. Unfinished currently because we have to create a direct seeding log and an asset for testing purposes and the asset is producing an error. + + * Completed the Cypress Testing for Updating Logs + +commit 3a1bc55b1d842b7998ebc33ff4d7bb885bda0dd8 +Author: Jingyu (Marcel) Lee <46755208+JingyuMarcelLee@users.noreply.github.com> +Date: Wed Jul 27 14:40:01 2022 -0400 + + Issue #558 error banner refactor (#564) + + * Created template for the component + + * completed component and tests + + * refactored seeding input and the tests + + * refactored seeding report + + * made changes so that changes in component is accomodated + + * work in progress + + * refactored all pages + +commit 4d73c2e46defb68f49e122afb242fbca25a40274 +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Wed Jul 27 09:09:28 2022 -0400 + + Removed Anonymous from the User List in Seeding Report (#555) + + * Updated the FarmOSAPI User Functions to Remove Anonymous from the List + * Updated FarmOSAPI Cypress Test + + Co-authored-by: Marcel Lee + Co-authored-by: Grant Braught + +commit e66369015314adcadf06f1b5744a9ac49057160e +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Tue Jul 26 17:28:07 2022 -0400 + + Removed a lingering Only Inside of the FarmOSAPI Cypress Test File (#563) + +commit f334e5a7a9c39d61e6d6b9fac9d4522250fcb5be +Author: Jingyu (Marcel) Lee <46755208+JingyuMarcelLee@users.noreply.github.com> +Date: Tue Jul 26 17:06:42 2022 -0400 + + Issue #557 error banner component (#561) + + * Created template for the component + + * completed component and tests + + * added comment for doc + + * generate doc + + * added missing hide banner test + + * set default err message + +commit fb7eb118f0911adec3131b8d4ef555091bf52d9b +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Tue Jul 26 16:53:07 2022 -0400 + + Changed all the Replace Functions to ReplaceAlls to Capture Everything (#560) + +commit 7f2d4e44e0b545af12af3524ef40bab9da6c113e +Author: Jingyu (Marcel) Lee <46755208+JingyuMarcelLee@users.noreply.github.com> +Date: Mon Jul 25 16:17:44 2022 -0400 + + fixed typo which fixed bug (#556) + +commit 1804e1f21ca4a093b6c49ac3f822adc78ace46ca +Author: Jingyu (Marcel) Lee <46755208+JingyuMarcelLee@users.noreply.github.com> +Date: Mon Jul 25 15:03:48 2022 -0400 + + Issue #548 Adding Regular Expression Constants (#552) + + * created regular expresssion map and refactored seeding input + + * added documentation header + + * generated documentation using Jsdoc + +commit 8ef402a0c2801c22c52d8eab16029383ba0436f9 +Author: Jingyu (Marcel) Lee <46755208+JingyuMarcelLee@users.noreply.github.com> +Date: Thu Jul 21 16:31:23 2022 -0400 + + Issue541 seeding input optional labor (#550) + + Got rid of .only + +commit b96a568262afc116958e9bedf29e34adde5ea4fd +Author: Jingyu (Marcel) Lee <46755208+JingyuMarcelLee@users.noreply.github.com> +Date: Thu Jul 21 15:12:35 2022 -0400 + + Issue #541 seeding input optional labor (#547) + + When labor data is optional, ensures that neither or both # of workers and hours/minutes are valid and specified. + +commit 005d04e67c1ab760cd47e10f10295d1aaf9449f9 +Author: Jingyu (Marcel) Lee <46755208+JingyuMarcelLee@users.noreply.github.com> +Date: Thu Jul 21 14:18:55 2022 -0400 + + completed changing the component and testing (#545) + + Added watch for regex prop so the expression can be changed dynamically. + +commit 9514664c381fefe1e0e590b32771bf42bec4c493 +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Thu Jul 21 11:48:36 2022 -0400 + + Addition of a Transplanting Report (#542) + + * Transplanting Report Added to Barn Kit Module + 1. Modified BarnKit module to include a new sub-tab for the Transplanting Report. + 2. Added the Transplanting Report to the Barn Kit module as a sub-tab. + 3. Added its test file (currently empty). + + * Removed Unnecessary Code from the Transplanting Report + 1. Still need to update the code for editing to work correct + 2. Still need to update the code for deleting to work correct + 3. Touch-ups of the code and a discussion of original seeding dates needs to be had + + * Transplanting Report Almost Complete + 1. The edit and the delete methods need to be looked at closely + 2. Copy and pasted the Seeding Report's test for the Transplanting Report for now + + * Added Cypress Testing for the Transplanting Report + 1. Adjusted most of the Cypress tests for the Transplanting Report. Editing and deleting need to be analyzed. + 2. There's a bug where h.data is null for the cropList that needs to be explored. + + * Updated Config Tests + 1. The Config tests now properly work on the page. Some additional tests still need to be added for summary tables though. + 2. Edit/Delete still need to be fixed + + * Committed for Reviewing Purposes + 1. The edit/delete Cypress test are still throwing the 406 error, so I'm committing my changes so that others can see what I'm seeing on my screen + + * Added Labor Config Test for Summary Table + 1. The labor configuration tests for the summary table calculations has been added. + 2. The edit/delete still need to be looked at closely + + * Edit/Delete Function but Exhibit Similar Behavior to Seeding Report + 1. The edit/delete functionality now works but exhibits the same behavior as the Seeding Report. Changing things for crop and area doesn't actually change anything in the backend and test produce a 500 error code for this but still pass + + * Updated Inconsistencies and Corrected Some Issues + 1. The hours method accurately calculates the total number of hours now. The Cypress test associated with this change have also been updated. + 2. Updated some lingering code copied over from the Seeding Report. + 3. Checked out the db.sample.tar.bz2 file from main to hopefully avoid any difference when merging to upstream. + +commit bc6602891649d2065715755bb46275e4903ac33e +Author: Jingyu (Marcel) Lee <46755208+JingyuMarcelLee@users.noreply.github.com> +Date: Tue Jul 19 12:07:55 2022 -0400 + + Issue #536 Labor data summary fix (#540) + + * fixed summary table for direct seeding + * completed testing for labor config changes. + +commit 1bad53a4692b725177ec62de4adb24ff56786196 +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Mon Jul 18 15:53:10 2022 -0400 + + Fixed a Bug in the Tray Seeding Python Program (#535) + + * Fixing Database Tray Logs in 2019 + 1. Changed '0 seedings' at the end of two csv lines to be the correct values + 2. Edited some spaces inside of the python file in charge of making the tray seeding logs. + 3. Rebuilt the data base + + * Changed the Python File Responsible for Adding Tray Seedings + 1. Changed it to verify that the value being passed for seeds is a number. + 2. Removed something questionable from the csv file for tray seedings. + 3. Undid some changes made in the buildSampleDB bash for the purposes of testing + + * Modified TraySeeding Python File to Exclude Any Seedings with 0's + + * Removed Bug Causing False to Be Present for Numeric Values in Tray Seeding + 1. Accounted for cases where cells/flat can be 0. + 2. Fixed some code to allow for a conditional to take care of cases where seeding is 0. + 3. Rebuilt the database. + 4. Fixed the Seeding Report Cypress tests due to the changes in the database. + +commit 83f133e9c39d8aa6bc1a6427514cff641472d60f +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Sat Jul 16 16:31:46 2022 -0400 + + Removed a Lingering Only Left Inside the Seeding Report Cypress test (#538) + +commit 559d4b6953a8b7085793bff1e1f86e359961fb0f +Author: Jingyu (Marcel) Lee <46755208+JingyuMarcelLee@users.noreply.github.com> +Date: Fri Jul 15 12:26:51 2022 -0400 + + Issue #479 simple detailed view (#537) + + * made changes to the html elements so that they are responsive to the initial screen size. + * hides some columns when screen is small. + +commit 06cc8f5ef82d4c3bc2c4470d0c4bfc0f1975aa22 +Author: Jingyu (Marcel) Lee <46755208+JingyuMarcelLee@users.noreply.github.com> +Date: Wed Jul 13 20:12:10 2022 -0400 + + Completed configuration integration and testing (#534) + +commit b37515fb0245eb502aae1a30c1e08ebfccb2cd0f +Author: Jingyu (Marcel) Lee <46755208+JingyuMarcelLee@users.noreply.github.com> +Date: Wed Jul 13 12:11:27 2022 -0400 + + Issue# 519 Adding configuration feature (#533) + + * Made the Seeding Input Log form responsive to the labor configuration setting. + * Added tests for to ensure that the configuration setting works. + +commit b1d87dd4a639ae7d7ec286531544f8439392d6e8 +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Tue Jul 12 17:48:07 2022 -0400 + + Fixed the Ordering in the Barn Kit Module (#531) + + 1. Fixed the weights in the module file + +commit 0d7458ef624d991c1a9871548baca0983ea5c412 +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Tue Jul 12 08:35:35 2022 -0400 + + Fixed Static CSV File Names (#529) + + * Added a Prop to Disable CSV Button and Control Its File Name + 1. Added a new prop in the CustomTableComponent which is a blank string by default. A v-if inside of the button does not render the CSV button if that string is empty. + 2. The prop allows devs to choose the name of their CSV files. + 3. Added this functionality to the Seeding Report's customTableComponent. + 4. Added a small test to verify that the button does not exist. + + * Added Requested Changed + 1. Added the prop to the UI page's CustomTableComponent so that the button appears. + 2. Added documentation for the new prop within the CustomTableComponent's javascript file. + 3. Regenerated the documentation inside of doc. + +commit fd8050a867276a5a968043041f5fedf8bf040bb1 +Author: Jingyu (Marcel) Lee <46755208+JingyuMarcelLee@users.noreply.github.com> +Date: Mon Jul 11 16:36:42 2022 -0400 + + Issue #515: Adding Configuration Page (#527) + + * added test for config functions from FarmOSAPI.js + + * completed test + + * reverted cypress changes + + * generated docs for functions + + * Completed var.html update with config list + + * finished tests + + * completed config.html with just labor configuration + + * Completed html and cypress tests for config + + * Deleted unnecessary button on the vars.html and the test related to it + + * made changes to the cypress file to make tests reset JSON + + * Fixed all required changes + + * Fixed all required changes and modified test (added scroll test and fixed bugs where the labor is set to optional everytime test ran + +commit 140662bfdb05f54740a8fbc3da924a260bd92bc1 +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Mon Jul 11 16:29:31 2022 -0400 + + Implementing Standard Error Handling for API Request Failures (#524) + + * Added API Error Handling in UI Page + 1. Fixed a small typo in the Seeding Input form + 2. Added an example of error handling inside of the UI page + 3. Added a test in the UI's e2e to cover this new example + + * Updated UI Page & Its Testing Page + 1. Added conditional statements to the catch(err) to handle the three types of possible errors per Axios documentation. + 2. Left documentation from that page so that the different conditionals explain what type of errors they are catching. + 3.Updated the UI testing page to include three tests for each type of error the API standard error handler is supposed to catch + + * Updated the Seeding Input Page & Cypress e2e Test + 1. Added the error handling to the API calls inside of the Seeding Input Page. + 2. Added the alert banner to display inside of the Seeding Input page when an API call fails. + 3. Added Cypress tests into the Seeding Inputs e2e test file to cover API fail cases. + 4. Changes some small things in the UI page with an array being shared between two tests. (They still do, but it now clears itself when the other's button is clicked) + 5. Made some small changes to the UI Cypress e2e page. + + * Updated the Seeding Report Page and Cypress e2e Test + 1. Added the API failure banner to the Seeding Report and all the catch errors for API request in the page. + 2. Added API failure tests to Cypress e2e test file for the Seeding Report + 3. Made some small changes to the Seeding Input e2e test file. + + * Fixed Indentation and Removed Unnecessary Documentation + + * Updated the Seeding Input & Report Pages and Test for Auto Scroll + 1. Added a scroll to feature that scrolls to the top of the page for the error banner in both the Seeding Input and Seeding Report. + 2. Added tests for this feature into both e2e Cypress tests + + * Simplied Catch Statement in All API Calls + 1. Removed the conditionals to catch different types of errors. + + * Removed Some more Redundant Code + 1. Removed the intricate conditonals in the Seeding Input for a more simple approach + + * Changed All the scrollTo's to scrollBy's + + * Changed the Auto Scroll to be More in Line with Seeding Input PR + 1. Changed the auto scroll for the error banner to be in-line with the auto scroll for the success and cancel banners inside of the Seeding Input + 2. Moved the error banner inside of the same div as the other banners inside of the Seeding Input. + 3. Used the same div format inside of the Seeding Report so that things remain consistent throughout different pages. + 4. Made some accomodations to the tests for these recent changes. + +commit 8082bb535aba42882fc5ddf472efc142e34f8c28 +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Mon Jul 11 08:46:35 2022 -0400 + + Seeding Input: Auto Scrolls to Banners at the Top of Page (#525) + + * Seeding Input Scrolls Up to See Banners + 1. Added some JavaScript to scroll to the banners at the top of the report so that they're visible to the user after a confirm/cancel. + + * Updated Seeding Input e2e Test + 1. Disabled Cypress's auto scroll behavior in the two tests for the confirm/cancel button. Nothing else in thos individual tests wer changed since the changes in the page should already test whether those banners are visible or not. + 2. Added a scrollIntoView function to labor to help the those two tests where the auto scroll was disabled since auto scroll is disabled for those two + + * Updated Cypress Testing + 1. Added a more rigorus test for the scroll up feature. + 2. Removed the auto scroll disable and the scroll being used on labor to scroll down + 3. There's a bug where the tests ONLY work if the data-cy's being grabbed are reversed. So if the cancel button is clicked the cancel banner is visible but the test only works if you cy.get(success banner) and vice-versa for the confirm button + + * Changed Auto Scroll Behavior and Modified Tests + 1. Changed the auto scroll behavior from scrollIntoView to scrollTo with specific coordinates for the location of the cancel/submitted banner. Unfortunatelythe FarmData2 banner gets in the way, so we have to scroll to a specific position in order to see the banner. + 2. Updated the tests in the Cypress to reflect these changes. They passed under .only and when the entire file of tests was run + + * Updated scrollTo To Be Dynamic and not Static + 1. Changed the static pixel value to grab the lower bounds of the alert banner and then subtract the lower bounds of the header that obscures it. + 2. Moved the alert banner to be below the Seeding Input Log header. + + * Changed the scrollTo to scrollBy. + 1. Changed the scroll function that's being used. + 2. Removed the 'onlys' that were still in the Seeding Input test. + 3. Adjusted the tests to reflect these changes + + * Removed Console Log from Seeding Input + +commit 376f56b66431bb75f5c6a619e4fe74eefe250818 +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Tue Jul 5 18:48:49 2022 -0400 + + CustomTableComponent: Adding Export Functionality (#517) + + * Adding Export Functionality to CustomTableComp + 1. Added a button labeled 'Export' at the top of the table that, when clicked, will export the current table as a csv file for the user + 2. Added a new method inside of the CustomTableComp called 'exportCSV' which will be in charge of generated and exporting the CSV file. + 3. Currently the aforementioned method can export a CSV file containing the headers. Next is working on the difficult part of including data from entire rows. + + * CSV function now has row data + 1. Row data now appears under the appropriate header inside the of the CSV file export. + 2. Unfortunately comments break the structure of the CSV file. More time is needed to determine whether or not this can be fixed or if it would be more efficient to just ignore comments altogether in the export data. + + * CVS Export Now Cleans Strings + 1. Fixed an issue in the last commit where comments were breaking the structure of the CSV. Turns out the backend is adding HTML elements to the comments field inside of the Seeding Input to make sure the table grows and displays the whole contents of the comment column. In order to combat this, the exportCSV method checks to see if an element is a string and then removed all

,

,
and new lines from the comments so the CSV structure isn't compromised. + 2. The code inside of the component still needs to be cleaned and tested must be done to assure inside the CustomTableComponent's Cypress file. + + * Cleaned the CustomTableComponent + 1. Cleaned the identation and spacing for the CustomTableComponent. Added a couple of comments to the exportCSV method to explain certain aspects of the code. + 2. Started adding tests to the CustomTableComponent's Cypress file. + + * Added Cypress Testing for CSV Function + 1. Added Cypress tests for the CSV function. + 2. Made sure that the downloads folder inside of the Cypress folder clears all of its contents after the last test, that way the folder isn't holding unnecessary files. + 3. Fixed some weird things with the template (span and div were swapped). + + * Changed the cy.exec so the Downloads folder is deleted entirely + 1. Previously only deleted contents of the folder, now it deleted the contents and the folder itself + +commit b708243785e892a63f5bb5904e6f3f0e07696012 +Author: Jingyu (Marcel) Lee <46755208+JingyuMarcelLee@users.noreply.github.com> +Date: Tue Jul 5 17:07:15 2022 -0400 + + Issue #368 seeding input e2e cypress test (#513) + + * Working on preliminary API calls + + * completed Cache and init API call test for Crop and Area + + * worked on fixing tests related dropdowns + + * completed API tests + + * completed RegexInput test + + * fixed asyncronous API call login issues + + * invalid input submit button test in progress + + * completed workflow tests + + * Log creation test case template created + + * Deleted unnecessary API map waits + +commit 5d1e0aec402face84aed651fc8599d481564f6d9 +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Tue Jul 5 16:57:38 2022 -0400 + + Refactoring Pre-existing Seeding Report e2e Test (#514) + + * Cypress test changes for editing/deleting buttons + Fixing the test, but it currently is not accepting a valid column and row + + * Additions to Seeding Report and Refactor Cypress Tests + Seeding Report had some data-cy tags added to the summary tables to easily access that data for testing purposes. All Cypress tests that were malfunctioning due to CustomTable changes are now working. All Cypress e2e tests now work. Some additional ones need to be added to account for API calls. + + * Cypress Tests: Testing API and Filter Selection + Added tests to make sure that the filter dropdowns are being populated by the API calls to the crop map and area map. + Added tests to make sure selections in one filter dropdown impact the options in the other filter dropdowns. + Added coverge for visible columns when the edit button makes the save and cancel headers visible. + + * Refactored Cypress Test File Structure + Removed a good amount of the logins from the beforeEach calls made inside of contexts and allowed that to always occur in the describe before each test. This seems to have helped significantly reduce the amount of times a potential 403 error might occur at the cost of increased test time since the beforeEach in the describe runs for each test. + Additionally, some of the API calls are currently incomplete because I do not know where exactly to make those API calls to. + + * Fixed API Issue + The first test was causing the rest of a context to fail since it was reloading the page. + Removed commented code. + Made sure everything was properly indented and spaced. + + * Removed some redundant tests + 1. Removed a repeated tests that tested filter behavior + + * Made Requested Changes to the Seeding Report e2e Test + 1. Added two more data-cys to the Seeding Report html page in order to verify if the text denoting no longs are there for that seeding type is present or not + 2. Removed a context and combined some of its contents to another context because they overlap. + 3. Changed the edit/deleting tests at the end of the e2e file. + 4. (Hopefully) Fixed all spacing and indentation concerns + +commit 5894e6db0815d37e6a62943d9d757e3e4778c051 +Author: Grant Braught +Date: Mon Jul 4 12:13:36 2022 -0400 + + Add Proof-Of-Concept Configuration Module (#518) + + * Added info for accessing farmdata2db using pmpMyAdmin. + + * Added proof-of-concept configuration module + + * Created API wrappers for accessing config info + + * Updated build script for sample db to include configuration information + + * Updated the sample db to include configuration information + + * Removed demo module used to test config ideas + +commit 40a217d8ade7c8106ffe9bd498b4b3c8d828b441 +Author: kvaithin <68995267+kvaithin@users.noreply.github.com> +Date: Wed Jun 29 14:03:41 2022 +0100 + + [505] typo grammar updates (#509) + + Co-authored-by: kvaithin + +commit f188d61fd506b9947124bc216d1aed610aeecbf1 +Author: Jingyu (Marcel) Lee <46755208+JingyuMarcelLee@users.noreply.github.com> +Date: Tue Jun 28 15:11:45 2022 -0400 + + added two buttons to show and hide column of table and tested it (#506) + +commit 1acdc7d934954e9484531fbeb7070a1c200ffe06 +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Tue Jun 28 11:35:22 2022 -0400 + + Updating the UI Page (#504) + + * added disable/enable buttons and tested them + + * Added some new Cypress e2e tests for the new RegexInputComp in the UI sub-tab + + * Changed the method in the UI page so that when users click a button for the regex the input box is just set 0 so they have to type something in there to test it out. This is because I couldn't get the page to focus on the element in the page so this is the work around. Made the appropriate adjustments in the Cypress test to accomodate this change too + + * Updated the manner by which the regular expression was being updated by pressing the buttons. Now a map is used where keys are utilized to access the values to pass to the regular expression Vue data which is binded to the regexcomp in the html. + + * The positive decimals and ints were swapped around. I correct this error so this code is correct. + + * refactored disabled button and methods + + * fixed disabled cypress tests + + * fixed dropdown test + + Co-authored-by: JingyuMarcelLee + Co-authored-by: Jingyu (Marcel) Lee <46755208+JingyuMarcelLee@users.noreply.github.com> + +commit d80816687248bfcac836c80d6e4e59e1317ff435 +Author: Jingyu (Marcel) Lee <46755208+JingyuMarcelLee@users.noreply.github.com> +Date: Mon Jun 27 15:40:30 2022 -0400 + + Issue #357 CustomTableComponent Prop Change reponse (#497) + + * added watch for visualColumns and tested it + + * Refactored the component to bind the computed method on the data value instead of prop. Added watch for prop and added more test for better case coverage. + + * updated doc + + * added deep watch for the visibleColumns prop and tested direct element change + +commit 9759d9d49d857ba9e9a4c2acb0a51ba425da6248 +Author: Jingyu (Marcel) Lee <46755208+JingyuMarcelLee@users.noreply.github.com> +Date: Mon Jun 27 11:03:32 2022 -0400 + + Issue285 seeding log workflow (#487) + + * Moved the area dropdown to the seeding selection portion of the form + + * Changed button text from 'submit' to 'Create Log'. + + * created Bootstrap HTML element for the log creation success alert message on the top of the page. + + * created Bootstrap HTML element for the alert box for submit cancellation. + + * reassigned default values to the vue objects to refresh the values once the form is submitted. + + * added disabled for the components in the input html + + * Added RegExInputComponent + + * Updated documentation and Cypress tests to reflect changes made in the component + + * Rigorous indentation correction. + + * Added an additional Cypress test case to account for modifications in the component + + Co-authored-by: futzmonitor + Co-authored-by: Chris <31524934+FutzMonitor@users.noreply.github.com> + +commit 3b56840e4c8f9cb6a8c97e1ea08efaf2e45084b2 +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Mon Jun 27 10:59:42 2022 -0400 + + Removed extra > in the Date Range Selection's template. (#503) + +commit 997162fb49269bda9294516053e095571bbfdcbe +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Wed Jun 22 16:00:52 2022 -0400 + + Fixed mounting inconciseness in the DropdownWithAll's cypress test (#500) + +commit 46f1b188e1451f4fea11a5afcba0aad65fc5d257 +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Wed Jun 22 15:59:25 2022 -0400 + + Fixed mounting inconciseness in the DateSelectionComponent's cypress test (#499) + +commit 76b109b979bacc9cd482f60254b47e4a39956857 +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Wed Jun 22 15:58:05 2022 -0400 + + Fixed mounting inconciseness in the DateRangeSelectionComponent's cypress test (#498) + +commit ce96514436b36d957c465603e9a6ea8b827c6c61 +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Wed Jun 22 15:52:09 2022 -0400 + + Creation of new Vue Comp: RegexInputComponent (#496) + + * Creation and testing of the new RegexInputComponent. + +commit 1d18a6dd06dbb4c631bd4faf1ca31ae4a0531ca9 +Author: Jingyu (Marcel) Lee <46755208+JingyuMarcelLee@users.noreply.github.com> +Date: Wed Jun 22 11:07:25 2022 -0400 + + Issue#489 #490 #491 disabled components (#495) + + * Added disabled functionality with a watch to check prop changes in components. + * Wrote Cypress component tests. + * Generated JSDoc documentation + +commit 3fbb9d08bee8c145dbf8b43e00734fabe86a88f4 +Author: Grant Braught +Date: Mon Jun 20 13:49:52 2022 -0400 + + Removed restart always for fd2_phpmyadmin container. (#493) + +commit 5bb4d38cf43cd0e54f18e87244d53b7969ee2a5e +Author: Saad Mateen +Date: Sat Jun 18 19:58:03 2022 +0500 + + Fixed 'Seeding Input: Labor Section Text Missing Plural' (#488) + +commit f0a9ff65be0e8de986c02bcdc5741c175f028a95 +Author: Jingyu (Marcel) Lee <46755208+JingyuMarcelLee@users.noreply.github.com> +Date: Fri Jun 17 12:45:08 2022 -0400 + + Issue352 date range selection component (#486) + + * fixed most of the changes for DateRangeSelectionComponent and corresponding variable name changes in files + + * wrote test cases. + + * fixed documentation for both dateSelectComponent and dateRangeComponent + +commit 61946a47b641123fb2e6d55f0b596a3d92b23c3a +Author: Grant Braught +Date: Fri Jun 17 12:43:21 2022 -0400 + + Updated install command for npm packages. + + As these packages are used only locally by devs creating documentation they are only installed locally. While a package.json and package-lock.json may be more conventional, this is working for now. + +commit 797deb3fbafbee2d739a1eb5939c9c2c53382fcd +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Fri Jun 17 10:49:28 2022 -0400 + + Changed 'defaultInput' --> 'selectionVal' in DropdownWithAll Component (#482) + + * Changed prop 'selectedVal' --> 'selectedVal' in the DropdownWithAllComponent and changed all instances of it in other files to make sure they continue to work. Also ran doch.bash to generate new documentation by changing the path in the json file but made sure to change it back so that it was not included in this commit + + * Created new Cypress tests to test the function being ran inside of the watch method for selection value + +commit f2e7ae083f0f9507fca2bdc932a0e7e510f9f10d +Author: Grant Braught +Date: Fri Jun 17 08:41:30 2022 -0400 + + Clarified instruction for running JSDoc script. + +commit 7dce2d209e1b59fc82f89939d26e379a8a2b5b47 +Author: Grant Braught +Date: Fri Jun 17 08:37:26 2022 -0400 + + Added clarification to JSDoc install directions. + +commit b15d4f8f4ef32634b4add45d71157962a285babd +Author: Grant Braught +Date: Thu Jun 16 15:14:54 2022 -0400 + + Made JSDoc install local rather than global (#485) + +commit e84b78fcf677c30632687ac1f8419a220e7cac76 +Author: Jingyu (Marcel) Lee <46755208+JingyuMarcelLee@users.noreply.github.com> +Date: Thu Jun 16 14:44:44 2022 -0400 + + Issue #351 DateSelectionComponent Updates (#480) + + * Added emit when mounted for DateSelection Componenent. Tested this method via cypress in DateSelectionComponent.spec.comp.js. + + * changed defaultDate to setDate + + * completed testing for change in props, ui.html, and manual testing on the Seeding Input and Report. + + * changes to documentation and watch funtion + + * added Cypress tests for emit and watch invalid dates and emitted events.' + +commit 397cc69569d0975ceda6bf045167e5ee02b4ba44 +Author: Grant Braught +Date: Thu Jun 9 14:19:35 2022 -0400 + + Update text of example link. + +commit 6c63103e0bd47d5301fdec92ae70147f20ed2bd2 +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Thu Jun 9 11:37:04 2022 -0400 + + Time Reporting: Computes Hours Differently in Seeding Report (#477) + + * Switched the 'Workers' and 'Hours' columns to more clearly present that hours are totaled together and not hours worked per worker. Fixed some inconsistencies with some headers being capitalized and others not + + * Changed the way that hours are computed in the Seeding Report to be in the format 'e.g 2 workers for 1 hour = 2 hours' + + * Modified total hours in the summary pages to work with the new columns because they were still looking for 'seedings' in their conditional statement + +commit 60ea20fcb5e597f34d4ae4da0f69d54335a50bdd +Author: Jingyu (Marcel) Lee <46755208+JingyuMarcelLee@users.noreply.github.com> +Date: Thu Jun 9 11:22:00 2022 -0400 + + Seeding Input Form UI Design (#478) + + * Created a new section for comments. Removed comments from the data section. Removed breaking line where comments was removed in data and added it above dates so that it's not so close to the section tab + + * changed the text for the radio button descriptions. Modified spacing + + * Added two lins breaks above area in the 'Seeding' Section so that they were not so close. Changed 'Time' to 'For' in the 'Labor' section. Spacing needs to be corrected in a different task. + + * Removed line breaks as source of padding and added top-margin to the styling in the divs + + * Adjusted the top-margin to 45, previously 50. + + * Changed 'Date of seeding' under data to 'Date' and adjusted width of the dropdowns to make sure they are aligned. + + * Made some language conciseness changes to the text in the 'Seeding' section of the input form + + * fixed alignment so that mobile display would work the same way as desktop + + * Removed some lines from the 'Seeding' section + + * minor changes + + * Centered the contents of the 'Labor' section. Awaiting changes to DropdownWithAllComponents to be changed from div to span to see these changes + + * changed size of the input boxes and aligned the dropdowns and boxes + + * component span reverted + + * made all necessary changes to accomodate new change in the dropdown component. + + * typo in dropdown component addressed + + * fixed minor padding issue with the comment box + + * deleted unnecessary CSS elements after changes to the components were made. Fixed the order of the labor input forms + + * reverted change made to the DropDownWithAllComponent.js; changed dropdown to be more clear + + * Changed width of the input form to display 4 digits by default. Boundsome texts and input form together with label tag to prevent relevent text-inputform fileds from getting splitted when screen size changes. + + Co-authored-by: Chris <31524934+FutzMonitor@users.noreply.github.com> + +commit a3ce92167d0733336155430f68577f63b7c13098 +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Thu Jun 9 11:07:58 2022 -0400 + + Seeding Report Edits (#474) + + * Switched the 'Workers' and 'Hours' columns to more clearly present that hours are totaled together and not hours worked per worker. Fixed some inconsistencies with some headers being capitalized and others not + + * Corrected some table headers to be more concise. IN the seeding's column, removed the word 'seeding' for conciseness. + + * The 'Hours' column now consistenly displays hours up to the second decimal place. Fixed a bug where summary pages where not accurately displaying that no logs with the appropriate parameters existed after filtering through the table + + * Rearranged the headers for direct seeding. Made sure that the data attached has their orders corrected as well. Summary page for direct seeding has the data it as fetching updated to grab the correct values + +commit 3d8046bee4e5de32812eb6bc2554557e1d13abf8 +Author: Grant Braught +Date: Wed Jun 8 16:49:12 2022 -0400 + + Change div to span in components (#475) + +commit 16cfb96db22f7e4940a985a22890a4ee536289ab +Author: Grant Braught +Date: Wed Jun 8 15:35:29 2022 -0400 + + Changed DropdownWithAllComponent from div to span element (#473) + +commit e7ecd611ae7e60641dd2650e640c338d7041887e +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Wed Jun 8 08:51:40 2022 -0400 + + Removed unnecessary words from summary blocks. Removed 'per' and replaced it with a '/'. Made average rows/hour and bed/hour planted in direct seeding summary consistent with listing of rows and beds feet planted above. (#468) + +commit 0511982c8dbf04e6043979c8eb181cdc14ba8bdd +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Tue Jun 7 16:30:32 2022 -0400 + + Issue332: Sorted seeding report by dates in ascending order (#467) + + Sorts Seeding report by date. + +commit 6d47f26431ba94c518ef0fada69b669739353865 +Author: Jingyu (Marcel) Lee <46755208+JingyuMarcelLee@users.noreply.github.com> +Date: Tue Jun 7 11:52:00 2022 -0400 + + Issue260: delete total row/bed planted from summary section for direct seeding in the Seeding Report (#463) + + * Deleted the html component and computed function corresponding to the total bed/row. + +commit 3ab5d351fb9d866dbde5aa3f25a9e550a667fa51 +Author: Jingyu (Marcel) Lee <46755208+JingyuMarcelLee@users.noreply.github.com> +Date: Tue Jun 7 10:43:10 2022 -0400 + + Moved the area dropdown to the seeding selection portion of the form (#462) + + Co-authored-by: futzmonitor + +commit 33cf747112b7ce9a2e5ea2cd4dd261735cef9af8 +Author: Grant Braught +Date: Tue Jun 7 09:44:32 2022 -0400 + + Eliminates duplicate areas in drop down (#461) + + * Eliminates duplicate areas in drop down + +commit e393536513586227346744e18a3cbf48b38b336e +Author: Grant Braught +Date: Mon Jun 6 14:38:54 2022 -0400 + + Fix Bug in API Example (#459) + + * Added info about docs for maps to maps sub-tab + + * Removed JSON parsing of data field. + + The data field is now parsed within the FarmOSAPi.getAllPages method for all requests. + + * Added clarifying comment + + * Set correct date for fetching logs + + * Added test for clearing seeding table + +commit b3efdaf5e06fe9cda923e9fc21c270682a4a0456 +Author: John MacCormick +Date: Mon May 9 11:08:05 2022 -0400 + + add quotation marks to html attribute values (#455) + + These quotation marks are not needed for correctness, + but it is better to include them for consistency and + for other reasons. + See e.g. + https://stackoverflow.com/questions/6495310/do-you-quote-html5-attributes + It would be even better would to keep a consistent style with either + all single quotes or all double quotes, + but in this commit we are just adding quotation marks where + they are missing altogether. + +commit 7fff568d0db58a104322eadf0767f86a5c772fdc +Author: John MacCormick +Date: Mon May 9 11:02:43 2022 -0400 + + fix typos in farmdata2_modules/fd2_tabs/resources/CustomTableComponent.js (#456) + +commit 37b98f1babd25c927cc44d1cde878434d0ace3f5 +Author: John MacCormick +Date: Wed May 4 22:04:04 2022 -0400 + + fix typos in ONBOARDING.md (#454) + +commit 4d91a30ebed8847f8c4a9a4794bbd8494127f3d2 +Author: Ezinne Anne Emilia +Date: Tue Apr 26 12:28:06 2022 +0100 + + Add V1 to FarmOS API (#449) + + * Add V1 to FarmOS API + * Add api.html + +commit 67b0a10e0de6449d9b54820167a123be6ce7759a +Author: John MacCormick +Date: Fri Apr 22 12:38:31 2022 -0400 + + fix typos in farmdata2_modules/fd2_tabs/resources/FarmOSAPI.js (#446) + + * fix typos in farmdata2_modules/fd2_tabs/resources/FarmOSAPI.js + +commit 2ac55693384b43059d2d5b867a98b0c5904ba7a8 +Author: John MacCormick +Date: Thu Apr 21 14:23:38 2022 -0400 + + Typo fixes in fd2_example/README.md (#443) + + * fix typos in fd2_example/README.md + +commit 5aaae373a8206c851225517e7e5ca7a52bc694ca +Author: John MacCormick +Date: Wed Mar 23 18:29:47 2022 -0400 + + fix sampleDB typos (#423) + + * fix typos in docker/sampleDB/README.md + +commit 42d8e2046114469f1a5d8e0f22a7a8c9b54f65ba +Author: Leah <76408777+goldberl@users.noreply.github.com> +Date: Thu Mar 10 12:54:22 2022 -0500 + + Updated crop spelling (#421) + + * Edited crops.csv to correct mispelling of 'radicchio' + + * Modified translateCrop function in the utils.py file by adding a translation for 'radicchio' + + * Rebuilt sample database using buildSampleDB.bash script with correct spelling of 'radicchio' + +commit a90bdf095140dd9160a2de39232fb2239b8bc9b7 +Author: Grant Braught +Date: Mon Mar 7 13:48:06 2022 -0500 + + Updated FarmOS API Links (#413) + + FarmOS moved to a new version of their API. For now FarmData2 is still using V1 of the API. This update ensures that our documentation points to the proper version of of FarmOS's API docs. + +commit 4045f69cbbffd54f4fafa714f7ec9b93c4270d8e +Author: John MacCormick +Date: Tue Feb 8 10:54:05 2022 -0500 + + fix instructions for first Vue spike-within-the-spike (need Vue version 2) (#407) + +commit f25a601828b4290a93167a5deeeb0c15ee2b9be2 +Author: John MacCormick +Date: Wed Feb 2 09:30:25 2022 -0500 + + fix typo in setDB.bash (#386) + +commit c5881c110bebb974e2fbb89d15ba9d8bed640680 +Author: Anisha-art <96977038+Anisha-art@users.noreply.github.com> +Date: Tue Jan 18 23:52:20 2022 +0530 + + Issue-101: Updated instructions on install.md (#383) + + * Issue-101: Updated instructions on install.md + + Added the missing information as reported in issue: + https://github.com/DickinsonCollege/FarmData2/issues/101 + + * Issue:101 + + Removed the MacOS changes and retained the generic changes in the previous commit: https://github.com/DickinsonCollege/FarmData2/pull/383 + +commit 327e20d6c6f82370294acb9ad182436ff77098f5 +Author: John MacCormick +Date: Mon Jan 17 12:04:31 2022 -0500 + + Typo fixes and other suggestions for FarmData school activities 03-07. (#385) + + * Typo fixes and other suggestions for FarmData school activities 03-07. + + This commit is intended to be part of a _draft_ pull request. It is + not intended to be merged. The docx files are all in Track Changes + mode, and some have comments added. The intention is that a + maintainer will examine the changes and approve them with alterations + as needed. After that, a (non-draft) pull request will be created in + which the files are not in Track Changes mode and with all of the + corresponding pdf files updated with the relevant changes. + + * Finalizing changes to FarmData2 school Activities 03-07 + + This commit finalizes previously-submitted changes to FarmData2 school + Activities 03-07. See commit b3b7a08e3fcf5a4212cf0c6b385dfac2db68c611 + for details. + + In this commit, the Accept All Changes and Stop Tracking functionality + and Microsoft Word was used to finalize the docx documents. All + comments were deleted. The maintainer's suggestions were + incorporated. New PDF files were generated from the docx files. + +commit 435174442d7df388b11ca3193143bb87dac37ad2 +Author: John MacCormick +Date: Mon Jan 17 08:23:55 2022 -0500 + + fixed two typos (#384) + +commit c69d9a37a33ccfd537e5623907f0bb5e724b6a5e +Author: Anisha-art <96977038+Anisha-art@users.noreply.github.com> +Date: Thu Jan 13 18:59:20 2022 +0530 + + Issue 335: Fixed broken link in License.md>Attributes section (#382) + + * Issue-335; Fixed a broken link + Fixed the broken author's md link on license.md file. + + Closes #335 + +commit 35872531eaa9fd5c9a1b2298bc5b4317103493e7 +Author: John MacCormick +Date: Mon Jan 10 12:21:27 2022 -0500 + + Typo fix (#379) + + * fix typo in setDB.bash + +commit faf9c3aef8b4b23397a82b04fe0288f98e0dc682 +Author: Grant Braught +Date: Mon Jan 10 10:07:02 2022 -0500 + + Switched farmos image to farmdata2/farmos on DockerHub (#378) + +commit 69b5b460c625120604dfa76c0c526929e91492c4 +Author: John MacCormick +Date: Sun Jan 9 13:05:55 2022 -0500 + + fixed typo in email address (#377) + +commit eaceed65fb4e8226bbe26a428f5614d0bdae128d +Author: John MacCormick +Date: Sat Jan 8 14:17:23 2022 -0500 + + fix typo in INSTALL.md (#374) + + * fix typo in INSTALL.md + + * Fixed a second typo on the same line. + + Co-authored-by: Grant Braught + +commit d1557348b0856f9058f850ba9a8784c029a6afcc +Author: Grant Braught +Date: Wed Jan 5 12:22:13 2022 -0500 + + Changed default dates for spike to 2020. (#372) + +commit 37311ed819adc50bc579d63e8cffc40f345fcc79 +Author: Grant Braught +Date: Wed Jan 5 11:54:40 2022 -0500 + + Updated default dates for spikes (#371) + +commit 450316316cf80ccebcbda6a7218cd9656f594604 +Author: Grant Braught +Date: Wed Jan 5 11:33:11 2022 -0500 + + Fd2 school update (#369) + + * Added FD2 School tab and fd2_school module + * Created separate page for FD2 School Activities. + * Linked to that page from the Onboarding page. + * Updated all of the activities. + * Move the activity source files to the fd2_school module directory. + * Updated provided sample database so that FD2 School Tab appears by default. + +commit 3910d90689d25c4b7019d11d874d296346d8e4f9 +Author: Grant Braught +Date: Tue Jan 4 21:55:36 2022 -0500 + + FarmOSAPI function handle data property (#366) + + * Added data property parsing to getRecord and getAllPages + + * Modified seeding report to work with pre-parsed data property + + * Added stringify of data property to the createRecord function + + * Removed stringify of data property when creating log + + * Removed some lingering console.logs + + * Added stringify of data in updateRecord function + + * Removed stringifies when updating records from seedingReport + + * Updated JSDoc comments in FarmOSAPI.js to reflect changes. + +commit 709834e7365e4042ac5fcf4569ac211995f0d760 +Author: Grant Braught +Date: Tue Jan 4 15:13:10 2022 -0500 + + Updated docs for getAllPages in FarmOSAPI.js (#364) + +commit 217f90c5ee42a4cf192eee819ec05301644ed711 +Author: Grant Braught +Date: Mon Jan 3 20:23:48 2022 -0500 + + Add data object with crop_tid info. (#363) + + Added this object to the transplanting logs and the + harvest logs. This makes it possible to get the crop name + from the tid without retrieving the associated planting. + + Also regenerated the sample database to include this + object in the logs. + +commit b54ed58903d41bba30d8dbea542a4ba1a8aaf5bc +Author: Grant Braught +Date: Sat Jan 1 10:07:36 2022 -0500 + + FD2 Example Test Patches (#362) + + * Patched DropdownWIthALLComponent and tests for new data-cy value + + * Fixed clear cache test + +commit 48cdf688b8b53eea12f1afbdba456b11bf62bf27 +Author: Grant Braught +Date: Fri Dec 31 15:29:22 2021 -0500 + + Document components and functions in resources. (#361) + + * locked versions on vue and axios in FD2 Example, BarnKit and FieldKit modules + + * Added JSDoc comments to FarmOSAPI.js file + + * Added script to generate docs + + * Updated to handle Vue component documentation also + + * Added configuration file for JSDoc to use Vue plugin + + * Added JSDoc for the DateSelection Component + + * Added JSDoc for the DropdownWithAllComponent + + * Documented data-cy attribute in DateSelectionComponent + + * Documented data-cy attribute in DateRangeSelectionComponent + + * Documented data-cy attribute in DropdownWithALlComponent + + * Added JSDoc to CustomTableComponent + + * Added generated documentation + +commit 8e94618c29495498955e829ecaaf363d4540d7aa +Author: Grant Braught +Date: Sun Dec 26 21:40:04 2021 -0500 + + Updates FarmOSAPI functions and tests for error handling (#359) + + * Fixed test to use existing log + + * added reject test for getAllPages + + * Added map failure handing and test + + * Adds error handling and test for getSessionToken. + + * added error handling and tests for getRecord + + * Added error handing and test for deleteRecord + + * Added error handing and test for createRecord + + * Added error handling and test for updateRecord + + * patched failing api.spec.js test for example tab + +commit e84f571c1f1b7ec0c4382be686a601ee2c63ee5f +Author: Grant Braught +Date: Wed Dec 22 15:33:16 2021 -0500 + + New FD2 Example Tab (#358) + + * Separated fd2vars example + + * Added tests for Vars example tab + + * Updated docs to match FD2 Example changes + + * Renamed fd2vars to vars for consistency + + * Added example for maps of farmOS values and ids + + * Fixed typo + + * Added tests for maps example tab + + * Added detailed comment + + * Added pointer to the test files. + + * Added api page and fetching and testing farm info + + * Added fetching of seeding logs + + * Wait in beforeEach for maps to load + + * Added more detailed comment. + + * Clarified comments + + * Refactored beforeEach to wait for maps to load + + * Clarified comments + + * Migrated cy.route to cy.intercept + + * Clarified comments + + * Revised test for getAllPages + + * Added getRecord function and tests + + * revised update test + + * Change getRecord to work on full url endpoint + + * Upped default timeout + + * Adjusted timeouts + + * Modified to use data-cy attribute + + * Removed explicit timeouts + + * Moved test to the vars tab + + * Added delete tests for api tab + + * Upped the default requestTimeout + + * Added example of fetching a single log + + * Added text pointing to tests + + * Clarified comments and text + + * Expanded documentation of localstorage work around + + * Added example of request caching + + * Added test for clear cache button + + * Added UI tab and date select and range elements + + * Added DropdownWithAll example code + + * Stubbed out DropdownWithAll tests + + * Added DropDownWithAll tests + + * Added fieldset and basic table + + * Added some table functions + + * Fixed missing value in edit mode + + * Added table tests + + * Added place holder for buttons sample + + * Added sample buttons and style + + * Added tests for button functionality + + * Added example of using the loading spinner + + * Added test for spinner + + * Removed old ex1 subtab, updated info for all subtabs + + * Updated README.md for new example sub-tabs + + Co-authored-by: IrisSC + +commit a2a3ceb4ee506b329c3b906dbdeafe43624b0ea3 +Author: Grant Braught +Date: Tue Dec 21 20:42:43 2021 -0500 + + Removed missed line causing parse errors (#356) + +commit 710fbf3756cb333b6cdacb4fcaabb6a1ba8a3082 +Author: Grant Braught +Date: Tue Dec 21 20:06:26 2021 -0500 + + rows/cells have unique data-cy (#355) + +commit e576cc3cd0ee7db16759704bfdf2c05b59d35f7c +Author: Grant Braught +Date: Tue Dec 21 09:45:09 2021 -0500 + + Modifying defaultInput prop changes selected value (#350) + + * Changing prop changes selection + + * Clarified comment + + Co-authored-by: Batese2001 + +commit b9ac9af1db24d8272b90156c6272635270c4c7c8 +Author: Grant Braught +Date: Thu Dec 16 09:41:47 2021 -0500 + + Fixed components link. + +commit 35109d3d3f8722d9b5a4003d32cf4b421201d57d +Author: Christian <31524934+FutzMonitor@users.noreply.github.com> +Date: Fri Dec 3 11:15:59 2021 -0500 + + corrects the word (comman) -> (command) under the Install the Sample Database Image section of the INSTALL.md file (#318) + +commit b74e72cf7673c4b7afe82a70790a6c8390b7110a +Author: IrisSC <54850069+IrisSC@users.noreply.github.com> +Date: Wed Dec 1 11:00:46 2021 -0500 + + Clean up example1 tab (#306) + + * added APIRequestFunction and first test to resources folder + + * took out api function that is not complete yet + + * changed all the fields to areas. + + * added example of fieldset and some comments on the dropdown examples. + + * deleted the getCropList method and button. + + * added comments to the data section in Vue and deleted some variables. + + * moved created function to the bottom of the Vue instance. + + * deleted the testArea variable. + + * rename data varaibles and some methods. + + * clarified comments in data section of the Vue instance. + + * added comments to and reorganized methods. + + * put some better examples in the creared funciton and added comments to the created function and the computed section. + + * fixes some comments. + + * added example of getSessionToken fucntion. + + * modified deleteLog method to use new session token obtained by getSessionToken. + + * added example of caching using localStorage. + + * some fixs + + * added a dayjs example + + * example of creating a planting log. + + * fixed all the tests for the Ex1 page, so that thye work now. + + * added test for caching + + * added a test for the create planting log button. + + * delete button test mostly working + + * took out delete button test. + + * added comments to the tests for the example1 page. + + * took out .only in the seeding report page cypress tests. + + Co-authored-by: josieecook + +commit f80e6c1f560ce581e7668fbd0e68458a5d45cef0 +Author: Grant Braught +Date: Mon Nov 29 09:27:25 2021 -0500 + + Added section on Developer Install. + +commit 8d14ff113e1590e7c0562638e46a43b3fabd781b +Author: Grant Braught +Date: Sun Nov 21 11:35:33 2021 -0500 + + Moved theia docker image to farmdata2 dockerhub (#315) + +commit 347db09fa3e13d3ef9c812fb0cb6fde8f5c70f59 +Author: Batese2001 <69521504+Batese2001@users.noreply.github.com> +Date: Tue Nov 16 13:12:29 2021 -0500 + + Disappear page tests (#311) + + * Added page testing for disappear timing + + * Added more robust testing and checks + + * Removed .only + +commit 5baac5993facdce8c625f612b474e36ae2984b9c +Author: Grant Braught +Date: Mon Nov 15 14:01:05 2021 -0500 + + Reordered sections + +commit 0ee2eace4e8fc45cdaa95f86c29a463a3d98d863 +Author: Grant Braught +Date: Mon Nov 15 13:59:05 2021 -0500 + + Adjusted heading levels for consistency. + +commit 23531f23e104627d489c3740f460b9bb0f74c505 +Author: IrisSC <54850069+IrisSC@users.noreply.github.com> +Date: Sat Nov 13 11:40:27 2021 -0500 + + Cache Area and Crop Arrays (#305) + + * Seeding input caches the area and crop list using LocalStorage. + + * took out only in cypress tests + + * resolved some exist merge conflicts from main. + + * fixed testign for cache area and crop arrays. + +commit 9fa1a605969608591306f2b2a166b78f66946fbd +Author: Batese2001 <69521504+Batese2001@users.noreply.github.com> +Date: Wed Nov 10 09:41:59 2021 -0500 + + New date change report timing (#307) + + * Modified DateSelectionComponent to emit an on-click event. + * Modified DateRangeSelectionComponent to emit an on-click event. + * Seeding Report now hides on click + * Added cypress testing and renamed hide event to on-click. + +commit 59cf4f07abb955f067aade7917c2f8a3b5af8daa +Author: Grant Braught +Date: Wed Nov 10 09:37:14 2021 -0500 + + Removed .only so all tests run. + +commit 4f94f8dbcf193f264b7c172dff454c8b37986cd4 +Author: IrisSC <54850069+IrisSC@users.noreply.github.com> +Date: Mon Oct 25 08:28:06 2021 -0400 + + Add Cancel Button to Table Component (#302) + + + * Delete button turns to cancel button when the row is being edited. If the cancel button is clicked, then all edits that where made are returned to the values they had before. + + * when editing, the headers "Edit" and "Delete" are changed to "Save" and "Cancel" repsectivly. + + * added cypress tests to test that the cancel button exists, the new headers appear, and the cancel button changes values back when clicked. + + * added emit in cancel row method, and a cypress test for that emit. + + * added method to seeding report, so filters with not be disabled after cancel button is clicked. Added tests for this as well. + +commit d690cc845a647dd28c6b161ccc0de77d5b8b9d02 +Author: IrisSC <54850069+IrisSC@users.noreply.github.com> +Date: Wed Oct 20 08:09:44 2021 -0400 + + Table Component: Pop-up for Delete Button (#299) + + * Pop up appears when the user clicks a delete button in the table. The pop up asks the user if they would indeed like to delete the log. The user has the option of "Ok" or "Cancel". + + * added cypress tests for popup. + +commit 0cbfd4dc07734fe5ec86169cc64ccfbbe5e1070e +Author: IrisSC <54850069+IrisSC@users.noreply.github.com> +Date: Mon Oct 18 08:26:52 2021 -0400 + + Filter Area for Seeding Type (#291) + + * When Tray Seeding is selected, only greehouses are available for the are, and when Direct Seeding is selected only fields and beds are avaible. + + * If the user selects an area incompatable with the area they have chosen. The varaible selectedArea gets turned back to null. This way the user is unable to click submit, until they have selected a new area. + + * the code saves the users area, so if they switch from tray to direct or vice versa, they dont need to select a new area. + + * cyrpess tests to check that when tray seeding is selected only greenhouses are avialable and when direct seeding is slected only bed or field areas are avaiable for selection. + + * fixed up all tests so that they work with the new code. + + * merged from main + + * took out the console.log that where in methods and computed functions. + + * took out the unneeded ".only" + + Co-authored-by: josieecook + +commit d622e8d6d71e27890c73e2428e6dcf9d44ca606e +Author: Batese2001 <69521504+Batese2001@users.noreply.github.com> +Date: Mon Oct 11 09:16:07 2021 -0400 + + Summary Table Timing and No Log Messages (#289) + + * Added a message when a date range contains no logs + + * Summary Tables now remain invisible until the API returns + + * Summary now shows a message when only direct or tray seeding is in the table + + * Added Testing for the One Type Message code + + * Added testing for No Logs message + + * Added testing for summary table showing up after fully loaded table + + * Removed redundant logins + + * Replaced "before" with "beforeEach" and tests now run without 403 errors + +commit 80b4408aa0df6dadc4e5e2c310a5e5cbbc0b9d35 +Author: IrisSC <54850069+IrisSC@users.noreply.github.com> +Date: Fri Oct 8 14:58:59 2021 -0400 + + No Default Label For Drop Down Component (#293) + + * There is no longer a default label for the DropDownWithAllComponent. + +commit 73feb3808ae8978deaddfeb9eb14ef6d99457d18 +Author: IrisSC <54850069+IrisSC@users.noreply.github.com> +Date: Fri Oct 8 11:10:30 2021 -0400 + + Reorder Seeding Inputs (#281) + + * The cypress tests now work with the new order of the inputs. + + * changed the label or the inputs under the Labor section. Put them all into one line + + * changed "Number of Seeds Plants" to "Number of Seeds Planted". + +commit e89280874021a1ab107ea28bf71928187cd442b2 +Author: Grant Braught +Date: Tue Oct 5 07:52:52 2021 -0400 + + Removed Prettier Ignore + + Comment was added to prevent reformatting by contributor's IDE. Eventually want to move to using prettier for formatting and didn't want this file to be ignored if/when that happens. So kept the contribution but removed the comment. + +commit 2b1a8bd298bd1c70e2e4d24be66308fdcd4e58fe +Author: Elad Sheskin +Date: Tue Oct 5 14:49:30 2021 +0300 + + Updated comment (#288) + + * Updated comment + + * prettier-ignore comment added + +commit bda14d2bd89fb1fdc08c3471b9552b2484c1e1fe +Author: IrisSC <54850069+IrisSC@users.noreply.github.com> +Date: Mon Oct 4 10:16:02 2021 -0400 + + Mark Required Inputs (#286) + + * added red astrix to all reuired inputs, except those that are about labor. Also added sentence beforesubmit button explaining that all inputs with in astrix need to be filled before the user is able to click the submit button. + + * All required inputs are now marked by a red astrix. + + * took out required mark from time unit input. + +commit be6ed516d5eeb982f38487d474f3c4c0f38187f6 +Author: Batese2001 <69521504+Batese2001@users.noreply.github.com> +Date: Wed Sep 29 08:40:18 2021 -0400 + + Spinner reappear (#282) + + * Loading spinner is now visible after each new date selection + + * Cypress testing for Loading Spinner has been implemented + + * Testing now checks if the spinner remains between the button click and API return + + * Removed faulty test + + * Removed .only from tests + +commit d10627d3a4dbafb0a9660cd3e85e0513806f266e +Author: IrisSC <54850069+IrisSC@users.noreply.github.com> +Date: Mon Sep 27 08:33:27 2021 -0400 + + Input Log Submit Button Popup (#279) + + * when submit button is clicked there is a popup that says that a log has been submitted and asks the user if they want to go to the seeding report page. If the user clicks ok then it takes them there. + + * create a new labor section and moved number of workers and time spent to that section. + + * The cypress tests now work with the new order of the inputs. + + * Added cypress tests to test that the popup appears. When cancel is clicked it returns to the current page and when ok is clicked it takes the user to the Seeding Report Page. + +commit 3ec8a13fb27ed4bf1e5ea27aa8197ffa2c528466 +Author: Grant Braught +Date: Wed Sep 8 15:22:10 2021 -0400 + + Removed apt update from Cypress Dockerfile (#280) + + As apt packages were modified by others this began generating errors. + Becasue this is a dev only container we'll leave everything fixed + at the versions in the base container to prevent future errors. Everything + can be moved to newer versions all at once when necessary. + +commit 78d31a973a503b147ddb10c7e6a38f40a5046488 +Author: IrisSC <54850069+IrisSC@users.noreply.github.com> +Date: Wed Sep 8 15:09:45 2021 -0400 + + Default Feet Unit Bed (#276) + + * The default unit for the number of feet under direct seeding is now bed, instead of nothing + + * tests that bed is the default unit. Cleans up beforeEachs and other tests that select bed, since it is now selected for them. + +commit 06624a8bb27bee746aa31d613ce3713b41bf7972 +Author: IrisSC <54850069+IrisSC@users.noreply.github.com> +Date: Wed Sep 8 12:05:40 2021 -0400 + + Default Time Unit To Minutes (#277) + + * the time unit now defaults to minutes. + + * Tests that it defaults to minutes. Also cleaned up beforeEachs that select minutes, so they are no longer in the test code. + +commit 78307c941e88d8805283773946ff824cef42595f +Author: Grant Braught +Date: Wed Sep 1 10:01:01 2021 -0400 + + Added Vue Components links and also pointers to FD2 specific testing docs. + +commit 953ea80f163bc47ee020757ffd7161b17d96e877 +Author: Grant Braught +Date: Wed Sep 1 09:43:32 2021 -0400 + + Removed unused developmet modules (#275) + +commit f2ea32a89ae654972733c16989b5f14c61b9e8f7 +Author: josieecook <60167626+josieecook@users.noreply.github.com> +Date: Mon Aug 9 14:47:02 2021 -0400 + + Component and Function Documentation (#262) + + * Added documentation for the custom table component + + * Added documentation for the dropdown with all component + + * Added documentation for the dateSelectionComponent. + + * pulled from origin + + * Fixed some grammatical, spelling and wording issues. + + * Added documentation for the getAllPages function. + + * Added documentation for the getSessionToken function. + + * Added documentation for the DateRangeSelectionComponent. + + * added documentation for the map functions. + + * added documentation for the quantityLocation function. + + * Added documentation for the createRecord() function. + + * Added documentation for the updateRecord() function + + * Added documentation fo the deleteRecord() function + + * Made the component and function names in the README.md bold + + * Added markup to the whole documentation page + + Co-authored-by: IrisSC + +commit e105569d5d400a1413fef7925d92ab65cd049f59 +Author: IrisSC <54850069+IrisSC@users.noreply.github.com> +Date: Fri Jul 23 10:24:29 2021 -0400 + + Seedings Input Page and Page Tests (#255) + + * added APIRequestFunction and first test to resources folder + + * took out api function that is not complete yet + + * added Seeding Input subtab to field kit tab + Co-Author: Josie Cook @josieecook + + * added date-selection component in page, default date is today. + + Co-Author: Josie Cook @josieecook + + * Add dropdown for crops. Contains all crops in the database. + + Co-Author: Josie Cook @josieecook + + * Added dropdown for areas. Includes all areas in the database. Selected crop and area are stored in the data. + + Co-Author: Josie Cook @josieecook + + * added selection between Direct and Tray Seedings, which is stored in selectedSeedingType. + + Co-Author: Josie Cook @josieecook + + * 'added input to put in the number of workers + Co-Author: Josie Cook @josieecook' + + * added time spent with units (miuntes and hours). Added comments field. + + Co-Author: Josie Cook @josieecook + + * Added tray seeding and Direct Seeding inputs. They only appear when the correct one is clicked. Also added the Submit button. + + Co-Author: Josie Cook @josieecook + + * button is disabled if all of the required fields do not have inputs. All but comments are currently required. + + Co-Author: Josie Cook @josieecook + + * Add stylings to the page. + + Co-Author: Josie Cook @josieecook + + * When submit is clicked a planting log is created. + + Co-Author: Josie Cook @josieecook + + * can put in a Direct Seeding Log, if they user selects hours and rows for there units. + + * Can now put in a Tray Seeding Log, but still can not specify units. + + * can create both Tray and Direct Seeding logs using units. + + * quantity ids are no longer hard coded. Use the unit map function to get them. + + * merged from main. + + * The Direct and Tray seeding IDs are no longer hard coded, but instead get there value from the getLogTypeToIDMap function. + + * created seedingInput.spec.js for testing seedingInput page. + + * now tests that the submit button is disabled when the page loads, that the user can put in a new date, and that the user can select a crop. + + * Added test for slecting an area and inputting a number of workers. + + * now tests that the user can add comments, time spent, and the unit of time inot the page. + + * added test for slecting direct seeding and its inputs. Test also checks that the submit button is no longer disabled. + + * Test that tray seedings inputs can be put in when Tray Seedings is clicked. Also that the submit button is not disabled any more when everything is in. + + * Tests that tray seedings inputs do not show up when Direct seeding is selected and vice versa. + + * tests that a tray seeding log gets created when submit button is clicked. Then deletes it. + + * fixed error where seedings log was not connecting to the planting logs in assets. + + * tests that a planting log was made by clicking the submit button and then deletes that planting log. + + * fixed 500 error when minutes was selected for Direct Seedings. Also added difference between when minutes and hours were slected for tray seedings. + + * now tests that it will create a direct seeding log and a planting log, then deletes both logs. + + * moved the variable intialization to a before each and the deletion of the seedings and planting logs to a after each, for the "create logs in database" context. + + * all tests are now independent. The is the button not disabled test were put in there own context. Before and Afters were created for the create log tests, so that code could be consolidated. + + * test tray seeding for both when hours are slected and when minutes are slected for the time unit. + + * added tests for selecting minute vs hour for tray seedings and direct seedings, and bed vs row feet for direct seedings. + + * readded scripts to the fd2_barn_kit.info. + + Co-authored-by: josieecook + +commit dbe05a7eb9a73fe51f6ba33e9ae7c904a1d86c6e +Author: IrisSC <54850069+IrisSC@users.noreply.github.com> +Date: Thu Jul 22 16:17:34 2021 -0400 + + Remove reports (#257) + + * removed tray and direct seeding report, harvest report, and transplanting report. + + * removed report subtabs on page. + + Co-authored-by: josieecook + +commit 16ca66ba85774d6ffe15405dd93f48932a4426ab +Author: josieecook <60167626+josieecook@users.noreply.github.com> +Date: Thu Jul 22 16:13:08 2021 -0400 + + Seeding Report Page and Tests (#256) + + * Does not show Direct Seeding Summery when Tray Seedings is selected and vice versa. Data was also organized. + + Co-Author: Josie Cook @josieecook + + * numbers in Summary and Hours in table are rounded to two deminal places. + + Co-Author: Josie Cook @josieecook + + * changed IDToCropName to idToCropName and changed inputsVisible to reportVisible. + + Co-Author: Josie Cook @josieecook + + * fixed typo in updateRow method. + + Co-Author: Josie Cook @josieecook + + * only updates the planting log, if crop or user is edited. + + Co-Author: Josie Cook @josieecook + + * the area filter array is sorted, same for seeding type array. SeedingList is changed to seedingTypeList. + + Co-Author: Josie Cook @josieecook + + * can edit hours without checking if it is a Direct or Tray seeding + + * Added a loading spinner that displays before the report renders. + + * The loading spinner stays on the page after the table renders until all of the pages of the request have been fetched. + + * Disabled the filters when a row in the table is being edited + + * IDs for the quantity part of the log are no longer hard coded, but instead use the getUnitToIDMap function. + + * Added tests for both the direct and tray seeding summaries. + + * Quantities location are no longer hard coded into the edit method. + + * Only does api request when there is data sent back from the table commonent. + + * added cypress tests for the visible columns and for the date range selection hiding the report while being edited. + + * Can now edit a quantity and save, then edit a different quatntity and save. Both will now be saved in the database and seedingLogs. + + * removed irrlevant changes to table component + + * Added edit and delete button tests + + * Increased the timeouts for certain cy.get commands that take longer instead of using cy.wait + + * Added 'before' blocks to each of the test contexts to make them independant from each other. + + * All tests can be run individually and no longer rely on previous tests to be successful. + + * changed tray seeding summary tests to retrieve table values before the individual tests run. + + * changed direct seeding summary tests to retrieve table values before individual tests run. + + * Added cypress tests that ensure that the options in the dropdown menus update based on the other filter selections. + + * Fixed error in updateLog method that prevented crop updates to get added to planting assets. + + Co-authored-by: IrisSC + +commit 5649005e4eb1ce66a3b4e9fcd7bf946428d07f49 +Author: josieecook <60167626+josieecook@users.noreply.github.com> +Date: Wed Jul 21 13:47:51 2021 -0400 + + Table Cypress Tests for changedCell (#250) + + * Added cypress test that ensures that when a row in the table is being edited if a cell is changed beck to the way it was before editing that cell does not get added to the object that is emitted. + +commit b55144a6e81f48c611ff2d445786aff72c585756 +Author: josieecook <60167626+josieecook@users.noreply.github.com> +Date: Wed Jul 21 13:46:03 2021 -0400 + + Remove Console Logs (#253) + + * Removed console.log() lines from dropdownWithAllComponent file. + +commit a04eb5af15c6663d5dcb5e864af3328501e317fd +Author: josieecook <60167626+josieecook@users.noreply.github.com> +Date: Tue Jul 20 09:31:41 2021 -0400 + + Table Component - Updated Variable Names (#252) + + * fixed outdated variable name in table component template. + + * Updated all outdated variable names in table component template. + +commit 2529a76762dc4f3e6794eeccbf02ab44c585ef19 +Author: josieecook <60167626+josieecook@users.noreply.github.com> +Date: Tue Jul 20 08:10:00 2021 -0400 + + Decimal input (#251) + + * Put a step property on the number input to prevent errors in firefox when decimals are entered. + +commit f8f14dc25e1b14a5e28236da445fc52d1a9c2e77 +Author: josieecook <60167626+josieecook@users.noreply.github.com> +Date: Mon Jul 19 14:09:37 2021 -0400 + + Table Editing Changes (#247) + + * changed the way that the table gets edited by adding an object to save the edited row data until it gets emitted + + * changed the way that the table gets edited by adding an object to save the edited row data until it gets emitted + + Co-authored: Iris Shaker-Check @IrisSC + + * Removed console logs from table component code. + + * Altered the changedCell method in the table component to remove an index from the indexesToChange array if the value has been changed back to it's original state. + + * Added an 'originalRow' variable in the data that helps with comparison in the changedCell method. + + Co-authored-by: IrisSC + +commit 7d41a0fe5d32f27b7d621962481c75b608aad839 +Author: IrisSC <54850069+IrisSC@users.noreply.github.com> +Date: Thu Jul 15 08:30:14 2021 -0400 + + Map Function Tests (#248) + + * User map cypress test no longer of id numbers hard coded into them. Inside the get the value from one and test it in the other. + + * crop map cypress tests no longer have ids hard coded into them. + + * Area map function cypress tests no longer have the ids hard coded into the tests. + + * Deleted the old area map function cypress tests. + + * The Unit map cypress test no longer have the ids hard coded into the tests. + + * Log Type functions cypress tests no longer have hard coded ids. + +commit db356518d5e3d6841bb249c11d62f9ec2ce146d8 +Author: josieecook <60167626+josieecook@users.noreply.github.com> +Date: Wed Jul 14 10:57:31 2021 -0400 + + Number Input in Table - @change (#246) + + * Fixed problem with event not firing on change of a number input in the table. + + Co-authored-by: IrisSC + +commit 38aecc883864ac8b139e571ea884e2fa1765bbf6 +Author: IrisSC <54850069+IrisSC@users.noreply.github.com> +Date: Wed Jul 14 10:36:21 2021 -0400 + + Log type map (#245) + + * created functions that map log category to id and vice versa along with cypress tests. Also fixed other cypress mapping tests that had the wrong id number + + * .only was removed from the map functions context. + + Co-authored-by: josieecook + +commit 00cea570e818c25c14bd6d14178ce81bdc758bdd +Author: josieecook <60167626+josieecook@users.noreply.github.com> +Date: Wed Jul 14 09:04:42 2021 -0400 + + Table Styling Update (#244) + + * Created CSS classes that make the edit and delete buttons in the table slightly smaller and the text in the table slightly larger and darker. + + Co-authored-by: IrisSC + +commit 953dd7106624b62c54f6c2d22461735200a21b36 +Author: IrisSC <54850069+IrisSC@users.noreply.github.com> +Date: Tue Jul 13 10:57:05 2021 -0400 + + Quantity placement (#243) + + * created quantity location function and tested it in ex1 subtab. + + * added cypress test for quantityLocation function. + + Co-authored-by: josieecook + +commit d6c3396c8b79a7cd04236051d27216034439baa2 +Author: josieecook <60167626+josieecook@users.noreply.github.com> +Date: Tue Jul 13 10:55:49 2021 -0400 + + Table Component Updates (#241) + + * Fixed table component so that visibleColumns can be updated dynamically after the page has loaded. + + * Fixed the table component so that the dropdown menus in edit mode contain the options that were passed to the table. + + Co-authored: Iris Shaker-Check @IrisSC + + * Disabled all delete buttons when a row is being edited. + + * Added cypres test for the disabling of the delete buttons + + * The table component emits an event without a payload when the edit button is clicked. Cypress tests have been added to test this. + + * REmoved the seeding report page from this branch + + * Update to pull request to restore lines in fd2_example.info. + + Co-authored-by: IrisSC + +commit 2b68298fe4cff34862362595bf8acdad650274e3 +Author: Grant Braught +Date: Mon Jul 12 08:47:06 2021 -0400 + + Add Harvest Data to Sample DB (#240) + + * Moved addition of category after heading is printed + + * Corrected typo in SQ10 area. + + * Added translation for bad area ASPARAGUS + + * Added harvest data + + * Added 2017 seedings for harvests in 2019 + + * Added user translation for 2017 user + + * Fixed undefined variable error introduced earlier + + * Documented added seedings and field remappings to make all records work. + + * Small edit + + * Added map for unit to measure conversion + + * Scripts for adding and deleting harvest logs + + * Fixed typo in measure map name + + * Documented harvest logs + + * added call to script that adds harvest logs + + * Rebuilt sample databadatabase with harvest logs + +commit 45c5ad537b5f7031cecc85ceba644aee015b1799 +Author: IrisSC <54850069+IrisSC@users.noreply.github.com> +Date: Fri Jul 9 15:01:19 2021 -0400 + + Unit maps (#239) + + * created functions to get map of quantity units to id and vice vera. Built cypress tests to test them, all run smoothly. + + Co-authored-by: josieecook + +commit 5728a4a3efcda65d752ab141c958d9f0875a35bb +Author: Grant Braught +Date: Fri Jul 9 11:30:25 2021 -0400 + + Adds Crop Conversion Units (#237) + + * Updated crops.csv with new classifications + + * Updated tests to match changes to crops + + * Fixed formatting of comments + + * Changed formatting of concatenated comments + + * Added translation for Greens, Mes Mix + + * rebuilt sample database + + * Add units before crops so crops can have default and conversion units + + * Add fields to the farm_crops bundule + + * Mount php script to container for adding fields + + * Added units and conversions to crops + + * Added default crop units + + * Made units upper case for consistency + + * added map and validation functions for units + + * Default units added to all crops + + * Adds quantity field for all conversions for crops + + * update to build full db with crop units + + * Fixed error introduced in changing to use getAllPages + + * generaated new sample database with crop units and conversions + + * Documented the addition of conversion units and the transplanting lgos + +commit 1dd5d44798831831d42ee78b7481cff527a9c151 +Author: Grant Braught +Date: Fri Jul 9 11:26:21 2021 -0400 + + Translate 0000-00-00 Transplantings (#236) + + * Changed transplantings without date to use transplant date for planting + + * Generated new sample db without using 0000 dates. + +commit 9a40dad5d95de0299f4feaee1a423c9c92edca4e +Author: josieecook <60167626+josieecook@users.noreply.github.com> +Date: Fri Jul 9 11:25:44 2021 -0400 + + Table Component - Fix Dropdown Event Handler (#232) + + + + * Fixed missing event handler on the dropdown input. + + Co-authored-by: IrisSC + +commit 6fe08866beffe2012fa6e10a0c06c9a51785e9e4 +Author: josieecook <60167626+josieecook@users.noreply.github.com> +Date: Thu Jul 8 16:03:50 2021 -0400 + + Table Colors (#234) + + + * Changed colors of table header and delete button to match FarmOS. + + Co-authored-by: IrisSC + +commit 3473d32031001ef8dc9dc9cc28a010a18654b9e8 +Author: josieecook <60167626+josieecook@users.noreply.github.com> +Date: Thu Jul 8 16:00:48 2021 -0400 + + Table Component - Optional Input Types (#231) + + + * Made the inputOptions prop optional, and if none is provided all input types default to text inputs. + + * Changed table cypress tests to not include the now optional props when they are not needed + + Co-authored-by: IrisSC + +commit d5c11c429b2571279b1ab3b1be4e1cdcc126bfba +Author: josieecook <60167626+josieecook@users.noreply.github.com> +Date: Wed Jul 7 10:41:56 2021 -0400 + + Table Component - Optional visibleColumns (#230) + + * Made the visibleColumns prop in the table component optional, if it is not specified then all columns are visible. + + Co-authored-by: IrisSC + +commit 6f75e2f034f98926bbcb7c2da0aa3db519b152c1 +Author: josieecook <60167626+josieecook@users.noreply.github.com> +Date: Tue Jul 6 22:46:21 2021 -0400 + + Table Component - Dynamic Height (#229) + + * Changed height to max-height in the table component CSS so that it will dynamically chenge to the exact height of the displayed rows until it becomes too large to fit on the page. + + Co-authored-by: IrisSC + +commit b2142ce0a85cd29ee0ed6827740bfe5c91770391 +Author: josieecook <60167626+josieecook@users.noreply.github.com> +Date: Tue Jul 6 22:45:01 2021 -0400 + + Table Component - Customizable Input Types (#228) + + + + * Switched out the input elements in the custom table component with textarea elements + + * Table inputs can now be set as text or dropdown types through a prop array. + + * Changed the structure of the passed inputOptions prop to be an array of objects. + + * Added input options of date and number to the table component. + + * Added a possible input type 'no input' that allows certain columns to be uneditable + + * Fixed cypress tests to ignore white space in the table content. + + * Added cypress tests for the customizable input types within the table. + + * Added cypress test for the 'no input' option. + + Co-authored-by: IrisSC + +commit 486377b2b9906dbcd863e2d12f81ad8f68544995 +Author: josieecook <60167626+josieecook@users.noreply.github.com> +Date: Fri Jul 2 14:51:34 2021 -0400 + + Table Component - Strings to HTML (#227) + + * Changed the table component template so that strings constaining html elements are displayed as rendered html and updated cypress tests to reflect the change. + + * Added cypress tests that ensures html tags in strings are rendered as elements in the table. + + * Changed cypress tests to use data-cy instead of nth-child. + + + Co-authored-by: IrisSC + +commit 1504dd08e9783488b1c068b10870396528b8f673 +Author: josieecook <60167626+josieecook@users.noreply.github.com> +Date: Thu Jul 1 14:10:49 2021 -0400 + + Sticky Header (#226) + + + * Added code to fd2.css and classes to the table component template that makes the table component have a scroll bar and sticky header when there are too many rows to fit on one page. + + * added more objects to the testObjectArray in ex1.html to demonstrate the scroll bar and sticky header of the table. + + Co-authored-by: IrisSC + +commit 219ce85beb46a4d2a3db834688925abe1902dfa9 +Author: josieecook <60167626+josieecook@users.noreply.github.com> +Date: Thu Jul 1 14:06:45 2021 -0400 + + Dropdown Component - selectionChanged Update (#225) + + + * The dropdownWithAll component now emits the selectionChanged event on @change instead of @focusout, and the cypress tests have been updated to reflect this. + + Co-authored-by: IrisSC + +commit c794058b0121859e48a1d2a4f7fed691fd653233 +Author: josieecook <60167626+josieecook@users.noreply.github.com> +Date: Wed Jun 30 13:09:22 2021 -0400 + + Table Component - Styling and Visible Columns (#219) + + + * Table component now has FarmOS classes that affect styling and a visibleColumns property that can be used to hide particular columns. A line of code on line 138 of ex1.html has been commented out because it was causing issues with table functionality. Co-authored: Iris Shaker-Check @IrisSC + + * New cypress tests for the table component that ensure that the visibleColumns property prevents the display of certain columns + + Co-authored-by: IrisSC + +commit c690145b682fc2146823bdb9f7d21ebbbf9f9f2d +Author: Grant Braught +Date: Wed Jun 30 11:48:23 2021 -0400 + + Adds Transplant Data (#223) + + * Adds missing seedings for transplandings + + * Transplanting scripts completed. + + * Clarified handling of 0000-00-00 seeding dates + + * added transplantings to the main sample db build script + + * Built sample DB wDB with transplantings. + +commit e05ca2a006ad2c4501435ab57a336efc4b53d893 +Author: Grant Braught +Date: Wed Jun 30 11:15:28 2021 -0400 + + Drops taxonomy_csv module (#221) + + * removed taxonomy_csv module, rebuilt empty db image + + * rebuilt sample db db without taxonomy_csv module + +commit 197ebe2043c3bf8380205e875f031bc050a28a9a +Author: Grant Braught +Date: Tue Jun 29 17:20:17 2021 -0400 + + Updates Sample Database (#220) + + * Updated crops.csv with new classifications + + * Updated tests to match changes to crops + + * Fixed formatting of comments + + * Changed formatting of concatenated comments + + * Added translation for Greens, Mes Mix + + * rebuilt sample database + +commit 12ce8094e56ce248edbdd5eac25acafdc612746e +Author: Grant Braught +Date: Tue Jun 29 15:45:34 2021 -0400 + + Fixes Tests for FarmOSAPI.js Functions (#218) + + * Fixed getAllPages tests + + * Tests fixed and running, API made more uniform + + * Changed Field to Area to be consistent, documented functions + +commit 9f9fdbdd77b674cb39c0e7e8ac7f6b5ca332022b +Author: Grant Braught +Date: Tue Jun 29 08:15:10 2021 -0400 + + Updates the Names of Crops (e.g. ONION-SPRING) (#217) + + * Switched to compound names for sub-crops (e.g. ONION-SPRING) + + * Added cropID to data of direct seedings + + * Added cropID to data in tray seedings + + * Changed cropID to crop_tid in data field for direct and tray seedings + + * Updated samplle de database. + +commit ae6a78d9b0fb50ed3955acb1e405b8fefa0b86bd +Author: Grant Braught +Date: Mon Jun 28 13:49:43 2021 -0400 + + Updated INSTALL.md for access token requirement (#216) + +commit e0fc9656e89d8954b832bfc859e701f42c8b4b09 +Author: Grant Braught +Date: Mon Jun 28 10:55:12 2021 -0400 + + Removed unintentionally merged spike code (#215) + +commit 35ecf7f4df2522cdc6008e0641a2ea8036a94c4a +Author: Grant Braught +Date: Mon Jun 28 10:49:35 2021 -0400 + + Adds updateLog function to FarmOSAPI.js (#214) + + + * the modify function works for both changing the name and the timestamp of a log + + * started cypress test. Currently the wrap throughs an error + + * Merged test code + + Co-authored-by: josieecook + Co-authored-by: IrisSC + +commit f9541a3383d038ce0ef1f744bfdac407c2b97284 +Author: Grant Braught +Date: Mon Jun 28 10:33:00 2021 -0400 + + Adds createLog function to FarmOSAPI.js (#213) + + + * createLog fucntion and non-functioning cypress tests + + * added chained '.then()'s to the createLog cypress tests + + * Completed cypress tests for createLog function, but need to be merged into a branch with deleteLog function + + * Cleaned up formatting and small issues + + Co-authored-by: josieecook + Co-authored-by: IrisSC + +commit 1fb2f822dfdf9449d9e9c775d443fd251db0b42d +Author: Grant Braught +Date: Mon Jun 28 09:57:52 2021 -0400 + + Adds user/crop/area mapping functions (#211) + + * added APIRequestFunction and first test to resources folder + + * took out api function that is not complete yet + + * added functions getCropMap, getFieldMap, getUserMap, and getMap. + The first three functions call getMap. Then get map uses there url and id to create a map that has the id to the name of the crop,field, user, or other piece of information that would be useful in a map structure + + * added function for getting a map that maps crop, user, or field to an id. Added test for these functions in cypress. Also added tests for the functions that mapped id to crop,user, or field. + + * fixed discription of length test for getCropToIDMap + + * all test for crop,field, or user to id and vice versa work correctly + + * put in requested changes. + + This included changing the crop url and having each function only have one test(combining the old tests). Also put all the tests for the map functions into one context. + + * Removed incorrectly merged test code, renamed orig db to work with setDB.bash script + + Co-authored-by: josieecook + Co-authored-by: IrisSC + +commit 0e69d9924ae6a835c6ccf10b3f3735f0c531389f +Author: Grant Braught +Date: Sun Jun 27 11:39:11 2021 -0400 + + Updated script to set farm name and slogan (#208) + +commit 680ac75ec6615e139ea0602b71eba81a7703925c +Author: Grant Braught +Date: Sun Jun 27 11:24:17 2021 -0400 + + Enable fd2 mods (#207) + + * enabled FarmData2 modules + + * Updated sample db db image so FarmData2 modules are enabled. + + * Packed db with ush user logged out. + +commit 61fecc239effb977b25a9d1f32e6ccf0f7b41287 +Author: IrisSC <54850069+IrisSC@users.noreply.github.com> +Date: Sun Jun 27 11:09:00 2021 -0400 + + Table component (#196) + + + * added table component and test file for table component + + * merged with the main branch from upstream + + * Updated import statments in the component and component tests to match the new ones used in the date selection components + + * Updated cypress tests to be more efficient in their use of mounts + + * All cypress tests for the table component are passing + + * Added functional cypress tests that ensure that events are being emitted with the correct payload when the save and delete buttons are clicked + + * only one row in the table it editable at a time. the event payload for the save button is all the cells that have been changed with their new values + + Co-authored-by: Josie Cook @josieecook + + * updated testing: correctly test for the new emites when the save button is clicked and test that only one row is editable at a time + + Co-authored by: Josie Cook @josieecook + + * made table component cypress tests more consistent and fixed some small errors + + * Removed dead code and created more consistent/readable names in the table component (based on code review) + + Co-authored-by: Grant Braught @braughtg + Co-authored-by: Iris Shaker-Check @IrisSC + + * the delete, edit, and save buttons are now icons + +commit 469d953a3ea3d843239b77fd2c060a4a16ce9b95 +Author: Grant Braught +Date: Sun Jun 27 10:43:14 2021 -0400 + + Adds new sample database (#206) + + * Added bzip of db folder with no data. + + * Updated db.empty.tar.bz2 to use mounted farmdata2 logo file. + + * Added db containing only the users as a temporary checkpoint. + + * Updated empty db image to include the taxonomy_csv module. + + * Added the taxonomy_csv module to the empty db + + * Added the taxonomy_csv module via docker mount instead of in docker image. + + * Removed db zip with users in favor of doing it programatically on top of empty. + + * Started script for sample db creation - makes users so far. + + * Progress on the creation of vocabs with python + + * Adds script to add field.csv contents to FarmData2 as Farm Areas + + * Added comments to areas.csv to describe format + + * Added printed header and trailer for adding areas + + * Added scripts and data for creating Crop Families and Crop/Varities vocabularies + + * crop families are deleted after crops. + + * Added documentation of vocabularies + + * Added urls for the relevant endpoints + + * Fixed errormessage text + + * Removed unused time import + + * delete and add log categories for direct and tray seedings + + * Adds direct seeding data + + * Ensured all crops and families are deleted + + * Ensured that all areas are deleted + + * Added 2019 and 2020 data + + * Translations for bad areas/crops added + + * Added a pasture since it shows up in the data + + * Added data from Jan 1 2019 - July 15, 2020 + + * refactored to use getVocabularyID function + + * Changed lists to maps for crops and areas" + + * Added plantings for each direct seeding + + * Added user name translation for anonymization + + * Added units & refacotored functions into utils.py + + * Added units.csv data file + + * Direct seetings added to db. + + * documented seedings and plantings. + + * completed direct seedings + + * deleted file + + * Tray seedings completed. + + * Added context to docs. + + * Added compressed sample database file. + + * small edits + + * Added script for changing databases. + + * Updated script and install directions. + + * renamed original db image file. + +commit 11d86e6c39170f0c8232fc6889e79d1c30819fa1 +Author: Grant Braught +Date: Fri Jun 25 10:43:10 2021 -0400 + + Fixed getAllPages test using get and proper alias (#203) + +commit 72f6f10d76ec612b4260abf43506cdc1751d99e2 +Author: Grant Braught +Date: Thu Jun 24 16:13:58 2021 -0400 + + Removed .only on tests (#202) + +commit b0c09ba8777e9868f52dbfdfef578a71b44f301b +Author: Grant Braught +Date: Thu Jun 24 16:10:35 2021 -0400 + + Adds deleteLog function with Tests (#201) + + * added getSessionToken and deleteLog functions + + Co-authored-by: josieecook + Co-authored-by: IrisSC + +commit ef615fce41fc5a32c35c2238ded39c33e117e72f +Author: josieecook <60167626+josieecook@users.noreply.github.com> +Date: Mon Jun 21 10:04:18 2021 -0400 + + Testing Lifecycle Hooks (#184) + + * In progress cypress testing for alterations of the dropdown component + + * updated dropdown component cypress test to that it accurately tests for the emitted event on mount + +commit 286e52eb8f435cc195c6e2565d6a83cbd7c82a90 +Author: Grant Braught +Date: Sun Jun 20 13:35:33 2021 -0400 + + Refines and Completes getAllPages (#195) + + * Cypress test now working. + Not sure the wait(1) is the right way to do it. + Will continue to revisit. + + * Added working cypress tests. + Now tests for a single page request and for a multiple page + request. + + Co-authored-by: josiecook + Co-authored-by: IrisSC + +commit c0edda9a467064e123d815a00b801a199767dc58 +Author: Grant Braught +Date: Sat Jun 19 17:08:05 2021 -0400 + + Updated README.md in fd2_example to reflect current practice. (#194) + + This included adding the requres at the top of nested components + and in component test files. It also inlcuded the use of + modules.export in the .js files for components and js libraries. + + Also ensured that all of the components and js libraries followed + this practice. + + @co-authored-by: josiecook + @co-authored-by: IrisSC + +commit 1982929e9a446d7b7314df227c27c57a89d50a89 +Author: Grant Braught +Date: Sat Jun 19 15:31:31 2021 -0400 + + Fetch all pages (#193) + + * Draft implementation o the getAllPages function. + + @Co-authored-by: josiecook + + * Draft of getAllPages complete + + * Working version of getAllPages along with some testng. + + @Co-authored-by: josiecook + +commit 7d48daa5c7ba6f16482ab71784a1dfd3e337d1e5 +Author: Grant Braught +Date: Fri Jun 18 11:30:44 2021 -0400 + + Chained instead of nested thens in deleteLog (#191) + +commit 95141ade24a5ab9b3850e69941a4e807038a159d +Author: Grant Braught +Date: Fri Jun 18 09:51:53 2021 -0400 + + Adds delete record demo to ex1.html (#190) + + * Added deletion of log by id - not working yet. + + * Working demo of deleting a log by id + + * Commented on use of CRSF token for delete. + +commit 0d9e0245e15953be03a52dfcdeae2083bd0f4a00 +Author: Grant Braught +Date: Wed Jun 16 16:29:33 2021 -0400 + + Added axios to the cypress test runner docker image. (#189) + +commit 45dc3fa13b107445a52215fbd53fc19506cd20e3 +Author: Grant Braught +Date: Wed Jun 16 16:00:00 2021 -0400 + + Connected test runner to the docker network so it can talk to FarmData2 in tests (#188) + +commit 0ef31772633f315564e9464d54acd42a2fb37db5 +Author: Grant Braught +Date: Tue Jun 15 16:45:59 2021 -0400 + + Added custom table component that supports editing and deleting of rows. (#185) + + Co-authored-by: josieecook + Co-authored-by: IrisSC + +commit 011bf73ae0f83c16e8a97de6ab89926c4aa7fd62 +Author: Grant Braught +Date: Tue Jun 15 12:12:23 2021 -0400 + + Adds DateSelectionComponent and DateRangeSelectionComponent along with associated tests and demonstration in the ex1.html page. (#183) + + Co-authored-by: josieecook cookjo@dickinson.edu + Co-authored-by: IrisSC shakerci@dickinson.edu + +commit dcbae66b3204265f04b8c2cc57a994af0d7d402e +Author: Grant Braught +Date: Tue Jun 15 10:43:07 2021 -0400 + + Update to Dropdown Component (#182) + + * Added dropDownWithAll component using select html element + + * Renamed compnent files using pascal case to match convention. + + * Updated e2e and component tests to match code changes. + + Co-authored-by: josieecook cookjo@dickinson.edu + Co-authored-by: IrisSC shakerci@dickinson.edu + +commit a3d165fb9b15513edc57cd737ad88c9966b7bca8 +Author: josieecook <60167626+josieecook@users.noreply.github.com> +Date: Thu Jun 10 13:06:53 2021 -0400 + + DropdownWithAllComponent (#177) + + * Created a DropdownWithAllComponent + + * DropdownWithAllComponent implemented it in the ex1.html file + + * Reworked the end-to-end cypress test for ex1.html to test the new dropdown menu + + * Removed the fieldDropdownComponent and added to DropdownWithAllComponent so that it will reset to have no input if something is typed in that isn't in the menu. + +commit 54edb315c59fa8e4e37b55fab6f87cabec6b2bdb +Author: Grant Braught +Date: Wed Jun 9 09:47:42 2021 -0400 + + Documentation updated to Address Component Testing (#176) + + * Noted component testing + + * Upped the recomended virtual disk size. + + * Added onboarding for component testing + + * Documented need to add component js files to modules .info file + +commit 720f7c07bb0a11c3a660a7198ce689fa30183186 +Author: Grant Braught +Date: Tue Jun 8 15:29:22 2021 -0400 + + Document Component Testing (#175) + + * Updated README for addition of component testing. + + * Fixed file suffix for component tests. + +commit 7f9f737e6be08e4c58804ce51e9726731c740724 +Author: Grant Braught +Date: Tue Jun 8 09:18:56 2021 -0400 + + Cypress Component Testing (#174) + + Fully functional e2e and component testing with Cypress within a docker container. + + * Docker and config for cypress component testing added + + * Added image versioning, yarn timeout hack added + + * Named the container + + * Added test type param e2e or ct to testrunner.bash script + + * adjusted flag for type of test. + + * Fixed globbing to separate e2e and ct tests. + + * Got single file vue component testing working + + * Working Vue component for page and for component tests + + * removed the single file component in favor of the .js file + +commit 3b42f180632f8d9f33b6ea17b61c7859f00a88d5 +Author: Grant Braught +Date: Wed Jun 2 12:07:00 2021 -0400 + + Added more resource links for cypress (#173) + +commit 57c47097562c183cdf1a862eb87e65f03ac58427 +Author: Grant Braught +Date: Tue Jun 1 15:23:26 2021 -0400 + + Modified cypress configuration to omit screenshots and videos (#172) + + Co-authored-by: braughtg + +commit 7421d8a9e96a84f84999acd7a9e0177b13822148 +Author: Grant Braught +Date: Tue Jun 1 14:56:50 2021 -0400 + + Reorganized and simplified Cypress Tests (#168) + + * Modified cypress tests to run from a single config and single location + +commit b0eeaaee0144168366455e789b39c0f9b92f016c +Author: Grant Braught +Date: Tue Jun 1 14:50:15 2021 -0400 + + Reformulated Ex1 using a vue Component (#169) + + * Rewriting fields dropdown using a Vue component + + * Cleaned up cypress end-to-end tests to use component + + * Cleaned up data-cy id's to make spec tests easier + + * added data-cy to componment + + Co-authored-by: braughtg + +commit 27dc3299859214e9fbba15afac38afe8b675775d +Author: Grant Braught +Date: Sun May 30 17:43:24 2021 -0400 + + Update INSTALL.md + + Added clarification of needing to restart virtual box after adding user to the docker group. + +commit e0177780867ee6c6f903848202f640b31282f2ef +Author: Grant Braught +Date: Thu May 27 14:40:02 2021 -0400 + + Reordered BarnKit tabs (#166) + +commit 421baed67f43573b994f22be9651cef9958b3dd6 +Author: josieecook <60167626+josieecook@users.noreply.github.com> +Date: Thu May 27 14:34:33 2021 -0400 + + Request Tray Seeding Report - Epic (#157) + + * Provided a dropdown list of crops,in alphabetical order, from the farmOS API to choose from. + + * Added start date and end date inputs to the tray seeding report tab, and set the default end date to the current day. + + * Added a placeholder table with all relevant headings to a tray seeding report. As of right now, it has one row where all of the cells display the word "Sample". + + * Added comments to traySeedingReport.html for better readability + + * Added a traySeedingLogRequest method that will make an API request to get seeding logs within the dates specified in the start and end date inputs. Also began to fill in table with appropriate variables from the request. + + * Added a traySeedingLogRequest method that sends an API request for tray seeding logs between the specified start and end dates. The dates of each log are added to the table, but all of the other details are currently blank. + + * Added
to move the generate report button to a new different line than the start and end date inputs. + + * Added generate report button and a mock report table + + * Added All option to crop downdown + + * Cleaned Up code and made sure date/crops appear on table + + * Cleaned up generateReport function + + * Added delete button and popup message upon clicking button + + * Added notes to guide future coding + + * Code clean up from delete button and row dates merge + + * added delete button to cleaned up code + + * Table now gives crop output from API and the 'All' crops option now works + + * Fully functioning delete button + + * Altered the processing of the API Request response so that the data is saved as-is and then the specific information needed to display in the report is sorted out within the table. + + * Simplified the traySeedingLogRequest method. + + * Started filling rows, still need a way to extract the right data + + * Finshed story, now all relevant data on the table is displayed except for user and comments + + * Fixed bug and added user to table + + * Fixed delete button bug and merged all code from my team's story + + * Added in-line comments on the functionality of the code + + * Added descriptive comments on methods and HTML elements to specify functionality and purpose. + + * Added suggestions from Matt after final presentation + + Co-authored-by: Diego2214 + Co-authored-by: ShannonLoughin + Co-authored-by: Diego2214 <42941502+Diego2214@users.noreply.github.com> + Co-authored-by: ShannonLoughin <54909682+ShannonLoughin@users.noreply.github.com> + +commit fad81d4439a9d4f632274de52a25a922ff3b0c8b +Author: Boo Sung Kim +Date: Thu May 27 18:30:08 2021 +0000 + + Issue 139 Transplanting Page added (#159) + + * making subtab + + * adding headings and paragraphs to subtab + + * make pagelook nice w/ line,spacing, and italics + + * add title and generate report button + + * add crops, feilds, and start & end dates + + * add table with Kale data + + * added A03 tap + + * adding div, v-clock,and Title-header connection + + * fixed issue in prevous commit + + * added start, end , and crop information that is ended in the top section of the page to appear in the rest of the bottom sections + + * add header of mock report to be My Mock Report on default. It will change to whatever is entered into the title box + + * make it so that the drop down options for fields and crops are generated from a list in Vue and not hard coded in the page + + * connecting the crop information table to the Vue instance + + * adding devtools to the Vue instance + + * synching feater branch + + * creating tab A04. This tab is curently idenitcal to the A03 tab + + * Connecting button to data table. When Genrate Report is clicked a row of data in the data table shows up + + * Rotates though the different objects for the table when Generate Report is clicked + + * Added Delete button to table. If Delete is pressed then the row is deleted + + * when there is no data the table does not appear instead there is a message: There is no mathcing records + + * The report is hidden until the Generate Report button is clicked for the first time + + * cannot set the start date of the harvest report ot be after the end data and vice vera. They can be set to the same data though + + * Adds the yield of the data displayed in the table. Outputs it underneath the table + + * added A05 subtab + + * connected the field pull down menu to the farm database + + * The crop list dropdown is now connected to the data of crops + + * Add the A06 practice tab + + * when Generate report is clicked a list of all harvest reports are generate in the table. Only the dats are showing the rest just say blah. The datas are in unix time + + * the date in the table is no longer in timestamp, but is legiable to the average viewer + + * added the field, crop, and yield variables to the table. + + * the table has elements that only have the field that was selected + + * can now use the start and end dates to specify which logs show up in the table + + * the dropdown slection on the crop will now help spefify which logs are added to the table + + * added html file called transplanting and it has a heading: Transplanting Report + + * added subtab called transplanting that connects to the transplanting.html file + + * Intialized Vue variable and added a div section: Transplanting report + + * table created for data insertion + + * took out spike subtabs in FD2 Example tab + + * added input for start date. This input changes the startDate varaible in Vue.js to the inputed date. + + * A date input was added for the user to add an End date for their desired range. The input is saved into the endDate variable in Vue.js. A max for the start date and a min for the end date was added. These were linked to each other. + + * added a field variable to store all fields and a drop down list of field for selection + + * Now when the generate button is hit the instnace that appear in Vue.js from the data are only after the start date that was inputed + + In order for this to be created, a Generate Report button, a logs variable in Vue.js, and a saveLogs method was created. When the Generate report button is cicked the saveLogs method is started. In the saved logs method a variable called link is created. This variable is set to the standard link for all transplanting log. Then if startDate is not empty then the link variable is added to inorder to create a link that will get all transplanting logs created after that start date. Then that link is used in the axios call. In order to do this, the methodstimestampToYMD and YMDToTimestamp were created. This methods change YMD time to timestamp time and vice versa. + + * the variable endDate now effects what logs show up in the Vue.js logs. + + In the saveLogs method, if the endDate variable is not empty. The link varibale is added to, so that the link will only call transplanting logs that happened before that date. + + * Added crop name filtering to the table + + * added varaibles rowfeet and rowbed to each log. These variables find the row feet and row/bed data from each log. + + * Added bed feet to the transplanting table. + + In order to do this, a calculate bed feet method was required. This took in the row feet and rowbed data. It used the methods getRowFeet and getRowBed to seperate the number from the rest of the data. It then divided row feet by rowbed to get bed feet + + * Table displays rows/bed now + + * Added user that created the report to the table + + * Deleted test message from transplanting page + + * this story added the comment to the table. + + it did this by accessing the notes in the logs and printing the information in the value key of the notes array + + * reversed the rowPerBed and rowFeet in the table. There were in the wrong place + + Co-authored-by: IrisSC + Co-authored-by: IrisSC <54850069+IrisSC@users.noreply.github.com> + Co-authored-by: miyu386 + Co-authored-by: Billy Lee <60191117+miyu386@users.noreply.github.com> + +commit 9b913054f96bd211143b9570e6d79ea8124a88b7 +Author: braughtg +Date: Thu May 27 13:57:57 2021 -0400 + + deleted test file + +commit 6d9967462081087cfe53b34aca36949367937d00 +Author: braughtg +Date: Thu May 27 13:55:16 2021 -0400 + + Just a test of the protection of main. + +commit 6ef51a89878c23d31223f4b9f78d8c96cd645a65 +Author: Grant Braught +Date: Thu May 27 13:40:33 2021 -0400 + + Direct Seeding Report - first cut (#163) + + * Created Direct Seeding Report HTML and added the crops field: issue137 + + * Addded drop dowm menu for all fields + + * Added Dates To and Dates From fields + + * Table is generated when submit button is clicked: Table is not filled with data from API yet + + * Added code to retrieve nescessary data from API: does not work yet (need to find the correct path) + + * Update directSeedingReport.html + + * added edit button to the report table + + * Edit button WIP, on click the table switches to edit mode with input/dropdown fields and save button + + * API now retrieves correct data when Crops = ALL, and dates are null + + * Table now filters data according to the date for all crops + + * Table now filters data according to the date and specified crop + + * Edit Button WIP - added default values(original) for the fields in edit mode + + * Small code cleanup + + * Run another report function WIP - added the button and function to reset fields and hide the table + + * Complete edit button feauture + + * Complete 'Run Another Report Feature' + code clean up + + * Merge the update code, with working delete buttons + + * All properties in the Table fill properly + + * more changes tothe table + + * Update directSeedingReport.html + + Commented my part of the code + + * Added some comments + code cleanup + + * Added comments to fields and delete function + + * Small fix to edit funstion for dropdown menus + + Co-authored-by: SavidBasnyat + Co-authored-by: egorovak + Co-authored-by: SavidBasnyat <54815468+SavidBasnyat@users.noreply.github.com> + Co-authored-by: Bruno Kaboyi + Co-authored-by: brunokaboyi <42941446+brunokaboyi@users.noreply.github.com> + +commit b347b5e78f92a6fcb65c5d5dd6bf2c94e3cb1762 +Author: Batese2001 <69521504+Batese2001@users.noreply.github.com> +Date: Thu May 27 13:23:06 2021 -0400 + + Csv conversion (#158) + + * Amelia: added comments + + * Added more comments + Co-authored-by: Evan Bates + Co-authored-by Amelia Dao + + * Delete harvestReport.html.orig + + This file is in here by mistake + + * Fixed min and max for date entry + + Co-authored-by: Amelia Dao + +commit 1f68a6c14bdf62c608d1607c030ff3869858d065 +Author: Grant Braught +Date: Thu May 27 10:30:43 2021 -0400 + + Ignored files docker./logo created by mount into farmOS container (#162) + +commit 53667ee029fd7d7d922f1b2e7a71d9a5cb50ab98 +Author: John MacCormick +Date: Fri May 21 08:42:10 2021 -0400 + + Fix some typos in documentation files INSTALL.md and ONBOARDING.md (#160) + +commit 1b9a20c2a0393b3c406b55db234f29804a01e1f5 +Author: Batese2001 <69521504+Batese2001@users.noreply.github.com> +Date: Wed Apr 28 13:17:25 2021 -0400 + + Partial implementation of the Harvest Report + + * Create DELETE.txt + + * Added a new sub-tab Harvest Report to the BarnKit tab + Added harvestReport.html + + * Delete DELETE.txt + + * Added title input and button to Harvest Report sub-tab + + * Generate Report button now generates a mock report + Title input changes report title + + * Generate Report button gets data from database + Does not make dates human readable + Only shows 10 logs at a time + Cannot filter results + + * Logs are displayed at once instead of one per click + Takes two clicks to display any logs + + * Amelia: story field selection + + * Fixing local + + * Computes yield by adding all yield numbers together + Disregards unit and crop + + * Separates yield in default unit + Ignores crop type + + * Added total yield table that displays total yield for all crops in harvest report + + * Added 'Crop: ' label and crop dropdown. + Uses dummy list for now + + * Delete recentworkspace.json + + * Crop names now come from database + Crops do not currently filter results + + * Report is now filtered based on crop selection + + * Can now select ALL to ignore crops as a filter + Now only needs one click to generate report + + * Cleaned up loose variables and comments + + * Now uses crop id as identification + Delete updates total yield + Only requires single button press to generate report + + * Amelia: add the option to choose All fields + + * Added worker column to harvest report + + * Amelia: date range selection + + * Amelia: add constraint start date cannot be later than end date + + * Bound end date to be after start date. + + Co-authored-by: Amelia Dao + Co-authored-by: Grant Braught + +commit 9a2252238f2ead51af8b6f6acb625b681ca20fea +Author: skalakm +Date: Tue Mar 23 13:36:57 2021 -0400 + + added a script to update the db root, farmdata2db, and drupal admin passwords (#134) + +commit 5b5bca4e12193048d16338980c0cfcf11c784d89 +Author: hoad211 <42941415+hoad211@users.noreply.github.com> +Date: Wed Mar 24 00:35:42 2021 +0700 + + Exclude recentworkspace.json from git (#135) + + * Exclude recentworkspace.json from git + +commit 070d7102ffd459338ff0d5e30033eba460458c42 +Author: Grant Braught +Date: Sat Mar 6 18:04:17 2021 -0500 + + Significnt Onboarding Update (#133) + + Co-authored-by: Grant Braught + +commit b024129812099b6a874dcc0fac77add5c09ed924 +Author: braughtg +Date: Mon Mar 1 00:49:04 2021 -0500 + + Fixed undefined variable error. + +commit d8b94d9003837307319b94e9fbeacde9ab5823ea +Author: Grant Braught +Date: Mon Mar 1 00:01:44 2021 -0500 + + Removed line with undefined variable. (#130) + +commit 6623448248b80ffb9711756ccd7448e6242e9941 +Author: Grant Braught +Date: Sun Feb 28 23:25:16 2021 -0500 + + Fixed broken bundle features in restws module (#129) + +commit 62b45a8387fabb865f31328a20770ea58a6b35fb +Author: Grant Braught +Date: Sat Feb 20 19:22:50 2021 -0500 + + Added clear cache (#128) + +commit 0dd8b81d441c800451ab117b2b0509ac9707b5bf +Author: Grant Braught +Date: Sat Feb 20 19:12:47 2021 -0500 + + Fixed farmOS container working directory (#127) + + * Fixed farmOS container working directory + + * Removed stmt to clear cache because it was unnecessary + +commit e1e1af4af7b53166e12bda8c5018b447a3acf49e +Author: Grant Braught +Date: Sat Feb 20 18:15:36 2021 -0500 + + Built custom FarmOS image with restws patch for filtering (#126) + + * Built custom FarmOS image with restws patch for fitering + + * Added fd2. to tags so we can force rebuild + +commit f8f85c2ef76dc1d99d4fafbf4fc0743579e5a04a +Author: Grant Braught +Date: Fri Jan 29 15:46:05 2021 -0500 + + Switched phpMyAdmin to apache tag. (#110) + +commit cc1dba65195b98212e9ba4717689836a1a0656b5 +Author: Grant Braught +Date: Tue Jan 19 08:34:11 2021 -0500 + + Added veversion tags to docker-compose images. (#109) + +commit 9230d899cc9d0d887b7008c0e0be911182bb35b5 +Author: braughtg +Date: Mon Jan 18 15:36:04 2021 -0500 + + removed cached/config stuff + +commit 50ae38ce3aaa0c67f996c5316d7e9a7bf7fa97bc +Author: braughtg +Date: Sun Jan 17 19:29:23 2021 -0500 + + removed commented out lines + +commit 6961e60a433fe34a17c86f6e5c7646f821c8811b +Author: Grant Braught +Date: Sun Jan 17 19:27:06 2021 -0500 + + Moved global vars for JS out of tags (#108) + +commit 4d3f25c094ba51da2b7c6e6c73bb19d76a6e7801 +Author: Grant Braught +Date: Sun Jan 17 16:36:35 2021 -0500 + + Update to fd2 modules (#107) + + * added common css and ensured js is cached + + * Added userID and userName vars to js. + + * Added id and name tags to pages in all modules + + * updated zipped db for install + + * Updated zipped db for logged out user + +commit 2e98189b6ab1275da18835df2660097bf138b8a0 +Author: Grant Braught +Date: Sat Jan 16 09:37:15 2021 -0500 + + Fd2 mod reorg (#106) + + * Created Example module to build new ones from + + * Generalized Example module + + * Adapted cypress tests to example. + + * renamed test runner script + + * Cleaned up field kit module + + * Added barn kit module + + * Adjusted README for having example enabled by default. + + * Clarified test runner uses Docker. + + * Used context sensitive name for test runner working directory + + * Ordered fd2 tabs in Farm menu + + * updated compressed db to include new new tabs + + * removed cypres screenshots and videos + +commit 91e5b46103821078ae8bdf7f728ceca81df483f3 +Author: braughtg +Date: Sat Jan 16 09:27:15 2021 -0500 + + Updated ignore for subdirs with Cypress + +commit ef54a16411110019a0f313169b1be54b9b9106ef +Author: Grant Braught +Date: Wed Jan 13 06:51:13 2021 -0500 + + Update cypress_run.bash + + Enable connections to the x11 server. + +commit aaf0f05a433f9cdbb8ffd82ae1963e977c6fa940 +Author: Grant Braught +Date: Tue Jan 12 17:13:21 2021 -0500 + + Cypress (#102) + + * Updated to ignore cypress screenshots and videos + + * Setup to run cypress tests in a container + +commit 73977575abb0a96173355ec5aa0b78cf61615528 +Author: Grant Braught +Date: Tue Jan 12 15:12:49 2021 -0500 + + Update docker-compose.yml + + Removed second container_name directive in theiaide + +commit 27e958d5cf3fb763bcea41405ec3dcfeca5f07aa +Author: Grant Braught +Date: Tue Jan 12 13:59:40 2021 -0500 + + Onboarding (#100) + + * Added basic tech-stack info and pointer to ONBOARDING + + * Small edits. + + * Outline and some Tools content added. + + * Finished tools section + + * Finished tools section + + * Refomatted Tools to have resources list + + * Added HTML section + + * Small edits to HTML section + + * Added CSS section + + * Added JavaScript section + + * all edits + + Signed-off-by: braughtg + + * small edits + + * Edits + + * Added JS objects link + + * Start on APIs + + * Added FarmOS API section + + * Fixed typo + + * Added cypress section + + * fixed typo + + * linked onboarding from fieldkit readme + + Co-authored-by: braughtg + +commit af1a35401637a109d87711a24ccfc4847705f60e +Author: Grant Braught +Date: Tue Jan 12 13:52:55 2021 -0500 + + Update CODE_OF_CONDUCT.md + + Fixed typo. + +commit cf8ad06aa689551942f951a10743a6d339894040 +Author: Grant Braught +Date: Mon Jan 11 14:52:54 2021 -0500 + + Fixed theia container name (#99) + +commit 8556a449e8b525dc09d225728583310b6305c44e +Author: Grant Braught +Date: Mon Jan 11 08:50:53 2021 -0500 + + Added phpMyAdmin info (#98) + + Co-authored-by: braughtg + +commit 41d0d0cb81b419c4d1490d689bcef3e99b937df3 +Author: Grant Braught +Date: Mon Jan 11 08:32:42 2021 -0500 + + Added Theia and Cypress paths (#97) + + Co-authored-by: braughtg + +commit 9415cbe662a8fb1c9d825055dbe1c9b99bdf158f +Author: Grant Braught +Date: Sun Jan 10 16:29:17 2021 -0500 + + Updated install process (#96) + + Co-authored-by: braughtg + +commit 72182854ee75eb6e4737609bc501dc06dc11945f +Author: Grant Braught +Date: Sun Jan 10 14:39:51 2021 -0500 + + Added link to Zulip for bugs/features (#95) + + Co-authored-by: braughtg + +commit 3472eda5da7765e1cb35b2f3df1c483f928b5f1e +Author: Grant Braught +Date: Sat Jan 9 16:23:27 2021 -0500 + + Added section about editing (#93) + + Co-authored-by: braughtg + +commit 02cd0f08911fc4423e17d57c8a7b2f574439ed46 +Author: Grant Braught +Date: Sat Jan 9 16:02:29 2021 -0500 + + Theia2 (#92) + + * Added Theia IDE container and configs + + * Docker build file to customize Theia + + * Updated version so init works + + * Added convenience scripts for up/down + + * silenced container removal + + * Updated to use convenience scripts + + Co-authored-by: braughtg + +commit 7e3592e74b552c18c96d074bc8994ce6ae8b0c3f +Author: Grant Braught +Date: Fri Jan 8 16:52:38 2021 -0500 + + added some info about Zulip (#90) + + Co-authored-by: braughtg + +commit e28787f2d692eb7bf8a1d78bb46f6d3779ffb52f +Author: skalakm +Date: Fri Jan 8 16:42:28 2021 -0500 + + fixed drush cache clear command + +commit d72152cfa6ccbc93b7ee968bede619921d564a6e +Author: Grant Braught +Date: Fri Jan 8 16:26:07 2021 -0500 + + Added fix for slow retina display on mac. (#89) + + Co-authored-by: braughtg + +commit 01730e13f2f177cec354301940220f5d7a334165 +Author: Grant Braught +Date: Thu Jan 7 16:51:53 2021 -0500 + + Readmeupdate (#88) + + * revised particpation section + + * Added Julip as contact and sponsor + + Co-authored-by: braughtg + +commit e0e3be59e8cc42c2f5c5da685b818afa53ccaf34 +Author: braughtg +Date: Wed Jan 6 14:24:29 2021 -0500 + + small cleanups + +commit 18218661bdfa9ac389609039926e1bc4200db81d +Author: Grant Braught +Date: Wed Jan 6 14:22:46 2021 -0500 + + Added Vbox recommendations (#87) + + Co-authored-by: braughtg + +commit 26664a9beafba9829e2c581423cc65cc0835e4fd +Author: Radhika <56536997+96RadhikaJadhav@users.noreply.github.com> +Date: Tue Jan 5 23:53:57 2021 +0530 + + Added description and gitflow link to CONTRIBUTING.md file (#85) + + * Added description and gitflow link to CONTRIBUTING.md file + + * Done requested changes. + +commit bc749d51d17757eb9137ea282e941369ec948819 +Author: Grant Braught +Date: Sun Jan 3 18:18:29 2021 -0500 + + Field kit (#83) + + * Basic field kit structure in place. + + * Example form and tests complete. + + * Added test for the field kit info pane + + * Added a README.md to the module + + * Attempt to fix formatting issues + + * Fixed final step for adding a form. + + * minor edits + + Co-authored-by: braughtg + +commit 3cea74d26676a3b1a57041aa06973688a50a3595 +Author: Grant Braught +Date: Sun Jan 3 18:10:11 2021 -0500 + + Fix logo error (#82) + + * Mounted logo into container + + * Added logo directory to be mounted + + Co-authored-by: braughtg + +commit 5a11f0a3393496cea18627bb14e9bd6e5f29f7ea +Author: Grant Braught +Date: Sun Jan 3 16:34:38 2021 -0500 + + New install (#81) + + * Updated dev install to use compressed DB image. + + * Added login screen shot, minor edits + + * Added login screen shot to INSTALL + + * Fixed minor formatting issue + + * mounted Drupal settings so no need to setup DB + + Co-authored-by: braughtg + +commit cbc88cb54483ee24c02d7fd4b2743a1fd7f7b65f +Author: braughtg +Date: Sun Dec 27 13:01:59 2020 -0500 + + Moved dev guide into docker + +commit 6c7b8952d3c2b7499449f8ac103d06434db7e8ff +Author: Grant Braught +Date: Wed Dec 23 16:11:38 2020 -0500 + + Add GNOME CEC badges (#77) + + * created media folder for images + + * Added GNOME CEC badges. + + * Added Gnome Community Education Challenge badges + + Co-authored-by: braughtg + +commit e127db0a40306ea5a23ae77255175d3c0c5354dd +Author: won369369 <60108250+won369369@users.noreply.github.com> +Date: Wed Dec 23 15:15:24 2020 -0500 + + Fixed two typos on INSTALL.md (#65) + +commit 04b1243ecc767bbd7fd1bc002666e701a77bad18 +Author: Han Trinh <54858523+hantrinh13@users.noreply.github.com> +Date: Thu Dec 24 03:13:39 2020 +0700 + + Fixed spelling and grammatical mistakes, fixed incorrect links and add Install link for clarification (#61) + +commit aaeefbc29df7728207fa06dbea88fb818edc25b6 +Author: josieecook <60167626+josieecook@users.noreply.github.com> +Date: Wed Dec 23 15:10:14 2020 -0500 + + changed phrase body size to body type in code of conduct (#58) + + Thank you for this contribution. It is a nice improvement. You might also make a PR for this change to the definitive document at: https://github.com/ContributorCovenant/contributor_covenant + +commit c86f35b6482a9bfc906fe77c885da17ef71a895f +Author: IrisSC <54850069+IrisSC@users.noreply.github.com> +Date: Wed Dec 23 13:48:37 2020 -0600 + + adding link to Clone (#50) + + Nice improvement! This will be helpful. Thank you for helping to improve FarmData2! + +commit ce85b0ea1cb2a45c5752ede4cb01b3e829443c1c +Author: ha vu <60118892+vuphuongha@users.noreply.github.com> +Date: Thu Dec 24 02:42:45 2020 +0700 + + Change to correct link (#68) + + Well done! Thanks for helping to improve FarmData2! + +commit 492ccc9d544e32fbf11badd7b17c681712b2495e +Author: miyu386 <60191117+miyu386@users.noreply.github.com> +Date: Wed Dec 23 14:41:52 2020 -0500 + + issue tracker link correction attempt1 (#63) + + Well done! Thanks for helping to improve FarmData2! + +commit 9e7fb1f7f11865b3575923a292108d1991e64156 +Author: mollerup23 <69806327+mollerup23@users.noreply.github.com> +Date: Wed Dec 23 14:41:06 2020 -0500 + + Fixed Issue #33 (#59) + + Well done! Thanks for helping to improve FarmData2! + +commit 196907ff791d56116da4231481741e674641f711 +Author: SavidBasnyat <54815468+SavidBasnyat@users.noreply.github.com> +Date: Thu Dec 24 01:24:37 2020 +0545 + + Fixed issue #33 (#53) + + Well done! Thanks for helping to improve FarmData2! + +commit 058b0cdd62b6bbd498a7dcd1d18d6a5b9af6357d +Author: Amelia Dao <60367635+amelia291@users.noreply.github.com> +Date: Wed Dec 23 14:37:59 2020 -0500 + + Fix the link to Issue Tracker in CONTRIBUTING.md (#48) + +commit fcae7840935bfa57a6c65744316a34b2b35908ff +Merge: 4121802 b5c3d92 +Author: braughtg +Date: Sun Dec 20 17:32:59 2020 -0500 + + Merge branch 'main' of https://github.com/DickinsonCollege/FarmData2 into main + +commit 4121802d1aaf353328e372ffa7faec911b569c68 +Author: braughtg +Date: Sun Dec 20 17:32:31 2020 -0500 + + Removed sspike modules + +commit b5c3d92fc7f60ee5153254611a01031397a26a92 +Author: Grant Braught +Date: Sun Dec 20 17:25:48 2020 -0500 + + Fixed permissions (#75) + + Co-authored-by: braughtg + +commit 5c64e2985b88e321db8ca09d7e2ab7120256708c +Author: Grant Braught +Date: Sun Dec 20 17:07:51 2020 -0500 + + moved modules and mounted them to facilitate development. (#73) + + Co-authored-by: braughtg + +commit 3dad66d19c31ed0d3362d2f83950888d3c05540e +Author: skalakm +Date: Wed Dec 9 14:38:46 2020 -0500 + + added modules for example verification and form altering + + It also includes the devel module, which provides helpful development tools including the dpm print function. + +commit 84a0c32c74a09e988e7f0c782472c4c5d0d5640a +Author: Grant Braught +Date: Wed Nov 18 11:26:35 2020 -0500 + + Update INSTALL.md + + Fixed some of the major formatting issues in INSTALL.md. Related to #44 + +commit df03f08281bbfdcf8a8a24c44f6e8cfc68da7e8c +Author: Grant Braught +Date: Tue Nov 17 16:24:28 2020 -0500 + + Make install doc (#43) + + * Set container names for all containers + + * Created INSTALL.md and added necessary files. + + Co-authored-by: braughtg + +commit fa9a19009df942c99598fa6c7d7d323260794a3d +Author: skalakm +Date: Tue Oct 20 13:04:11 2020 -0400 + + added a script to revert the farmos version to 1.5 + +commit 604a073bd1ce36f794282253bafb08284bda5efa +Author: skalakm +Date: Wed Oct 14 15:14:08 2020 -0400 + + tested that new arrangement works + +commit d1ddd71433ee8ad62988b2a73a36d7d4509ebc3b +Author: skalakm +Date: Wed Oct 14 14:52:35 2020 -0400 + + simplified the gitignore + +commit a1cb10de7efe4c8398d892faedf260904a5f6a4d +Author: skalakm +Date: Wed Oct 14 14:50:56 2020 -0400 + + moved files so that they work with the new folder structure + +commit fde0ad7433cc4e4839dd57889af30ec7c5898866 +Author: braughtg +Date: Sun Oct 11 13:39:18 2020 -0400 + + Created standard docker directory + +commit f946ef0da7e93f5f23b0246104ca5d925ddd2902 +Author: braughtg +Date: Sun Oct 11 12:12:09 2020 -0400 + + Update leaders list under enforcement + +commit d8951ec1fae3d2ec99776255691b1dc318ee1e65 +Author: Grant Braught +Date: Sat Oct 10 18:10:00 2020 -0400 + + Delete pull_request_template.md + +commit 9085efd167cb1635f42ead134efe3f87b309a408 +Author: Grant Braught +Date: Sat Oct 10 18:09:45 2020 -0400 + + Create PULL_REQUEST_TEMPLATE.md + +commit b6651ae499d31049fe1384a3434380be0b74c449 +Author: Grant Braught +Date: Sat Oct 10 17:49:42 2020 -0400 + + Update pull_request_template.md + +commit a4a42e6ee2c3d376e04ff601b97357936b81885e +Author: Grant Braught +Date: Sat Oct 10 17:31:25 2020 -0400 + + Add code of conduct (#23) + + * Added Contributor Covenant Code of Conduct from https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. + + * Added Contributor Covenant Code of Conduct + + * Added Matt Steinman to contact list. + + Closes #3 + + Co-authored-by: braughtg + +commit b11903c5ff2812ee430f68763f8fa537658add1b +Author: braughtg +Date: Sat Oct 10 17:23:12 2020 -0400 + + Updated the pull request template. + +commit 3a579cba63fcb4e305446a54e6d743567f9aa728 +Author: Grant Braught +Date: Sat Oct 10 15:47:27 2020 -0400 + + Add contrib doc (#19) + + * Added CONTRIBUTING.md describing main contribution methods at present. + + * Added block on licensing + + * Added multiple author commit info + + Co-authored-by: braughtg + +commit cf571aca951d0a858a822d9b221108f59291a1c5 +Author: braughtg +Date: Sat Oct 10 15:34:02 2020 -0400 + + Moved PR Templateto proper location + +commit 972c28bde5684c2f2ddeb27abf6d513dabd375ce +Author: Grant Braught +Date: Sat Oct 10 15:19:48 2020 -0400 + + Restructured and completed license information. (#17) + + Closes #9 + Co-authored-by: braughtg + +commit 44ea60142841335d3003337c47e44c61e90550e8 +Author: Grant Braught +Date: Sat Oct 10 15:12:56 2020 -0400 + + Added README.md file with basic project info (#1) + + * Added README.md file with basic project info + + * Added sections for installing and contributing + + * Changed CC to be BY-SA + + * Added NPFI to acknowledgements + + Co-authored-by: braughtg + +commit e9dddc2858b7e0de137bf5ae18f319c13e314327 +Author: braughtg +Date: Sat Oct 10 15:02:09 2020 -0400 + + Added PR template for DCO check box + +commit d35f177a3ac81952579934e2e15e1a40cf0e671b +Author: skalakm +Date: Wed Oct 7 16:30:54 2020 -0400 + + Delete .gitignore + +commit 9d0314332268d648f8ea4295bcfa97041b6e24c3 +Author: skalakm +Date: Wed Oct 7 16:29:03 2020 -0400 + + create load harvests that loads harvest logs + + It currently just loads for worker1 + +commit b653c7282bf9a6d4a539b009850505cb0a4baba4 +Author: skalakm +Date: Wed Oct 7 16:28:22 2020 -0400 + + simplified the git ignore + +commit e4299ad76d341a4aef945723207487bb518ab4b2 +Author: skalakm +Date: Wed Oct 7 16:24:20 2020 -0400 + + added code to load harvests + +commit 2624468b29940c1c6769427f7c41db71bf0c8750 +Author: skalakm +Date: Wed Oct 7 15:46:48 2020 -0400 + + fixed a couple pieces in the install scripts + + Added correct indexes for fruit. + Made add fruit recognized as a php file. + +commit 444cbdabae69b7c319c2a0df5330d83a259e7182 +Author: skalakm +Date: Wed Oct 7 15:25:51 2020 -0400 + + removed www folder + +commit e2580feba4fa6d40924f814fd23aade01867aadd +Author: skalakm +Date: Tue Oct 6 09:26:39 2020 -0400 + + updated the guide to say that the fruit grouping is done by the script + +commit 82fe34b0234fe13d867557131b8a1f0194888a94 +Author: skalakm +Date: Tue Oct 6 09:20:19 2020 -0400 + + added a script to group the fruits into the Fruit group and updated the install script + +commit 55ce02735f0aaf633bfce71a1e55249a143dd320 +Author: skalakm +Date: Tue Oct 6 09:01:46 2020 -0400 + + added example lines on importing users and groups + +commit 5209d98748cf63ad8ea50a5823acb88651e6a05d +Author: skalakm +Date: Fri Oct 2 12:09:02 2020 -0400 + + added more information about the early steps + +commit 8540dcb5204e366662de224cf9f02c3f6dae8b9e +Author: skalakm +Date: Fri Oct 2 12:10:02 2020 -0400 + + added the demodata as a volume and added fruit plantings + +commit c7f99787d17b7f24862a9327bd98dc7d7038438b +Author: skalakm +Date: Thu Oct 1 09:54:36 2020 -0400 + + added docker compose, added install.sh + +commit dbd05acc2ab837719c0a972b38186766bbffda1b +Author: skalakm +Date: Thu Oct 1 09:56:37 2020 -0400 + + updated the development guide + + Added things done by the install script and adapted it to a docker setup. + + Co-authored-by: megandalster + +commit e6caa208a44c2e6eac701096e387f6b7f849bf08 +Author: skalakm +Date: Tue Sep 29 14:10:12 2020 -0400 + + added the demo data + +commit 9066261ae40e67cb296c2b3aabe3a15149c9009d +Author: skalakm +Date: Tue Sep 29 14:04:14 2020 -0400 + + added the initial version of the developer guide + +commit 07f8d3b999d142a07b57880c7a79d24dbd5639af +Author: skalakm +Date: Tue Sep 29 14:02:19 2020 -0400 + + Initial commit diff --git a/farmdata2/C:UsersrolanOneDriveDocumentsDickinsonWork2023-2024Work b/farmdata2/C:UsersrolanOneDriveDocumentsDickinsonWork2023-2024Work new file mode 100644 index 00000000..e69de29b diff --git a/farmdata2/C:UsersrolanOneDriveDocumentsDickinsonWork2023-2024fd2School.txt b/farmdata2/C:UsersrolanOneDriveDocumentsDickinsonWork2023-2024fd2School.txt new file mode 100644 index 00000000..9d4f800b --- /dev/null +++ b/farmdata2/C:UsersrolanOneDriveDocumentsDickinsonWork2023-2024fd2School.txt @@ -0,0 +1,5459 @@ +commit e15fa9bf09065fa088a62a90e3eaf7f34aea87d5 +Author: Michael K <56452607+Mikek16@users.noreply.github.com> +Date: Mon May 15 13:58:35 2023 -0400 + + Test Barn Kit Seeding Report columns by seeding type (#210) + + * Initial commit, adding seeding input data cypress test + + * subtask #1 Assert header has 'Data' + + * Check the crop dropdown list size + + * Testing crop dropdown + + * Testing for crop dropdown length + + * Testing for crop dropdown length + + * test input date element enabled and has correct default value + + * Cleaning cypress test + + * Add spec.js file for testing seeding report columns by seeding type + + * Add test column for Tray Seedings + + * Completed testing for Direct Seeding column headers + + * Added a test to check where proper columns are displayed in the table for "All" seeding type + + * Reformat Tray Seeding test to look like Direct Seeding test format + + * Rewrite the test for all option (checking the table columns) for better efficiency and readability + + * Delete unnecessary folder + + * Modify test for the table column for the all option. Specifically, modified the for loop that check the visibility of table headers to use cypress tag instead of using .children() for to get the header elements + + * delete an unnecessary folder + + * Standardized tests and addressed requested changes + + * Cleaned comments + + * Address PR change requests + + * Add test for Edit header back + + * Check for report table before checkbuttons and add check that the checkbuttons are not disabled + + --------- + + Co-authored-by: nathang15 + Co-authored-by: infantlikesprogramming + +commit cb0d76889439415c10a4e6b1d94cf19989230dea +Author: Alexandrialexie <98338885+Alexandrialexie@users.noreply.github.com> +Date: Sun May 14 08:46:52 2023 -0400 + + edited documentation in lines 33 and 34 of CustomTableComponent (#239) + + Co-authored-by: pranavm2109 + +commit 83793e4e4da4bce29610f5684805f8618f8e230d +Author: James Ng <98336522+jamesng5@users.noreply.github.com> +Date: Fri May 12 11:09:28 2023 -0400 + + Main fd2 tabs test (#228) + + * Create test file for the Seeding Input + + * Test the comment box + + * test for HaTest + + * added page heade + + * tested to check that submit button is disabled + + * Test for Submit button + + * Add test the comment box is enable and the submit button is labeled + + * Tested to check that SUBMIT button is disabled + + * solved merge conflict + + * modified page header test + + * added label comment + + * Fix type error for testing the submit button is enabled + + * Create new branch to test Main FD2 Tabs for each user + + * Create new branch to test Main FD2 Tabs for each user + + * Add test for the existence of FieldKit, BarnKit, FD2 Config tabs when manager is logged in + + * Rename the spec.js file to be more appropriate and combine all test for different account in 1 file + + * Test tabs existence for worker account + + * Test tabs non-existence for guest account + + * try a new way to access each tab + + * Fixed when other account login in the test, it will not always return pass + + Signed-off-by: James Ng <98336522+jamesng5@users.noreply.github.com> + + * Rename file to fd2tabs.existence.spec.js for easier read + + Signed-off-by: James Ng <98336522+jamesng5@users.noreply.github.com> + + --------- + + Signed-off-by: James Ng <98336522+jamesng5@users.noreply.github.com> + Co-authored-by: vuphuongha + Co-authored-by: ha vu <60118892+vuphuongha@users.noreply.github.com> + Co-authored-by: tainguyen103 + +commit 3063d28a2321ef6fcb0cc4cb32d103aadcddc64c +Author: sidlamsal <98344853+sidlamsal@users.noreply.github.com> +Date: Tue May 9 09:31:12 2023 -0400 + + Seeding Input: Tests for Submit Button Behavior (#208) + + * created a spec file for testing submit button behavior + + * Test submit button is initially disabled + + * Changed test file name to match others + + * Added description at top of test file + + * added tests for tray seeding data section + + * added tests for tray seeding labor selection + + * added tests for the tray seeding section + + * created test for direct seeding section + + * added test for the direct seeding section + + * Fixed typos + + * Update seedingInput.submit.button.spec.js + + made @braughtg corrections + + Signed-off-by: Foogabob <80643562+Foogabob@users.noreply.github.com> + + * changes to the sructure of the test + + * Another re-orginization of the test as a whole, the commit is only to save progress + + * added comprehensive tests for the Data, Tray, and Direct seedings + + * added comprehensive test for the labor panel + + * removed old commented out reference material + + --------- + + Signed-off-by: Foogabob <80643562+Foogabob@users.noreply.github.com> + Co-authored-by: Foogabob + Co-authored-by: EliasBerhe + Co-authored-by: Foogabob <80643562+Foogabob@users.noreply.github.com> + Co-authored-by: foogabob + +commit a19c428537bb3c5589268ae49d05a74205195c81 +Author: Alexandrialexie <98338885+Alexandrialexie@users.noreply.github.com> +Date: Tue May 9 09:24:54 2023 -0400 + + Tested the Seeding Report Crop Filter (#196) + + * Added new test file with before each + + * Added an it block to test that the crop dropdown holds the correct crops for the selected date range + + * Added comment to introduce the test file + + * Checked that several crops have logs when All selected + + * added it to test that report table contains only the logs pertaining to the selected crop + + * Changed the date range for the crop dropdown tests and ajusted the tests accordingly + + * revised third it to use a for loop to check that table only contains logs pertaining to the selected crop + + * Modified second it: when All selected, different crops validated by td-ri-c1, loop, or's + + * Changed crop dropdown tests to use the data-cy attribute instead of .children + + * removed excess lines in second and third individual test + + * For 'All' option test, added general comment and removed individual comments + + * used have.text instead of contains.text in third it + + --------- + + Co-authored-by: andrewscheiner53 + Co-authored-by: pranavm2109 + +commit cb8538622a6ed972161bd95d963dff3ddbfb792f +Author: GyuJin Lee <98343991+JinLeeGG@users.noreply.github.com> +Date: Mon May 8 15:01:32 2023 -0400 + + FieldKit Tab: Test for FieldKit Sub-Tabs (#212) + + * Created txt file for initialize branch + + * Created epr1.md + + * deleted created_branch.txt + + * Revised EPR1 + + * cypress file created for fieldkit sub-tab + + * beforeEach added for login in farmdata2 web + + * changed url for beforeEach and sub-task1 finished + + * finished sub-task 1 + + * Checks that the order of the tabs is “Info” and then “Seeding Input.” + + * ignore this commit + + * Revert "deleted created_branch.txt" + + This reverts commit fff6611033b011469f6543c3964db1433d084306. + + * Implemented a test that checks the correct number of sub-tabs + + * Removed create_branch.txt and reports directory. + + * Verifies that the number of sub- tabs is exactly 2 and adds a general comment at the top of the file + + --------- + + Co-authored-by: won369369 + Co-authored-by: Shahir-47 + +commit b4c5e830bcf64bf935b8745eb82776d58ec7551b +Author: Quan Nguyen <101671879+qnhn22@users.noreply.github.com> +Date: Wed May 3 14:44:46 2023 -0400 + + Testing Seeding Input Tray Seeding Defaults (#194) + + * add tray selection test + + * add area dropdown test + + * Adding test for seeding field and trays field + + * Write tests for area dropdown and cells/tray field in Tray Seeding Input + + * reformat the tests and add test no area is selected by default + + * Fixing test for input value + + * fix testing on tray seeding input + + * reformat the test and modify the test dropdown area + + * Reformat Testing tray and seed fields + + * add blank line and test enable + + --------- + + Co-authored-by: nguyenbanhducA1K51 + Co-authored-by: phong260702 + +commit f6317c17a323b17c0db73a1e22e1ebfcec0498e9 +Author: James Ng <98336522+jamesng5@users.noreply.github.com> +Date: Wed May 3 14:06:45 2023 -0400 + + Create test file for the Seeding Input (#211) + + * Create test file for the Seeding Input + + * Test the comment box + + * test for HaTest + + * added page heade + + * tested to check that submit button is disabled + + * Test for Submit button + + * Add test the comment box is enable and the submit button is labeled + + * Tested to check that SUBMIT button is disabled + + * solved merge conflict + + * modified page header test + + * added label comment + + * Fix type error for testing the submit button is enabled + + * edit space between it() block to have consistent spacing + + * Add comment to give the purpose of the test file + + * Fix the test for the section with label Comments + + --------- + + Co-authored-by: vuphuongha + Co-authored-by: ha vu <60118892+vuphuongha@users.noreply.github.com> + Co-authored-by: tainguyen103 + +commit 23eb676eaca553e53a596b3bcc09c04e783100e6 +Author: saiatl2354 <75409740+saiatl2354@users.noreply.github.com> +Date: Sun Apr 30 17:00:20 2023 -0400 + + Testing the default values of the seeding report (#227) + + * updated fd2 branch + tests + + * Updated tests + + * test for Barn-Kit seeding report default + + * updated tests + + * updated tests + + * "Made minor corrections to tests" + > + > + Co-authored-by: Sai Atluri + + * Updated date selection header test + + * Updated date selection header test + + * Corrected minor minor merging error + + * Fixed formatting + + --------- + + Co-authored-by: Melantha-Chen + +commit 2adea935e873fdff8677c0fb96577222da4b9fb5 +Author: Udval Enkhtaivan <74579865+udvale@users.noreply.github.com> +Date: Thu Apr 27 13:51:46 2023 -0400 + + BarnKit Subtab testing (#219) + + * Initial commit for BarnKit tab testing + + * Tested the BarnKit tab contains the 3 sub-tabs + + * Added the Second test and initiated the third test of the barnkitTab.spec.js + + * Testing on proper branch + + * Revised test for BarnKit subtabs ordering and length + + * Delete transplantingReport.defaults.spec.js + + Signed-off-by: Udval Enkhtaivan <74579865+udvale@users.noreply.github.com> + + * Revised the test for checking number of subtabs + + * Resolved issues and committed final changes + + --------- + + Signed-off-by: Udval Enkhtaivan <74579865+udvale@users.noreply.github.com> + Co-authored-by: thorpIV + Co-authored-by: aliouas + +commit 7601a5ceae1f07b2fca22d38f018094a82baa6f3 +Author: won369369 <60108250+won369369@users.noreply.github.com> +Date: Mon Apr 24 18:57:18 2023 -0400 + + Test Seeding Input Direct Seeding Defaults (#182) + + * Created txt file for initialize branch + + * testing commit on feature branch + + * SeedingInput cypress file created + + * Tests must check that the Direct Seeding section of the Seeding Input Form appears when "Direct" is selected + + * deleted create_branch.txt + + * cypress test name changed + + * Test that it displays dropdown for units + + * comment for numbering sub-task 6 added + + * test for dropdown area + + * Reviewed Gyujin's solution to sub-task 3, 7 + + * checks that there is a field for Row/Bed that is empty and enabled + + * checks that there is a field for Bed Feed that is empty and enabled + + * checks that Bed Feet is the default units + + * rearranged the order of each sub-test + + * changed cypress file name + + * changed correct cypress file name + + * resolved all conversations from prof. braught + + * added comments to each sub-tasks + + * changed unit dropdown + + * removed then() and added cy.waitForPage() for subtasks 2, 6 + + * Implemented the test that checks the area dropdown is enabled and removed cy.waitForPage due to error. + + * "added cy.waitForPage()" + + * Removed sub-task comments + + * add a comment at the top of the file describing what the purpose of the file is. + + --------- + + Co-authored-by: won369369 + Co-authored-by: JinLeeGG + Co-authored-by: Shahir-47 + +commit 5b4479fa9cd0a36035e9399f656d56c624e17e53 +Author: Udval Enkhtaivan <74579865+udvale@users.noreply.github.com> +Date: Fri Apr 21 11:34:58 2023 -0400 + + Testing Transplanting Report Defaults (#197) + + * Added spec.js file for testing transplating report + + * Tested page header and section label + + * Tested if the generate button has correct value and is enabled + + * The report table is not visible + + * Tested default start, end dates using dayjs + + * Changed data-cy atrribute name for - Set Dates + + * click() is removed when getting the default dates + + * Made final changes for the test + + * Made final changes to the test + +commit 1a180ac720c0adee283924eea1568316129e2443 +Author: Grant Braught +Date: Wed Apr 12 13:05:45 2023 -0400 + + Added cy.waitForPage() to dbtest testing examples (#209) + +commit 0e1df8dcdcc4ebdb2e58ca369c6a4de7ef3c1e09 +Author: Michael K <56452607+Mikek16@users.noreply.github.com> +Date: Tue Apr 11 15:47:01 2023 -0400 + + Initial commit, adding seeding input data cypress test (#175) + + * Initial commit, adding seeding input data cypress test + + * subtask #1 Assert header has 'Data' + + * Check the crop dropdown list size + + * Testing crop dropdown + + * Testing for crop dropdown length + + * Testing for crop dropdown length + + * test input date element enabled and has correct default value + + * Created test to check if crop selected has been enabled + + * Cleaning cypress test + + * Add test to check if any option was selected + + * Remove dropdown element reference via children function + + * combined similar 'it' blocks + + * Created test to check that the crop drop down does not have a selected value + + --------- + + Co-authored-by: nathang15 + Co-authored-by: infantlikesprogramming + +commit 870cdf25453d93699671db8d6d09d96dbc54a6da +Author: Grant Braught +Date: Tue Apr 11 00:17:26 2023 -0400 + + Added FD2 Example sub-tab for testing with database access (#198) + +commit 83f3a2facfdb813c554847e89c0914dc80f729fd +Author: sidlamsal <98344853+sidlamsal@users.noreply.github.com> +Date: Wed Apr 5 17:18:43 2023 -0400 + + Cypress Tests for Seeding Input Labor Defaults (#173) + + * added spec.js file + + * Added it block for testing header + + * checked the number of workers field is empty and enabled + + * checked the number of time worked field is empty and enabled + + * Added the "check correct dropdown for selected time unit" + "Checks Time units dropdown" + "checks time units default is minutes" + + * couple of spacing and alignment issues fixed. + + Signed-off-by: Foogabob <80643562+Foogabob@users.noreply.github.com> + + * changed a test name to be more descriptive + + Signed-off-by: Foogabob <80643562+Foogabob@users.noreply.github.com> + + --------- + + Signed-off-by: Foogabob <80643562+Foogabob@users.noreply.github.com> + Co-authored-by: EliasBerhe + Co-authored-by: Foogabob + Co-authored-by: Foogabob <80643562+Foogabob@users.noreply.github.com> + +commit a4b37a1038f9da6a112504f0b15e49f00aaa2b0f +Author: pranavm2109 <98339495+pranavm2109@users.noreply.github.com> +Date: Wed Apr 5 17:14:10 2023 -0400 + + Tested Seeding Input Type Defaults (#178) + + * created file to test seeding input type defaults + + * Filled out before each + + * Our team's test shows up in correct folder so we can run in Cypress + + * Added test to check if the Tray element is enabled + + * Added test to check if the Direct element is enabled + + * tested that neither the tray nor the direct element is selected + + * tested whether the message to prompt tray/direct element selection is visible + + * Tested that the form elements for Tray and Direct are not visible + + * Finished testing visibility of form elements - had to add one more + + * Deleted unnecessary (duplicate) test file from field kit + + * Adjusted the comment in the describe and added a descriptive comment at the top of the file. + + * merged second and third individual test into one test + + * changed data-cy attribute of message to prompt selection of tray or direct element + + --------- + + Co-authored-by: Alexandrialexie + Co-authored-by: andrewscheiner53 + +commit 453ac8615404b8afc79915bf8cbd3ba55126f36c +Author: braughtg +Date: Sat Mar 25 12:53:22 2023 -0400 + + Added clarifications to FD2School 06 + +commit f4e7d753d4d1e40ec1a9b561a4eb0da7d35c08d1 +Author: braughtg +Date: Sat Mar 25 12:53:01 2023 -0400 + + Added clarification to FD2School 08 question #31 + +commit 55f826bb51c4b2ca8fb3202aa1a08f28c70e0aa7 +Author: braughtg +Date: Wed Mar 22 12:53:36 2023 -0400 + + Clarified use of > in FD2 School activity 08. + +commit 2cb918f629a9b18e5c13e8cfe943ebd59d531d68 +Author: braughtg +Date: Wed Mar 22 12:16:06 2023 -0400 + + Typo fixes in FDSchool Activity 08 + +commit 8713b1dba10228c1c79f30c01784279433309dda +Author: braughtg +Date: Tue Mar 21 21:03:01 2023 -0400 + + Moved synch to start of FD2 School 08 to ensure doc updates are synched + +commit 15f78d76f33505fc803ebe76486a5d89ba9fcb46 +Author: braughtg +Date: Tue Mar 21 21:02:23 2023 -0400 + + Cleaned up CustomTableComponent example in the UI sub-tab of FD2 Examples + +commit a196881e7363eaeb1a9fec0371396fbf4c59a663 +Author: braughtg +Date: Tue Mar 21 20:26:22 2023 -0400 + + Fixed typo in data-cy=ri-* doc in CustomTableComponent + +commit b3f9c1f6fb8104aca68f656720e601ebf2c2d236 +Author: braughtg +Date: Tue Mar 21 13:24:59 2023 -0400 + + Added FD2 School activity 08 materials + +commit 13090541989bcf650dae9dc0220fd5edcd51ecb1 +Author: braughtg +Date: Tue Mar 21 11:34:15 2023 -0400 + + Added data-cy attribute to CustomTableComponent for the table body + +commit a86aed7fea3f86e552702851ca761f98ae7435c4 +Author: braughtg +Date: Mon Mar 20 22:55:43 2023 -0400 + + Fixed terminology in CustomTableComponent docs + +commit 09c3cbbc9e6fdb923d06ad3fab254bba928e2ecf +Author: braught +Date: Mon Mar 20 22:48:50 2023 -0400 + + Updated documentation for CustomTableComponent + +commit da8401b1a323332fe234b3cd9c06e3d6a7892085 +Author: braughtg +Date: Thu Mar 9 08:38:17 2023 -0500 + + Fixed typo on FD2School 07 - added () to children call + +commit 1fb657cd1a50b72076c95257c1e511f82d2b5a4b +Author: braughtg +Date: Tue Mar 7 20:57:26 2023 -0500 + + Modified test steps in FD2 School 07 + +commit cfc688ef44b0892e1c9ff54acdd03bcd33aef6e5 +Author: braughtg +Date: Tue Mar 7 15:11:37 2023 -0500 + + Added Cypres E2E Testing spike to FD2 School + +commit da2f86a8aa71254e6c65e865d08409c654425790 +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Sun Mar 5 15:00:35 2023 -0500 + + Surpressing Standard Name Error (#627) + + __Pull Request Description__ + + Closes #565. Adds a simple simple `@` in front of the cmd command that + maps the user ID's and names as a preprocessing function. This error + would appear when users attempted to access a page without being logged + into the page. The warning no longer appears due to this surpression and + a comment explaining the `@` placement is now present in the module + files. + + --- + __Licensing Certification__ + + FarmData2 is a [Free Cultural + Work](https://freedomdefined.org/Definition) and all accepted + contributions are licensed as described in the LICENSE.md file. This + requires that the contributor holds the rights to do so. By submitting + this pull request __I certify that I satisfy the terms of the [Developer + Certificate of Origin](https://developercertificate.org/)__ for its + contents. + +commit ef39a87e66dd78bc3738a6301616183eb9994cbb +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Fri Mar 3 15:06:31 2023 -0500 + + Encapsulating Button Cases for the CustomTableComponent (#626) + + __Pull Request Description__ + + Closes #599. This PR adds a computed property to the + `CustomTableComponent.js` to remove the multiple locations in the + template checking when to make the selection bar appear in the table. + Because it would be easy to miss these locations when adding new button + cases, this computed method serves as a general locations for adding + this button locations without worrying about making changes to the + template. + + Because this doesn't alter functionality, no additional testing was + added. However, the table's unit test was updated because the Cypress + tests for the CSV download broke with the reorganization of the project. + The path is currently fixed. This is fine because the structure of the + project doesn't change frequently but should we consider putting more + resources into making it dynamic to not worry about this in the future? + This is outside the scope of the issue this PR aims to resolve, but I + could make an issue if it's worthwhile. + + --- + __Licensing Certification__ + + FarmData2 is a [Free Cultural + Work](https://freedomdefined.org/Definition) and all accepted + contributions are licensed as described in the LICENSE.md file. This + requires that the contributor holds the rights to do so. By submitting + this pull request __I certify that I satisfy the terms of the [Developer + Certificate of Origin](https://developercertificate.org/)__ for its + contents. + +commit 4488554aa68841a4100ce6ef3050f73a20a7ed69 +Author: Grant Braught +Date: Thu Mar 2 15:53:22 2023 -0500 + + Added the pageLoaded pattern to barnKit and fieldKit (#624) + + __Pull Request Description__ + + The pageLoaded pattern has been applied to the barnKit and fieldKit + pages. This pattern places a hidden element in the page that has its + value set to true when all of the API calls in the `created` method have + completed. This is used in testing to ensure that the page has fully + loaded before the tests are run. + + This is important because when pages are loading information in the + `created` method, fast running tests were completing and the next test + was starting before those API requests had completed or even been + initiated. This was generating flakiness in the test suite. It would run + fine one time and not the next. Waiting for the page to load introduces + delays, but removes the flakiness. + + --- + __Licensing Certification__ + + FarmData2 is a [Free Cultural + Work](https://freedomdefined.org/Definition) and all accepted + contributions are licensed as described in the LICENSE.md file. This + requires that the contributor holds the rights to do so. By submitting + this pull request __I certify that I satisfy the terms of the [Developer + Certificate of Origin](https://developercertificate.org/)__ for its + contents. + +commit a23b4f9dbe4f6dc3e03bcfc9de141fa30fda5ae6 +Author: Grant Braught +Date: Wed Mar 1 20:26:38 2023 -0500 + + Clarified and fixed CustomTable data-cy attributes for input elements (#623) + + __Pull Request Description__ + + The CustomTableComponent `data-cy` attributes for input elements did not + uniquely identify the input element. In particular, if two elements had + the same type of input they would have had the same `data-cy` attribute + value. They now have the value `ri-columnHeader-input` where the + `columnHeader` is the header of their column in the table. This matches + what is done for cells when the table is not in edit mode. + + --- + __Licensing Certification__ + + FarmData2 is a [Free Cultural + Work](https://freedomdefined.org/Definition) and all accepted + contributions are licensed as described in the LICENSE.md file. This + requires that the contributor holds the rights to do so. By submitting + this pull request __I certify that I satisfy the terms of the [Developer + Certificate of Origin](https://developercertificate.org/)__ for its + contents. + +commit 28d5953fd9abf7f1985c9e37c474ffe1b9c01053 +Author: braughtg +Date: Wed Mar 1 10:38:43 2023 -0500 + + Clarification on severl optional extras in FD2School activity 06 + +commit e693e21f9dc16c1a46571f6f34f7582cdaf0a753 +Author: braughtg +Date: Tue Feb 28 13:15:46 2023 -0500 + + Fixed typo in #7a in activity 05 + +commit b776489f0932a87ffafb32a94b5ebaac2e72d56a +Author: braughtg +Date: Tue Feb 28 12:42:05 2023 -0500 + + Full update of activity 06 + +commit a744233c23ae93b87706035e38184df10d28d8d3 +Author: braughtg +Date: Tue Feb 28 12:41:50 2023 -0500 + + Updates to activity 05 + +commit 9060074f57105c97e42523658ab431a5389c234b +Author: braughtg +Date: Tue Feb 28 12:41:33 2023 -0500 + + Updates to 02 pdf + +commit 402d0d1185febb54ad25e46c7b3ecbf76461bea5 +Author: braughtg +Date: Tue Feb 14 12:37:28 2023 -0500 + + Update to FD2School Activity 05 + +commit d72a6d6aceb5d44101ee469e9680c4cbb121fff3 +Author: braughtg +Date: Tue Feb 14 12:37:02 2023 -0500 + + Minor typo fixes in FD2School activity 04 + +commit b89dd443d9890848f297ee365ff12740ae8fd534 +Author: braughtg +Date: Sun Feb 12 15:54:30 2023 -0500 + + Updated FD2 School activity 04 + +commit ed56a205eb0658fa07bda9564dfef6a4fa12d861 +Author: braughtg +Date: Sun Feb 12 15:54:15 2023 -0500 + + Updates to FD2 School activity 03 + +commit e4ab6786307e9a4f7a0c8300cf89828a33197a09 +Author: braughtg +Date: Sun Feb 12 13:13:32 2023 -0500 + + Added Q to 03 Vue Data Binding to convert draft PR to full PR + +commit 64be3c243c63bf6341fa43d4673529066c25f284 +Author: braughtg +Date: Sat Feb 11 08:40:21 2023 -0500 + + Fixed Q1 in FD2 School 03 Vue Data Binding. + +commit 1e1badc45383fe968a7eb0563d8dd199d469fca1 +Author: braughtg +Date: Tue Feb 7 12:54:39 2023 -0500 + + Fixed typos and formatting in FD2School activity 01 + +commit 5a4bcc7b1c3d7dafdc791b497ee0397713d855c7 +Author: braughtg +Date: Mon Feb 6 17:00:34 2023 -0500 + + Removed review request question in FD2 school activity 02 + +commit 20cebefb656429953a4ce3ac0e3db8cd48a09160 +Author: braughtg +Date: Sat Feb 4 17:53:28 2023 -0500 + + Fixed typos in FD2School Activity 03 + +commit 9569104335ba15c6ab74ac4b9071ea88b07febcd +Author: braughtg +Date: Sat Feb 4 16:47:10 2023 -0500 + + Corrected Field -> Area in HTML activity 02. + +commit 79f2c7ea27c8863d405343c57575c0df29114f73 +Author: braughtg +Date: Sat Feb 4 15:48:57 2023 -0500 + + Standardized on double quotes on activity 03 + +commit 08a643c7dc2f48393ed787d674fe77b06cf6e5ed +Author: braughtg +Date: Fri Feb 3 16:17:09 2023 -0500 + + Edits to FD2School activity 03 + +commit ce7531fdac5f7d076fd736b2f1f27aac05bb1d38 +Author: braughtg +Date: Fri Feb 3 15:56:42 2023 -0500 + + Updates to FD2School activity 03 + +commit 2614919cb086942b981142dec17ffb4724357591 +Author: braughtg +Date: Fri Feb 3 15:55:47 2023 -0500 + + Minor edits to activity 02 + +commit 939574115e5892459d6e317ac6b8ff273fbbd9f7 +Author: braughtg +Date: Mon Jan 30 14:17:31 2023 -0500 + + Added linking to issue in PR to activity 02 + +commit 639b03c07841688d8b7d8f04bbf9b91df4e875d5 +Author: braughtg +Date: Sat Jan 28 12:08:15 2023 -0500 + + Updated FD2School Activity 02 + +commit 06d624d56122cdb8238a1df651b5ed3e7c6d1232 +Author: braught +Date: Sat Jan 28 11:35:18 2023 -0500 + + Updated link in FD2School info tab + +commit f6c2d526e03c7ea3fe26800bf86565769beef381 +Author: braughtg +Date: Sat Jan 28 09:55:35 2023 -0500 + + Updated FD2School Activity 02 + +commit 5c16a93325b502cb091535ce7638f16a42764fa3 +Author: Grant Braught +Date: Fri Jan 27 14:52:58 2023 -0500 + + Emphasized use of WSL Terminal for Windows on appropriate steps. + + Signed-off-by: Grant Braught + +commit 9074be712fa88471c745bfe172aed4e8dfd947a2 +Author: Grant Braught +Date: Fri Jan 27 14:50:57 2023 -0500 + + Emphasized use of WSL terminal for Windows at appropriate steps. + + Signed-off-by: Grant Braught + +commit 44b8b2f633134347dcbdf4d0cf8b96fb8fb5eefc +Author: Grant Braught +Date: Thu Jan 26 14:07:45 2023 -0500 + + Quoted path in fd2_up.bash to allow spaces (#618) + + __Pull Request Description__ + + Closes #617 + + --- + __Licensing Certification__ + + FarmData2 is a [Free Cultural + Work](https://freedomdefined.org/Definition) and all accepted + contributions are licensed as described in the LICENSE.md file. This + requires that the contributor holds the rights to do so. By submitting + this pull request __I certify that I satisfy the terms of the [Developer + Certificate of Origin](https://developercertificate.org/)__ for its + contents. + +commit 9940f2733fcb47f513dcf3c24d4b8527ddc69690 +Author: Grant Braught +Date: Thu Jan 26 08:02:15 2023 -0500 + + Added information about how to start WSL Terminal for Windows. + + Signed-off-by: Grant Braught + +commit df3152bd55035e83c1b8c592596f9c65be39b8dd +Author: Grant Braught +Date: Thu Jan 26 07:57:30 2023 -0500 + + Fixed a broken link to the Other Ways to Contribute document. + + Signed-off-by: Grant Braught + +commit e3d1a1a7c17ca2b8413cce8660c8ebe0d7e47eac +Author: Grant Braught +Date: Wed Jan 25 07:44:27 2023 -0500 + + Fixed broken FD2School links (#616) + + __Pull Request Description__ + + The activities in the `FD2School/materials` directory were renumbered + but the links were not updated. This PR updates the links to match the + filenames of the materials. + + Co-authored-by: John MacCormick + + --- + __Licensing Certification__ + + FarmData2 is a [Free Cultural + Work](https://freedomdefined.org/Definition) and all accepted + contributions are licensed as described in the LICENSE.md file. This + requires that the contributor holds the rights to do so. By submitting + this pull request __I certify that I satisfy the terms of the [Developer + Certificate of Origin](https://developercertificate.org/)__ for its + contents. + +commit a29dbcc9bfa0ab779af84293cf9fae6bdac049df +Author: braught +Date: Thu Jan 19 15:50:46 2023 -0500 + + Renumbered FD2 Schvities + +commit 09441cfa8aec6aa2fb5760d2da7c025d705ed692 +Author: braught +Date: Thu Jan 19 14:46:49 2023 -0500 + + Updates to FD2School activites 01 and 02 + +commit b2f439f0748a9860fc05eadc850760a3cd50fc78 +Author: braught +Date: Thu Jan 19 14:46:31 2023 -0500 + + Small documentation updates + +commit 363ec3e0a166b31509b71c465257430170446514 +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Wed Jan 18 13:53:54 2023 -0500 + + Backend and Frontend Fixes for Transplanting Report (#615) + + __Pull Request Description__ + + Closes #562. This issue makes some changes to the `updateRow` function + located in the Transplanting Report HTML file + [[here](https://github.com/FarmData-2-Dev-Team-2022/FarmData2/blob/fixTransplantingBackend/farmdata2/farmdata2_modules/fd2_barn_kit/transplantingReport/transplantingReport.html)]. + These changes are not accompanied by any Cypress e2e testing as that is + a separate issue to be addressed in issue #578. As a result, these + changes have been tested by sight using Hoppscotch. + + Additionally, this PR makes a quick fix of the filters for both the + Seeding Report and Transplanting Report where editing once would + permanently disable the filters until the page was refreshed because the + name of the edit cancellation event was changed and the pages were not + updated accordingly to reflect this change. + + This PR also brings up the topic of #585 (and #466) of what should be + edit-able. I disabled the ability to edit `bed feet` in the + Transplanting Report because transplanting logs don't have quantity data + for `bed feet` but also enabled the ability to edit `row/bed` because + that does exist in the logs' quantity data. However, should users be + allowed to edit that data? This is beyond the scope of this PR but + wanted to quickly mention this quick thought that occurred to me whilst + making this fix. + + --- + __Licensing Certification__ + + FarmData2 is a [Free Cultural + Work](https://freedomdefined.org/Definition) and all accepted + contributions are licensed as described in the LICENSE.md file. This + requires that the contributor holds the rights to do so. By submitting + this pull request __I certify that I satisfy the terms of the [Developer + Certificate of Origin](https://developercertificate.org/)__ for its + contents. + +commit f2085adeee37045075d6906866663857799cdab1 +Author: braught +Date: Mon Jan 16 19:38:01 2023 -0500 + + Touched up docker test output description + +commit 604aa1a8e1425e5f68b8d8c355c172af45d0be5c +Author: braught +Date: Mon Jan 16 19:36:22 2023 -0500 + + Added output and images to identify expected behavior + +commit 294af3151a0b107842e2cc63d4c596847df7346f +Author: Grant Braught +Date: Mon Jan 16 19:20:27 2023 -0500 + + Reorganizes the Documentation across the repo. (#614) + + __Pull Request Description__ + + This PR reorganizes the documentation as follows: + - CONTRIBUTING focuses on making a first contribution. + - A RESOURCES page is added serves as a pointer to all other + documentation. + - READMEs for each type of work (modules, libraries, api, etc.) are kept + with their code and linked from RESOURCES. + - A root level `docs` folder is added to hold "big picture" docs that + are not tied to a specific directory and are linked from RESOURCES. + + - This is not quite complete but is largely complete. After this is + merged it will still be necessary to write a few docs, including: + - Revise `farmdata2_modules/README.md` + - Write `farmdata2_modules/fd2_example/README.md` + - Write `farmdata2_api/README.md` + + New issues should be created for each of these when this PR is merged. + + Closes #609 + Closes #610 + Closes #572 + + Changes to the INSTALL.md document were + Co-authored-by: John MacCormick + as adapted from his PR #612. + + --- + __Licensing Certification__ + + FarmData2 is a [Free Cultural + Work](https://freedomdefined.org/Definition) and all accepted + contributions are licensed as described in the LICENSE.md file. This + requires that the contributor holds the rights to do so. By submitting + this pull request __I certify that I satisfy the terms of the [Developer + Certificate of Origin](https://developercertificate.org/)__ for its + contents. + +commit 3109297906a708de99087923437bd482382e6d3a +Author: Grant Braught +Date: Fri Jan 13 12:04:05 2023 -0500 + + Added ENV var to prevent WSL warning for Codium (#611) + + __Pull Request Description__ + + When running VSCodium on Windows/WSL it detected that it was running in + Docker and suggested using it under WSL directly. The added environment + variable silences this warning. + + --- + __Licensing Certification__ + + FarmData2 is a [Free Cultural + Work](https://freedomdefined.org/Definition) and all accepted + contributions are licensed as described in the LICENSE.md file. This + requires that the contributor holds the rights to do so. By submitting + this pull request __I certify that I satisfy the terms of the [Developer + Certificate of Origin](https://developercertificate.org/)__ for its + contents. + +commit 5a77f024a2191331921ef2ef65c5b52327369ef0 +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Wed Dec 28 12:33:12 2022 -0500 + + Report Pages: Updating Default Date (#605) + + __Pull Request Description__ + + Closes #539. This branch uncomments some pre-existing code that already + set the date to the first day of the year. + + --- + __Licensing Certification__ + + FarmData2 is a [Free Cultural + Work](https://freedomdefined.org/Definition) and all accepted + contributions are licensed as described in the LICENSE.md file. This + requires that the contributor holds the rights to do so. By submitting + this pull request __I certify that I satisfy the terms of the [Developer + Certificate of Origin](https://developercertificate.org/)__ for its + contents. + +commit 23eedcbf01dfb7bf3c3dda1f7d442d879f422cf3 +Author: Grant Braught +Date: Fri Dec 23 22:14:15 2022 -0500 + + Added id to PayLoad of CustomTable edit-clicked event (#604) + + __Pull Request Description__ + + This PR adds the id of the row being edited in the CustomTableComponent + to the `edit-clicked` event. It makes corresponding changes in the unit + tests for the component and in the UI example page and its tests. + + --- + __Licensing Certification__ + + FarmData2 is a [Free Cultural + Work](https://freedomdefined.org/Definition) and all accepted + contributions are licensed as described in the LICENSE.md file. This + requires that the contributor holds the rights to do so. By submitting + this pull request __I certify that I satisfy the terms of the [Developer + Certificate of Origin](https://developercertificate.org/)__ for its + contents. + + Co-authored-by: Chris <31524934+FutzMonitor@users.noreply.github.com> + +commit 8466707f5b144ae7f5287a14cadc4d1fe1007af0 +Author: Grant Braught +Date: Fri Dec 23 20:25:12 2022 -0500 + + Updated fd2-down.bash to remove dev container. (#603) + + __Pull Request Description__ + + Updates fd2-down.bash to remove the dev container when FarmData2 is shut + down. There was an issue when running in WSL that is addressed by this + fix. The fix is a little unsatisfactory in that the writeable later in + the dev container is lost. Thus, any local installs done are lost when + FarmData2 is taken down. If this presents a challenge for lots of + developers then this issue should be revisited. + + This closes #584. + + --- + __Licensing Certification__ + + FarmData2 is a [Free Cultural + Work](https://freedomdefined.org/Definition) and all accepted + contributions are licensed as described in the LICENSE.md file. This + requires that the contributor holds the rights to do so. By submitting + this pull request __I certify that I satisfy the terms of the [Developer + Certificate of Origin](https://developercertificate.org/)__ for its + contents. + +commit d83f2d1b490566903840b97ff5e6cbaa979dd4ab +Author: Grant Braught +Date: Fri Dec 23 16:56:32 2022 -0500 + + Reorganization of the farmdata2 modules (#602) + + __Pull Request Description__ + + This PR reorganizes the code for the FarmData2 modules and api. There is + now a `farmdata2` directory that contains all of the api and application + code for FarmData2 in a single location. In that directory there are + directories for `farmdata2_api` and `farmdata2_modules`. + + In the `farmdata2_modules` directory there is a directory for each of + the modules (e.g. `fd2_barn_kit`, `fd2_example`, etc) and the + `resources` directory. + + In the directory for each module there are the `.info` and `.module` + files along with any other files necessary to create the Drupal module. + There is then a directory for each sub-tab that appears in the farmOS + UI. For example, in the `fd2_example` folder there are folders for + `Info`, `Vars`, `Maps`, `API`, `Cache` and `UI`. + + In each of the sub-tab folders is the `.html` file that contains the + code for the sub-tab along with a collection of `.spec.js` files that + hold the e2e tests for the sub-tab. + + This organization should make it easier to create new sub-tabs and to + organize the tests for each sub-tab. + + The testing and documentation scripts were moved up to the `farmdata2` + directory so that they can now be used both with the modules and the + api. + + --- + __Licensing Certification__ + + FarmData2 is a [Free Cultural + Work](https://freedomdefined.org/Definition) and all accepted + contributions are licensed as described in the LICENSE.md file. This + requires that the contributor holds the rights to do so. By submitting + this pull request __I certify that I satisfy the terms of the [Developer + Certificate of Origin](https://developercertificate.org/)__ for its + contents. + +commit a3d9228ffe879d632653cb8b8045a7c74b381960 +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Mon Dec 19 09:48:32 2022 -0500 + + Updating Export Button Functionality (#591) + + * CustomTableComponent Changes + 1. Updated the exportCSV() function to only print rows whose IDs can be found in the indexesToAction array. + 2. Made sure the button is disabled when nothing is selected just like the delete button and custom buttons. + + * CustomTableComponent Changes + 1. Changed the way the csv file object was created. Apparently using the URI encoder limits the amount of data that can be downloaded into the csv. Using a blob object seems to solve this issue. + 2. Made it so that if the delete or custom buttons are not present, the select a row feature still appears if the dev allows for csv buttons. This did not exist before, probably an oversight due to export functionality being considered after the fact. + CustomTable Unit Test Changes + 1. Updated the unit test to verify that the export button is unclickable when no rows are selected. Made sure downloading one row is assured. Made sure downloading multiple rows is assured. + + * Removed 'Only' from the CustomTable Unit Test + + * Removed Double // + + * CustomTable Changes + 1. Added the ' -' back to replacing new lines among other things + +commit a1fc5d6ae18975e624c9c2679164e00421589e41 +Author: Grant Braught +Date: Sun Dec 18 18:20:51 2022 -0500 + + Add Custom FarmData2 API container (#596) + + Adds a container for an express API. This api will allow FarmData2 to have custom API endpoints that gather data directly from the farmOS database rather than using the farmOS API. This can improve performance because the farmOS data model is general and many FarmData2 views require joins across farmOS tables. + + Co-authored-by: JingyuMarcelLee + +commit e45e6edab2d4142803bdd8fe6489149ddbc6d06b +Author: Grant Braught +Date: Sat Dec 17 20:19:53 2022 -0500 + + Added Chromium browser to image (#594) + +commit 3c6a1b2a2620249c9c433456797212a8fabf1b9d +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Mon Dec 12 14:26:54 2022 -0500 + + Refactoring CustomTableComponent (and other updates) (#570) + + * Added Two New Files for the Updated CustomTableComponent + 1. These files will be updated with the request changed in the issue + 2. This initial commit is to make sure the remote is working correctly + + * Loaded Test Component into UI Page + 1. Had to add a script path to the example tab because the new test component wasn't loading in otherwise + 2. Messing around with making things appear with the new structure of the CustomTableComponent + 3. Modifying the template to iterate through the array of objects correctly (in progress) + 4. Seriously need to look into updating some of the computed methods that deal with visibility since visibility has been updated + + * Continued Work on Headers and Input Types + 1. Removed number box input type and replaced it with the RegexInputComponent. Its implementation is unfininshed since it still needs to check for valid inputs and make sure that the save button is disabled when an invalid input it inputted. However, these changes will come after the other abstractions are completed. + 2. The buttons have been abstracted. I haven't deleted all the code for the predefined buttons since I'm using them as a template but the new general button isn't working as intended. It's not rendering in the table when the conditions for it to be rendered are being met. + + * Added the Boolean Input Type + 1. Added the Boolean type to the CustomTableComponent. This is a checkbox that, when clicked, that entire row has been selected to be passed for some function (whatever that may be). + 2. Just like the button, the checkboxes don't want to render into the table. Hopefully these two bugs will be fixed in the next commit + + * Rendering Incorrectly During Edits + 1. The checkboxes and buttons are now rendering. + However, whatever is being passed into the table row data (say boolean/button) to indicate that we want a column of checkboxes/unique button is actually being filled into the table data. However, the actual checkbox/button is visible when you want to edit that row. It's as if somehow the states are reversed but we don't want to reverse them back (i.e button/checkbox is rendered but when row is edited they revert to text button/checkbock). We want them to always be rendered as the proper element and not text regardless of whether that row is being edited or not + + * Rendering Issue Persists, Continuing on with other Features + 1. The rendering issue has been partially solved by removing the editing row index inside the Vue conditional. However, for the time being, this means that the element being rendered in (e.g. checkbox/button) are manipulate-able whilest editing rows. This will have to be patched out later (or a better implementation should be explored). + 2. Implemented a function for checking all the checkboxes in a column. Currently it changes the Vue data for that row, but it's currently a little buggy and the checkboxes themselves are not checked even though the row itself is checked inside the row data. + + * Solved Rendering Problem, Select All & Select Continue to Have Problems + 1. The rendering issue has been solved, the rows data doesn't populate the div anymore in the table for checkboxes/buttons specifically. If additional functionality is added to the table then those also have to be added to the conditional. + 2. Disabled ALL checkboxes/buttons during edits. This choice should be discussed. + 3. Select All works but still continues to make no changes to the actual visual tick in the box which is an indication to the user that the box is actually checked + 4. Select function declared but currently unoperational + + * Modified Boolean Type + 1. Removed the selectAll method from this input type since you shouldn't be able to check multiple boxes when only one checkbox can be checked at a time when being edited. This keeps functionality consistent. + 2. Used a more clever trick for the select function which just grabs the column index as well to change the checkbox's boolean value which gets rid of the for loop entirely. + 3. Removed the header box for the boolean input type, it's just a regular text header now. + + * Completed Button Additions + 1. Custom Buttons now emit an event for the page to handle + 2. Added a leftmost column that dictates which rows will be affected by the custom button's event + 3. Added a select all feature which allows you to select all the rows + 4. The leftmost column is disabled during edit and so are the custom buttons + 5. None of these changes apply to the export button. + The new thing on the agenda is the RegExp implementation, after that the refactored CustomTable should be done + + * Updated Leftmost Column & Button Changes + 1. Disregard changes to the old CustomTableComponent file. I use it as a testing ground for understanding how the table works and thus making the improved version better. + 2. The leftmost column needs a bit of work due to some inconsistencies between select all and individual selects of the buttons. + 3. The buttons are now using their own emits to grab their things from the child component to the parent page. + 4. RegexInputComponent is still not updating and still has the same issues. + + * Updated Checkboxes For Buttons & Cancel Button Moved + 1. Fixed a bug where selecting all and then unchecking one of the rows caused the row to effecively 'disappear' and didn't allow for any action on it anymore. + 2. Updated the clone method in the UI page to be more secure: uses IDs for rows now and shows a case of updating the IDs for a cloned row because otherwise buttons share the same IDs and checking/unchecking one does the same for the other. + 3. Moved the cancel button down to the edit button's space and it only appears when you're editing that one row. It's a bit unpleasing UI wise, but it's not that intrusive. + + * RegexInputComponent Integration into Refactored CustomTableComponent + 1. The RegexInComponent finally works with the refactored CustomTableComponent. + However, the editing is done in a rather indirect way. Unlike the other types of editing types inside the table, the RegexInputComponent has to use it's @input-changed and pass it to another function to make the necessary changes. + Additionally, a change had to be made to the RegexInputComponent. + The v-model had to be removed as well. + + * Changes to RegexInputComponent Integration + 1. The default value prop is now being provided with the editedRowData.data[i] to be consistent with the rest of the input types in the table. + 2. Made some changes to the setMatchVal (previous logic was pretty roundabout) + 3. RegexInputComponent had it match emit only on change restored and moved the emitting of the value until after that check to give the table time to update its own isMatch value before adding the value into the editedRowData.data[i]. This fixes a bug where the isMatch value wasn't being updated in time and thus invalid values were being passed into the regex-input which broke it even when the value inside was altered to a valid one. + + * Updated Code According to Feedback in Code Review + 1. UI PAGE CHANGES + Removed the match value from the Regex input type, was leftover from initial design which was changed. + Renamed 'box' for button box colors to 'buttonClass' to be more inline with what it's actually attached to in the component. Additionally the 'header' was renamed to 'hoverTip' to be more self explanatory. + 2. CUSTOMTABLECOMPONENT CHANGES + Changes the data-cy values for the buttons to be inline with the data-cy values of the pre-existing buttons. Got rid of any instance of 'btn' and just used 'button' instead. + Dropped the '-event' from the button emit and it just now emits the name of the event for the parent page to catch. No more '@eventName-event' just '@event' in the parent page now. + Couldn't find anything about the payload being copied for the emit so in the meantime the payload is being copies to make sure an empty payload isn't being sent. + Got rid of a potentially unobservable bug of multiple select all boxes being overlapped because of an unnecessary v-for when creating the button in the header. + Cleaned the columns from any dated code (boolean types used to be separate and checking for cases that weren't necessary anymore) + Updated data-cy for all the row data (e.g row0-date). + Moved v-if for the table row data to the top for each HTML element + Removed select function for boolean types. Unnecessary. + UpdateSelectAll function has been rewritten. NOTE: should receive another lookover for soundness. + Linger CustomTableComponent computed methods removed. + Deep watch commented out in the meantime. + 3. REGEXINPUTCOMPONENT Changes + Simply added a comment explaining why the match value is initially null + + * More Code Review Changes + 1. CUSTOMTABLECOMPONENT CHANGES + Simplified the logic for selectAll function + Removed all debugging code (i.e console.logs) + + * Radical Changes + 1. DELETED + Deleted the old CustomTableComponent + Deleted the old CustomTableComponents unit test + Deleted a script from the example.info file for the refactored CustomTableComponent + 2. RENAMED + Renamed the newCustomTableComponent to CustomTableComponent + Same as above for the unit test + 3. PROBLEMS + All sub-tabs using the CustomTableComponent are broken, including the UI page. + Unit test for the CustomTableComponent doesn't want to start. + + * Removed Lingering Mentions of the NewCustomTableComponent + 1. UI PAGE + Removed any lingering method names that had the 'new' label to differentiate them from the old CustomTable methods. + 2. CUSTOMTABLECOMPONENT.js + Removed any lingering mentions of the 'NewCustomTableComponent' from the file. + + * Fixed Bug where CustomTable Wasn't Initialized Properly + 1. CONFIG INFO + Moved the RegexInputComponent's initialization higher to fix a bug where it was being initialized after the CustomTable was trying to use + 2. CustomTableComponent.js + Added the export at the top for the RegexInputComponent + + * CustomTableComponent Changes + 1. Fixed a bug where the leftmost column was still actionable when editing a row + 2. Fixed a bug where the delete button was still enabled while editing. This allowed for an edited row to be deleted during editing which kept the table stuck in an editing state + 3. CONCERN: The CustomTable needs to be fed a customButton array. Even if its empty, it needs to be feed one or it runs into rendering errors. This should be discussed. + CustomTableComponent Cypress Changes + 1. All tests have been updated to reflect the refactoring of the CustomTable + 2. The CSV context no longer works due to a OS process issue + 3. Save button test isn't working properly + RegexInputComponent Changes + 1. Some small changes. + RegexInputComponent Cypress Changes + 1. Made some small changes to account for the isMatch being null initially + UI Changes + 1. Some small UI changes were made to test the CustomTable visually. + + * Changes to UI Page + 1. Removed (hopefully) remaining vestiges of the 'new' variable names from the UI page. The last remaining instances of it had not been removed from the show/hide column button. + Changes to UI End-to-End Test + 1. Updated CustomTable tests. + Changes to CustomTableComponent + 1. Updated the finishEditRow() function to correctly update the JSONObject returned to the page. For whatever reason, it didn't actually affect editing in any visible capacity but this should fix any unforeseeable bugs (hopefully). + 2. Gave the CustomButtons prop a default value of empty array to avoid problems when devs do not give a CustomButton prop to their table which caused rendering issues due to a null assignment + Changes to CustomTable Unit Test + 1. Thanks to the fix of the finishEditRow(), the save tests are now working as expected. + 2. CSV context suite has been restored but only works within the vnc (fd2dev container). + + * Changes in Seeding Report + 1. Reconfigured the table to remove the input types, headers, and visible columns which were all combined into the new tableColumns data. + 2. There's a bug where the user, crop, and area maps aren't being properly loading in for editing. + 3. The table can display the correct headers according to the type of seeding. + 4. Delete and edit functionality need to be updated. + Changes in Transplanting Report + 1. Reconfigured the table to remove input types, headers, and visible columns which were all combined into the new tableColumns data. + 2. There's a bug where the user, crop, and area maps aren't being properly loaded in while editing + 3. The table needs to have its edit and delete fuctionalities updated. + Changes in UI Page + 1. Simple changed a small inconsistency in the columns data. + + * Seeding Report Changes + 1. Updated the deleting function so that it can support multiple deletes. + 2. Removed debugging code and reminants of old table data. + Transplanting Report Changes + 1. Updated the deleting function so that it can support multiple deletes. + CustomTable Changes: + 1. Fixed a bug where regex inputs weren't returning anything in the json object so updating the backend wasn't happening. + + * Added Documentation + Transplanting Report Changes + 1. Removed debugging code + + * Changes to Seeding Report + 1. Added a promise check for the deletion of logs. + Changes to Transplanting Report + 1. Added a promise check for the deletion of logs. + Changes to UI Page + 1. Added a promise check for the deletion of rows + Changes to CustomTableComponent + 1. Added a deep watch that's supposed to keep an eye on the columns prop and update it on the table end. It's currently not functioning correctly. + + * Seeding Report Changes + 1. Returning the columns prop in the CustomTable through a computed propety now. The generation of the user, area, and crop name arrays have also been separated into their own properties in anticiaption of another issue. + 2. Removed old code + CustomTableComponent Changes + 1. Removed watcher. + 2. Left updatedColumns piece in anticipation that it might be used again + + * CustomTable Changes + 1. Commented out updatedColumns piece + + * Seeding Report Changes + 1. Realized that I didn't save the file and thus my removal of old code wasn't present in the last commit. + Transplanting Report Changes + 1. Made sure it was using the same computed property structure as the Seeding Report page. + +commit e9512f3450729a61148aa0920c7e069c6fc59df7 +Author: Grant Braught +Date: Sat Dec 10 18:10:40 2022 -0500 + + Updated INSTALL.md - fixed typos (#587) + +commit 88952e66e223aa49c6abf3c62a7f98795a7206e0 +Author: Grant Braught +Date: Sat Dec 10 17:47:42 2022 -0500 + + Dev cont patches (#586) + + * Added some git configuration. + + * Pinned cypress versions + +commit 310fd221bd3b31e72d73852c7016f881513637a8 +Author: Grant Braught +Date: Sun Nov 6 16:51:21 2022 -0500 + + Patch Dev Container to ensure JSDoc and its Vue Dependencies are installed. (#582) + + * Installed JSDoc and its Vue dependencies in dev container + + * Patched JSDoc.json for global install + +commit 211e1aba0028e39d60502e784a38a6bfe9793cb3 +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Sun Nov 6 15:09:17 2022 -0500 + + Fixed Average Row Feet/Hour Calculation (#576) + + 1. Seeding Report HTML + Change where the row feet was being grabbed from because the index was incorrect. + 2. Seeding Report e2e + Unchanged because it'll be addressed in another issue. + +commit 6dfac2f6a2ede8848fbca94ac885cf5faacfee24 +Author: braughtg +Date: Tue Nov 1 11:53:52 2022 -0400 + + Treat windows(WSL) like Linux when starting fd2 + +commit f97484dc2d49cddd76b6977a2f4ba166b9f156f7 +Author: Grant Braught +Date: Thu Oct 27 11:33:04 2022 -0400 + + Refactoring Containerization (#569) + + Move FarmData2 to a fully containerized model. Images are built by maintainers and hosted on dockerhub to freeze images. Both amd64 and arm64 are supported. A containerized development environment is also provided via VNC and noVNC. + +commit f69688abcb75d0cd3571e4c6594069f0179b8030 +Author: braughtg +Date: Tue Oct 25 08:19:28 2022 -0400 + + Added theia container back - had been commented out by mistake + +commit 8a34aba167115b652852df183ceac11c7bcc5130 +Author: braughtg +Date: Mon Oct 10 14:38:52 2022 -0400 + + Clarified some licensing language + +commit 23baeedcac9e6ac91fb12bb5f9dfe7962677881c +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Thu Jul 28 09:44:28 2022 -0400 + + Repairing Updating Rows from within the Seeding Report (#551) + + * Everything updates except for Crop, Area, and Date. These need to be updated. + 1. Cypress tests need to be added to more rigorously test this change + + * Updated Cypress Test to Be More Rigorous + 1. There's a bug where changing area and quantity is causing a 422 status code. + 2. The Cypress test seems to not be updating the values. This has to seriosuly be investigated. + + * Updated Seeding Report Page + 1. Fixed a bug where updating the quantity and the area at the same time would result in a 422 status code from the server. + 2. FIxed a bug where editing date, crop, area, comments, or user alongside any of the quantities would not update the log on the frontend with the appropriate information. + 3. Added the IDToAreaMap in order to fix an issue where area would be empty inside the report page when updating it alongside other quantities. + 4. Still need to update/add Cypress test(s) to test these changes + + * Removed the Addition of the IDToAreaMap Solution + 1. Made sure that the log inside of the report is accurate to the backend + + * Adding More Rigorous Cypress Tests for the Editing Functionality + 1. Unfinished currently because we have to create a direct seeding log and an asset for testing purposes and the asset is producing an error. + + * Completed the Cypress Testing for Updating Logs + +commit 3a1bc55b1d842b7998ebc33ff4d7bb885bda0dd8 +Author: Jingyu (Marcel) Lee <46755208+JingyuMarcelLee@users.noreply.github.com> +Date: Wed Jul 27 14:40:01 2022 -0400 + + Issue #558 error banner refactor (#564) + + * Created template for the component + + * completed component and tests + + * refactored seeding input and the tests + + * refactored seeding report + + * made changes so that changes in component is accomodated + + * work in progress + + * refactored all pages + +commit 4d73c2e46defb68f49e122afb242fbca25a40274 +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Wed Jul 27 09:09:28 2022 -0400 + + Removed Anonymous from the User List in Seeding Report (#555) + + * Updated the FarmOSAPI User Functions to Remove Anonymous from the List + * Updated FarmOSAPI Cypress Test + + Co-authored-by: Marcel Lee + Co-authored-by: Grant Braught + +commit e66369015314adcadf06f1b5744a9ac49057160e +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Tue Jul 26 17:28:07 2022 -0400 + + Removed a lingering Only Inside of the FarmOSAPI Cypress Test File (#563) + +commit f334e5a7a9c39d61e6d6b9fac9d4522250fcb5be +Author: Jingyu (Marcel) Lee <46755208+JingyuMarcelLee@users.noreply.github.com> +Date: Tue Jul 26 17:06:42 2022 -0400 + + Issue #557 error banner component (#561) + + * Created template for the component + + * completed component and tests + + * added comment for doc + + * generate doc + + * added missing hide banner test + + * set default err message + +commit fb7eb118f0911adec3131b8d4ef555091bf52d9b +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Tue Jul 26 16:53:07 2022 -0400 + + Changed all the Replace Functions to ReplaceAlls to Capture Everything (#560) + +commit 7f2d4e44e0b545af12af3524ef40bab9da6c113e +Author: Jingyu (Marcel) Lee <46755208+JingyuMarcelLee@users.noreply.github.com> +Date: Mon Jul 25 16:17:44 2022 -0400 + + fixed typo which fixed bug (#556) + +commit 1804e1f21ca4a093b6c49ac3f822adc78ace46ca +Author: Jingyu (Marcel) Lee <46755208+JingyuMarcelLee@users.noreply.github.com> +Date: Mon Jul 25 15:03:48 2022 -0400 + + Issue #548 Adding Regular Expression Constants (#552) + + * created regular expresssion map and refactored seeding input + + * added documentation header + + * generated documentation using Jsdoc + +commit 8ef402a0c2801c22c52d8eab16029383ba0436f9 +Author: Jingyu (Marcel) Lee <46755208+JingyuMarcelLee@users.noreply.github.com> +Date: Thu Jul 21 16:31:23 2022 -0400 + + Issue541 seeding input optional labor (#550) + + Got rid of .only + +commit b96a568262afc116958e9bedf29e34adde5ea4fd +Author: Jingyu (Marcel) Lee <46755208+JingyuMarcelLee@users.noreply.github.com> +Date: Thu Jul 21 15:12:35 2022 -0400 + + Issue #541 seeding input optional labor (#547) + + When labor data is optional, ensures that neither or both # of workers and hours/minutes are valid and specified. + +commit 005d04e67c1ab760cd47e10f10295d1aaf9449f9 +Author: Jingyu (Marcel) Lee <46755208+JingyuMarcelLee@users.noreply.github.com> +Date: Thu Jul 21 14:18:55 2022 -0400 + + completed changing the component and testing (#545) + + Added watch for regex prop so the expression can be changed dynamically. + +commit 9514664c381fefe1e0e590b32771bf42bec4c493 +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Thu Jul 21 11:48:36 2022 -0400 + + Addition of a Transplanting Report (#542) + + * Transplanting Report Added to Barn Kit Module + 1. Modified BarnKit module to include a new sub-tab for the Transplanting Report. + 2. Added the Transplanting Report to the Barn Kit module as a sub-tab. + 3. Added its test file (currently empty). + + * Removed Unnecessary Code from the Transplanting Report + 1. Still need to update the code for editing to work correct + 2. Still need to update the code for deleting to work correct + 3. Touch-ups of the code and a discussion of original seeding dates needs to be had + + * Transplanting Report Almost Complete + 1. The edit and the delete methods need to be looked at closely + 2. Copy and pasted the Seeding Report's test for the Transplanting Report for now + + * Added Cypress Testing for the Transplanting Report + 1. Adjusted most of the Cypress tests for the Transplanting Report. Editing and deleting need to be analyzed. + 2. There's a bug where h.data is null for the cropList that needs to be explored. + + * Updated Config Tests + 1. The Config tests now properly work on the page. Some additional tests still need to be added for summary tables though. + 2. Edit/Delete still need to be fixed + + * Committed for Reviewing Purposes + 1. The edit/delete Cypress test are still throwing the 406 error, so I'm committing my changes so that others can see what I'm seeing on my screen + + * Added Labor Config Test for Summary Table + 1. The labor configuration tests for the summary table calculations has been added. + 2. The edit/delete still need to be looked at closely + + * Edit/Delete Function but Exhibit Similar Behavior to Seeding Report + 1. The edit/delete functionality now works but exhibits the same behavior as the Seeding Report. Changing things for crop and area doesn't actually change anything in the backend and test produce a 500 error code for this but still pass + + * Updated Inconsistencies and Corrected Some Issues + 1. The hours method accurately calculates the total number of hours now. The Cypress test associated with this change have also been updated. + 2. Updated some lingering code copied over from the Seeding Report. + 3. Checked out the db.sample.tar.bz2 file from main to hopefully avoid any difference when merging to upstream. + +commit bc6602891649d2065715755bb46275e4903ac33e +Author: Jingyu (Marcel) Lee <46755208+JingyuMarcelLee@users.noreply.github.com> +Date: Tue Jul 19 12:07:55 2022 -0400 + + Issue #536 Labor data summary fix (#540) + + * fixed summary table for direct seeding + * completed testing for labor config changes. + +commit 1bad53a4692b725177ec62de4adb24ff56786196 +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Mon Jul 18 15:53:10 2022 -0400 + + Fixed a Bug in the Tray Seeding Python Program (#535) + + * Fixing Database Tray Logs in 2019 + 1. Changed '0 seedings' at the end of two csv lines to be the correct values + 2. Edited some spaces inside of the python file in charge of making the tray seeding logs. + 3. Rebuilt the data base + + * Changed the Python File Responsible for Adding Tray Seedings + 1. Changed it to verify that the value being passed for seeds is a number. + 2. Removed something questionable from the csv file for tray seedings. + 3. Undid some changes made in the buildSampleDB bash for the purposes of testing + + * Modified TraySeeding Python File to Exclude Any Seedings with 0's + + * Removed Bug Causing False to Be Present for Numeric Values in Tray Seeding + 1. Accounted for cases where cells/flat can be 0. + 2. Fixed some code to allow for a conditional to take care of cases where seeding is 0. + 3. Rebuilt the database. + 4. Fixed the Seeding Report Cypress tests due to the changes in the database. + +commit 83f133e9c39d8aa6bc1a6427514cff641472d60f +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Sat Jul 16 16:31:46 2022 -0400 + + Removed a Lingering Only Left Inside the Seeding Report Cypress test (#538) + +commit 559d4b6953a8b7085793bff1e1f86e359961fb0f +Author: Jingyu (Marcel) Lee <46755208+JingyuMarcelLee@users.noreply.github.com> +Date: Fri Jul 15 12:26:51 2022 -0400 + + Issue #479 simple detailed view (#537) + + * made changes to the html elements so that they are responsive to the initial screen size. + * hides some columns when screen is small. + +commit 06cc8f5ef82d4c3bc2c4470d0c4bfc0f1975aa22 +Author: Jingyu (Marcel) Lee <46755208+JingyuMarcelLee@users.noreply.github.com> +Date: Wed Jul 13 20:12:10 2022 -0400 + + Completed configuration integration and testing (#534) + +commit b37515fb0245eb502aae1a30c1e08ebfccb2cd0f +Author: Jingyu (Marcel) Lee <46755208+JingyuMarcelLee@users.noreply.github.com> +Date: Wed Jul 13 12:11:27 2022 -0400 + + Issue# 519 Adding configuration feature (#533) + + * Made the Seeding Input Log form responsive to the labor configuration setting. + * Added tests for to ensure that the configuration setting works. + +commit b1d87dd4a639ae7d7ec286531544f8439392d6e8 +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Tue Jul 12 17:48:07 2022 -0400 + + Fixed the Ordering in the Barn Kit Module (#531) + + 1. Fixed the weights in the module file + +commit 0d7458ef624d991c1a9871548baca0983ea5c412 +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Tue Jul 12 08:35:35 2022 -0400 + + Fixed Static CSV File Names (#529) + + * Added a Prop to Disable CSV Button and Control Its File Name + 1. Added a new prop in the CustomTableComponent which is a blank string by default. A v-if inside of the button does not render the CSV button if that string is empty. + 2. The prop allows devs to choose the name of their CSV files. + 3. Added this functionality to the Seeding Report's customTableComponent. + 4. Added a small test to verify that the button does not exist. + + * Added Requested Changed + 1. Added the prop to the UI page's CustomTableComponent so that the button appears. + 2. Added documentation for the new prop within the CustomTableComponent's javascript file. + 3. Regenerated the documentation inside of doc. + +commit fd8050a867276a5a968043041f5fedf8bf040bb1 +Author: Jingyu (Marcel) Lee <46755208+JingyuMarcelLee@users.noreply.github.com> +Date: Mon Jul 11 16:36:42 2022 -0400 + + Issue #515: Adding Configuration Page (#527) + + * added test for config functions from FarmOSAPI.js + + * completed test + + * reverted cypress changes + + * generated docs for functions + + * Completed var.html update with config list + + * finished tests + + * completed config.html with just labor configuration + + * Completed html and cypress tests for config + + * Deleted unnecessary button on the vars.html and the test related to it + + * made changes to the cypress file to make tests reset JSON + + * Fixed all required changes + + * Fixed all required changes and modified test (added scroll test and fixed bugs where the labor is set to optional everytime test ran + +commit 140662bfdb05f54740a8fbc3da924a260bd92bc1 +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Mon Jul 11 16:29:31 2022 -0400 + + Implementing Standard Error Handling for API Request Failures (#524) + + * Added API Error Handling in UI Page + 1. Fixed a small typo in the Seeding Input form + 2. Added an example of error handling inside of the UI page + 3. Added a test in the UI's e2e to cover this new example + + * Updated UI Page & Its Testing Page + 1. Added conditional statements to the catch(err) to handle the three types of possible errors per Axios documentation. + 2. Left documentation from that page so that the different conditionals explain what type of errors they are catching. + 3.Updated the UI testing page to include three tests for each type of error the API standard error handler is supposed to catch + + * Updated the Seeding Input Page & Cypress e2e Test + 1. Added the error handling to the API calls inside of the Seeding Input Page. + 2. Added the alert banner to display inside of the Seeding Input page when an API call fails. + 3. Added Cypress tests into the Seeding Inputs e2e test file to cover API fail cases. + 4. Changes some small things in the UI page with an array being shared between two tests. (They still do, but it now clears itself when the other's button is clicked) + 5. Made some small changes to the UI Cypress e2e page. + + * Updated the Seeding Report Page and Cypress e2e Test + 1. Added the API failure banner to the Seeding Report and all the catch errors for API request in the page. + 2. Added API failure tests to Cypress e2e test file for the Seeding Report + 3. Made some small changes to the Seeding Input e2e test file. + + * Fixed Indentation and Removed Unnecessary Documentation + + * Updated the Seeding Input & Report Pages and Test for Auto Scroll + 1. Added a scroll to feature that scrolls to the top of the page for the error banner in both the Seeding Input and Seeding Report. + 2. Added tests for this feature into both e2e Cypress tests + + * Simplied Catch Statement in All API Calls + 1. Removed the conditionals to catch different types of errors. + + * Removed Some more Redundant Code + 1. Removed the intricate conditonals in the Seeding Input for a more simple approach + + * Changed All the scrollTo's to scrollBy's + + * Changed the Auto Scroll to be More in Line with Seeding Input PR + 1. Changed the auto scroll for the error banner to be in-line with the auto scroll for the success and cancel banners inside of the Seeding Input + 2. Moved the error banner inside of the same div as the other banners inside of the Seeding Input. + 3. Used the same div format inside of the Seeding Report so that things remain consistent throughout different pages. + 4. Made some accomodations to the tests for these recent changes. + +commit 8082bb535aba42882fc5ddf472efc142e34f8c28 +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Mon Jul 11 08:46:35 2022 -0400 + + Seeding Input: Auto Scrolls to Banners at the Top of Page (#525) + + * Seeding Input Scrolls Up to See Banners + 1. Added some JavaScript to scroll to the banners at the top of the report so that they're visible to the user after a confirm/cancel. + + * Updated Seeding Input e2e Test + 1. Disabled Cypress's auto scroll behavior in the two tests for the confirm/cancel button. Nothing else in thos individual tests wer changed since the changes in the page should already test whether those banners are visible or not. + 2. Added a scrollIntoView function to labor to help the those two tests where the auto scroll was disabled since auto scroll is disabled for those two + + * Updated Cypress Testing + 1. Added a more rigorus test for the scroll up feature. + 2. Removed the auto scroll disable and the scroll being used on labor to scroll down + 3. There's a bug where the tests ONLY work if the data-cy's being grabbed are reversed. So if the cancel button is clicked the cancel banner is visible but the test only works if you cy.get(success banner) and vice-versa for the confirm button + + * Changed Auto Scroll Behavior and Modified Tests + 1. Changed the auto scroll behavior from scrollIntoView to scrollTo with specific coordinates for the location of the cancel/submitted banner. Unfortunatelythe FarmData2 banner gets in the way, so we have to scroll to a specific position in order to see the banner. + 2. Updated the tests in the Cypress to reflect these changes. They passed under .only and when the entire file of tests was run + + * Updated scrollTo To Be Dynamic and not Static + 1. Changed the static pixel value to grab the lower bounds of the alert banner and then subtract the lower bounds of the header that obscures it. + 2. Moved the alert banner to be below the Seeding Input Log header. + + * Changed the scrollTo to scrollBy. + 1. Changed the scroll function that's being used. + 2. Removed the 'onlys' that were still in the Seeding Input test. + 3. Adjusted the tests to reflect these changes + + * Removed Console Log from Seeding Input + +commit 376f56b66431bb75f5c6a619e4fe74eefe250818 +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Tue Jul 5 18:48:49 2022 -0400 + + CustomTableComponent: Adding Export Functionality (#517) + + * Adding Export Functionality to CustomTableComp + 1. Added a button labeled 'Export' at the top of the table that, when clicked, will export the current table as a csv file for the user + 2. Added a new method inside of the CustomTableComp called 'exportCSV' which will be in charge of generated and exporting the CSV file. + 3. Currently the aforementioned method can export a CSV file containing the headers. Next is working on the difficult part of including data from entire rows. + + * CSV function now has row data + 1. Row data now appears under the appropriate header inside the of the CSV file export. + 2. Unfortunately comments break the structure of the CSV file. More time is needed to determine whether or not this can be fixed or if it would be more efficient to just ignore comments altogether in the export data. + + * CVS Export Now Cleans Strings + 1. Fixed an issue in the last commit where comments were breaking the structure of the CSV. Turns out the backend is adding HTML elements to the comments field inside of the Seeding Input to make sure the table grows and displays the whole contents of the comment column. In order to combat this, the exportCSV method checks to see if an element is a string and then removed all

,

,
and new lines from the comments so the CSV structure isn't compromised. + 2. The code inside of the component still needs to be cleaned and tested must be done to assure inside the CustomTableComponent's Cypress file. + + * Cleaned the CustomTableComponent + 1. Cleaned the identation and spacing for the CustomTableComponent. Added a couple of comments to the exportCSV method to explain certain aspects of the code. + 2. Started adding tests to the CustomTableComponent's Cypress file. + + * Added Cypress Testing for CSV Function + 1. Added Cypress tests for the CSV function. + 2. Made sure that the downloads folder inside of the Cypress folder clears all of its contents after the last test, that way the folder isn't holding unnecessary files. + 3. Fixed some weird things with the template (span and div were swapped). + + * Changed the cy.exec so the Downloads folder is deleted entirely + 1. Previously only deleted contents of the folder, now it deleted the contents and the folder itself + +commit b708243785e892a63f5bb5904e6f3f0e07696012 +Author: Jingyu (Marcel) Lee <46755208+JingyuMarcelLee@users.noreply.github.com> +Date: Tue Jul 5 17:07:15 2022 -0400 + + Issue #368 seeding input e2e cypress test (#513) + + * Working on preliminary API calls + + * completed Cache and init API call test for Crop and Area + + * worked on fixing tests related dropdowns + + * completed API tests + + * completed RegexInput test + + * fixed asyncronous API call login issues + + * invalid input submit button test in progress + + * completed workflow tests + + * Log creation test case template created + + * Deleted unnecessary API map waits + +commit 5d1e0aec402face84aed651fc8599d481564f6d9 +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Tue Jul 5 16:57:38 2022 -0400 + + Refactoring Pre-existing Seeding Report e2e Test (#514) + + * Cypress test changes for editing/deleting buttons + Fixing the test, but it currently is not accepting a valid column and row + + * Additions to Seeding Report and Refactor Cypress Tests + Seeding Report had some data-cy tags added to the summary tables to easily access that data for testing purposes. All Cypress tests that were malfunctioning due to CustomTable changes are now working. All Cypress e2e tests now work. Some additional ones need to be added to account for API calls. + + * Cypress Tests: Testing API and Filter Selection + Added tests to make sure that the filter dropdowns are being populated by the API calls to the crop map and area map. + Added tests to make sure selections in one filter dropdown impact the options in the other filter dropdowns. + Added coverge for visible columns when the edit button makes the save and cancel headers visible. + + * Refactored Cypress Test File Structure + Removed a good amount of the logins from the beforeEach calls made inside of contexts and allowed that to always occur in the describe before each test. This seems to have helped significantly reduce the amount of times a potential 403 error might occur at the cost of increased test time since the beforeEach in the describe runs for each test. + Additionally, some of the API calls are currently incomplete because I do not know where exactly to make those API calls to. + + * Fixed API Issue + The first test was causing the rest of a context to fail since it was reloading the page. + Removed commented code. + Made sure everything was properly indented and spaced. + + * Removed some redundant tests + 1. Removed a repeated tests that tested filter behavior + + * Made Requested Changes to the Seeding Report e2e Test + 1. Added two more data-cys to the Seeding Report html page in order to verify if the text denoting no longs are there for that seeding type is present or not + 2. Removed a context and combined some of its contents to another context because they overlap. + 3. Changed the edit/deleting tests at the end of the e2e file. + 4. (Hopefully) Fixed all spacing and indentation concerns + +commit 5894e6db0815d37e6a62943d9d757e3e4778c051 +Author: Grant Braught +Date: Mon Jul 4 12:13:36 2022 -0400 + + Add Proof-Of-Concept Configuration Module (#518) + + * Added info for accessing farmdata2db using pmpMyAdmin. + + * Added proof-of-concept configuration module + + * Created API wrappers for accessing config info + + * Updated build script for sample db to include configuration information + + * Updated the sample db to include configuration information + + * Removed demo module used to test config ideas + +commit 40a217d8ade7c8106ffe9bd498b4b3c8d828b441 +Author: kvaithin <68995267+kvaithin@users.noreply.github.com> +Date: Wed Jun 29 14:03:41 2022 +0100 + + [505] typo grammar updates (#509) + + Co-authored-by: kvaithin + +commit f188d61fd506b9947124bc216d1aed610aeecbf1 +Author: Jingyu (Marcel) Lee <46755208+JingyuMarcelLee@users.noreply.github.com> +Date: Tue Jun 28 15:11:45 2022 -0400 + + added two buttons to show and hide column of table and tested it (#506) + +commit 1acdc7d934954e9484531fbeb7070a1c200ffe06 +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Tue Jun 28 11:35:22 2022 -0400 + + Updating the UI Page (#504) + + * added disable/enable buttons and tested them + + * Added some new Cypress e2e tests for the new RegexInputComp in the UI sub-tab + + * Changed the method in the UI page so that when users click a button for the regex the input box is just set 0 so they have to type something in there to test it out. This is because I couldn't get the page to focus on the element in the page so this is the work around. Made the appropriate adjustments in the Cypress test to accomodate this change too + + * Updated the manner by which the regular expression was being updated by pressing the buttons. Now a map is used where keys are utilized to access the values to pass to the regular expression Vue data which is binded to the regexcomp in the html. + + * The positive decimals and ints were swapped around. I correct this error so this code is correct. + + * refactored disabled button and methods + + * fixed disabled cypress tests + + * fixed dropdown test + + Co-authored-by: JingyuMarcelLee + Co-authored-by: Jingyu (Marcel) Lee <46755208+JingyuMarcelLee@users.noreply.github.com> + +commit d80816687248bfcac836c80d6e4e59e1317ff435 +Author: Jingyu (Marcel) Lee <46755208+JingyuMarcelLee@users.noreply.github.com> +Date: Mon Jun 27 15:40:30 2022 -0400 + + Issue #357 CustomTableComponent Prop Change reponse (#497) + + * added watch for visualColumns and tested it + + * Refactored the component to bind the computed method on the data value instead of prop. Added watch for prop and added more test for better case coverage. + + * updated doc + + * added deep watch for the visibleColumns prop and tested direct element change + +commit 9759d9d49d857ba9e9a4c2acb0a51ba425da6248 +Author: Jingyu (Marcel) Lee <46755208+JingyuMarcelLee@users.noreply.github.com> +Date: Mon Jun 27 11:03:32 2022 -0400 + + Issue285 seeding log workflow (#487) + + * Moved the area dropdown to the seeding selection portion of the form + + * Changed button text from 'submit' to 'Create Log'. + + * created Bootstrap HTML element for the log creation success alert message on the top of the page. + + * created Bootstrap HTML element for the alert box for submit cancellation. + + * reassigned default values to the vue objects to refresh the values once the form is submitted. + + * added disabled for the components in the input html + + * Added RegExInputComponent + + * Updated documentation and Cypress tests to reflect changes made in the component + + * Rigorous indentation correction. + + * Added an additional Cypress test case to account for modifications in the component + + Co-authored-by: futzmonitor + Co-authored-by: Chris <31524934+FutzMonitor@users.noreply.github.com> + +commit 3b56840e4c8f9cb6a8c97e1ea08efaf2e45084b2 +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Mon Jun 27 10:59:42 2022 -0400 + + Removed extra > in the Date Range Selection's template. (#503) + +commit 997162fb49269bda9294516053e095571bbfdcbe +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Wed Jun 22 16:00:52 2022 -0400 + + Fixed mounting inconciseness in the DropdownWithAll's cypress test (#500) + +commit 46f1b188e1451f4fea11a5afcba0aad65fc5d257 +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Wed Jun 22 15:59:25 2022 -0400 + + Fixed mounting inconciseness in the DateSelectionComponent's cypress test (#499) + +commit 76b109b979bacc9cd482f60254b47e4a39956857 +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Wed Jun 22 15:58:05 2022 -0400 + + Fixed mounting inconciseness in the DateRangeSelectionComponent's cypress test (#498) + +commit ce96514436b36d957c465603e9a6ea8b827c6c61 +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Wed Jun 22 15:52:09 2022 -0400 + + Creation of new Vue Comp: RegexInputComponent (#496) + + * Creation and testing of the new RegexInputComponent. + +commit 1d18a6dd06dbb4c631bd4faf1ca31ae4a0531ca9 +Author: Jingyu (Marcel) Lee <46755208+JingyuMarcelLee@users.noreply.github.com> +Date: Wed Jun 22 11:07:25 2022 -0400 + + Issue#489 #490 #491 disabled components (#495) + + * Added disabled functionality with a watch to check prop changes in components. + * Wrote Cypress component tests. + * Generated JSDoc documentation + +commit 3fbb9d08bee8c145dbf8b43e00734fabe86a88f4 +Author: Grant Braught +Date: Mon Jun 20 13:49:52 2022 -0400 + + Removed restart always for fd2_phpmyadmin container. (#493) + +commit 5bb4d38cf43cd0e54f18e87244d53b7969ee2a5e +Author: Saad Mateen +Date: Sat Jun 18 19:58:03 2022 +0500 + + Fixed 'Seeding Input: Labor Section Text Missing Plural' (#488) + +commit f0a9ff65be0e8de986c02bcdc5741c175f028a95 +Author: Jingyu (Marcel) Lee <46755208+JingyuMarcelLee@users.noreply.github.com> +Date: Fri Jun 17 12:45:08 2022 -0400 + + Issue352 date range selection component (#486) + + * fixed most of the changes for DateRangeSelectionComponent and corresponding variable name changes in files + + * wrote test cases. + + * fixed documentation for both dateSelectComponent and dateRangeComponent + +commit 61946a47b641123fb2e6d55f0b596a3d92b23c3a +Author: Grant Braught +Date: Fri Jun 17 12:43:21 2022 -0400 + + Updated install command for npm packages. + + As these packages are used only locally by devs creating documentation they are only installed locally. While a package.json and package-lock.json may be more conventional, this is working for now. + +commit 797deb3fbafbee2d739a1eb5939c9c2c53382fcd +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Fri Jun 17 10:49:28 2022 -0400 + + Changed 'defaultInput' --> 'selectionVal' in DropdownWithAll Component (#482) + + * Changed prop 'selectedVal' --> 'selectedVal' in the DropdownWithAllComponent and changed all instances of it in other files to make sure they continue to work. Also ran doch.bash to generate new documentation by changing the path in the json file but made sure to change it back so that it was not included in this commit + + * Created new Cypress tests to test the function being ran inside of the watch method for selection value + +commit f2e7ae083f0f9507fca2bdc932a0e7e510f9f10d +Author: Grant Braught +Date: Fri Jun 17 08:41:30 2022 -0400 + + Clarified instruction for running JSDoc script. + +commit 7dce2d209e1b59fc82f89939d26e379a8a2b5b47 +Author: Grant Braught +Date: Fri Jun 17 08:37:26 2022 -0400 + + Added clarification to JSDoc install directions. + +commit b15d4f8f4ef32634b4add45d71157962a285babd +Author: Grant Braught +Date: Thu Jun 16 15:14:54 2022 -0400 + + Made JSDoc install local rather than global (#485) + +commit e84b78fcf677c30632687ac1f8419a220e7cac76 +Author: Jingyu (Marcel) Lee <46755208+JingyuMarcelLee@users.noreply.github.com> +Date: Thu Jun 16 14:44:44 2022 -0400 + + Issue #351 DateSelectionComponent Updates (#480) + + * Added emit when mounted for DateSelection Componenent. Tested this method via cypress in DateSelectionComponent.spec.comp.js. + + * changed defaultDate to setDate + + * completed testing for change in props, ui.html, and manual testing on the Seeding Input and Report. + + * changes to documentation and watch funtion + + * added Cypress tests for emit and watch invalid dates and emitted events.' + +commit 397cc69569d0975ceda6bf045167e5ee02b4ba44 +Author: Grant Braught +Date: Thu Jun 9 14:19:35 2022 -0400 + + Update text of example link. + +commit 6c63103e0bd47d5301fdec92ae70147f20ed2bd2 +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Thu Jun 9 11:37:04 2022 -0400 + + Time Reporting: Computes Hours Differently in Seeding Report (#477) + + * Switched the 'Workers' and 'Hours' columns to more clearly present that hours are totaled together and not hours worked per worker. Fixed some inconsistencies with some headers being capitalized and others not + + * Changed the way that hours are computed in the Seeding Report to be in the format 'e.g 2 workers for 1 hour = 2 hours' + + * Modified total hours in the summary pages to work with the new columns because they were still looking for 'seedings' in their conditional statement + +commit 60ea20fcb5e597f34d4ae4da0f69d54335a50bdd +Author: Jingyu (Marcel) Lee <46755208+JingyuMarcelLee@users.noreply.github.com> +Date: Thu Jun 9 11:22:00 2022 -0400 + + Seeding Input Form UI Design (#478) + + * Created a new section for comments. Removed comments from the data section. Removed breaking line where comments was removed in data and added it above dates so that it's not so close to the section tab + + * changed the text for the radio button descriptions. Modified spacing + + * Added two lins breaks above area in the 'Seeding' Section so that they were not so close. Changed 'Time' to 'For' in the 'Labor' section. Spacing needs to be corrected in a different task. + + * Removed line breaks as source of padding and added top-margin to the styling in the divs + + * Adjusted the top-margin to 45, previously 50. + + * Changed 'Date of seeding' under data to 'Date' and adjusted width of the dropdowns to make sure they are aligned. + + * Made some language conciseness changes to the text in the 'Seeding' section of the input form + + * fixed alignment so that mobile display would work the same way as desktop + + * Removed some lines from the 'Seeding' section + + * minor changes + + * Centered the contents of the 'Labor' section. Awaiting changes to DropdownWithAllComponents to be changed from div to span to see these changes + + * changed size of the input boxes and aligned the dropdowns and boxes + + * component span reverted + + * made all necessary changes to accomodate new change in the dropdown component. + + * typo in dropdown component addressed + + * fixed minor padding issue with the comment box + + * deleted unnecessary CSS elements after changes to the components were made. Fixed the order of the labor input forms + + * reverted change made to the DropDownWithAllComponent.js; changed dropdown to be more clear + + * Changed width of the input form to display 4 digits by default. Boundsome texts and input form together with label tag to prevent relevent text-inputform fileds from getting splitted when screen size changes. + + Co-authored-by: Chris <31524934+FutzMonitor@users.noreply.github.com> + +commit a3ce92167d0733336155430f68577f63b7c13098 +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Thu Jun 9 11:07:58 2022 -0400 + + Seeding Report Edits (#474) + + * Switched the 'Workers' and 'Hours' columns to more clearly present that hours are totaled together and not hours worked per worker. Fixed some inconsistencies with some headers being capitalized and others not + + * Corrected some table headers to be more concise. IN the seeding's column, removed the word 'seeding' for conciseness. + + * The 'Hours' column now consistenly displays hours up to the second decimal place. Fixed a bug where summary pages where not accurately displaying that no logs with the appropriate parameters existed after filtering through the table + + * Rearranged the headers for direct seeding. Made sure that the data attached has their orders corrected as well. Summary page for direct seeding has the data it as fetching updated to grab the correct values + +commit 3d8046bee4e5de32812eb6bc2554557e1d13abf8 +Author: Grant Braught +Date: Wed Jun 8 16:49:12 2022 -0400 + + Change div to span in components (#475) + +commit 16cfb96db22f7e4940a985a22890a4ee536289ab +Author: Grant Braught +Date: Wed Jun 8 15:35:29 2022 -0400 + + Changed DropdownWithAllComponent from div to span element (#473) + +commit e7ecd611ae7e60641dd2650e640c338d7041887e +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Wed Jun 8 08:51:40 2022 -0400 + + Removed unnecessary words from summary blocks. Removed 'per' and replaced it with a '/'. Made average rows/hour and bed/hour planted in direct seeding summary consistent with listing of rows and beds feet planted above. (#468) + +commit 0511982c8dbf04e6043979c8eb181cdc14ba8bdd +Author: Chris <31524934+FutzMonitor@users.noreply.github.com> +Date: Tue Jun 7 16:30:32 2022 -0400 + + Issue332: Sorted seeding report by dates in ascending order (#467) + + Sorts Seeding report by date. + +commit 6d47f26431ba94c518ef0fada69b669739353865 +Author: Jingyu (Marcel) Lee <46755208+JingyuMarcelLee@users.noreply.github.com> +Date: Tue Jun 7 11:52:00 2022 -0400 + + Issue260: delete total row/bed planted from summary section for direct seeding in the Seeding Report (#463) + + * Deleted the html component and computed function corresponding to the total bed/row. + +commit 3ab5d351fb9d866dbde5aa3f25a9e550a667fa51 +Author: Jingyu (Marcel) Lee <46755208+JingyuMarcelLee@users.noreply.github.com> +Date: Tue Jun 7 10:43:10 2022 -0400 + + Moved the area dropdown to the seeding selection portion of the form (#462) + + Co-authored-by: futzmonitor + +commit 33cf747112b7ce9a2e5ea2cd4dd261735cef9af8 +Author: Grant Braught +Date: Tue Jun 7 09:44:32 2022 -0400 + + Eliminates duplicate areas in drop down (#461) + + * Eliminates duplicate areas in drop down + +commit e393536513586227346744e18a3cbf48b38b336e +Author: Grant Braught +Date: Mon Jun 6 14:38:54 2022 -0400 + + Fix Bug in API Example (#459) + + * Added info about docs for maps to maps sub-tab + + * Removed JSON parsing of data field. + + The data field is now parsed within the FarmOSAPi.getAllPages method for all requests. + + * Added clarifying comment + + * Set correct date for fetching logs + + * Added test for clearing seeding table + +commit b3efdaf5e06fe9cda923e9fc21c270682a4a0456 +Author: John MacCormick +Date: Mon May 9 11:08:05 2022 -0400 + + add quotation marks to html attribute values (#455) + + These quotation marks are not needed for correctness, + but it is better to include them for consistency and + for other reasons. + See e.g. + https://stackoverflow.com/questions/6495310/do-you-quote-html5-attributes + It would be even better would to keep a consistent style with either + all single quotes or all double quotes, + but in this commit we are just adding quotation marks where + they are missing altogether. + +commit 7fff568d0db58a104322eadf0767f86a5c772fdc +Author: John MacCormick +Date: Mon May 9 11:02:43 2022 -0400 + + fix typos in farmdata2_modules/fd2_tabs/resources/CustomTableComponent.js (#456) + +commit 37b98f1babd25c927cc44d1cde878434d0ace3f5 +Author: John MacCormick +Date: Wed May 4 22:04:04 2022 -0400 + + fix typos in ONBOARDING.md (#454) + +commit 4d91a30ebed8847f8c4a9a4794bbd8494127f3d2 +Author: Ezinne Anne Emilia +Date: Tue Apr 26 12:28:06 2022 +0100 + + Add V1 to FarmOS API (#449) + + * Add V1 to FarmOS API + * Add api.html + +commit 67b0a10e0de6449d9b54820167a123be6ce7759a +Author: John MacCormick +Date: Fri Apr 22 12:38:31 2022 -0400 + + fix typos in farmdata2_modules/fd2_tabs/resources/FarmOSAPI.js (#446) + + * fix typos in farmdata2_modules/fd2_tabs/resources/FarmOSAPI.js + +commit 2ac55693384b43059d2d5b867a98b0c5904ba7a8 +Author: John MacCormick +Date: Thu Apr 21 14:23:38 2022 -0400 + + Typo fixes in fd2_example/README.md (#443) + + * fix typos in fd2_example/README.md + +commit 5aaae373a8206c851225517e7e5ca7a52bc694ca +Author: John MacCormick +Date: Wed Mar 23 18:29:47 2022 -0400 + + fix sampleDB typos (#423) + + * fix typos in docker/sampleDB/README.md + +commit 42d8e2046114469f1a5d8e0f22a7a8c9b54f65ba +Author: Leah <76408777+goldberl@users.noreply.github.com> +Date: Thu Mar 10 12:54:22 2022 -0500 + + Updated crop spelling (#421) + + * Edited crops.csv to correct mispelling of 'radicchio' + + * Modified translateCrop function in the utils.py file by adding a translation for 'radicchio' + + * Rebuilt sample database using buildSampleDB.bash script with correct spelling of 'radicchio' + +commit a90bdf095140dd9160a2de39232fb2239b8bc9b7 +Author: Grant Braught +Date: Mon Mar 7 13:48:06 2022 -0500 + + Updated FarmOS API Links (#413) + + FarmOS moved to a new version of their API. For now FarmData2 is still using V1 of the API. This update ensures that our documentation points to the proper version of of FarmOS's API docs. + +commit 4045f69cbbffd54f4fafa714f7ec9b93c4270d8e +Author: John MacCormick +Date: Tue Feb 8 10:54:05 2022 -0500 + + fix instructions for first Vue spike-within-the-spike (need Vue version 2) (#407) + +commit f25a601828b4290a93167a5deeeb0c15ee2b9be2 +Author: John MacCormick +Date: Wed Feb 2 09:30:25 2022 -0500 + + fix typo in setDB.bash (#386) + +commit c5881c110bebb974e2fbb89d15ba9d8bed640680 +Author: Anisha-art <96977038+Anisha-art@users.noreply.github.com> +Date: Tue Jan 18 23:52:20 2022 +0530 + + Issue-101: Updated instructions on install.md (#383) + + * Issue-101: Updated instructions on install.md + + Added the missing information as reported in issue: + https://github.com/DickinsonCollege/FarmData2/issues/101 + + * Issue:101 + + Removed the MacOS changes and retained the generic changes in the previous commit: https://github.com/DickinsonCollege/FarmData2/pull/383 + +commit 327e20d6c6f82370294acb9ad182436ff77098f5 +Author: John MacCormick +Date: Mon Jan 17 12:04:31 2022 -0500 + + Typo fixes and other suggestions for FarmData school activities 03-07. (#385) + + * Typo fixes and other suggestions for FarmData school activities 03-07. + + This commit is intended to be part of a _draft_ pull request. It is + not intended to be merged. The docx files are all in Track Changes + mode, and some have comments added. The intention is that a + maintainer will examine the changes and approve them with alterations + as needed. After that, a (non-draft) pull request will be created in + which the files are not in Track Changes mode and with all of the + corresponding pdf files updated with the relevant changes. + + * Finalizing changes to FarmData2 school Activities 03-07 + + This commit finalizes previously-submitted changes to FarmData2 school + Activities 03-07. See commit b3b7a08e3fcf5a4212cf0c6b385dfac2db68c611 + for details. + + In this commit, the Accept All Changes and Stop Tracking functionality + and Microsoft Word was used to finalize the docx documents. All + comments were deleted. The maintainer's suggestions were + incorporated. New PDF files were generated from the docx files. + +commit 435174442d7df388b11ca3193143bb87dac37ad2 +Author: John MacCormick +Date: Mon Jan 17 08:23:55 2022 -0500 + + fixed two typos (#384) + +commit c69d9a37a33ccfd537e5623907f0bb5e724b6a5e +Author: Anisha-art <96977038+Anisha-art@users.noreply.github.com> +Date: Thu Jan 13 18:59:20 2022 +0530 + + Issue 335: Fixed broken link in License.md>Attributes section (#382) + + * Issue-335; Fixed a broken link + Fixed the broken author's md link on license.md file. + + Closes #335 + +commit 35872531eaa9fd5c9a1b2298bc5b4317103493e7 +Author: John MacCormick +Date: Mon Jan 10 12:21:27 2022 -0500 + + Typo fix (#379) + + * fix typo in setDB.bash + +commit faf9c3aef8b4b23397a82b04fe0288f98e0dc682 +Author: Grant Braught +Date: Mon Jan 10 10:07:02 2022 -0500 + + Switched farmos image to farmdata2/farmos on DockerHub (#378) + +commit 69b5b460c625120604dfa76c0c526929e91492c4 +Author: John MacCormick +Date: Sun Jan 9 13:05:55 2022 -0500 + + fixed typo in email address (#377) + +commit eaceed65fb4e8226bbe26a428f5614d0bdae128d +Author: John MacCormick +Date: Sat Jan 8 14:17:23 2022 -0500 + + fix typo in INSTALL.md (#374) + + * fix typo in INSTALL.md + + * Fixed a second typo on the same line. + + Co-authored-by: Grant Braught + +commit d1557348b0856f9058f850ba9a8784c029a6afcc +Author: Grant Braught +Date: Wed Jan 5 12:22:13 2022 -0500 + + Changed default dates for spike to 2020. (#372) + +commit 37311ed819adc50bc579d63e8cffc40f345fcc79 +Author: Grant Braught +Date: Wed Jan 5 11:54:40 2022 -0500 + + Updated default dates for spikes (#371) + +commit 450316316cf80ccebcbda6a7218cd9656f594604 +Author: Grant Braught +Date: Wed Jan 5 11:33:11 2022 -0500 + + Fd2 school update (#369) + + * Added FD2 School tab and fd2_school module + * Created separate page for FD2 School Activities. + * Linked to that page from the Onboarding page. + * Updated all of the activities. + * Move the activity source files to the fd2_school module directory. + * Updated provided sample database so that FD2 School Tab appears by default. + +commit 3910d90689d25c4b7019d11d874d296346d8e4f9 +Author: Grant Braught +Date: Tue Jan 4 21:55:36 2022 -0500 + + FarmOSAPI function handle data property (#366) + + * Added data property parsing to getRecord and getAllPages + + * Modified seeding report to work with pre-parsed data property + + * Added stringify of data property to the createRecord function + + * Removed stringify of data property when creating log + + * Removed some lingering console.logs + + * Added stringify of data in updateRecord function + + * Removed stringifies when updating records from seedingReport + + * Updated JSDoc comments in FarmOSAPI.js to reflect changes. + +commit 709834e7365e4042ac5fcf4569ac211995f0d760 +Author: Grant Braught +Date: Tue Jan 4 15:13:10 2022 -0500 + + Updated docs for getAllPages in FarmOSAPI.js (#364) + +commit 217f90c5ee42a4cf192eee819ec05301644ed711 +Author: Grant Braught +Date: Mon Jan 3 20:23:48 2022 -0500 + + Add data object with crop_tid info. (#363) + + Added this object to the transplanting logs and the + harvest logs. This makes it possible to get the crop name + from the tid without retrieving the associated planting. + + Also regenerated the sample database to include this + object in the logs. + +commit b54ed58903d41bba30d8dbea542a4ba1a8aaf5bc +Author: Grant Braught +Date: Sat Jan 1 10:07:36 2022 -0500 + + FD2 Example Test Patches (#362) + + * Patched DropdownWIthALLComponent and tests for new data-cy value + + * Fixed clear cache test + +commit 48cdf688b8b53eea12f1afbdba456b11bf62bf27 +Author: Grant Braught +Date: Fri Dec 31 15:29:22 2021 -0500 + + Document components and functions in resources. (#361) + + * locked versions on vue and axios in FD2 Example, BarnKit and FieldKit modules + + * Added JSDoc comments to FarmOSAPI.js file + + * Added script to generate docs + + * Updated to handle Vue component documentation also + + * Added configuration file for JSDoc to use Vue plugin + + * Added JSDoc for the DateSelection Component + + * Added JSDoc for the DropdownWithAllComponent + + * Documented data-cy attribute in DateSelectionComponent + + * Documented data-cy attribute in DateRangeSelectionComponent + + * Documented data-cy attribute in DropdownWithALlComponent + + * Added JSDoc to CustomTableComponent + + * Added generated documentation + +commit 8e94618c29495498955e829ecaaf363d4540d7aa +Author: Grant Braught +Date: Sun Dec 26 21:40:04 2021 -0500 + + Updates FarmOSAPI functions and tests for error handling (#359) + + * Fixed test to use existing log + + * added reject test for getAllPages + + * Added map failure handing and test + + * Adds error handling and test for getSessionToken. + + * added error handling and tests for getRecord + + * Added error handing and test for deleteRecord + + * Added error handing and test for createRecord + + * Added error handling and test for updateRecord + + * patched failing api.spec.js test for example tab + +commit e84f571c1f1b7ec0c4382be686a601ee2c63ee5f +Author: Grant Braught +Date: Wed Dec 22 15:33:16 2021 -0500 + + New FD2 Example Tab (#358) + + * Separated fd2vars example + + * Added tests for Vars example tab + + * Updated docs to match FD2 Example changes + + * Renamed fd2vars to vars for consistency + + * Added example for maps of farmOS values and ids + + * Fixed typo + + * Added tests for maps example tab + + * Added detailed comment + + * Added pointer to the test files. + + * Added api page and fetching and testing farm info + + * Added fetching of seeding logs + + * Wait in beforeEach for maps to load + + * Added more detailed comment. + + * Clarified comments + + * Refactored beforeEach to wait for maps to load + + * Clarified comments + + * Migrated cy.route to cy.intercept + + * Clarified comments + + * Revised test for getAllPages + + * Added getRecord function and tests + + * revised update test + + * Change getRecord to work on full url endpoint + + * Upped default timeout + + * Adjusted timeouts + + * Modified to use data-cy attribute + + * Removed explicit timeouts + + * Moved test to the vars tab + + * Added delete tests for api tab + + * Upped the default requestTimeout + + * Added example of fetching a single log + + * Added text pointing to tests + + * Clarified comments and text + + * Expanded documentation of localstorage work around + + * Added example of request caching + + * Added test for clear cache button + + * Added UI tab and date select and range elements + + * Added DropdownWithAll example code + + * Stubbed out DropdownWithAll tests + + * Added DropDownWithAll tests + + * Added fieldset and basic table + + * Added some table functions + + * Fixed missing value in edit mode + + * Added table tests + + * Added place holder for buttons sample + + * Added sample buttons and style + + * Added tests for button functionality + + * Added example of using the loading spinner + + * Added test for spinner + + * Removed old ex1 subtab, updated info for all subtabs + + * Updated README.md for new example sub-tabs + + Co-authored-by: IrisSC + +commit a2a3ceb4ee506b329c3b906dbdeafe43624b0ea3 +Author: Grant Braught +Date: Tue Dec 21 20:42:43 2021 -0500 + + Removed missed line causing parse errors (#356) + +commit 710fbf3756cb333b6cdacb4fcaabb6a1ba8a3082 +Author: Grant Braught +Date: Tue Dec 21 20:06:26 2021 -0500 + + rows/cells have unique data-cy (#355) + +commit e576cc3cd0ee7db16759704bfdf2c05b59d35f7c +Author: Grant Braught +Date: Tue Dec 21 09:45:09 2021 -0500 + + Modifying defaultInput prop changes selected value (#350) + + * Changing prop changes selection + + * Clarified comment + + Co-authored-by: Batese2001 + +commit b9ac9af1db24d8272b90156c6272635270c4c7c8 +Author: Grant Braught +Date: Thu Dec 16 09:41:47 2021 -0500 + + Fixed components link. + +commit 35109d3d3f8722d9b5a4003d32cf4b421201d57d +Author: Christian <31524934+FutzMonitor@users.noreply.github.com> +Date: Fri Dec 3 11:15:59 2021 -0500 + + corrects the word (comman) -> (command) under the Install the Sample Database Image section of the INSTALL.md file (#318) + +commit b74e72cf7673c4b7afe82a70790a6c8390b7110a +Author: IrisSC <54850069+IrisSC@users.noreply.github.com> +Date: Wed Dec 1 11:00:46 2021 -0500 + + Clean up example1 tab (#306) + + * added APIRequestFunction and first test to resources folder + + * took out api function that is not complete yet + + * changed all the fields to areas. + + * added example of fieldset and some comments on the dropdown examples. + + * deleted the getCropList method and button. + + * added comments to the data section in Vue and deleted some variables. + + * moved created function to the bottom of the Vue instance. + + * deleted the testArea variable. + + * rename data varaibles and some methods. + + * clarified comments in data section of the Vue instance. + + * added comments to and reorganized methods. + + * put some better examples in the creared funciton and added comments to the created function and the computed section. + + * fixes some comments. + + * added example of getSessionToken fucntion. + + * modified deleteLog method to use new session token obtained by getSessionToken. + + * added example of caching using localStorage. + + * some fixs + + * added a dayjs example + + * example of creating a planting log. + + * fixed all the tests for the Ex1 page, so that thye work now. + + * added test for caching + + * added a test for the create planting log button. + + * delete button test mostly working + + * took out delete button test. + + * added comments to the tests for the example1 page. + + * took out .only in the seeding report page cypress tests. + + Co-authored-by: josieecook + +commit f80e6c1f560ce581e7668fbd0e68458a5d45cef0 +Author: Grant Braught +Date: Mon Nov 29 09:27:25 2021 -0500 + + Added section on Developer Install. + +commit 8d14ff113e1590e7c0562638e46a43b3fabd781b +Author: Grant Braught +Date: Sun Nov 21 11:35:33 2021 -0500 + + Moved theia docker image to farmdata2 dockerhub (#315) + +commit 347db09fa3e13d3ef9c812fb0cb6fde8f5c70f59 +Author: Batese2001 <69521504+Batese2001@users.noreply.github.com> +Date: Tue Nov 16 13:12:29 2021 -0500 + + Disappear page tests (#311) + + * Added page testing for disappear timing + + * Added more robust testing and checks + + * Removed .only + +commit 5baac5993facdce8c625f612b474e36ae2984b9c +Author: Grant Braught +Date: Mon Nov 15 14:01:05 2021 -0500 + + Reordered sections + +commit 0ee2eace4e8fc45cdaa95f86c29a463a3d98d863 +Author: Grant Braught +Date: Mon Nov 15 13:59:05 2021 -0500 + + Adjusted heading levels for consistency. + +commit 23531f23e104627d489c3740f460b9bb0f74c505 +Author: IrisSC <54850069+IrisSC@users.noreply.github.com> +Date: Sat Nov 13 11:40:27 2021 -0500 + + Cache Area and Crop Arrays (#305) + + * Seeding input caches the area and crop list using LocalStorage. + + * took out only in cypress tests + + * resolved some exist merge conflicts from main. + + * fixed testign for cache area and crop arrays. + +commit 9fa1a605969608591306f2b2a166b78f66946fbd +Author: Batese2001 <69521504+Batese2001@users.noreply.github.com> +Date: Wed Nov 10 09:41:59 2021 -0500 + + New date change report timing (#307) + + * Modified DateSelectionComponent to emit an on-click event. + * Modified DateRangeSelectionComponent to emit an on-click event. + * Seeding Report now hides on click + * Added cypress testing and renamed hide event to on-click. + +commit 59cf4f07abb955f067aade7917c2f8a3b5af8daa +Author: Grant Braught +Date: Wed Nov 10 09:37:14 2021 -0500 + + Removed .only so all tests run. + +commit 4f94f8dbcf193f264b7c172dff454c8b37986cd4 +Author: IrisSC <54850069+IrisSC@users.noreply.github.com> +Date: Mon Oct 25 08:28:06 2021 -0400 + + Add Cancel Button to Table Component (#302) + + + * Delete button turns to cancel button when the row is being edited. If the cancel button is clicked, then all edits that where made are returned to the values they had before. + + * when editing, the headers "Edit" and "Delete" are changed to "Save" and "Cancel" repsectivly. + + * added cypress tests to test that the cancel button exists, the new headers appear, and the cancel button changes values back when clicked. + + * added emit in cancel row method, and a cypress test for that emit. + + * added method to seeding report, so filters with not be disabled after cancel button is clicked. Added tests for this as well. + +commit d690cc845a647dd28c6b161ccc0de77d5b8b9d02 +Author: IrisSC <54850069+IrisSC@users.noreply.github.com> +Date: Wed Oct 20 08:09:44 2021 -0400 + + Table Component: Pop-up for Delete Button (#299) + + * Pop up appears when the user clicks a delete button in the table. The pop up asks the user if they would indeed like to delete the log. The user has the option of "Ok" or "Cancel". + + * added cypress tests for popup. + +commit 0cbfd4dc07734fe5ec86169cc64ccfbbe5e1070e +Author: IrisSC <54850069+IrisSC@users.noreply.github.com> +Date: Mon Oct 18 08:26:52 2021 -0400 + + Filter Area for Seeding Type (#291) + + * When Tray Seeding is selected, only greehouses are available for the are, and when Direct Seeding is selected only fields and beds are avaible. + + * If the user selects an area incompatable with the area they have chosen. The varaible selectedArea gets turned back to null. This way the user is unable to click submit, until they have selected a new area. + + * the code saves the users area, so if they switch from tray to direct or vice versa, they dont need to select a new area. + + * cyrpess tests to check that when tray seeding is selected only greenhouses are avialable and when direct seeding is slected only bed or field areas are avaiable for selection. + + * fixed up all tests so that they work with the new code. + + * merged from main + + * took out the console.log that where in methods and computed functions. + + * took out the unneeded ".only" + + Co-authored-by: josieecook + +commit d622e8d6d71e27890c73e2428e6dcf9d44ca606e +Author: Batese2001 <69521504+Batese2001@users.noreply.github.com> +Date: Mon Oct 11 09:16:07 2021 -0400 + + Summary Table Timing and No Log Messages (#289) + + * Added a message when a date range contains no logs + + * Summary Tables now remain invisible until the API returns + + * Summary now shows a message when only direct or tray seeding is in the table + + * Added Testing for the One Type Message code + + * Added testing for No Logs message + + * Added testing for summary table showing up after fully loaded table + + * Removed redundant logins + + * Replaced "before" with "beforeEach" and tests now run without 403 errors + +commit 80b4408aa0df6dadc4e5e2c310a5e5cbbc0b9d35 +Author: IrisSC <54850069+IrisSC@users.noreply.github.com> +Date: Fri Oct 8 14:58:59 2021 -0400 + + No Default Label For Drop Down Component (#293) + + * There is no longer a default label for the DropDownWithAllComponent. + +commit 73feb3808ae8978deaddfeb9eb14ef6d99457d18 +Author: IrisSC <54850069+IrisSC@users.noreply.github.com> +Date: Fri Oct 8 11:10:30 2021 -0400 + + Reorder Seeding Inputs (#281) + + * The cypress tests now work with the new order of the inputs. + + * changed the label or the inputs under the Labor section. Put them all into one line + + * changed "Number of Seeds Plants" to "Number of Seeds Planted". + +commit e89280874021a1ab107ea28bf71928187cd442b2 +Author: Grant Braught +Date: Tue Oct 5 07:52:52 2021 -0400 + + Removed Prettier Ignore + + Comment was added to prevent reformatting by contributor's IDE. Eventually want to move to using prettier for formatting and didn't want this file to be ignored if/when that happens. So kept the contribution but removed the comment. + +commit 2b1a8bd298bd1c70e2e4d24be66308fdcd4e58fe +Author: Elad Sheskin +Date: Tue Oct 5 14:49:30 2021 +0300 + + Updated comment (#288) + + * Updated comment + + * prettier-ignore comment added + +commit bda14d2bd89fb1fdc08c3471b9552b2484c1e1fe +Author: IrisSC <54850069+IrisSC@users.noreply.github.com> +Date: Mon Oct 4 10:16:02 2021 -0400 + + Mark Required Inputs (#286) + + * added red astrix to all reuired inputs, except those that are about labor. Also added sentence beforesubmit button explaining that all inputs with in astrix need to be filled before the user is able to click the submit button. + + * All required inputs are now marked by a red astrix. + + * took out required mark from time unit input. + +commit be6ed516d5eeb982f38487d474f3c4c0f38187f6 +Author: Batese2001 <69521504+Batese2001@users.noreply.github.com> +Date: Wed Sep 29 08:40:18 2021 -0400 + + Spinner reappear (#282) + + * Loading spinner is now visible after each new date selection + + * Cypress testing for Loading Spinner has been implemented + + * Testing now checks if the spinner remains between the button click and API return + + * Removed faulty test + + * Removed .only from tests + +commit d10627d3a4dbafb0a9660cd3e85e0513806f266e +Author: IrisSC <54850069+IrisSC@users.noreply.github.com> +Date: Mon Sep 27 08:33:27 2021 -0400 + + Input Log Submit Button Popup (#279) + + * when submit button is clicked there is a popup that says that a log has been submitted and asks the user if they want to go to the seeding report page. If the user clicks ok then it takes them there. + + * create a new labor section and moved number of workers and time spent to that section. + + * The cypress tests now work with the new order of the inputs. + + * Added cypress tests to test that the popup appears. When cancel is clicked it returns to the current page and when ok is clicked it takes the user to the Seeding Report Page. + +commit 3ec8a13fb27ed4bf1e5ea27aa8197ffa2c528466 +Author: Grant Braught +Date: Wed Sep 8 15:22:10 2021 -0400 + + Removed apt update from Cypress Dockerfile (#280) + + As apt packages were modified by others this began generating errors. + Becasue this is a dev only container we'll leave everything fixed + at the versions in the base container to prevent future errors. Everything + can be moved to newer versions all at once when necessary. + +commit 78d31a973a503b147ddb10c7e6a38f40a5046488 +Author: IrisSC <54850069+IrisSC@users.noreply.github.com> +Date: Wed Sep 8 15:09:45 2021 -0400 + + Default Feet Unit Bed (#276) + + * The default unit for the number of feet under direct seeding is now bed, instead of nothing + + * tests that bed is the default unit. Cleans up beforeEachs and other tests that select bed, since it is now selected for them. + +commit 06624a8bb27bee746aa31d613ce3713b41bf7972 +Author: IrisSC <54850069+IrisSC@users.noreply.github.com> +Date: Wed Sep 8 12:05:40 2021 -0400 + + Default Time Unit To Minutes (#277) + + * the time unit now defaults to minutes. + + * Tests that it defaults to minutes. Also cleaned up beforeEachs that select minutes, so they are no longer in the test code. + +commit 78307c941e88d8805283773946ff824cef42595f +Author: Grant Braught +Date: Wed Sep 1 10:01:01 2021 -0400 + + Added Vue Components links and also pointers to FD2 specific testing docs. + +commit 953ea80f163bc47ee020757ffd7161b17d96e877 +Author: Grant Braught +Date: Wed Sep 1 09:43:32 2021 -0400 + + Removed unused developmet modules (#275) + +commit f2ea32a89ae654972733c16989b5f14c61b9e8f7 +Author: josieecook <60167626+josieecook@users.noreply.github.com> +Date: Mon Aug 9 14:47:02 2021 -0400 + + Component and Function Documentation (#262) + + * Added documentation for the custom table component + + * Added documentation for the dropdown with all component + + * Added documentation for the dateSelectionComponent. + + * pulled from origin + + * Fixed some grammatical, spelling and wording issues. + + * Added documentation for the getAllPages function. + + * Added documentation for the getSessionToken function. + + * Added documentation for the DateRangeSelectionComponent. + + * added documentation for the map functions. + + * added documentation for the quantityLocation function. + + * Added documentation for the createRecord() function. + + * Added documentation for the updateRecord() function + + * Added documentation fo the deleteRecord() function + + * Made the component and function names in the README.md bold + + * Added markup to the whole documentation page + + Co-authored-by: IrisSC + +commit e105569d5d400a1413fef7925d92ab65cd049f59 +Author: IrisSC <54850069+IrisSC@users.noreply.github.com> +Date: Fri Jul 23 10:24:29 2021 -0400 + + Seedings Input Page and Page Tests (#255) + + * added APIRequestFunction and first test to resources folder + + * took out api function that is not complete yet + + * added Seeding Input subtab to field kit tab + Co-Author: Josie Cook @josieecook + + * added date-selection component in page, default date is today. + + Co-Author: Josie Cook @josieecook + + * Add dropdown for crops. Contains all crops in the database. + + Co-Author: Josie Cook @josieecook + + * Added dropdown for areas. Includes all areas in the database. Selected crop and area are stored in the data. + + Co-Author: Josie Cook @josieecook + + * added selection between Direct and Tray Seedings, which is stored in selectedSeedingType. + + Co-Author: Josie Cook @josieecook + + * 'added input to put in the number of workers + Co-Author: Josie Cook @josieecook' + + * added time spent with units (miuntes and hours). Added comments field. + + Co-Author: Josie Cook @josieecook + + * Added tray seeding and Direct Seeding inputs. They only appear when the correct one is clicked. Also added the Submit button. + + Co-Author: Josie Cook @josieecook + + * button is disabled if all of the required fields do not have inputs. All but comments are currently required. + + Co-Author: Josie Cook @josieecook + + * Add stylings to the page. + + Co-Author: Josie Cook @josieecook + + * When submit is clicked a planting log is created. + + Co-Author: Josie Cook @josieecook + + * can put in a Direct Seeding Log, if they user selects hours and rows for there units. + + * Can now put in a Tray Seeding Log, but still can not specify units. + + * can create both Tray and Direct Seeding logs using units. + + * quantity ids are no longer hard coded. Use the unit map function to get them. + + * merged from main. + + * The Direct and Tray seeding IDs are no longer hard coded, but instead get there value from the getLogTypeToIDMap function. + + * created seedingInput.spec.js for testing seedingInput page. + + * now tests that the submit button is disabled when the page loads, that the user can put in a new date, and that the user can select a crop. + + * Added test for slecting an area and inputting a number of workers. + + * now tests that the user can add comments, time spent, and the unit of time inot the page. + + * added test for slecting direct seeding and its inputs. Test also checks that the submit button is no longer disabled. + + * Test that tray seedings inputs can be put in when Tray Seedings is clicked. Also that the submit button is not disabled any more when everything is in. + + * Tests that tray seedings inputs do not show up when Direct seeding is selected and vice versa. + + * tests that a tray seeding log gets created when submit button is clicked. Then deletes it. + + * fixed error where seedings log was not connecting to the planting logs in assets. + + * tests that a planting log was made by clicking the submit button and then deletes that planting log. + + * fixed 500 error when minutes was selected for Direct Seedings. Also added difference between when minutes and hours were slected for tray seedings. + + * now tests that it will create a direct seeding log and a planting log, then deletes both logs. + + * moved the variable intialization to a before each and the deletion of the seedings and planting logs to a after each, for the "create logs in database" context. + + * all tests are now independent. The is the button not disabled test were put in there own context. Before and Afters were created for the create log tests, so that code could be consolidated. + + * test tray seeding for both when hours are slected and when minutes are slected for the time unit. + + * added tests for selecting minute vs hour for tray seedings and direct seedings, and bed vs row feet for direct seedings. + + * readded scripts to the fd2_barn_kit.info. + + Co-authored-by: josieecook + +commit dbe05a7eb9a73fe51f6ba33e9ae7c904a1d86c6e +Author: IrisSC <54850069+IrisSC@users.noreply.github.com> +Date: Thu Jul 22 16:17:34 2021 -0400 + + Remove reports (#257) + + * removed tray and direct seeding report, harvest report, and transplanting report. + + * removed report subtabs on page. + + Co-authored-by: josieecook + +commit 16ca66ba85774d6ffe15405dd93f48932a4426ab +Author: josieecook <60167626+josieecook@users.noreply.github.com> +Date: Thu Jul 22 16:13:08 2021 -0400 + + Seeding Report Page and Tests (#256) + + * Does not show Direct Seeding Summery when Tray Seedings is selected and vice versa. Data was also organized. + + Co-Author: Josie Cook @josieecook + + * numbers in Summary and Hours in table are rounded to two deminal places. + + Co-Author: Josie Cook @josieecook + + * changed IDToCropName to idToCropName and changed inputsVisible to reportVisible. + + Co-Author: Josie Cook @josieecook + + * fixed typo in updateRow method. + + Co-Author: Josie Cook @josieecook + + * only updates the planting log, if crop or user is edited. + + Co-Author: Josie Cook @josieecook + + * the area filter array is sorted, same for seeding type array. SeedingList is changed to seedingTypeList. + + Co-Author: Josie Cook @josieecook + + * can edit hours without checking if it is a Direct or Tray seeding + + * Added a loading spinner that displays before the report renders. + + * The loading spinner stays on the page after the table renders until all of the pages of the request have been fetched. + + * Disabled the filters when a row in the table is being edited + + * IDs for the quantity part of the log are no longer hard coded, but instead use the getUnitToIDMap function. + + * Added tests for both the direct and tray seeding summaries. + + * Quantities location are no longer hard coded into the edit method. + + * Only does api request when there is data sent back from the table commonent. + + * added cypress tests for the visible columns and for the date range selection hiding the report while being edited. + + * Can now edit a quantity and save, then edit a different quatntity and save. Both will now be saved in the database and seedingLogs. + + * removed irrlevant changes to table component + + * Added edit and delete button tests + + * Increased the timeouts for certain cy.get commands that take longer instead of using cy.wait + + * Added 'before' blocks to each of the test contexts to make them independant from each other. + + * All tests can be run individually and no longer rely on previous tests to be successful. + + * changed tray seeding summary tests to retrieve table values before the individual tests run. + + * changed direct seeding summary tests to retrieve table values before individual tests run. + + * Added cypress tests that ensure that the options in the dropdown menus update based on the other filter selections. + + * Fixed error in updateLog method that prevented crop updates to get added to planting assets. + + Co-authored-by: IrisSC + +commit 5649005e4eb1ce66a3b4e9fcd7bf946428d07f49 +Author: josieecook <60167626+josieecook@users.noreply.github.com> +Date: Wed Jul 21 13:47:51 2021 -0400 + + Table Cypress Tests for changedCell (#250) + + * Added cypress test that ensures that when a row in the table is being edited if a cell is changed beck to the way it was before editing that cell does not get added to the object that is emitted. + +commit b55144a6e81f48c611ff2d445786aff72c585756 +Author: josieecook <60167626+josieecook@users.noreply.github.com> +Date: Wed Jul 21 13:46:03 2021 -0400 + + Remove Console Logs (#253) + + * Removed console.log() lines from dropdownWithAllComponent file. + +commit a04eb5af15c6663d5dcb5e864af3328501e317fd +Author: josieecook <60167626+josieecook@users.noreply.github.com> +Date: Tue Jul 20 09:31:41 2021 -0400 + + Table Component - Updated Variable Names (#252) + + * fixed outdated variable name in table component template. + + * Updated all outdated variable names in table component template. + +commit 2529a76762dc4f3e6794eeccbf02ab44c585ef19 +Author: josieecook <60167626+josieecook@users.noreply.github.com> +Date: Tue Jul 20 08:10:00 2021 -0400 + + Decimal input (#251) + + * Put a step property on the number input to prevent errors in firefox when decimals are entered. + +commit f8f14dc25e1b14a5e28236da445fc52d1a9c2e77 +Author: josieecook <60167626+josieecook@users.noreply.github.com> +Date: Mon Jul 19 14:09:37 2021 -0400 + + Table Editing Changes (#247) + + * changed the way that the table gets edited by adding an object to save the edited row data until it gets emitted + + * changed the way that the table gets edited by adding an object to save the edited row data until it gets emitted + + Co-authored: Iris Shaker-Check @IrisSC + + * Removed console logs from table component code. + + * Altered the changedCell method in the table component to remove an index from the indexesToChange array if the value has been changed back to it's original state. + + * Added an 'originalRow' variable in the data that helps with comparison in the changedCell method. + + Co-authored-by: IrisSC + +commit 7d41a0fe5d32f27b7d621962481c75b608aad839 +Author: IrisSC <54850069+IrisSC@users.noreply.github.com> +Date: Thu Jul 15 08:30:14 2021 -0400 + + Map Function Tests (#248) + + * User map cypress test no longer of id numbers hard coded into them. Inside the get the value from one and test it in the other. + + * crop map cypress tests no longer have ids hard coded into them. + + * Area map function cypress tests no longer have the ids hard coded into the tests. + + * Deleted the old area map function cypress tests. + + * The Unit map cypress test no longer have the ids hard coded into the tests. + + * Log Type functions cypress tests no longer have hard coded ids. + +commit db356518d5e3d6841bb249c11d62f9ec2ce146d8 +Author: josieecook <60167626+josieecook@users.noreply.github.com> +Date: Wed Jul 14 10:57:31 2021 -0400 + + Number Input in Table - @change (#246) + + * Fixed problem with event not firing on change of a number input in the table. + + Co-authored-by: IrisSC + +commit 38aecc883864ac8b139e571ea884e2fa1765bbf6 +Author: IrisSC <54850069+IrisSC@users.noreply.github.com> +Date: Wed Jul 14 10:36:21 2021 -0400 + + Log type map (#245) + + * created functions that map log category to id and vice versa along with cypress tests. Also fixed other cypress mapping tests that had the wrong id number + + * .only was removed from the map functions context. + + Co-authored-by: josieecook + +commit 00cea570e818c25c14bd6d14178ce81bdc758bdd +Author: josieecook <60167626+josieecook@users.noreply.github.com> +Date: Wed Jul 14 09:04:42 2021 -0400 + + Table Styling Update (#244) + + * Created CSS classes that make the edit and delete buttons in the table slightly smaller and the text in the table slightly larger and darker. + + Co-authored-by: IrisSC + +commit 953dd7106624b62c54f6c2d22461735200a21b36 +Author: IrisSC <54850069+IrisSC@users.noreply.github.com> +Date: Tue Jul 13 10:57:05 2021 -0400 + + Quantity placement (#243) + + * created quantity location function and tested it in ex1 subtab. + + * added cypress test for quantityLocation function. + + Co-authored-by: josieecook + +commit d6c3396c8b79a7cd04236051d27216034439baa2 +Author: josieecook <60167626+josieecook@users.noreply.github.com> +Date: Tue Jul 13 10:55:49 2021 -0400 + + Table Component Updates (#241) + + * Fixed table component so that visibleColumns can be updated dynamically after the page has loaded. + + * Fixed the table component so that the dropdown menus in edit mode contain the options that were passed to the table. + + Co-authored: Iris Shaker-Check @IrisSC + + * Disabled all delete buttons when a row is being edited. + + * Added cypres test for the disabling of the delete buttons + + * The table component emits an event without a payload when the edit button is clicked. Cypress tests have been added to test this. + + * REmoved the seeding report page from this branch + + * Update to pull request to restore lines in fd2_example.info. + + Co-authored-by: IrisSC + +commit 2b68298fe4cff34862362595bf8acdad650274e3 +Author: Grant Braught +Date: Mon Jul 12 08:47:06 2021 -0400 + + Add Harvest Data to Sample DB (#240) + + * Moved addition of category after heading is printed + + * Corrected typo in SQ10 area. + + * Added translation for bad area ASPARAGUS + + * Added harvest data + + * Added 2017 seedings for harvests in 2019 + + * Added user translation for 2017 user + + * Fixed undefined variable error introduced earlier + + * Documented added seedings and field remappings to make all records work. + + * Small edit + + * Added map for unit to measure conversion + + * Scripts for adding and deleting harvest logs + + * Fixed typo in measure map name + + * Documented harvest logs + + * added call to script that adds harvest logs + + * Rebuilt sample databadatabase with harvest logs + +commit 45c5ad537b5f7031cecc85ceba644aee015b1799 +Author: IrisSC <54850069+IrisSC@users.noreply.github.com> +Date: Fri Jul 9 15:01:19 2021 -0400 + + Unit maps (#239) + + * created functions to get map of quantity units to id and vice vera. Built cypress tests to test them, all run smoothly. + + Co-authored-by: josieecook + +commit 5728a4a3efcda65d752ab141c958d9f0875a35bb +Author: Grant Braught +Date: Fri Jul 9 11:30:25 2021 -0400 + + Adds Crop Conversion Units (#237) + + * Updated crops.csv with new classifications + + * Updated tests to match changes to crops + + * Fixed formatting of comments + + * Changed formatting of concatenated comments + + * Added translation for Greens, Mes Mix + + * rebuilt sample database + + * Add units before crops so crops can have default and conversion units + + * Add fields to the farm_crops bundule + + * Mount php script to container for adding fields + + * Added units and conversions to crops + + * Added default crop units + + * Made units upper case for consistency + + * added map and validation functions for units + + * Default units added to all crops + + * Adds quantity field for all conversions for crops + + * update to build full db with crop units + + * Fixed error introduced in changing to use getAllPages + + * generaated new sample database with crop units and conversions + + * Documented the addition of conversion units and the transplanting lgos + +commit 1dd5d44798831831d42ee78b7481cff527a9c151 +Author: Grant Braught +Date: Fri Jul 9 11:26:21 2021 -0400 + + Translate 0000-00-00 Transplantings (#236) + + * Changed transplantings without date to use transplant date for planting + + * Generated new sample db without using 0000 dates. + +commit 9a40dad5d95de0299f4feaee1a423c9c92edca4e +Author: josieecook <60167626+josieecook@users.noreply.github.com> +Date: Fri Jul 9 11:25:44 2021 -0400 + + Table Component - Fix Dropdown Event Handler (#232) + + + + * Fixed missing event handler on the dropdown input. + + Co-authored-by: IrisSC + +commit 6fe08866beffe2012fa6e10a0c06c9a51785e9e4 +Author: josieecook <60167626+josieecook@users.noreply.github.com> +Date: Thu Jul 8 16:03:50 2021 -0400 + + Table Colors (#234) + + + * Changed colors of table header and delete button to match FarmOS. + + Co-authored-by: IrisSC + +commit 3473d32031001ef8dc9dc9cc28a010a18654b9e8 +Author: josieecook <60167626+josieecook@users.noreply.github.com> +Date: Thu Jul 8 16:00:48 2021 -0400 + + Table Component - Optional Input Types (#231) + + + * Made the inputOptions prop optional, and if none is provided all input types default to text inputs. + + * Changed table cypress tests to not include the now optional props when they are not needed + + Co-authored-by: IrisSC + +commit d5c11c429b2571279b1ab3b1be4e1cdcc126bfba +Author: josieecook <60167626+josieecook@users.noreply.github.com> +Date: Wed Jul 7 10:41:56 2021 -0400 + + Table Component - Optional visibleColumns (#230) + + * Made the visibleColumns prop in the table component optional, if it is not specified then all columns are visible. + + Co-authored-by: IrisSC + +commit 6f75e2f034f98926bbcb7c2da0aa3db519b152c1 +Author: josieecook <60167626+josieecook@users.noreply.github.com> +Date: Tue Jul 6 22:46:21 2021 -0400 + + Table Component - Dynamic Height (#229) + + * Changed height to max-height in the table component CSS so that it will dynamically chenge to the exact height of the displayed rows until it becomes too large to fit on the page. + + Co-authored-by: IrisSC + +commit b2142ce0a85cd29ee0ed6827740bfe5c91770391 +Author: josieecook <60167626+josieecook@users.noreply.github.com> +Date: Tue Jul 6 22:45:01 2021 -0400 + + Table Component - Customizable Input Types (#228) + + + + * Switched out the input elements in the custom table component with textarea elements + + * Table inputs can now be set as text or dropdown types through a prop array. + + * Changed the structure of the passed inputOptions prop to be an array of objects. + + * Added input options of date and number to the table component. + + * Added a possible input type 'no input' that allows certain columns to be uneditable + + * Fixed cypress tests to ignore white space in the table content. + + * Added cypress tests for the customizable input types within the table. + + * Added cypress test for the 'no input' option. + + Co-authored-by: IrisSC + +commit 486377b2b9906dbcd863e2d12f81ad8f68544995 +Author: josieecook <60167626+josieecook@users.noreply.github.com> +Date: Fri Jul 2 14:51:34 2021 -0400 + + Table Component - Strings to HTML (#227) + + * Changed the table component template so that strings constaining html elements are displayed as rendered html and updated cypress tests to reflect the change. + + * Added cypress tests that ensures html tags in strings are rendered as elements in the table. + + * Changed cypress tests to use data-cy instead of nth-child. + + + Co-authored-by: IrisSC + +commit 1504dd08e9783488b1c068b10870396528b8f673 +Author: josieecook <60167626+josieecook@users.noreply.github.com> +Date: Thu Jul 1 14:10:49 2021 -0400 + + Sticky Header (#226) + + + * Added code to fd2.css and classes to the table component template that makes the table component have a scroll bar and sticky header when there are too many rows to fit on one page. + + * added more objects to the testObjectArray in ex1.html to demonstrate the scroll bar and sticky header of the table. + + Co-authored-by: IrisSC + +commit 219ce85beb46a4d2a3db834688925abe1902dfa9 +Author: josieecook <60167626+josieecook@users.noreply.github.com> +Date: Thu Jul 1 14:06:45 2021 -0400 + + Dropdown Component - selectionChanged Update (#225) + + + * The dropdownWithAll component now emits the selectionChanged event on @change instead of @focusout, and the cypress tests have been updated to reflect this. + + Co-authored-by: IrisSC + +commit c794058b0121859e48a1d2a4f7fed691fd653233 +Author: josieecook <60167626+josieecook@users.noreply.github.com> +Date: Wed Jun 30 13:09:22 2021 -0400 + + Table Component - Styling and Visible Columns (#219) + + + * Table component now has FarmOS classes that affect styling and a visibleColumns property that can be used to hide particular columns. A line of code on line 138 of ex1.html has been commented out because it was causing issues with table functionality. Co-authored: Iris Shaker-Check @IrisSC + + * New cypress tests for the table component that ensure that the visibleColumns property prevents the display of certain columns + + Co-authored-by: IrisSC + +commit c690145b682fc2146823bdb9f7d21ebbbf9f9f2d +Author: Grant Braught +Date: Wed Jun 30 11:48:23 2021 -0400 + + Adds Transplant Data (#223) + + * Adds missing seedings for transplandings + + * Transplanting scripts completed. + + * Clarified handling of 0000-00-00 seeding dates + + * added transplantings to the main sample db build script + + * Built sample DB wDB with transplantings. + +commit e05ca2a006ad2c4501435ab57a336efc4b53d893 +Author: Grant Braught +Date: Wed Jun 30 11:15:28 2021 -0400 + + Drops taxonomy_csv module (#221) + + * removed taxonomy_csv module, rebuilt empty db image + + * rebuilt sample db db without taxonomy_csv module + +commit 197ebe2043c3bf8380205e875f031bc050a28a9a +Author: Grant Braught +Date: Tue Jun 29 17:20:17 2021 -0400 + + Updates Sample Database (#220) + + * Updated crops.csv with new classifications + + * Updated tests to match changes to crops + + * Fixed formatting of comments + + * Changed formatting of concatenated comments + + * Added translation for Greens, Mes Mix + + * rebuilt sample database + +commit 12ce8094e56ce248edbdd5eac25acafdc612746e +Author: Grant Braught +Date: Tue Jun 29 15:45:34 2021 -0400 + + Fixes Tests for FarmOSAPI.js Functions (#218) + + * Fixed getAllPages tests + + * Tests fixed and running, API made more uniform + + * Changed Field to Area to be consistent, documented functions + +commit 9f9fdbdd77b674cb39c0e7e8ac7f6b5ca332022b +Author: Grant Braught +Date: Tue Jun 29 08:15:10 2021 -0400 + + Updates the Names of Crops (e.g. ONION-SPRING) (#217) + + * Switched to compound names for sub-crops (e.g. ONION-SPRING) + + * Added cropID to data of direct seedings + + * Added cropID to data in tray seedings + + * Changed cropID to crop_tid in data field for direct and tray seedings + + * Updated samplle de database. + +commit ae6a78d9b0fb50ed3955acb1e405b8fefa0b86bd +Author: Grant Braught +Date: Mon Jun 28 13:49:43 2021 -0400 + + Updated INSTALL.md for access token requirement (#216) + +commit e0fc9656e89d8954b832bfc859e701f42c8b4b09 +Author: Grant Braught +Date: Mon Jun 28 10:55:12 2021 -0400 + + Removed unintentionally merged spike code (#215) + +commit 35ecf7f4df2522cdc6008e0641a2ea8036a94c4a +Author: Grant Braught +Date: Mon Jun 28 10:49:35 2021 -0400 + + Adds updateLog function to FarmOSAPI.js (#214) + + + * the modify function works for both changing the name and the timestamp of a log + + * started cypress test. Currently the wrap throughs an error + + * Merged test code + + Co-authored-by: josieecook + Co-authored-by: IrisSC + +commit f9541a3383d038ce0ef1f744bfdac407c2b97284 +Author: Grant Braught +Date: Mon Jun 28 10:33:00 2021 -0400 + + Adds createLog function to FarmOSAPI.js (#213) + + + * createLog fucntion and non-functioning cypress tests + + * added chained '.then()'s to the createLog cypress tests + + * Completed cypress tests for createLog function, but need to be merged into a branch with deleteLog function + + * Cleaned up formatting and small issues + + Co-authored-by: josieecook + Co-authored-by: IrisSC + +commit 1fb2f822dfdf9449d9e9c775d443fd251db0b42d +Author: Grant Braught +Date: Mon Jun 28 09:57:52 2021 -0400 + + Adds user/crop/area mapping functions (#211) + + * added APIRequestFunction and first test to resources folder + + * took out api function that is not complete yet + + * added functions getCropMap, getFieldMap, getUserMap, and getMap. + The first three functions call getMap. Then get map uses there url and id to create a map that has the id to the name of the crop,field, user, or other piece of information that would be useful in a map structure + + * added function for getting a map that maps crop, user, or field to an id. Added test for these functions in cypress. Also added tests for the functions that mapped id to crop,user, or field. + + * fixed discription of length test for getCropToIDMap + + * all test for crop,field, or user to id and vice versa work correctly + + * put in requested changes. + + This included changing the crop url and having each function only have one test(combining the old tests). Also put all the tests for the map functions into one context. + + * Removed incorrectly merged test code, renamed orig db to work with setDB.bash script + + Co-authored-by: josieecook + Co-authored-by: IrisSC + +commit 0e69d9924ae6a835c6ccf10b3f3735f0c531389f +Author: Grant Braught +Date: Sun Jun 27 11:39:11 2021 -0400 + + Updated script to set farm name and slogan (#208) + +commit 680ac75ec6615e139ea0602b71eba81a7703925c +Author: Grant Braught +Date: Sun Jun 27 11:24:17 2021 -0400 + + Enable fd2 mods (#207) + + * enabled FarmData2 modules + + * Updated sample db db image so FarmData2 modules are enabled. + + * Packed db with ush user logged out. + +commit 61fecc239effb977b25a9d1f32e6ccf0f7b41287 +Author: IrisSC <54850069+IrisSC@users.noreply.github.com> +Date: Sun Jun 27 11:09:00 2021 -0400 + + Table component (#196) + + + * added table component and test file for table component + + * merged with the main branch from upstream + + * Updated import statments in the component and component tests to match the new ones used in the date selection components + + * Updated cypress tests to be more efficient in their use of mounts + + * All cypress tests for the table component are passing + + * Added functional cypress tests that ensure that events are being emitted with the correct payload when the save and delete buttons are clicked + + * only one row in the table it editable at a time. the event payload for the save button is all the cells that have been changed with their new values + + Co-authored-by: Josie Cook @josieecook + + * updated testing: correctly test for the new emites when the save button is clicked and test that only one row is editable at a time + + Co-authored by: Josie Cook @josieecook + + * made table component cypress tests more consistent and fixed some small errors + + * Removed dead code and created more consistent/readable names in the table component (based on code review) + + Co-authored-by: Grant Braught @braughtg + Co-authored-by: Iris Shaker-Check @IrisSC + + * the delete, edit, and save buttons are now icons + +commit 469d953a3ea3d843239b77fd2c060a4a16ce9b95 +Author: Grant Braught +Date: Sun Jun 27 10:43:14 2021 -0400 + + Adds new sample database (#206) + + * Added bzip of db folder with no data. + + * Updated db.empty.tar.bz2 to use mounted farmdata2 logo file. + + * Added db containing only the users as a temporary checkpoint. + + * Updated empty db image to include the taxonomy_csv module. + + * Added the taxonomy_csv module to the empty db + + * Added the taxonomy_csv module via docker mount instead of in docker image. + + * Removed db zip with users in favor of doing it programatically on top of empty. + + * Started script for sample db creation - makes users so far. + + * Progress on the creation of vocabs with python + + * Adds script to add field.csv contents to FarmData2 as Farm Areas + + * Added comments to areas.csv to describe format + + * Added printed header and trailer for adding areas + + * Added scripts and data for creating Crop Families and Crop/Varities vocabularies + + * crop families are deleted after crops. + + * Added documentation of vocabularies + + * Added urls for the relevant endpoints + + * Fixed errormessage text + + * Removed unused time import + + * delete and add log categories for direct and tray seedings + + * Adds direct seeding data + + * Ensured all crops and families are deleted + + * Ensured that all areas are deleted + + * Added 2019 and 2020 data + + * Translations for bad areas/crops added + + * Added a pasture since it shows up in the data + + * Added data from Jan 1 2019 - July 15, 2020 + + * refactored to use getVocabularyID function + + * Changed lists to maps for crops and areas" + + * Added plantings for each direct seeding + + * Added user name translation for anonymization + + * Added units & refacotored functions into utils.py + + * Added units.csv data file + + * Direct seetings added to db. + + * documented seedings and plantings. + + * completed direct seedings + + * deleted file + + * Tray seedings completed. + + * Added context to docs. + + * Added compressed sample database file. + + * small edits + + * Added script for changing databases. + + * Updated script and install directions. + + * renamed original db image file. + +commit 11d86e6c39170f0c8232fc6889e79d1c30819fa1 +Author: Grant Braught +Date: Fri Jun 25 10:43:10 2021 -0400 + + Fixed getAllPages test using get and proper alias (#203) + +commit 72f6f10d76ec612b4260abf43506cdc1751d99e2 +Author: Grant Braught +Date: Thu Jun 24 16:13:58 2021 -0400 + + Removed .only on tests (#202) + +commit b0c09ba8777e9868f52dbfdfef578a71b44f301b +Author: Grant Braught +Date: Thu Jun 24 16:10:35 2021 -0400 + + Adds deleteLog function with Tests (#201) + + * added getSessionToken and deleteLog functions + + Co-authored-by: josieecook + Co-authored-by: IrisSC + +commit ef615fce41fc5a32c35c2238ded39c33e117e72f +Author: josieecook <60167626+josieecook@users.noreply.github.com> +Date: Mon Jun 21 10:04:18 2021 -0400 + + Testing Lifecycle Hooks (#184) + + * In progress cypress testing for alterations of the dropdown component + + * updated dropdown component cypress test to that it accurately tests for the emitted event on mount + +commit 286e52eb8f435cc195c6e2565d6a83cbd7c82a90 +Author: Grant Braught +Date: Sun Jun 20 13:35:33 2021 -0400 + + Refines and Completes getAllPages (#195) + + * Cypress test now working. + Not sure the wait(1) is the right way to do it. + Will continue to revisit. + + * Added working cypress tests. + Now tests for a single page request and for a multiple page + request. + + Co-authored-by: josiecook + Co-authored-by: IrisSC + +commit c0edda9a467064e123d815a00b801a199767dc58 +Author: Grant Braught +Date: Sat Jun 19 17:08:05 2021 -0400 + + Updated README.md in fd2_example to reflect current practice. (#194) + + This included adding the requres at the top of nested components + and in component test files. It also inlcuded the use of + modules.export in the .js files for components and js libraries. + + Also ensured that all of the components and js libraries followed + this practice. + + @co-authored-by: josiecook + @co-authored-by: IrisSC + +commit 1982929e9a446d7b7314df227c27c57a89d50a89 +Author: Grant Braught +Date: Sat Jun 19 15:31:31 2021 -0400 + + Fetch all pages (#193) + + * Draft implementation o the getAllPages function. + + @Co-authored-by: josiecook + + * Draft of getAllPages complete + + * Working version of getAllPages along with some testng. + + @Co-authored-by: josiecook + +commit 7d48daa5c7ba6f16482ab71784a1dfd3e337d1e5 +Author: Grant Braught +Date: Fri Jun 18 11:30:44 2021 -0400 + + Chained instead of nested thens in deleteLog (#191) + +commit 95141ade24a5ab9b3850e69941a4e807038a159d +Author: Grant Braught +Date: Fri Jun 18 09:51:53 2021 -0400 + + Adds delete record demo to ex1.html (#190) + + * Added deletion of log by id - not working yet. + + * Working demo of deleting a log by id + + * Commented on use of CRSF token for delete. + +commit 0d9e0245e15953be03a52dfcdeae2083bd0f4a00 +Author: Grant Braught +Date: Wed Jun 16 16:29:33 2021 -0400 + + Added axios to the cypress test runner docker image. (#189) + +commit 45dc3fa13b107445a52215fbd53fc19506cd20e3 +Author: Grant Braught +Date: Wed Jun 16 16:00:00 2021 -0400 + + Connected test runner to the docker network so it can talk to FarmData2 in tests (#188) + +commit 0ef31772633f315564e9464d54acd42a2fb37db5 +Author: Grant Braught +Date: Tue Jun 15 16:45:59 2021 -0400 + + Added custom table component that supports editing and deleting of rows. (#185) + + Co-authored-by: josieecook + Co-authored-by: IrisSC + +commit 011bf73ae0f83c16e8a97de6ab89926c4aa7fd62 +Author: Grant Braught +Date: Tue Jun 15 12:12:23 2021 -0400 + + Adds DateSelectionComponent and DateRangeSelectionComponent along with associated tests and demonstration in the ex1.html page. (#183) + + Co-authored-by: josieecook cookjo@dickinson.edu + Co-authored-by: IrisSC shakerci@dickinson.edu + +commit dcbae66b3204265f04b8c2cc57a994af0d7d402e +Author: Grant Braught +Date: Tue Jun 15 10:43:07 2021 -0400 + + Update to Dropdown Component (#182) + + * Added dropDownWithAll component using select html element + + * Renamed compnent files using pascal case to match convention. + + * Updated e2e and component tests to match code changes. + + Co-authored-by: josieecook cookjo@dickinson.edu + Co-authored-by: IrisSC shakerci@dickinson.edu + +commit a3d165fb9b15513edc57cd737ad88c9966b7bca8 +Author: josieecook <60167626+josieecook@users.noreply.github.com> +Date: Thu Jun 10 13:06:53 2021 -0400 + + DropdownWithAllComponent (#177) + + * Created a DropdownWithAllComponent + + * DropdownWithAllComponent implemented it in the ex1.html file + + * Reworked the end-to-end cypress test for ex1.html to test the new dropdown menu + + * Removed the fieldDropdownComponent and added to DropdownWithAllComponent so that it will reset to have no input if something is typed in that isn't in the menu. + +commit 54edb315c59fa8e4e37b55fab6f87cabec6b2bdb +Author: Grant Braught +Date: Wed Jun 9 09:47:42 2021 -0400 + + Documentation updated to Address Component Testing (#176) + + * Noted component testing + + * Upped the recomended virtual disk size. + + * Added onboarding for component testing + + * Documented need to add component js files to modules .info file + +commit 720f7c07bb0a11c3a660a7198ce689fa30183186 +Author: Grant Braught +Date: Tue Jun 8 15:29:22 2021 -0400 + + Document Component Testing (#175) + + * Updated README for addition of component testing. + + * Fixed file suffix for component tests. + +commit 7f9f737e6be08e4c58804ce51e9726731c740724 +Author: Grant Braught +Date: Tue Jun 8 09:18:56 2021 -0400 + + Cypress Component Testing (#174) + + Fully functional e2e and component testing with Cypress within a docker container. + + * Docker and config for cypress component testing added + + * Added image versioning, yarn timeout hack added + + * Named the container + + * Added test type param e2e or ct to testrunner.bash script + + * adjusted flag for type of test. + + * Fixed globbing to separate e2e and ct tests. + + * Got single file vue component testing working + + * Working Vue component for page and for component tests + + * removed the single file component in favor of the .js file + +commit 3b42f180632f8d9f33b6ea17b61c7859f00a88d5 +Author: Grant Braught +Date: Wed Jun 2 12:07:00 2021 -0400 + + Added more resource links for cypress (#173) + +commit 57c47097562c183cdf1a862eb87e65f03ac58427 +Author: Grant Braught +Date: Tue Jun 1 15:23:26 2021 -0400 + + Modified cypress configuration to omit screenshots and videos (#172) + + Co-authored-by: braughtg + +commit 7421d8a9e96a84f84999acd7a9e0177b13822148 +Author: Grant Braught +Date: Tue Jun 1 14:56:50 2021 -0400 + + Reorganized and simplified Cypress Tests (#168) + + * Modified cypress tests to run from a single config and single location + +commit b0eeaaee0144168366455e789b39c0f9b92f016c +Author: Grant Braught +Date: Tue Jun 1 14:50:15 2021 -0400 + + Reformulated Ex1 using a vue Component (#169) + + * Rewriting fields dropdown using a Vue component + + * Cleaned up cypress end-to-end tests to use component + + * Cleaned up data-cy id's to make spec tests easier + + * added data-cy to componment + + Co-authored-by: braughtg + +commit 27dc3299859214e9fbba15afac38afe8b675775d +Author: Grant Braught +Date: Sun May 30 17:43:24 2021 -0400 + + Update INSTALL.md + + Added clarification of needing to restart virtual box after adding user to the docker group. + +commit e0177780867ee6c6f903848202f640b31282f2ef +Author: Grant Braught +Date: Thu May 27 14:40:02 2021 -0400 + + Reordered BarnKit tabs (#166) + +commit 421baed67f43573b994f22be9651cef9958b3dd6 +Author: josieecook <60167626+josieecook@users.noreply.github.com> +Date: Thu May 27 14:34:33 2021 -0400 + + Request Tray Seeding Report - Epic (#157) + + * Provided a dropdown list of crops,in alphabetical order, from the farmOS API to choose from. + + * Added start date and end date inputs to the tray seeding report tab, and set the default end date to the current day. + + * Added a placeholder table with all relevant headings to a tray seeding report. As of right now, it has one row where all of the cells display the word "Sample". + + * Added comments to traySeedingReport.html for better readability + + * Added a traySeedingLogRequest method that will make an API request to get seeding logs within the dates specified in the start and end date inputs. Also began to fill in table with appropriate variables from the request. + + * Added a traySeedingLogRequest method that sends an API request for tray seeding logs between the specified start and end dates. The dates of each log are added to the table, but all of the other details are currently blank. + + * Added
to move the generate report button to a new different line than the start and end date inputs. + + * Added generate report button and a mock report table + + * Added All option to crop downdown + + * Cleaned Up code and made sure date/crops appear on table + + * Cleaned up generateReport function + + * Added delete button and popup message upon clicking button + + * Added notes to guide future coding + + * Code clean up from delete button and row dates merge + + * added delete button to cleaned up code + + * Table now gives crop output from API and the 'All' crops option now works + + * Fully functioning delete button + + * Altered the processing of the API Request response so that the data is saved as-is and then the specific information needed to display in the report is sorted out within the table. + + * Simplified the traySeedingLogRequest method. + + * Started filling rows, still need a way to extract the right data + + * Finshed story, now all relevant data on the table is displayed except for user and comments + + * Fixed bug and added user to table + + * Fixed delete button bug and merged all code from my team's story + + * Added in-line comments on the functionality of the code + + * Added descriptive comments on methods and HTML elements to specify functionality and purpose. + + * Added suggestions from Matt after final presentation + + Co-authored-by: Diego2214 + Co-authored-by: ShannonLoughin + Co-authored-by: Diego2214 <42941502+Diego2214@users.noreply.github.com> + Co-authored-by: ShannonLoughin <54909682+ShannonLoughin@users.noreply.github.com> + +commit fad81d4439a9d4f632274de52a25a922ff3b0c8b +Author: Boo Sung Kim +Date: Thu May 27 18:30:08 2021 +0000 + + Issue 139 Transplanting Page added (#159) + + * making subtab + + * adding headings and paragraphs to subtab + + * make pagelook nice w/ line,spacing, and italics + + * add title and generate report button + + * add crops, feilds, and start & end dates + + * add table with Kale data + + * added A03 tap + + * adding div, v-clock,and Title-header connection + + * fixed issue in prevous commit + + * added start, end , and crop information that is ended in the top section of the page to appear in the rest of the bottom sections + + * add header of mock report to be My Mock Report on default. It will change to whatever is entered into the title box + + * make it so that the drop down options for fields and crops are generated from a list in Vue and not hard coded in the page + + * connecting the crop information table to the Vue instance + + * adding devtools to the Vue instance + + * synching feater branch + + * creating tab A04. This tab is curently idenitcal to the A03 tab + + * Connecting button to data table. When Genrate Report is clicked a row of data in the data table shows up + + * Rotates though the different objects for the table when Generate Report is clicked + + * Added Delete button to table. If Delete is pressed then the row is deleted + + * when there is no data the table does not appear instead there is a message: There is no mathcing records + + * The report is hidden until the Generate Report button is clicked for the first time + + * cannot set the start date of the harvest report ot be after the end data and vice vera. They can be set to the same data though + + * Adds the yield of the data displayed in the table. Outputs it underneath the table + + * added A05 subtab + + * connected the field pull down menu to the farm database + + * The crop list dropdown is now connected to the data of crops + + * Add the A06 practice tab + + * when Generate report is clicked a list of all harvest reports are generate in the table. Only the dats are showing the rest just say blah. The datas are in unix time + + * the date in the table is no longer in timestamp, but is legiable to the average viewer + + * added the field, crop, and yield variables to the table. + + * the table has elements that only have the field that was selected + + * can now use the start and end dates to specify which logs show up in the table + + * the dropdown slection on the crop will now help spefify which logs are added to the table + + * added html file called transplanting and it has a heading: Transplanting Report + + * added subtab called transplanting that connects to the transplanting.html file + + * Intialized Vue variable and added a div section: Transplanting report + + * table created for data insertion + + * took out spike subtabs in FD2 Example tab + + * added input for start date. This input changes the startDate varaible in Vue.js to the inputed date. + + * A date input was added for the user to add an End date for their desired range. The input is saved into the endDate variable in Vue.js. A max for the start date and a min for the end date was added. These were linked to each other. + + * added a field variable to store all fields and a drop down list of field for selection + + * Now when the generate button is hit the instnace that appear in Vue.js from the data are only after the start date that was inputed + + In order for this to be created, a Generate Report button, a logs variable in Vue.js, and a saveLogs method was created. When the Generate report button is cicked the saveLogs method is started. In the saved logs method a variable called link is created. This variable is set to the standard link for all transplanting log. Then if startDate is not empty then the link variable is added to inorder to create a link that will get all transplanting logs created after that start date. Then that link is used in the axios call. In order to do this, the methodstimestampToYMD and YMDToTimestamp were created. This methods change YMD time to timestamp time and vice versa. + + * the variable endDate now effects what logs show up in the Vue.js logs. + + In the saveLogs method, if the endDate variable is not empty. The link varibale is added to, so that the link will only call transplanting logs that happened before that date. + + * Added crop name filtering to the table + + * added varaibles rowfeet and rowbed to each log. These variables find the row feet and row/bed data from each log. + + * Added bed feet to the transplanting table. + + In order to do this, a calculate bed feet method was required. This took in the row feet and rowbed data. It used the methods getRowFeet and getRowBed to seperate the number from the rest of the data. It then divided row feet by rowbed to get bed feet + + * Table displays rows/bed now + + * Added user that created the report to the table + + * Deleted test message from transplanting page + + * this story added the comment to the table. + + it did this by accessing the notes in the logs and printing the information in the value key of the notes array + + * reversed the rowPerBed and rowFeet in the table. There were in the wrong place + + Co-authored-by: IrisSC + Co-authored-by: IrisSC <54850069+IrisSC@users.noreply.github.com> + Co-authored-by: miyu386 + Co-authored-by: Billy Lee <60191117+miyu386@users.noreply.github.com> + +commit 9b913054f96bd211143b9570e6d79ea8124a88b7 +Author: braughtg +Date: Thu May 27 13:57:57 2021 -0400 + + deleted test file + +commit 6d9967462081087cfe53b34aca36949367937d00 +Author: braughtg +Date: Thu May 27 13:55:16 2021 -0400 + + Just a test of the protection of main. + +commit 6ef51a89878c23d31223f4b9f78d8c96cd645a65 +Author: Grant Braught +Date: Thu May 27 13:40:33 2021 -0400 + + Direct Seeding Report - first cut (#163) + + * Created Direct Seeding Report HTML and added the crops field: issue137 + + * Addded drop dowm menu for all fields + + * Added Dates To and Dates From fields + + * Table is generated when submit button is clicked: Table is not filled with data from API yet + + * Added code to retrieve nescessary data from API: does not work yet (need to find the correct path) + + * Update directSeedingReport.html + + * added edit button to the report table + + * Edit button WIP, on click the table switches to edit mode with input/dropdown fields and save button + + * API now retrieves correct data when Crops = ALL, and dates are null + + * Table now filters data according to the date for all crops + + * Table now filters data according to the date and specified crop + + * Edit Button WIP - added default values(original) for the fields in edit mode + + * Small code cleanup + + * Run another report function WIP - added the button and function to reset fields and hide the table + + * Complete edit button feauture + + * Complete 'Run Another Report Feature' + code clean up + + * Merge the update code, with working delete buttons + + * All properties in the Table fill properly + + * more changes tothe table + + * Update directSeedingReport.html + + Commented my part of the code + + * Added some comments + code cleanup + + * Added comments to fields and delete function + + * Small fix to edit funstion for dropdown menus + + Co-authored-by: SavidBasnyat + Co-authored-by: egorovak + Co-authored-by: SavidBasnyat <54815468+SavidBasnyat@users.noreply.github.com> + Co-authored-by: Bruno Kaboyi + Co-authored-by: brunokaboyi <42941446+brunokaboyi@users.noreply.github.com> + +commit b347b5e78f92a6fcb65c5d5dd6bf2c94e3cb1762 +Author: Batese2001 <69521504+Batese2001@users.noreply.github.com> +Date: Thu May 27 13:23:06 2021 -0400 + + Csv conversion (#158) + + * Amelia: added comments + + * Added more comments + Co-authored-by: Evan Bates + Co-authored-by Amelia Dao + + * Delete harvestReport.html.orig + + This file is in here by mistake + + * Fixed min and max for date entry + + Co-authored-by: Amelia Dao + +commit 1f68a6c14bdf62c608d1607c030ff3869858d065 +Author: Grant Braught +Date: Thu May 27 10:30:43 2021 -0400 + + Ignored files docker./logo created by mount into farmOS container (#162) + +commit 53667ee029fd7d7d922f1b2e7a71d9a5cb50ab98 +Author: John MacCormick +Date: Fri May 21 08:42:10 2021 -0400 + + Fix some typos in documentation files INSTALL.md and ONBOARDING.md (#160) + +commit 1b9a20c2a0393b3c406b55db234f29804a01e1f5 +Author: Batese2001 <69521504+Batese2001@users.noreply.github.com> +Date: Wed Apr 28 13:17:25 2021 -0400 + + Partial implementation of the Harvest Report + + * Create DELETE.txt + + * Added a new sub-tab Harvest Report to the BarnKit tab + Added harvestReport.html + + * Delete DELETE.txt + + * Added title input and button to Harvest Report sub-tab + + * Generate Report button now generates a mock report + Title input changes report title + + * Generate Report button gets data from database + Does not make dates human readable + Only shows 10 logs at a time + Cannot filter results + + * Logs are displayed at once instead of one per click + Takes two clicks to display any logs + + * Amelia: story field selection + + * Fixing local + + * Computes yield by adding all yield numbers together + Disregards unit and crop + + * Separates yield in default unit + Ignores crop type + + * Added total yield table that displays total yield for all crops in harvest report + + * Added 'Crop: ' label and crop dropdown. + Uses dummy list for now + + * Delete recentworkspace.json + + * Crop names now come from database + Crops do not currently filter results + + * Report is now filtered based on crop selection + + * Can now select ALL to ignore crops as a filter + Now only needs one click to generate report + + * Cleaned up loose variables and comments + + * Now uses crop id as identification + Delete updates total yield + Only requires single button press to generate report + + * Amelia: add the option to choose All fields + + * Added worker column to harvest report + + * Amelia: date range selection + + * Amelia: add constraint start date cannot be later than end date + + * Bound end date to be after start date. + + Co-authored-by: Amelia Dao + Co-authored-by: Grant Braught + +commit 9a2252238f2ead51af8b6f6acb625b681ca20fea +Author: skalakm +Date: Tue Mar 23 13:36:57 2021 -0400 + + added a script to update the db root, farmdata2db, and drupal admin passwords (#134) + +commit 5b5bca4e12193048d16338980c0cfcf11c784d89 +Author: hoad211 <42941415+hoad211@users.noreply.github.com> +Date: Wed Mar 24 00:35:42 2021 +0700 + + Exclude recentworkspace.json from git (#135) + + * Exclude recentworkspace.json from git + +commit 070d7102ffd459338ff0d5e30033eba460458c42 +Author: Grant Braught +Date: Sat Mar 6 18:04:17 2021 -0500 + + Significnt Onboarding Update (#133) + + Co-authored-by: Grant Braught + +commit b024129812099b6a874dcc0fac77add5c09ed924 +Author: braughtg +Date: Mon Mar 1 00:49:04 2021 -0500 + + Fixed undefined variable error. + +commit d8b94d9003837307319b94e9fbeacde9ab5823ea +Author: Grant Braught +Date: Mon Mar 1 00:01:44 2021 -0500 + + Removed line with undefined variable. (#130) + +commit 6623448248b80ffb9711756ccd7448e6242e9941 +Author: Grant Braught +Date: Sun Feb 28 23:25:16 2021 -0500 + + Fixed broken bundle features in restws module (#129) + +commit 62b45a8387fabb865f31328a20770ea58a6b35fb +Author: Grant Braught +Date: Sat Feb 20 19:22:50 2021 -0500 + + Added clear cache (#128) + +commit 0dd8b81d441c800451ab117b2b0509ac9707b5bf +Author: Grant Braught +Date: Sat Feb 20 19:12:47 2021 -0500 + + Fixed farmOS container working directory (#127) + + * Fixed farmOS container working directory + + * Removed stmt to clear cache because it was unnecessary + +commit e1e1af4af7b53166e12bda8c5018b447a3acf49e +Author: Grant Braught +Date: Sat Feb 20 18:15:36 2021 -0500 + + Built custom FarmOS image with restws patch for filtering (#126) + + * Built custom FarmOS image with restws patch for fitering + + * Added fd2. to tags so we can force rebuild + +commit f8f85c2ef76dc1d99d4fafbf4fc0743579e5a04a +Author: Grant Braught +Date: Fri Jan 29 15:46:05 2021 -0500 + + Switched phpMyAdmin to apache tag. (#110) + +commit cc1dba65195b98212e9ba4717689836a1a0656b5 +Author: Grant Braught +Date: Tue Jan 19 08:34:11 2021 -0500 + + Added veversion tags to docker-compose images. (#109) + +commit 9230d899cc9d0d887b7008c0e0be911182bb35b5 +Author: braughtg +Date: Mon Jan 18 15:36:04 2021 -0500 + + removed cached/config stuff + +commit 50ae38ce3aaa0c67f996c5316d7e9a7bf7fa97bc +Author: braughtg +Date: Sun Jan 17 19:29:23 2021 -0500 + + removed commented out lines + +commit 6961e60a433fe34a17c86f6e5c7646f821c8811b +Author: Grant Braught +Date: Sun Jan 17 19:27:06 2021 -0500 + + Moved global vars for JS out of tags (#108) + +commit 4d3f25c094ba51da2b7c6e6c73bb19d76a6e7801 +Author: Grant Braught +Date: Sun Jan 17 16:36:35 2021 -0500 + + Update to fd2 modules (#107) + + * added common css and ensured js is cached + + * Added userID and userName vars to js. + + * Added id and name tags to pages in all modules + + * updated zipped db for install + + * Updated zipped db for logged out user + +commit 2e98189b6ab1275da18835df2660097bf138b8a0 +Author: Grant Braught +Date: Sat Jan 16 09:37:15 2021 -0500 + + Fd2 mod reorg (#106) + + * Created Example module to build new ones from + + * Generalized Example module + + * Adapted cypress tests to example. + + * renamed test runner script + + * Cleaned up field kit module + + * Added barn kit module + + * Adjusted README for having example enabled by default. + + * Clarified test runner uses Docker. + + * Used context sensitive name for test runner working directory + + * Ordered fd2 tabs in Farm menu + + * updated compressed db to include new new tabs + + * removed cypres screenshots and videos + +commit 91e5b46103821078ae8bdf7f728ceca81df483f3 +Author: braughtg +Date: Sat Jan 16 09:27:15 2021 -0500 + + Updated ignore for subdirs with Cypress + +commit ef54a16411110019a0f313169b1be54b9b9106ef +Author: Grant Braught +Date: Wed Jan 13 06:51:13 2021 -0500 + + Update cypress_run.bash + + Enable connections to the x11 server. + +commit aaf0f05a433f9cdbb8ffd82ae1963e977c6fa940 +Author: Grant Braught +Date: Tue Jan 12 17:13:21 2021 -0500 + + Cypress (#102) + + * Updated to ignore cypress screenshots and videos + + * Setup to run cypress tests in a container + +commit 73977575abb0a96173355ec5aa0b78cf61615528 +Author: Grant Braught +Date: Tue Jan 12 15:12:49 2021 -0500 + + Update docker-compose.yml + + Removed second container_name directive in theiaide + +commit 27e958d5cf3fb763bcea41405ec3dcfeca5f07aa +Author: Grant Braught +Date: Tue Jan 12 13:59:40 2021 -0500 + + Onboarding (#100) + + * Added basic tech-stack info and pointer to ONBOARDING + + * Small edits. + + * Outline and some Tools content added. + + * Finished tools section + + * Finished tools section + + * Refomatted Tools to have resources list + + * Added HTML section + + * Small edits to HTML section + + * Added CSS section + + * Added JavaScript section + + * all edits + + Signed-off-by: braughtg + + * small edits + + * Edits + + * Added JS objects link + + * Start on APIs + + * Added FarmOS API section + + * Fixed typo + + * Added cypress section + + * fixed typo + + * linked onboarding from fieldkit readme + + Co-authored-by: braughtg + +commit af1a35401637a109d87711a24ccfc4847705f60e +Author: Grant Braught +Date: Tue Jan 12 13:52:55 2021 -0500 + + Update CODE_OF_CONDUCT.md + + Fixed typo. + +commit cf8ad06aa689551942f951a10743a6d339894040 +Author: Grant Braught +Date: Mon Jan 11 14:52:54 2021 -0500 + + Fixed theia container name (#99) + +commit 8556a449e8b525dc09d225728583310b6305c44e +Author: Grant Braught +Date: Mon Jan 11 08:50:53 2021 -0500 + + Added phpMyAdmin info (#98) + + Co-authored-by: braughtg + +commit 41d0d0cb81b419c4d1490d689bcef3e99b937df3 +Author: Grant Braught +Date: Mon Jan 11 08:32:42 2021 -0500 + + Added Theia and Cypress paths (#97) + + Co-authored-by: braughtg + +commit 9415cbe662a8fb1c9d825055dbe1c9b99bdf158f +Author: Grant Braught +Date: Sun Jan 10 16:29:17 2021 -0500 + + Updated install process (#96) + + Co-authored-by: braughtg + +commit 72182854ee75eb6e4737609bc501dc06dc11945f +Author: Grant Braught +Date: Sun Jan 10 14:39:51 2021 -0500 + + Added link to Zulip for bugs/features (#95) + + Co-authored-by: braughtg + +commit 3472eda5da7765e1cb35b2f3df1c483f928b5f1e +Author: Grant Braught +Date: Sat Jan 9 16:23:27 2021 -0500 + + Added section about editing (#93) + + Co-authored-by: braughtg + +commit 02cd0f08911fc4423e17d57c8a7b2f574439ed46 +Author: Grant Braught +Date: Sat Jan 9 16:02:29 2021 -0500 + + Theia2 (#92) + + * Added Theia IDE container and configs + + * Docker build file to customize Theia + + * Updated version so init works + + * Added convenience scripts for up/down + + * silenced container removal + + * Updated to use convenience scripts + + Co-authored-by: braughtg + +commit 7e3592e74b552c18c96d074bc8994ce6ae8b0c3f +Author: Grant Braught +Date: Fri Jan 8 16:52:38 2021 -0500 + + added some info about Zulip (#90) + + Co-authored-by: braughtg + +commit e28787f2d692eb7bf8a1d78bb46f6d3779ffb52f +Author: skalakm +Date: Fri Jan 8 16:42:28 2021 -0500 + + fixed drush cache clear command + +commit d72152cfa6ccbc93b7ee968bede619921d564a6e +Author: Grant Braught +Date: Fri Jan 8 16:26:07 2021 -0500 + + Added fix for slow retina display on mac. (#89) + + Co-authored-by: braughtg + +commit 01730e13f2f177cec354301940220f5d7a334165 +Author: Grant Braught +Date: Thu Jan 7 16:51:53 2021 -0500 + + Readmeupdate (#88) + + * revised particpation section + + * Added Julip as contact and sponsor + + Co-authored-by: braughtg + +commit e0e3be59e8cc42c2f5c5da685b818afa53ccaf34 +Author: braughtg +Date: Wed Jan 6 14:24:29 2021 -0500 + + small cleanups + +commit 18218661bdfa9ac389609039926e1bc4200db81d +Author: Grant Braught +Date: Wed Jan 6 14:22:46 2021 -0500 + + Added Vbox recommendations (#87) + + Co-authored-by: braughtg + +commit 26664a9beafba9829e2c581423cc65cc0835e4fd +Author: Radhika <56536997+96RadhikaJadhav@users.noreply.github.com> +Date: Tue Jan 5 23:53:57 2021 +0530 + + Added description and gitflow link to CONTRIBUTING.md file (#85) + + * Added description and gitflow link to CONTRIBUTING.md file + + * Done requested changes. + +commit bc749d51d17757eb9137ea282e941369ec948819 +Author: Grant Braught +Date: Sun Jan 3 18:18:29 2021 -0500 + + Field kit (#83) + + * Basic field kit structure in place. + + * Example form and tests complete. + + * Added test for the field kit info pane + + * Added a README.md to the module + + * Attempt to fix formatting issues + + * Fixed final step for adding a form. + + * minor edits + + Co-authored-by: braughtg + +commit 3cea74d26676a3b1a57041aa06973688a50a3595 +Author: Grant Braught +Date: Sun Jan 3 18:10:11 2021 -0500 + + Fix logo error (#82) + + * Mounted logo into container + + * Added logo directory to be mounted + + Co-authored-by: braughtg + +commit 5a11f0a3393496cea18627bb14e9bd6e5f29f7ea +Author: Grant Braught +Date: Sun Jan 3 16:34:38 2021 -0500 + + New install (#81) + + * Updated dev install to use compressed DB image. + + * Added login screen shot, minor edits + + * Added login screen shot to INSTALL + + * Fixed minor formatting issue + + * mounted Drupal settings so no need to setup DB + + Co-authored-by: braughtg + +commit cbc88cb54483ee24c02d7fd4b2743a1fd7f7b65f +Author: braughtg +Date: Sun Dec 27 13:01:59 2020 -0500 + + Moved dev guide into docker + +commit 6c7b8952d3c2b7499449f8ac103d06434db7e8ff +Author: Grant Braught +Date: Wed Dec 23 16:11:38 2020 -0500 + + Add GNOME CEC badges (#77) + + * created media folder for images + + * Added GNOME CEC badges. + + * Added Gnome Community Education Challenge badges + + Co-authored-by: braughtg + +commit e127db0a40306ea5a23ae77255175d3c0c5354dd +Author: won369369 <60108250+won369369@users.noreply.github.com> +Date: Wed Dec 23 15:15:24 2020 -0500 + + Fixed two typos on INSTALL.md (#65) + +commit 04b1243ecc767bbd7fd1bc002666e701a77bad18 +Author: Han Trinh <54858523+hantrinh13@users.noreply.github.com> +Date: Thu Dec 24 03:13:39 2020 +0700 + + Fixed spelling and grammatical mistakes, fixed incorrect links and add Install link for clarification (#61) + +commit aaeefbc29df7728207fa06dbea88fb818edc25b6 +Author: josieecook <60167626+josieecook@users.noreply.github.com> +Date: Wed Dec 23 15:10:14 2020 -0500 + + changed phrase body size to body type in code of conduct (#58) + + Thank you for this contribution. It is a nice improvement. You might also make a PR for this change to the definitive document at: https://github.com/ContributorCovenant/contributor_covenant + +commit c86f35b6482a9bfc906fe77c885da17ef71a895f +Author: IrisSC <54850069+IrisSC@users.noreply.github.com> +Date: Wed Dec 23 13:48:37 2020 -0600 + + adding link to Clone (#50) + + Nice improvement! This will be helpful. Thank you for helping to improve FarmData2! + +commit ce85b0ea1cb2a45c5752ede4cb01b3e829443c1c +Author: ha vu <60118892+vuphuongha@users.noreply.github.com> +Date: Thu Dec 24 02:42:45 2020 +0700 + + Change to correct link (#68) + + Well done! Thanks for helping to improve FarmData2! + +commit 492ccc9d544e32fbf11badd7b17c681712b2495e +Author: miyu386 <60191117+miyu386@users.noreply.github.com> +Date: Wed Dec 23 14:41:52 2020 -0500 + + issue tracker link correction attempt1 (#63) + + Well done! Thanks for helping to improve FarmData2! + +commit 9e7fb1f7f11865b3575923a292108d1991e64156 +Author: mollerup23 <69806327+mollerup23@users.noreply.github.com> +Date: Wed Dec 23 14:41:06 2020 -0500 + + Fixed Issue #33 (#59) + + Well done! Thanks for helping to improve FarmData2! + +commit 196907ff791d56116da4231481741e674641f711 +Author: SavidBasnyat <54815468+SavidBasnyat@users.noreply.github.com> +Date: Thu Dec 24 01:24:37 2020 +0545 + + Fixed issue #33 (#53) + + Well done! Thanks for helping to improve FarmData2! + +commit 058b0cdd62b6bbd498a7dcd1d18d6a5b9af6357d +Author: Amelia Dao <60367635+amelia291@users.noreply.github.com> +Date: Wed Dec 23 14:37:59 2020 -0500 + + Fix the link to Issue Tracker in CONTRIBUTING.md (#48) + +commit fcae7840935bfa57a6c65744316a34b2b35908ff +Merge: 4121802 b5c3d92 +Author: braughtg +Date: Sun Dec 20 17:32:59 2020 -0500 + + Merge branch 'main' of https://github.com/DickinsonCollege/FarmData2 into main + +commit 4121802d1aaf353328e372ffa7faec911b569c68 +Author: braughtg +Date: Sun Dec 20 17:32:31 2020 -0500 + + Removed sspike modules + +commit b5c3d92fc7f60ee5153254611a01031397a26a92 +Author: Grant Braught +Date: Sun Dec 20 17:25:48 2020 -0500 + + Fixed permissions (#75) + + Co-authored-by: braughtg + +commit 5c64e2985b88e321db8ca09d7e2ab7120256708c +Author: Grant Braught +Date: Sun Dec 20 17:07:51 2020 -0500 + + moved modules and mounted them to facilitate development. (#73) + + Co-authored-by: braughtg + +commit 3dad66d19c31ed0d3362d2f83950888d3c05540e +Author: skalakm +Date: Wed Dec 9 14:38:46 2020 -0500 + + added modules for example verification and form altering + + It also includes the devel module, which provides helpful development tools including the dpm print function. + +commit 84a0c32c74a09e988e7f0c782472c4c5d0d5640a +Author: Grant Braught +Date: Wed Nov 18 11:26:35 2020 -0500 + + Update INSTALL.md + + Fixed some of the major formatting issues in INSTALL.md. Related to #44 + +commit df03f08281bbfdcf8a8a24c44f6e8cfc68da7e8c +Author: Grant Braught +Date: Tue Nov 17 16:24:28 2020 -0500 + + Make install doc (#43) + + * Set container names for all containers + + * Created INSTALL.md and added necessary files. + + Co-authored-by: braughtg + +commit fa9a19009df942c99598fa6c7d7d323260794a3d +Author: skalakm +Date: Tue Oct 20 13:04:11 2020 -0400 + + added a script to revert the farmos version to 1.5 + +commit 604a073bd1ce36f794282253bafb08284bda5efa +Author: skalakm +Date: Wed Oct 14 15:14:08 2020 -0400 + + tested that new arrangement works + +commit d1ddd71433ee8ad62988b2a73a36d7d4509ebc3b +Author: skalakm +Date: Wed Oct 14 14:52:35 2020 -0400 + + simplified the gitignore + +commit a1cb10de7efe4c8398d892faedf260904a5f6a4d +Author: skalakm +Date: Wed Oct 14 14:50:56 2020 -0400 + + moved files so that they work with the new folder structure + +commit fde0ad7433cc4e4839dd57889af30ec7c5898866 +Author: braughtg +Date: Sun Oct 11 13:39:18 2020 -0400 + + Created standard docker directory + +commit f946ef0da7e93f5f23b0246104ca5d925ddd2902 +Author: braughtg +Date: Sun Oct 11 12:12:09 2020 -0400 + + Update leaders list under enforcement + +commit d8951ec1fae3d2ec99776255691b1dc318ee1e65 +Author: Grant Braught +Date: Sat Oct 10 18:10:00 2020 -0400 + + Delete pull_request_template.md + +commit 9085efd167cb1635f42ead134efe3f87b309a408 +Author: Grant Braught +Date: Sat Oct 10 18:09:45 2020 -0400 + + Create PULL_REQUEST_TEMPLATE.md + +commit b6651ae499d31049fe1384a3434380be0b74c449 +Author: Grant Braught +Date: Sat Oct 10 17:49:42 2020 -0400 + + Update pull_request_template.md + +commit a4a42e6ee2c3d376e04ff601b97357936b81885e +Author: Grant Braught +Date: Sat Oct 10 17:31:25 2020 -0400 + + Add code of conduct (#23) + + * Added Contributor Covenant Code of Conduct from https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. + + * Added Contributor Covenant Code of Conduct + + * Added Matt Steinman to contact list. + + Closes #3 + + Co-authored-by: braughtg + +commit b11903c5ff2812ee430f68763f8fa537658add1b +Author: braughtg +Date: Sat Oct 10 17:23:12 2020 -0400 + + Updated the pull request template. + +commit 3a579cba63fcb4e305446a54e6d743567f9aa728 +Author: Grant Braught +Date: Sat Oct 10 15:47:27 2020 -0400 + + Add contrib doc (#19) + + * Added CONTRIBUTING.md describing main contribution methods at present. + + * Added block on licensing + + * Added multiple author commit info + + Co-authored-by: braughtg + +commit cf571aca951d0a858a822d9b221108f59291a1c5 +Author: braughtg +Date: Sat Oct 10 15:34:02 2020 -0400 + + Moved PR Templateto proper location + +commit 972c28bde5684c2f2ddeb27abf6d513dabd375ce +Author: Grant Braught +Date: Sat Oct 10 15:19:48 2020 -0400 + + Restructured and completed license information. (#17) + + Closes #9 + Co-authored-by: braughtg + +commit 44ea60142841335d3003337c47e44c61e90550e8 +Author: Grant Braught +Date: Sat Oct 10 15:12:56 2020 -0400 + + Added README.md file with basic project info (#1) + + * Added README.md file with basic project info + + * Added sections for installing and contributing + + * Changed CC to be BY-SA + + * Added NPFI to acknowledgements + + Co-authored-by: braughtg + +commit e9dddc2858b7e0de137bf5ae18f319c13e314327 +Author: braughtg +Date: Sat Oct 10 15:02:09 2020 -0400 + + Added PR template for DCO check box + +commit d35f177a3ac81952579934e2e15e1a40cf0e671b +Author: skalakm +Date: Wed Oct 7 16:30:54 2020 -0400 + + Delete .gitignore + +commit 9d0314332268d648f8ea4295bcfa97041b6e24c3 +Author: skalakm +Date: Wed Oct 7 16:29:03 2020 -0400 + + create load harvests that loads harvest logs + + It currently just loads for worker1 + +commit b653c7282bf9a6d4a539b009850505cb0a4baba4 +Author: skalakm +Date: Wed Oct 7 16:28:22 2020 -0400 + + simplified the git ignore + +commit e4299ad76d341a4aef945723207487bb518ab4b2 +Author: skalakm +Date: Wed Oct 7 16:24:20 2020 -0400 + + added code to load harvests + +commit 2624468b29940c1c6769427f7c41db71bf0c8750 +Author: skalakm +Date: Wed Oct 7 15:46:48 2020 -0400 + + fixed a couple pieces in the install scripts + + Added correct indexes for fruit. + Made add fruit recognized as a php file. + +commit 444cbdabae69b7c319c2a0df5330d83a259e7182 +Author: skalakm +Date: Wed Oct 7 15:25:51 2020 -0400 + + removed www folder + +commit e2580feba4fa6d40924f814fd23aade01867aadd +Author: skalakm +Date: Tue Oct 6 09:26:39 2020 -0400 + + updated the guide to say that the fruit grouping is done by the script + +commit 82fe34b0234fe13d867557131b8a1f0194888a94 +Author: skalakm +Date: Tue Oct 6 09:20:19 2020 -0400 + + added a script to group the fruits into the Fruit group and updated the install script + +commit 55ce02735f0aaf633bfce71a1e55249a143dd320 +Author: skalakm +Date: Tue Oct 6 09:01:46 2020 -0400 + + added example lines on importing users and groups + +commit 5209d98748cf63ad8ea50a5823acb88651e6a05d +Author: skalakm +Date: Fri Oct 2 12:09:02 2020 -0400 + + added more information about the early steps + +commit 8540dcb5204e366662de224cf9f02c3f6dae8b9e +Author: skalakm +Date: Fri Oct 2 12:10:02 2020 -0400 + + added the demodata as a volume and added fruit plantings + +commit c7f99787d17b7f24862a9327bd98dc7d7038438b +Author: skalakm +Date: Thu Oct 1 09:54:36 2020 -0400 + + added docker compose, added install.sh + +commit dbd05acc2ab837719c0a972b38186766bbffda1b +Author: skalakm +Date: Thu Oct 1 09:56:37 2020 -0400 + + updated the development guide + + Added things done by the install script and adapted it to a docker setup. + + Co-authored-by: megandalster + +commit e6caa208a44c2e6eac701096e387f6b7f849bf08 +Author: skalakm +Date: Tue Sep 29 14:10:12 2020 -0400 + + added the demo data + +commit 9066261ae40e67cb296c2b3aabe3a15149c9009d +Author: skalakm +Date: Tue Sep 29 14:04:14 2020 -0400 + + added the initial version of the developer guide + +commit 07f8d3b999d142a07b57880c7a79d24dbd5639af +Author: skalakm +Date: Tue Sep 29 14:02:19 2020 -0400 + + Initial commit diff --git a/farmdata2/farmdata2_modules/fd2_barn_kit/seedingReport/seedingReport.default.spec.js b/farmdata2/farmdata2_modules/fd2_barn_kit/seedingReport/seedingReport.default.spec.js new file mode 100644 index 00000000..0af2014d --- /dev/null +++ b/farmdata2/farmdata2_modules/fd2_barn_kit/seedingReport/seedingReport.default.spec.js @@ -0,0 +1,32 @@ +const dayjs = require('dayjs') +describe('eTest Seeding Report Default', () => { + beforeEach(() => { + cy.login("manager1", "farmdata2") + cy.visit("/farm/fd2-barn-kit/seedingReport") + }) + + it("Check start and end date with current year", () => { + cy.get("[data-cy = date-range-selection] > [data-cy = end-date-select] > [data-cy = date-select]") + .should('have.value', dayjs().format("YYYY-MM-DD")) + cy.get("[data-cy = date-range-selection] > [data-cy = start-date-select] > [data-cy = date-select]") + .should('have.value', dayjs().format("YYYY-01-01")) + }) + + it("The report table shouldn't be visible", () => { + cy.get("[data-cy = report-table]").should("not.exist") + }) + + it("Check that the page contains header", () => { + cy.get("[data-cy=report-header]").should("have.text", "Seeding Report") + }) + + it("Test the generate button", () => { + cy.get('[data-cy=generate-rpt-btn]').should("have.text", "Generate Report") + cy.get('[data-cy=generate-rpt-btn]').should("be.enabled") + }) + + it("Test to make sure that there is a section labeled Set Dates", () => { + cy.get("[data-cy=date-selection-header]").should("have.text", "Set Dates") + }) +}) + diff --git a/farmdata2/farmdata2_modules/fd2_barn_kit/seedingReport/seedingReport.html b/farmdata2/farmdata2_modules/fd2_barn_kit/seedingReport/seedingReport.html index fb6c8006..b7659b5b 100644 --- a/farmdata2/farmdata2_modules/fd2_barn_kit/seedingReport/seedingReport.html +++ b/farmdata2/farmdata2_modules/fd2_barn_kit/seedingReport/seedingReport.html @@ -1,14 +1,13 @@
-

Seeding Report

+

Seeding Report

- Set Dates + Set Dates
-
From 87e8a5382ae6f8aa4ed091ec3a5857caa68973d3 Mon Sep 17 00:00:00 2001 From: Michael Krause <56452607+Mikek16@users.noreply.github.com> Date: Wed, 18 Oct 2023 14:45:51 -0400 Subject: [PATCH 24/74] Change default seeding type according to existing logs (#680) __Pull Request Description__ This PR changes the `selected-val` of the Seeding Type Dropdown from 'All' to the `getDefaultSeedingSelection` function that returns the appropriate seeding type for the available logs. Closes #658 --- __Licensing Certification__ FarmData2 is a [Free Cultural Work](https://freedomdefined.org/Definition) and all accepted contributions are licensed as described in the LICENSE.md file. This requires that the contributor holds the rights to do so. By submitting this pull request __I certify that I satisfy the terms of the [Developer Certificate of Origin](https://developercertificate.org/)__ for its contents. --- .../seedingReport/seedingReport.html | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/farmdata2/farmdata2_modules/fd2_barn_kit/seedingReport/seedingReport.html b/farmdata2/farmdata2_modules/fd2_barn_kit/seedingReport/seedingReport.html index b7659b5b..6ca780fe 100644 --- a/farmdata2/farmdata2_modules/fd2_barn_kit/seedingReport/seedingReport.html +++ b/farmdata2/farmdata2_modules/fd2_barn_kit/seedingReport/seedingReport.html @@ -18,7 +18,7 @@

Seeding Report

Filters
- Seeding Type: + Seeding Type: Crop: @@ -38,9 +38,7 @@

Seeding Report

Direct Seeding Summary -
-

There are no Direct Seeding logs with these parameters

-
+

Total Row Feet Planted: {{ totalRowFeet }}

Total Bed Feet Planted: {{ totalBedFeet }}

@@ -51,9 +49,7 @@

Seeding Report

Tray Seeding Summary -
-

There are no Tray Seeding logs with these parameters

-
+

Total Number of Seeds Planted: {{ traySeedsPlanted }}

Total Number of Trays: {{ totalNumTrays }}

@@ -374,6 +370,16 @@

Seeding Report

enableFilters(){ this.rowBeingEdited = false }, + getDefaultSeedingSelection(){ + if(!this.seedingTypeList.includes("Tray Seedings")){ + this.selectedSeeding = "Direct Seedings" + return 'Direct Seedings' + }else if(!this.seedingTypeList.includes("Direct Seedings")){ + this.selectedSeeding = "Tray Seedings" + return 'Tray Seedings' + } + return 'All' + }, }, computed: { /** From f35a96445fb008ccd3eda43c456fee1437c23ddb Mon Sep 17 00:00:00 2001 From: Ty Chermsirivatana Date: Mon, 13 Nov 2023 10:27:29 -0500 Subject: [PATCH 25/74] Refactored dev/startup.bash Docker container (#682) __Pull Request Description__ I mostly reworded some of the comments to be clearer and used a single 'sudo' command with a here-document to reduce footprint. It's a small portion, I would imagine it will take a while to actually speed up the container but every little bit helps! --- __Licensing Certification__ FarmData2 is a [Free Cultural Work](https://freedomdefined.org/Definition) and all accepted contributions are licensed as described in the LICENSE.md file. This requires that the contributor holds the rights to do so. By submitting this pull request __I certify that I satisfy the terms of the [Developer Certificate of Origin](https://developercertificate.org/)__ for its contents. Signed-off-by: Ty Chermsirivatana --- docker/dev/startup.bash | 46 ++++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/docker/dev/startup.bash b/docker/dev/startup.bash index 12a0807f..fb668436 100755 --- a/docker/dev/startup.bash +++ b/docker/dev/startup.bash @@ -1,36 +1,36 @@ #!/bin/bash -# Cleanup from past vnc session that may hav been running in the container. +# Cleanup from past VNC session that may have been running in the container. # This clean-up is not done when the container is stopped (not deleted). -rm /tmp/.X11-unix/X1 -rm /tmp/.X1-lock +# Using `rm -f` to ignore nonexistent files and suppress error messages. +rm -f /tmp/.X11-unix/X1 +rm -f /tmp/.X1-lock -# Ensure that the fd2dev user is in a group that has RW permission to -# the docker.sock file. This will allow fd2dev to use the docker on docker -# to interact with containers within the development environment. -# Note: This must be here instead of in Dockerfile so the GID for the -# docker.sock in the container can match the one on the host. -# Note: The docker.gid file is mounted into the container by docker-compose. -HOST_DOCKER_GID=$(cat ~/.fd2/gids/docker.gid) -HOST_DOCKER_GID_IN_CONTAINER=$(echo /etc/group | grep ":$HOST_DOCKER_GID:") -if [ -z "$HOST_DOCKER_GID_IN_CONTAINER" ]; -then - echo "fd2dev" | sudo -S groupadd --gid $HOST_DOCKER_GID fd2docker +# The sudo password is assumed to be 'fd2dev' for all operations. +# Using a single invocation of sudo and a here-document to execute multiple commands. +# This reduces the number of times the password needs to be echoed and sudo is called. +# This also reduces the script complexity and potential points of failure. +sudo -S sh < + - \ No newline at end of file + From 056f35c344b1b49c895f65495d1e0de97a89022b Mon Sep 17 00:00:00 2001 From: evelynpham04 Date: Sat, 17 Feb 2024 23:13:00 -0500 Subject: [PATCH 42/74] Added Vue bindings for report start date, end date, and selected crop --- .../farmdata2_modules/fd2_school/vue1/vue1.html | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/farmdata2/farmdata2_modules/fd2_school/vue1/vue1.html b/farmdata2/farmdata2_modules/fd2_school/vue1/vue1.html index e84aaa47..535861c9 100644 --- a/farmdata2/farmdata2_modules/fd2_school/vue1/vue1.html +++ b/farmdata2/farmdata2_modules/fd2_school/vue1/vue1.html @@ -22,12 +22,12 @@

{{ reportTitle }}


- + - +
- @@ -79,12 +79,14 @@

{{ reportTitle }}

- From 399510dfcd52a04ba57024d1eef9ac54bb55c58c Mon Sep 17 00:00:00 2001 From: evelynpham04 Date: Sun, 18 Feb 2024 14:22:38 -0500 Subject: [PATCH 43/74] Added logic to display 'Mock Harvest Report' if title field is empty, or the entered text otherwise. --- farmdata2/farmdata2_modules/fd2_school/vue1/vue1.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/farmdata2/farmdata2_modules/fd2_school/vue1/vue1.html b/farmdata2/farmdata2_modules/fd2_school/vue1/vue1.html index 535861c9..f4f681bf 100644 --- a/farmdata2/farmdata2_modules/fd2_school/vue1/vue1.html +++ b/farmdata2/farmdata2_modules/fd2_school/vue1/vue1.html @@ -16,7 +16,7 @@
-

{{ reportTitle }}

+

{{ reportTitle ? reportTitle : 'Mock Harvest Report' }}

This page is a mockup of a simplified harvest report.

@@ -42,7 +42,7 @@

{{ reportTitle }}



-

{{ reportTitle }}

+

{{ reportTitle ? reportTitle : 'Mock Harvest Report' }}

Details:

    @@ -83,7 +83,7 @@

    {{ reportTitle }}

    var harvestReport = new Vue({ el: '#harvest-report', data: { - reportTitle: 'My Sample Harvest Report', + reportTitle: '', startDate: '2020-05-05', endDate: '2020-05-15', selectedCrop: 'kale' From 8abeb9f268b0ea586023cf0ba406c7bbe2a0d6a7 Mon Sep 17 00:00:00 2001 From: evelynpham04 Date: Sun, 18 Feb 2024 14:47:41 -0500 Subject: [PATCH 44/74] Added dynamic generation of Crop and Area dropdown options. --- .../farmdata2_modules/fd2_school/vue1/vue1.html | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/farmdata2/farmdata2_modules/fd2_school/vue1/vue1.html b/farmdata2/farmdata2_modules/fd2_school/vue1/vue1.html index f4f681bf..f2809204 100644 --- a/farmdata2/farmdata2_modules/fd2_school/vue1/vue1.html +++ b/farmdata2/farmdata2_modules/fd2_school/vue1/vue1.html @@ -28,15 +28,11 @@

    {{ reportTitle ? reportTitle : 'Mock Harvest Report' }}


    - +
    @@ -79,6 +75,7 @@

    {{ reportTitle ? reportTitle : 'Mock Harvest Report' }}

+ From 7bccebfd3743a2b95913bb342a5748b6202ec482 Mon Sep 17 00:00:00 2001 From: evelynpham04 Date: Sun, 18 Feb 2024 15:11:03 -0500 Subject: [PATCH 45/74] Generated table from array of harvest log objects --- .../fd2_school/vue1/vue1.html | 44 +++++++------------ 1 file changed, 16 insertions(+), 28 deletions(-) diff --git a/farmdata2/farmdata2_modules/fd2_school/vue1/vue1.html b/farmdata2/farmdata2_modules/fd2_school/vue1/vue1.html index f2809204..9c2ab58b 100644 --- a/farmdata2/farmdata2_modules/fd2_school/vue1/vue1.html +++ b/farmdata2/farmdata2_modules/fd2_school/vue1/vue1.html @@ -41,36 +41,20 @@

{{ reportTitle ? reportTitle : 'Mock Harvest Report' }}

{{ reportTitle ? reportTitle : 'Mock Harvest Report' }}

Details:

-
    -
  • Farm: Sample Farm
  • -
  • User: manager1
  • -
  • Language: English
  • -
    -
  • Start: 05/01/2018
  • -
  • End: 05/15/2018
  • -
  • Crop: Kale
  • -
- - - - - + + + + + - - - - - - - - - - - - - + + + + + +
DateAreaCropYieldUnitsDateAreaCropYieldUnits
05/02/2018Chuau-1Kale10Bunches
05/05/2018SQ7Kale7Bunches
{{ log.date }}{{ log.area }}{{ log.crop }}{{ log.yield }}{{ log.units }}
@@ -86,7 +70,11 @@

{{ reportTitle ? reportTitle : 'Mock Harvest Report' }}

selectedCrop: 'kale', selectedArea: 'all', crops: ['Broccoli', 'Kale', 'Peas'], - areas: ['All', 'Chuau-1', 'SQ7'] + areas: ['All', 'Chuau-1', 'SQ7'], + harvestLogs: [ + { date: '2018-05-02', area: 'Chuau-1', crop: 'Kale', yield: 10, units: 'Bunches' }, + { date: '2018-05-05', area: 'SQ7', crop: 'Kale', yield: 7, units: 'Bunches' } + ] } }); From 347c598dac477fe27ea28d213441ab32d5ea5bce Mon Sep 17 00:00:00 2001 From: evelynpham04 Date: Sun, 18 Feb 2024 15:21:39 -0500 Subject: [PATCH 46/74] Added Vue DevTools. --- farmdata2/farmdata2_modules/fd2_school/vue1/vue1.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/farmdata2/farmdata2_modules/fd2_school/vue1/vue1.html b/farmdata2/farmdata2_modules/fd2_school/vue1/vue1.html index 9c2ab58b..ff5ebad2 100644 --- a/farmdata2/farmdata2_modules/fd2_school/vue1/vue1.html +++ b/farmdata2/farmdata2_modules/fd2_school/vue1/vue1.html @@ -77,6 +77,8 @@

{{ reportTitle ? reportTitle : 'Mock Harvest Report' }}

] } }); + + Vue.config.devtools = true; From ecabdba38e03da3ba750e1ba674f2c653ad14bcf Mon Sep 17 00:00:00 2001 From: evelynpham04 Date: Sat, 24 Feb 2024 18:06:51 -0500 Subject: [PATCH 47/74] Added new sub-tab named Vue2 --- .../fd2_school/fd2_school.module | 29 +++++++ .../fd2_school/vue2/vue2.html | 84 +++++++++++++++++++ 2 files changed, 113 insertions(+) create mode 100644 farmdata2/farmdata2_modules/fd2_school/vue2/vue2.html diff --git a/farmdata2/farmdata2_modules/fd2_school/fd2_school.module b/farmdata2/farmdata2_modules/fd2_school/fd2_school.module index 167ca8ef..77791b18 100644 --- a/farmdata2/farmdata2_modules/fd2_school/fd2_school.module +++ b/farmdata2/farmdata2_modules/fd2_school/fd2_school.module @@ -61,7 +61,36 @@ function fd2_school_menu() { ); // Add items blocks for new sub-tabs here. + // Add a sub-tab named HTML with content in ./html/html.html. + $items['farm/fd2-school/html'] = array( + 'title' => 'HTML', + 'type' => MENU_LOCAL_TASK, + 'page callback' => 'fd2_school_view', + 'page arguments' => array('html'), + 'access arguments' => array('view fd2 school'), + 'weight' => 110, + ); + + // Add a sub-tab named Vue1 with content in ./vue1/vue1.html. + $items['farm/fd2-school/vue1'] = array( + 'title' => 'Vue1', + 'type' => MENU_LOCAL_TASK, + 'page callback' => 'fd2_school_view', + 'page arguments' => array('vue1'), + 'access arguments' => array('view fd2 school'), + 'weight' => 110, + ); + // Add a sub-tab named Vue2 with content in ./vue2/vue2.html. + $items['farm/fd2-school/vue2'] = array( + 'title' => 'Vue2', + 'type' => MENU_LOCAL_TASK, + 'page callback' => 'fd2_school_view', + 'page arguments' => array('vue2'), + 'access arguments' => array('view fd2 school'), + 'weight' => 110, + ); + return $items; }; diff --git a/farmdata2/farmdata2_modules/fd2_school/vue2/vue2.html b/farmdata2/farmdata2_modules/fd2_school/vue2/vue2.html new file mode 100644 index 00000000..ff5ebad2 --- /dev/null +++ b/farmdata2/farmdata2_modules/fd2_school/vue2/vue2.html @@ -0,0 +1,84 @@ + + + + Harvest Report + + + +
+

{{ reportTitle ? reportTitle : 'Mock Harvest Report' }}

+

This page is a mockup of a simplified harvest report.

+ + +
+ + + + +
+ + + + +
+ +
+
+

{{ reportTitle ? reportTitle : 'Mock Harvest Report' }}

+ +

Details:

+ + + + + + + + + + + + + + + +
DateAreaCropYieldUnits
{{ log.date }}{{ log.area }}{{ log.crop }}{{ log.yield }}{{ log.units }}
+
+ + + + + From 8bb15605eb302f8a41f3ec92920f0336d579527e Mon Sep 17 00:00:00 2001 From: evelynpham04 Date: Sun, 25 Feb 2024 17:44:37 -0500 Subject: [PATCH 48/74] Added event handler to the Vue instance on button click --- farmdata2/farmdata2_modules/fd2_school/vue2/vue2.html | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/farmdata2/farmdata2_modules/fd2_school/vue2/vue2.html b/farmdata2/farmdata2_modules/fd2_school/vue2/vue2.html index ff5ebad2..969456e7 100644 --- a/farmdata2/farmdata2_modules/fd2_school/vue2/vue2.html +++ b/farmdata2/farmdata2_modules/fd2_school/vue2/vue2.html @@ -35,7 +35,7 @@

{{ reportTitle ? reportTitle : 'Mock Harvest Report' }}


- +

{{ reportTitle ? reportTitle : 'Mock Harvest Report' }}

@@ -71,10 +71,7 @@

{{ reportTitle ? reportTitle : 'Mock Harvest Report' }}

selectedArea: 'all', crops: ['Broccoli', 'Kale', 'Peas'], areas: ['All', 'Chuau-1', 'SQ7'], - harvestLogs: [ - { date: '2018-05-02', area: 'Chuau-1', crop: 'Kale', yield: 10, units: 'Bunches' }, - { date: '2018-05-05', area: 'SQ7', crop: 'Kale', yield: 7, units: 'Bunches' } - ] + harvestLogs: [] } }); From a4c169ba4aa3d52746c6efc765a05cc07a0f1c70 Mon Sep 17 00:00:00 2001 From: evelynpham04 Date: Sun, 25 Feb 2024 18:19:17 -0500 Subject: [PATCH 49/74] Changed button click handler to methods object in Vue instance --- .../farmdata2_modules/fd2_school/vue2/vue2.html | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/farmdata2/farmdata2_modules/fd2_school/vue2/vue2.html b/farmdata2/farmdata2_modules/fd2_school/vue2/vue2.html index 969456e7..70d2b632 100644 --- a/farmdata2/farmdata2_modules/fd2_school/vue2/vue2.html +++ b/farmdata2/farmdata2_modules/fd2_school/vue2/vue2.html @@ -35,7 +35,7 @@

{{ reportTitle ? reportTitle : 'Mock Harvest Report' }}


- +

{{ reportTitle ? reportTitle : 'Mock Harvest Report' }}

@@ -72,10 +72,19 @@

{{ reportTitle ? reportTitle : 'Mock Harvest Report' }}

crops: ['Broccoli', 'Kale', 'Peas'], areas: ['All', 'Chuau-1', 'SQ7'], harvestLogs: [] + }, + methods: { + generateReport: function() { + this.harvestLogs.push({ + date: "2018-05-01", + area: "Orion-3", + crop: "Kale", + yield: 12, + units: "Bunches" + }); + } } }); - - Vue.config.devtools = true; From de1d960314d5863f3453a2c78154928f4fed3a48 Mon Sep 17 00:00:00 2001 From: evelynpham04 Date: Sun, 25 Feb 2024 20:14:59 -0500 Subject: [PATCH 50/74] Added sequential numbering to the harvest report table --- farmdata2/farmdata2_modules/fd2_school/vue2/vue2.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/farmdata2/farmdata2_modules/fd2_school/vue2/vue2.html b/farmdata2/farmdata2_modules/fd2_school/vue2/vue2.html index 70d2b632..e2ea019d 100644 --- a/farmdata2/farmdata2_modules/fd2_school/vue2/vue2.html +++ b/farmdata2/farmdata2_modules/fd2_school/vue2/vue2.html @@ -43,13 +43,15 @@

{{ reportTitle ? reportTitle : 'Mock Harvest Report' }}

Details:

+ - + + From d5f0fe051a87e3416f70e6c662711c03fbfc81f0 Mon Sep 17 00:00:00 2001 From: evelynpham04 Date: Sun, 25 Feb 2024 20:39:45 -0500 Subject: [PATCH 51/74] Added condition to the harvest report table --- farmdata2/farmdata2_modules/fd2_school/vue2/vue2.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/farmdata2/farmdata2_modules/fd2_school/vue2/vue2.html b/farmdata2/farmdata2_modules/fd2_school/vue2/vue2.html index e2ea019d..ec41fef8 100644 --- a/farmdata2/farmdata2_modules/fd2_school/vue2/vue2.html +++ b/farmdata2/farmdata2_modules/fd2_school/vue2/vue2.html @@ -40,8 +40,8 @@

{{ reportTitle ? reportTitle : 'Mock Harvest Report' }}


{{ reportTitle ? reportTitle : 'Mock Harvest Report' }}

-

Details:

-
# Date Area Crop Yield Units
{{ index + 1 }} {{ log.date }} {{ log.area }} {{ log.crop }}
+

There are no matching records.

+
From 20fcceeed1c7553daa48eed84867858974780fa7 Mon Sep 17 00:00:00 2001 From: evelynpham04 Date: Sun, 25 Feb 2024 20:56:42 -0500 Subject: [PATCH 52/74] Added validation for start and end dates in Harvest Report --- farmdata2/farmdata2_modules/fd2_school/vue2/vue2.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/farmdata2/farmdata2_modules/fd2_school/vue2/vue2.html b/farmdata2/farmdata2_modules/fd2_school/vue2/vue2.html index ec41fef8..23720ec2 100644 --- a/farmdata2/farmdata2_modules/fd2_school/vue2/vue2.html +++ b/farmdata2/farmdata2_modules/fd2_school/vue2/vue2.html @@ -22,9 +22,9 @@

{{ reportTitle ? reportTitle : 'Mock Harvest Report' }}


- + - +
+
+ + + + +
+ + + + +
+ +
+
+

{{ reportTitle ? reportTitle : 'Mock Harvest Report' }}

+ +

There are no matching records.

+
# Date
+ + + + + + + + + + + + + + + + +
#DateAreaCropYieldUnits
{{ index + 1 }}{{ log.date }}{{ log.area }}{{ log.crop }}{{ log.yield }}{{ log.units }}
+
+ + + + + diff --git a/farmdata2/farmdata2_modules/fd2_school/fd2_school.module b/farmdata2/farmdata2_modules/fd2_school/fd2_school.module index 77791b18..c5012fb6 100644 --- a/farmdata2/farmdata2_modules/fd2_school/fd2_school.module +++ b/farmdata2/farmdata2_modules/fd2_school/fd2_school.module @@ -91,6 +91,15 @@ function fd2_school_menu() { 'weight' => 110, ); + // Add a sub-tab named API with content in ./api/api.html. + $items['farm/fd2-school/api'] = array( + 'title' => 'API', + 'type' => MENU_LOCAL_TASK, + 'page callback' => 'fd2_school_view', + 'page arguments' => array('api'), + 'access arguments' => array('view fd2 school'), + 'weight' => 110, + ); return $items; }; From 82cc66ac94a644de534e756deb240d81b628c68d Mon Sep 17 00:00:00 2001 From: evelynpham04 Date: Sun, 10 Mar 2024 15:35:09 -0400 Subject: [PATCH 55/74] Added farm, user, and language properties --- farmdata2/farmdata2_modules/fd2_school/api/api.html | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/farmdata2/farmdata2_modules/fd2_school/api/api.html b/farmdata2/farmdata2_modules/fd2_school/api/api.html index 23720ec2..836ccdf8 100644 --- a/farmdata2/farmdata2_modules/fd2_school/api/api.html +++ b/farmdata2/farmdata2_modules/fd2_school/api/api.html @@ -59,6 +59,10 @@

{{ reportTitle ? reportTitle : 'Mock Harvest Report' }}

{{ log.units }} + +

Farm: {{ farm }}

+

User: {{ user }}

+

Language: {{ language }}

@@ -73,7 +77,10 @@

{{ reportTitle ? reportTitle : 'Mock Harvest Report' }}

selectedArea: 'all', crops: ['Broccoli', 'Kale', 'Peas'], areas: ['All', 'Chuau-1', 'SQ7'], - harvestLogs: [] + harvestLogs: [], + farm: '', + user: '', + language: '' }, methods: { generateReport: function() { From a006ccb31356a5e4962a08ab887dc18acc58ff73 Mon Sep 17 00:00:00 2001 From: evelynpham04 Date: Sun, 10 Mar 2024 15:48:46 -0400 Subject: [PATCH 56/74] Set initial values of Farm, User and Language --- farmdata2/farmdata2_modules/fd2_school/api/api.html | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/farmdata2/farmdata2_modules/fd2_school/api/api.html b/farmdata2/farmdata2_modules/fd2_school/api/api.html index 836ccdf8..33e28926 100644 --- a/farmdata2/farmdata2_modules/fd2_school/api/api.html +++ b/farmdata2/farmdata2_modules/fd2_school/api/api.html @@ -84,13 +84,9 @@

{{ reportTitle ? reportTitle : 'Mock Harvest Report' }}

}, methods: { generateReport: function() { - this.harvestLogs.push({ - date: "2018-05-01", - area: "Orion-3", - crop: "Kale", - yield: 12, - units: "Bunches" - }); + this.farm = "Sample Farm"; + this.user = "manager1"; + this.language = "English"; } } }); From 007757dfe33a2d4e9f95934e4777805feefcaabf Mon Sep 17 00:00:00 2001 From: evelynpham04 Date: Sun, 10 Mar 2024 16:29:53 -0400 Subject: [PATCH 57/74] Fetched farm data from API --- .../farmdata2_modules/fd2_school/api/api.html | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/farmdata2/farmdata2_modules/fd2_school/api/api.html b/farmdata2/farmdata2_modules/fd2_school/api/api.html index 33e28926..f11bceda 100644 --- a/farmdata2/farmdata2_modules/fd2_school/api/api.html +++ b/farmdata2/farmdata2_modules/fd2_school/api/api.html @@ -84,12 +84,19 @@

{{ reportTitle ? reportTitle : 'Mock Harvest Report' }}

}, methods: { generateReport: function() { - this.farm = "Sample Farm"; - this.user = "manager1"; - this.language = "English"; + axios.get('/farm.json') + .then((response) => { + this.farm = response.data.name; + this.user = response.data.user.name; + this.language = response.data.user.language; + }) + .catch((error) => { + console.log("Error Occurred"); + console.log(error); + }); } } }); - + \ No newline at end of file From a37e500c0ea02f16c788cf2997b2f4381009fe38 Mon Sep 17 00:00:00 2001 From: evelynpham04 Date: Sun, 10 Mar 2024 18:20:09 -0400 Subject: [PATCH 58/74] Changed Crop dropdown --- .../farmdata2_modules/fd2_school/api/api.html | 31 ++++++++++++++++--- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/farmdata2/farmdata2_modules/fd2_school/api/api.html b/farmdata2/farmdata2_modules/fd2_school/api/api.html index f11bceda..7cd63b9b 100644 --- a/farmdata2/farmdata2_modules/fd2_school/api/api.html +++ b/farmdata2/farmdata2_modules/fd2_school/api/api.html @@ -28,7 +28,7 @@

{{ reportTitle ? reportTitle : 'Mock Harvest Report' }}


+
+ + + + +
+ + + + +
+ +
+
+

{{ reportTitle ? reportTitle : 'Mock Harvest Report' }}

+ +

There are no matching records.

+ + + + + + + + + + + + + + + + + +
#DateAreaCropYieldUnits
{{ index + 1 }}{{ log.date }}{{ log.area }}{{ log.crop }}{{ log.yield }}{{ log.units }}
+ +

Farm: {{ farm }}

+

User: {{ user }}

+

Language: {{ language }}

+
+ + + + + diff --git a/farmdata2/farmdata2_modules/fd2_school/fd2_school.module b/farmdata2/farmdata2_modules/fd2_school/fd2_school.module index c5012fb6..995cc103 100644 --- a/farmdata2/farmdata2_modules/fd2_school/fd2_school.module +++ b/farmdata2/farmdata2_modules/fd2_school/fd2_school.module @@ -100,6 +100,17 @@ function fd2_school_menu() { 'access arguments' => array('view fd2 school'), 'weight' => 110, ); + + // Add a sub-tab named API2 with content in ./api/api2.html. + $items['farm/fd2-school/api2'] = array( + 'title' => 'API2', + 'type' => MENU_LOCAL_TASK, + 'page callback' => 'fd2_school_view', + 'page arguments' => array('api2'), + 'access arguments' => array('view fd2 school'), + 'weight' => 110, + ); + return $items; }; From 09097632f66c371e2d1288683025440ed0b277c8 Mon Sep 17 00:00:00 2001 From: evelynpham04 Date: Mon, 25 Mar 2024 01:23:13 -0400 Subject: [PATCH 60/74] Added functionality to request harvest report based on dates --- .../fd2_school/api2/api2.html | 26 +++++++++++-------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/farmdata2/farmdata2_modules/fd2_school/api2/api2.html b/farmdata2/farmdata2_modules/fd2_school/api2/api2.html index 7cd63b9b..39c0fa51 100644 --- a/farmdata2/farmdata2_modules/fd2_school/api2/api2.html +++ b/farmdata2/farmdata2_modules/fd2_school/api2/api2.html @@ -80,7 +80,8 @@

{{ reportTitle ? reportTitle : 'Mock Harvest Report' }}

farm: '', user: '', language: '', - idToCropMap: new Map() + idToCropMap: new Map(), + allHarvestLogs: [] }, created() { this.idToCropMap = new Map(); @@ -99,16 +100,19 @@

{{ reportTitle ? reportTitle : 'Mock Harvest Report' }}

}, methods: { generateReport: function() { - axios.get('/farm.json') - .then((response) => { - this.farm = response.data.name; - this.user = response.data.user.name; - this.language = response.data.user.language; - if (response.data.harvestLogs) { - this.harvestLogs = response.data.harvestLogs; - } else { - this.harvestLogs = []; - } + let startTimestamp = dayjs(this.startDate).unix(); + let endTimestamp = dayjs(this.endDate).unix(); + console.log("Start Timestamp:", startTimestamp); + console.log("End Timestamp:", endTimestamp); + + let requestString = `/log.json?type=farm_harvest×tamp[ge]=${startTimestamp}×tamp[le]=${endTimestamp}`; + console.log("Request:", requestString); + + this.allHarvestLogs = []; + + getAllPages(requestString) + .then((logs) => { + this.allHarvestLogs = logs; }) .catch((error) => { console.log("Error Occurred"); From ffb86e6fb8a95ed2a9c5ce741de0d921f0b9f11d Mon Sep 17 00:00:00 2001 From: evelynpham04 Date: Mon, 25 Mar 2024 01:51:07 -0400 Subject: [PATCH 61/74] Filled in harvest report table with information from API --- .../fd2_school/api2/api2.html | 33 ++++++++++++------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/farmdata2/farmdata2_modules/fd2_school/api2/api2.html b/farmdata2/farmdata2_modules/fd2_school/api2/api2.html index 39c0fa51..6a2569a4 100644 --- a/farmdata2/farmdata2_modules/fd2_school/api2/api2.html +++ b/farmdata2/farmdata2_modules/fd2_school/api2/api2.html @@ -50,13 +50,13 @@

{{ reportTitle ? reportTitle : 'Mock Harvest Report' }}

Yield Units - + {{ index + 1 }} - {{ log.date }} - {{ log.area }} - {{ log.crop }} - {{ log.yield }} - {{ log.units }} + {{ row.date }} + {{ row.area }} + {{ row.crop }} + {{ row.yield }} + {{ row.units }} @@ -96,17 +96,28 @@

{{ reportTitle ? reportTitle : 'Mock Harvest Report' }}

computed: { cropNames: function() { return Array.from(this.idToCropMap.values()); - } + }, + harvestReportRows: function() { + let tableRows = []; + for (let log of this.allHarvestLogs) { + let tableRow = { + date: dayjs.unix(log.timestamp).format('YYYY-MM-DD'), + area: log.area[0].name, + crop: this.idToCropMap.get(log.data.crop_tid), + yield: log.quantity.find(item => item.label === 'Harvest').value, + units: log.quantity.find(item => item.label === 'Harvest').unit.name + }; + tableRows.push(tableRow); + } + return tableRows; + } }, methods: { generateReport: function() { let startTimestamp = dayjs(this.startDate).unix(); let endTimestamp = dayjs(this.endDate).unix(); - console.log("Start Timestamp:", startTimestamp); - console.log("End Timestamp:", endTimestamp); - + let requestString = `/log.json?type=farm_harvest×tamp[ge]=${startTimestamp}×tamp[le]=${endTimestamp}`; - console.log("Request:", requestString); this.allHarvestLogs = []; From 196352e9040ae2b45979eea9b61b00445ec5bed2 Mon Sep 17 00:00:00 2001 From: evelynpham04 Date: Mon, 25 Mar 2024 01:55:20 -0400 Subject: [PATCH 62/74] Modified harvestReportRows to filter rows based on selected crop --- .../fd2_school/api2/api2.html | 26 +++++++++++-------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/farmdata2/farmdata2_modules/fd2_school/api2/api2.html b/farmdata2/farmdata2_modules/fd2_school/api2/api2.html index 6a2569a4..73679eb4 100644 --- a/farmdata2/farmdata2_modules/fd2_school/api2/api2.html +++ b/farmdata2/farmdata2_modules/fd2_school/api2/api2.html @@ -100,17 +100,21 @@

{{ reportTitle ? reportTitle : 'Mock Harvest Report' }}

harvestReportRows: function() { let tableRows = []; for (let log of this.allHarvestLogs) { - let tableRow = { - date: dayjs.unix(log.timestamp).format('YYYY-MM-DD'), - area: log.area[0].name, - crop: this.idToCropMap.get(log.data.crop_tid), - yield: log.quantity.find(item => item.label === 'Harvest').value, - units: log.quantity.find(item => item.label === 'Harvest').unit.name - }; - tableRows.push(tableRow); - } - return tableRows; - } + let cropName = this.idToCropMap.get(log.data.crop_tid); + if (cropName === this.selectedCrop || this.selectedCrop === 'all') { + let tableRow = { + date: dayjs.unix(log.timestamp).format('YYYY-MM-DD'), + area: log.area[0].name, + crop: cropName, + yield: log.quantity.find(item => item.label === 'Harvest').value, + units: log.quantity.find(item => item.label === 'Harvest').unit.name + }; + tableRows.push(tableRow); + } + } + return tableRows; + } + }, methods: { generateReport: function() { From 455afeee35e4c414c462ac3c5a0efac41115aff0 Mon Sep 17 00:00:00 2001 From: evelynpham04 Date: Wed, 1 May 2024 21:09:38 -0400 Subject: [PATCH 63/74] Added first.spec.js --- farmdata2/farmdata2_modules/fd2_school/first.spec.js | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 farmdata2/farmdata2_modules/fd2_school/first.spec.js diff --git a/farmdata2/farmdata2_modules/fd2_school/first.spec.js b/farmdata2/farmdata2_modules/fd2_school/first.spec.js new file mode 100644 index 00000000..8f9b21e0 --- /dev/null +++ b/farmdata2/farmdata2_modules/fd2_school/first.spec.js @@ -0,0 +1,5 @@ +describe('empty spec', () => { + it('passes', () => { + cy.visit('https://example.cypress.io') + }) +}) \ No newline at end of file From 77445ad43ba92999238c702c90b5348c7a24c6c8 Mon Sep 17 00:00:00 2001 From: evelynpham04 Date: Wed, 1 May 2024 21:41:03 -0400 Subject: [PATCH 64/74] Added a new sub-tab named e2e --- .../farmdata2_modules/fd2_school/e2e/e2e.html | 142 ++++++++++++++++++ .../fd2_school/fd2_school.module | 10 ++ 2 files changed, 152 insertions(+) create mode 100644 farmdata2/farmdata2_modules/fd2_school/e2e/e2e.html diff --git a/farmdata2/farmdata2_modules/fd2_school/e2e/e2e.html b/farmdata2/farmdata2_modules/fd2_school/e2e/e2e.html new file mode 100644 index 00000000..73679eb4 --- /dev/null +++ b/farmdata2/farmdata2_modules/fd2_school/e2e/e2e.html @@ -0,0 +1,142 @@ + + + + Harvest Report + + + +
+

{{ reportTitle ? reportTitle : 'Mock Harvest Report' }}

+

This page is a mockup of a simplified harvest report.

+ + +
+ + + + +
+ + + + +
+ +
+
+

{{ reportTitle ? reportTitle : 'Mock Harvest Report' }}

+ +

There are no matching records.

+ + + + + + + + + + + + + + + + + +
#DateAreaCropYieldUnits
{{ index + 1 }}{{ row.date }}{{ row.area }}{{ row.crop }}{{ row.yield }}{{ row.units }}
+ +

Farm: {{ farm }}

+

User: {{ user }}

+

Language: {{ language }}

+
+ + + + + diff --git a/farmdata2/farmdata2_modules/fd2_school/fd2_school.module b/farmdata2/farmdata2_modules/fd2_school/fd2_school.module index 995cc103..b18387ed 100644 --- a/farmdata2/farmdata2_modules/fd2_school/fd2_school.module +++ b/farmdata2/farmdata2_modules/fd2_school/fd2_school.module @@ -111,6 +111,16 @@ function fd2_school_menu() { 'weight' => 110, ); + // Add a sub-tab named e2e2 with content in ./e2e/e2e.html. + $items['farm/fd2-school/e2e'] = array( + 'title' => 'e2e', + 'type' => MENU_LOCAL_TASK, + 'page callback' => 'fd2_school_view', + 'page arguments' => array('e2e'), + 'access arguments' => array('view fd2 school'), + 'weight' => 110, + ); + return $items; }; From 55bf77e916c6892443e307775a637b14fd559a38 Mon Sep 17 00:00:00 2001 From: evelynpham04 Date: Wed, 1 May 2024 22:46:07 -0400 Subject: [PATCH 65/74] Added testing for header --- .../farmdata2_modules/fd2_school/e2e/e2e.defaults.spec.js | 8 ++++++++ farmdata2/farmdata2_modules/fd2_school/e2e/e2e.html | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 farmdata2/farmdata2_modules/fd2_school/e2e/e2e.defaults.spec.js diff --git a/farmdata2/farmdata2_modules/fd2_school/e2e/e2e.defaults.spec.js b/farmdata2/farmdata2_modules/fd2_school/e2e/e2e.defaults.spec.js new file mode 100644 index 00000000..26facc7b --- /dev/null +++ b/farmdata2/farmdata2_modules/fd2_school/e2e/e2e.defaults.spec.js @@ -0,0 +1,8 @@ +describe("Test the harvest report default values", () => { + beforeEach(() => { + cy.login("manager1", "farmdata2") + cy.visit("/farm/fd2-school/e2e") + }) + it("Check the page header", () => { + cy.get("[data-cy=page-header]").should("have.text","Harvest Report") +}) }) diff --git a/farmdata2/farmdata2_modules/fd2_school/e2e/e2e.html b/farmdata2/farmdata2_modules/fd2_school/e2e/e2e.html index 73679eb4..d4d481a5 100644 --- a/farmdata2/farmdata2_modules/fd2_school/e2e/e2e.html +++ b/farmdata2/farmdata2_modules/fd2_school/e2e/e2e.html @@ -1,7 +1,7 @@ - Harvest Report +

Harvest Report

+ + +
+

{{ reportTitle ? reportTitle : 'Mock Harvest Report' }}

+

This page is a mockup of a simplified harvest report.

+ + +
+ + + + +
+ + + + +
+ +
+
+

{{ reportTitle ? reportTitle : 'Mock Harvest Report' }}

+ +

There are no matching records.

+ + + + + + + + + + + + + + + + + +
#DateAreaCropYieldUnits
{{ index + 1 }}{{ row.date }}{{ row.area }}{{ row.crop }}{{ row.yield }}{{ row.units }}
+ +
  • Farm: {{ farm }}
  • +
  • User: {{ user }}
  • +
  • Language: {{ language }}
  • + +
    + + + + + diff --git a/farmdata2/farmdata2_modules/fd2_school/fd2_school.module b/farmdata2/farmdata2_modules/fd2_school/fd2_school.module index b18387ed..c10b0822 100644 --- a/farmdata2/farmdata2_modules/fd2_school/fd2_school.module +++ b/farmdata2/farmdata2_modules/fd2_school/fd2_school.module @@ -111,7 +111,7 @@ function fd2_school_menu() { 'weight' => 110, ); - // Add a sub-tab named e2e2 with content in ./e2e/e2e.html. + // Add a sub-tab named e2e with content in ./e2e/e2e.html. $items['farm/fd2-school/e2e'] = array( 'title' => 'e2e', 'type' => MENU_LOCAL_TASK, @@ -121,6 +121,16 @@ function fd2_school_menu() { 'weight' => 110, ); + // Add a sub-tab named fd2 with content in ./fd2/fd2.html. + $items['farm/fd2-school/fd2'] = array( + 'title' => 'fd2', + 'type' => MENU_LOCAL_TASK, + 'page callback' => 'fd2_school_view', + 'page arguments' => array('fd2'), + 'access arguments' => array('view fd2 school'), + 'weight' => 110, + ); + return $items; }; From ec2fec45d3f7638714f309727c22fca2605dd53e Mon Sep 17 00:00:00 2001 From: evelynpham04 Date: Fri, 3 May 2024 00:33:31 -0400 Subject: [PATCH 71/74] Switch the crop dropdown --- .../farmdata2_modules/fd2_school/fd2/fd2.html | 23 ++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/farmdata2/farmdata2_modules/fd2_school/fd2/fd2.html b/farmdata2/farmdata2_modules/fd2_school/fd2/fd2.html index 62c00177..432ae15b 100644 --- a/farmdata2/farmdata2_modules/fd2_school/fd2/fd2.html +++ b/farmdata2/farmdata2_modules/fd2_school/fd2/fd2.html @@ -26,10 +26,14 @@

    {{ reportTitle ? reportTitle : 'Mock Harvest Report' }}


    - - + + Crop: +