2.1.013 - 11/3/2022 KRGJ
- Order lookup:
- Allows searching for service orders by DtlID (equipment history) or by ItemID (equipment model history).
- Order detail:
- Shows line items from TRX, TRXIP, and MC WEB* lines. MC lines link to the approopriate MC page.
- Repair Units:
- New history button next to Unit # links to equipment history.
- New history button next to Stock # links to equipment model history.
- Event:
- SO# now links to the order detail page.
- App notification time can be seen & edited when you expand the date/time fields.
- Identifiers:
- Update editable and read-only identifier forms to use grids and have a form that blends in better with our new BaseLink look and feel.
- Square:
- Fix bug: OAuth not refreshing correctly.
2.1.012 - 7/22/2022
- KRGJ
- Square OAuth integration
- Set AppID, AppSecret in database
- Create authorization
- Refresh token manually
- Revoke authorization
- When server starts, and daily therefter, checks the age of the current token. If token age is greater than 5, refresh the token. If the age is greater than 8 after refreshing the token, indicating multiple refresh failures, email ormandy support.
- API:
- addresses.json POST: remove requirement to have an EntityID when you create an address.
- customers.json POST: if an addresses is used as ShipTo, BillTo, or SoldTo, add an ENTITYADDRESSES row for that customer & address if it doesn't exist, and turn on the bit for that address type.
- vendors.json POST: if an addresses is used as PayTo, PurchaseFrom, or ShipTo, add an ENTITYADDRESSES row for that vendor & address if it doesn't exist, and turn on the bit for that address type.
- Home:
- Add Square page if the user is ormandy or has the appropriate security.
- Fix bug: broken link for grayed-out shopify icon.
- Shopify:
- Fix bug: checking if user is ormandy fails if the user capitalized any portion portion of the word "ormandy."
- Fix bug: Unmatched shopify items didn't throw an error when importing shopify orders.
2.1.011 - 7/15/2022
- KRGJ
- Event details page:
- Fix bug saving event without note, or with note when original event was saved without a note.
- Shopify API updates:
- Includes support for packages created with the bold plugin.
- Bold package lines can themselves be a FrontLine package.
2.1.010 - 5/16/2022
- KRGJ
- Event detail page:
- fix bug: updating an event that didn't have a note fails.
- fix bug: unassigned events don't have a yellow decoration line
- Scheduler:
- Unassigned events now have a date instead of a time range.
- Unassigned events are now sorted by date (ignoring the time), with assigned events for that date appearing before any unassigned events for that date.
- Labor, parts, repair unit:
- fix bug: always switched the expand/contract arrow of the first line, regardless of which line you're expanding/contracting
- fix bug: when expanding/contracting one section (ie, participants) it expands/contracts that section on every line.
- Labor:
- Added an expand/contract to the start and stop times. When expanded, the date is editable, and the label, date and time are on different lines. When contracted, everything is on one line, and the date is a shortened, read-only date.
- Fix bug: Default agents (own agent or event agents, depending on BL settings) are not being added to labor.
- Parts: Identifiers expand/contract arrow never switches when clicked.
- Parts, labor, repair images, signatures: link back to the repair unit now takes you to the specific repair unit, instead of just the repair unit page.
2.1.009 - 4/18/2022
- KRGJ
- Rename CPServName pages to CPServType
- Shopify updates for "custom app" (with token) instead of "private app" (with pw)
- API invoices: Add LocationID to invoice object and relevant SQL
- Fix bug: Scheduler: When own user agent is passed in by URL variable, checks "Other Web Schedules" security context instead of "Web Scheduler" context.
- Labor:
- Break "Date" into a start and stop date.
- Update JavaScript to fill the stop date using the "now" button.
- Update date/time calculations to fill/use the stop date as well as time.
- Only check date/time calculation validity (start time before stop time, etc) when saving. Still checks date sanity when editing the date (date format correct, and not 50 years in past/future)
- Fix Bug: multi-clicking save when saving for the first time can duplicate the labor line. Now keeps track of whether a save is in progress for each line, and tries again in 200ms if there is a save in progress.
- Fix bug: Voided lines show as imported instead of voided. Now have an orange decoration instead of medium gray, and added a message indicating that the line is voided.
- Parts:
- Fix bug: Voided lines show as imported instead of voided. Now have an orange decoration instead of medium gray, and added a message indicating that the line is voided.
- Repair Units:
- Fix bug: Voided lines show as imported instead of voided. Now have an orange decoration instead of medium gray, and added a message indicating that the line is voided.
- Fix bug: Repair units with a signature should be voided, not deleted.
- Repair unit duplicate checking now ignores voided units, so they can be added back to the event.
2.1.008 - 3/7/2022
- KRGJ
- Event details:
- Fix bug: agents don't filter properly on iOS
- Fix bug: filtered agents didn't have a blank as the first name, so the first agent could not be added to the event.
- Choose stock no: Fix bug: labor/service version switches to stock version when you search on the page.
- Labor:
- Fix bug: error in a script caused the rest of the scripts not to load.
- Fix bug: filtered agents didn't have a blank as the first name, so the first agent could not be added to the event.
- Admin CP service type/name:
- Fix bug: adding the first service type errors, because choosing the ID fails without one already in there.
- Rename files to adminCPServType. The data in SQL is labeled with CPServName, but users think of it as service types.
- Admin CP View: Fix bug: removing a column, then adding it again without refreshing, fails to save the column when you save it.
2.1.007 - 2/21/2022
- KRGJ
- Labor: Fix bug: agents don't filter properly on iOS
- Scheduler:
- Fix bug: agents don't filter properly on iOS
- Fixing the bug causes the agents whose schedule is showing to always display in the drop-down list, even when the agent would otherwise be filtered out.
- Event details: Fix bug: date/time summary field shows "NaN" and "Unknown" instead of date.
- NewInstall.sql: Fix bug: does not contain all of changes from Updates.0.12.031.sql
2.1.005 - 2/4/2022
- KRGJ
- Fix bugs in API POST vendors, customers, jobs
2.1.004 - 2/3/2012
- KRGJ
- Parts, repair units:
- Fix bug: pressing enter on the choose stock number or unidentified pages reloads the page with invalid form data.
- Fix bug: Choosing unique equipment doesn't properly update the stock description.
- Scheduler:
- Reorganize the filters in the mobile view, placing the checkboxes underneath the drop-down selections, to give more lateral space to the drop-downs.
- Add padding around the checkboxes and drop-downs in the filters in the mobile view, to make them easier to press.
- All pages in app: Add 500 pixels of blank space to the bottom of each page, to allow the user to see the bottom of the page even with the keyboard covering the bottom. 2.1.003
- KRGJ
- API:
- Add missing filters.
- Split JEType into JEType, JEIntent, and JESeq
2.1.002 - 12/27/2021
- KRGJ
- Shopify refund import:
- Fix bug: refund lines don't have the imported flag.
- Shipping refund lines will now be created even if the import cannot find the original shipping line to reference.
- If an order already has an in process return order, then the refund will be added to that return order. This should solve issues with Shopify refunds being sent as two separate refunds, each with only half of the information. Once both refunds have been imported, the return order should balance, and therefore should be able to be completed.
2.0.007 - 8/27/2021
- KRGJ
- Parts and Repair Units:
- Fix bug: Sticky checkbox for "Include discontinued and on hold" fails because the page doesn't have the user's PersonID.
- Fix bug: When adding an unidentified item, toggling the sticky checkbox in the stock search makes the page forget that you're in the middle of the unidentified process.
- Event:
- Rearrange date & times, adding labels, to match the arrangement in the labor page.
- Repair unit:
- When viewing the repair unit's signature, there is no button to go back to the repair unit page.
- Shopify:
- Fix bug: returns leave out the line for return of shipping fees.
- Add structures for adjustments, but ignore any adjustments other than shipping returns.
2.0.006 - 8/14/2021
- KRGJ
- Fix bug: default log file name was missing the directory, log not used correctly if the log file wasn't specified in the config file.
- Add a stickySelect function which allows settings in drop-down lists to be sticky, in the same way as checkboxes.
- Parts, Labor, Repar Units:
- Add a line count to the page, updated if lines are saved, deleted, or added through the update page.
- Fix bug: getNewLines() function does not correctly see new lines sent back from update* pages.
- Remove LineNum from database, and from Labor, Part, and Repair Unit pages.
- Parts, Repair units: Fix bug: primary identifier value is lost when you create unidentified equipment, you have to type it in again when you get to the last page.
- Events:
- Remove end date from the event. When saving an event, will use the start date as the end date.
- Rearrange the expanded view to show "startDate startTime - endTime"
- Add error and sanity checking to the date and times: the start date and start and end times must exist, start time cannot be later than the stop time, and the date cannot be more than 50 years in the past or future.
- Scheduler:
- Make region, agent category and location group sticky.
- Shopify order import:
- Fix bug: Addresses not created properly for new customers.
- Fix bug: Existing but invalid value for the template CustomerID causes adding new customers to fail.
2.0.005 - 7/28/2021
- KRGJ
- Scheduler:
- Fix spacing bugs in scheduler header.
- Change vertical alignment of arrows and date/text in header.
- Added vertical space around the event subject/time and event address.
- Parts and Labor: fix bug: The repair unit label is not appearing in JavaScript lines in the labor page, or any lines in the parts pgae.
- Customer and Contact: add JavaScript to allow it to work with the CPUser page.
- CPUser: Rearrange headers and add embedded page framework to allow it to work with the embedded customer and contact pages.
2.0.004 - 7/15/2021
- KRGJ
- All pages:
- Fix decor blocks.
- CSS image zoom of 1.5 (150%)
- CSS body font-size of 200%
- Fix bug: dropdown menu is hidden behind other objects.
- Save scroll before opening embedded page, scroll to top when opening embedded page, scroll to previous position when closing embedded page.
- Index/login page:
- Fix bug: index/login page looks odd on phone -- login area cut off, background not stretching the width of the login area.
- Login page sizes/padding/margins are all hard-coded, add hard-coded size increases since percentage increase didn't touch them.
- Events:
- Rearrange cell phone view
- Labor/Parts/Repair Units:
- Give all grid blocks width of 100%, to avoid unnecessary wrapping, because wrapped text receives font boosting in mobile Chrome.
- Fix bug: part/repair/labor # doesn't show up when first saved.
- Repair units:
- Fix bug: decor color is gray if the repair unit has a signature.
- Home:
- Fix bug: divider width is set to wider than the page, causing everything else on the page to shrink so that it fits.
- Sticky open/close on menus.
- Contacts:
- Fix bug: second filter doesn't work, and value is lost after searching.
- Customers:
- Fix bug: Address type search works, but value is lost when pressing search.
- Repair Images:
- Update page with new header style, and sticky header.
- Shopify order import:
- Fix bug: new addresses for existing customers aren't put into ENTITYADDRESSES.
2.0.003 - 7/11/2021
- KRGJ
- Shopify
- Now ignores pushing items to shopify (create/update shopify products) if there is no status code. Previously errored without a status code specified.
- SetConfig
- Remove SQL 2008 compatibility options from the SQL server connection string.
- Add a special string for the SQL port "---" which indicates that the port should be left off of the SQL server connection string, to allow the use of the instance name in lieu of a port.
- Set the default phone labels. These are read in once at startup, if they change you need to restart BL to detect the change.
- Scheduler:
- Preserve the filter position (open/closed) when reloading the scheduler page with different options.
- Event:
- Use the default phone labels in lieu of "Phone 1", etc.
- Customer:
- Fix bug: "Next 20" and "Previous 20" broken on non-embedded pages
- Fix bug: Choose customer line didn't blank out the contact
- Fix bug: Choose customer line didn't fill in the phone numbers
- Add phone labels to customer phone numbers
- Contact:
- Fix bug: "Next 20" and "Previous 20" broken on non-embedded pages
- Fix bug: Choose contact line didn't fill in the customer
- Fix bug: Choose contact line didn't fill in the phone numbers
- Add phone labels to contact phone numbers
- Labor:
- Fix bug: misc bugs with expanding/updating note & note subject
- Update subject placeholder to say "Note Subject" instead of "Labor Subject"
- Remove stock number from repair unit assignment block
- Fix bug: fix irregularities in repair unit assignment block
- Fix bug: saving Javascript-added lines does not update the LaborID, so subsequent saves create new lines instead of updating the existing line.
- Create a unique sequence number for all labor lines for each CalendarID, to use as a header. If this is null, just leave it blank in the header.
- Parts:
- Fix bug: misc bugs with expanding/updating note & note subject
- Update subject placeholder to say "Note Subject" instead of "Part Entry Subject"
- Remove stock number from repair unit assignment block
- Fix bug: fix irregularities in repair unit assignment block
- Fix bug: clicking in the Unit # field opens the search immediately without allowing text entry
- Fix bug: clicking the Unit # search button doesn't open the search on JavaScript-added lines
- Fix bug: saving Javascript-added lines does not update the PartID, so subsequent saves create new lines instead of updating the existing line.
- Create a unique sequence number for all part lines for each CalendarID, to use as a header. If this is null, just leave it blank in the header.
- Repair Units:
- Fix bug: misc bugs with expanding/updating note & note subject
- Fix bug: When I add a repair unit, I save it but cannot add notes or identifiers until I navigate away and back
- Update subject placeholder to say "Note Subject" instead of "Repair Unit Subject"
- Create a unique sequence number for all repair unit lines for each CalendarID, to use as a header. If this is null, just leave it blank in the header.
- Repair Images:
- Create a unique sequence number for all repair unit lines for each CalendarID, to use as a header. This number isn't yet used, because the repair image page has the old style.
2.0.002 - 6/28/2021
- KRGJ
- Shopify
- Fix bug: Shopify order import ignores the start and stop dates for importing by date.
- Fix bug: Shopify order import lists orders already imported under error orders, and sends the shopify admin an error email about them.
2.0.001 - 6/24/2021
- KRGJ
- Parts
- Added a placeholder header. Will add the part number later.
- Fix bug: subject and note are too narrow
- Fix bug: decor color is still green if the even if the line has been imported.
- Fix bug: placeholder subject on read-only lines says "Labor Subject"
- Added a colon after quantity on read-only lines
- Fix bug: search, save, cancel and delete buttons are present on read-only lines
- Fix bug: repair unit search button is on a different line in the JavaScript lines.
- Fix bug: event listeners not working in JavaScript lines.
- Fix bug: note value does not load into the editable note box, only the read-only note box.
- Repair units
- Added a placeholder header. Will add the repair number later.
- rearranged the unit and service order numbers to better match the mockup
- Fix bug: decor color is still green if the even if the line has been imported.
- Fix bug: search, save, cancel and delete buttons are present on read-only lines
- Fix bug: expand all button is missing from editable lines
- Fix bug: subject and note are too narrow
- Fix bug: multiple alignment issues caused by misnamed closing tags
- Labor
- Fix bug: read-only lines do not have an expand all button
- chooseStockNo/chooseUniquePart/unidentified/saveUnidentified:
- Change the page calls within the flow to add an unidentified unit to be embedded.
- Adjust the scripts to pass variables instead of relying on the template to set variables.
- Add hidden inputs to store variables for the scripts that were previously set by the template.
1.0.022 - 6/17/2021
- KRGJ
- Labor
- Added a placeholder header. Will add the labor number later.
- Fix bug: subject and note are too narrow
- Fix bug: search, save, cancel and delete buttons are present on read-only lines
- Fix bug: participants label (shortened version of participants) doesn't show up on read-only lines
- Added a colon after start time, stop time, and hours worked on read-only version
- Fix bug: note and subject are editable on read-only lines
- Added a spacer icon (a transparent image the same size as the normal icons) to most read-only values that have icons on editable lines, because the spacing was different without the icons.
- Fix bug: add labels to inputs on javascript-added lines.
- Fix bug: change search button to magnifying glass on javascript-added lines
- Fix bug: add button block to javascript-added lines
- Fix bug: editable identifier form doesn't print "No Identifiers" when there are no identifiers
- Fix bug: updating identifier form doesn't print "No Identifiers" when there are no identifiers
- Fix bug: expand buttons don't work on javascript-added forms
- Fix bug: have to navigate away to get to enter notes
- Fix bug: next and previous buttons don't work in the stock search
1.0.017 -
- KRGJ
- Scheduler
- Fix bug: MC thinks every day is Friday
- Event details
- Fix bug: datetime header label doesn't update when dates and times are updated
- Fix bug: participants summary label isn't showing the participants
- Fix bug: subject and note labels don't update when subject and note are updated
1.0.017 - 5/6/2021
- KRGJ
- Replace the "noMenu" variable with a "MCApp" cookie, so that we don't have to pass it in at every page load.
- The server name is now BaseLink; MobileConnect is now only the set of pages for tech data entry. Rename files/pages/titles/service accordingly.
- app/schedule.json
- now has notifyMins, COALESCE(EVENT.NotifyMins, userDefault, companyDefault, 15)
- Contacts
- Restyle contact page
- Create embedded version of contact page, in lieu of opening a new window.
- Move the contact scripts to custContScripts.tmpl, so that they can be loaded in pages which will have the embedded contact search -- using an XMLHttpRequest to fill a does not update the CSS or scripts on a page.
- Scripts for embedded pages are now loaded on page load, not when the embedded page opens. This means that they have the parent page's template variables, not the embedded page's. Rewrite the scripts to use JavaScript logic controls instead of template logic controls, where necessary.
- Customers
- Restyle contact page
- Create embedded version of customer page, in lieu of opening a new window.
- Move the customer scripts to custContScripts.tmpl, so that they can be loaded in pages which will have the embedded customer search -- using an XMLHttpRequest to fill a does not update the CSS or scripts on a page.
- Scripts for embedded pages are now loaded on page load, not when the embedded page opens. This means that they have the parent page's template variables, not the embedded page's. Rewrite the scripts to use JavaScript logic controls instead of template logic controls, where necessary.
- Event details
- Restyle event detail page
- Customer and contact search now happen in embedded pages, instead of opening a new window
- Start and end datetimes are now edited inside the page, instead of opening a new window. No longer uses a "quantity" to calculate the ending time, saves and loads the ending time directly.
- Known bug: If you create a new event, and save it, then you must go back to the scheduler page and load the event page from there in order to save updates to that page. If you save updates to the event without loading it from the scheduler, it will create another new event, instead.
- Home page
- Restyle the home page
- The buttons are now grouped into categories such as MC and CP
- When loaded with the MCApp cookie, only shows the buttons from the MC category
- Index/login page
- Menu
- Restyle the menu
- Change the default links from /FrontLine/ to /BaseLink/
- Scheduler
- Restyle the scheduler page
- Known bug: MC thinks every day is Friday.
- webServer/setConfig
- Configuration file has been renamed to BL.conf, since Windows doesn't like filenames with only a file extension.
- licenseRegion and licenseBucket are now hard-coded, and BL ignores the values in the config file.
- The main directory is now /BaseLink/ instead of /FrontLine/
1.0.016 - 2/10/2021
- KRGJ
- app/schedule.json
- Integer Updated instead of a time string.
- Updated is now the max of LastMoved, as well as LastEdit and Created.
- Fix missing noMenu string in many URLs.
- URI decoded usernames and passwords before checking them.
- URI encoded usernames and passwords during regular authentication, to prevent usernames or passwords with % character being interpreted incorrectly.
1.0.015 - 1/5/2021
- KRGJ
- Add Shopify timezone to config file so that parsed dates can have a timezone appended.
- Fix bug: Dates not being properly parsed for Shopify start date, and date ranges for Shopify order and refund imports.
- Parts and repair units:
- When typing in model numbers, discontinued and on hold model numbers are now filtered out of the drop-down list. Since this is the list used to validate stock numbers before saving, you now cannot save with a discontinued or on hold model number.
- On stock number search page, there is now a sticky checkbox to include "no sell" stock numbers -- right now, discontinued & on hold.
1.0.014 - 12/14/2020
- KRGJ
- Fix bug: Shopify admin emails are being sent out with a blank body.
- Fix bug: Shopify admin page shows that order import is successful if the order import fails because a product/variant isn't in the SHOPIFYIDS table.
- Fix bug: Most shopify pages only check for Shopify license, not permissions.
1.0.013 - 12/10/2020
- KRGJ
- Change PAYMENTS.PType from -42 to 42 on imported Shopify payments.
- Fix bug: When saving identifiers, if one of the identifiers is unique, does not insert/delete/update any identifiers after the unique one.
1.0.012 - 12/3/2020
1.0.011 - 11/24/2020
- KRGJ
- Shopify integration administration (shopify.tmpl):
- Fix bugs with importing orders and refunds by Shopify OrderID.
- Fix status messages.
- Status messages are now red for IDs with errors in import, blue for already imported, green for successfully imported.
- Shopify refunds are all now imported as refund lines in an order. For orders with the lines still in TRXIP (no partial invoicing allowed), the refund lines are imported in the existing order. For orders with the lines in TRX, a new return order is created.
- Fix bug: shopify transactions function failed with an error if there were no payment lines needing to be added.
- Fix bug: Pushing items to create unpublished products now requires the employee to choose where (online store) and when to publish them. This might be too confusing for the user. Pushing as a draft item now also pushes as an
- Config file admin: and FL Location, Shopify Shop Location, Shopify Agent, Shopify Admin Email, and Integration Start Date fiels to the Shopify Integration section.
1.0.010 - 11/17/2020
- KRGJ
- CPView Admin: Added OptInt bit for show ESetID as Contract ID.
- Config File Admin:
- Update tab spacing on many fields.
- Add shopify config items: shopifyStore, shopifyAPIKey, shopifyAPIPass, shopifySecret, shopifyStatusFlag, shopifyItemTitle, shopifyItemBody, shopifyPasswd
- New file email.go with email functionality from FLCP
- New email template: shopifyAdminNotify
- Homepage:
- Show CP log, MC log, CP user and MC user pages when logged in as Ormandy, regardless of Ormandy's AccessLevel.
- Show Shopify page if MC has a Shopify license and the user is Ormandy or has Shopify read access.
- Repair Images: Upload multiple files at once.
- setConfig: added Shopify config options and variables.
- supporting:
- Email function moved to email.go
- Added scanID and scanIDIfUnique helper functions
- webServer.go: On startup, finds and saves the template CustomerID and the ItemID for customer shipping charges. If these are changed, MC must be restarted to update the values.
- Shopify integration administration (shopify.go and shopify.tmpl): Administrative interface to allow the user to create webhooks, match products, push products, import specific orders (including payments), import orders by date range, import refunds (including payments), import refunds by date range.
- shopifySupporting: data structures and helper functions for Shopify.
- shopifySaveWebhook, shopifyDeleteWebhook: saves and deletes webhooks for orders and refunds.
- shopifyFulfillments: orders that are marked in the SHOPIFYSYNC table are fulfilled in Shopify
- shopifyOrders: imports orders either via webhook or the Shopify integration interface
- shopifyProducts: matches Shopify products to existing FL items and pushes marked FL items to become/update Shopify products.
- shopifyRefunds: imports refunds either via webhook or the Shopify integration interface
- shopifyTransactions: imports payments for orders and refunds
- shopifyWebhook: processes webhooks, and passes the appropriate data structures to the orders or refunds functions.
1.0.009 - 9/20/2020
- KRGJ
- Repair Images: Allow upload of multiple images at once. Each image is individually verified, so choosing one image file along with multiple non-image files, the end result would be the one image file uploaded.
- Login page: Added a viewport tag to the page to force the page not to zoom out on cell phones.
- Contains shopify API pages, which do not function correctly, but these pages shouldn't show up without a shopify license. Do not add a shopify license with this version!!!
1.0.008 - 8/25/2020
- KRGJ
- Config file admin page
- Added customer requested options "Show Event Category" and "User is Default Labor Agent"
- Fix bug: Picklists don't properly load previous values.
- Fix bug: None of the customer requested options are saved.
- Labor: Added configuration option lUserDefAgent to choose who is the default agent attached to labor lines. Default value (off) is the agent(s) attached to the event. When set to on, the default agent is whoever is logged in.
1.0.007 - 7/21/2020
- KRGJ
- ***REQUIRES FLCP 1.0.015 OR ABOVE***
- CP View admin page
- Service Request view configuration now allows you to select an identifier for the problem category. If an identifier is selected, it must be a list or no problem categories show up.
1.0.006 - 6/29/2020
- KRGJ
- ***REQUIRES FLCP 1.0.013 OR ABOVE***
- MC/CP configuration file admin page:
- Rearrange page visuals for easier entry.
- Change many fields from free-form entry to picklists
- Fix saving.
- Known bug: cancel buttons do not work.
- CP View admin page:
- Rearrange page visuals for easier entry.
- Fixed saving.
- Equipment OptInt bits rearranged, to split up options bits which filter equipment from the bits which add columns.
- Bits which add columns are now displayed as a multi-select like for selecting identifiers, instead of as checkboxes.
- Known bug: cancel buttons do not work.
- Missing functionality: selecting a UISet on Equipment and SR views doesn't filter the UITypes (should only show the ones relevant to that UISet).
- Add CPServName (CP service types) administrative page.
- Repair images:
- Fix loophole allowing users to upload non-image files on the repair images page.
- Fix bug: scheduler page crashes under some conditions when user only has security to see own schedule.
- Styles: added rainbow collapsible headers in colors to match home tiles/menu buttons.
1.0.005 - 5/20/2020
- DNB
- Changes to adminCPView page
- Added functionality to add service request pages.
- Added chck bocxes for item catagories and vendors.
- Fixed bug with adding service order pages.
1.0.004 - 5/20/2020
- KRGJ
- Changes to support FLMC App:
- App API JSON pages: app/schedule.json, app/menuTiles.json
- Add "noMenu" URL variable which turns off the top menu on all template pages. Modify all links within MC to use that variable if the variable has been passed in to the page.
1.0.003 - 4/1/2020
- KRGJ
- Fix bug: update labor, part, repair image has an error when returning more than one row. Creates an error with "cancel all."
- Fix bug: server panics, printing a bunch of error messages in the log, when there is an error saving a repair image. End user is not affected, just the log.
- Labor: Fix bug: remove debugging alert that pops up every time you load the labor page.
1.0.002 - 3/31/020
- KRGJ
- Event:
- Fix bug: Event detail template crashes under some conditions, cutting off partway through the custmer fields.
- Fix bug: Event categories don't show up when adding a new event.
- Fix bug: Error saving new events.
1.0.001 - 3/27/2020
- KRGJ
- ***REQUIRES LOCATION GROUPS DATABASE UPDATE; FL Version 6.7.010 or above***
- New configuration file option: showEventCat
- Shows the event category, and allows editing of event category, if set to "on"
- Merge back-end changes from CP:
- Redirect low-level messages from stderr to log, since stderr goes nowhere when running as a service.
- Constants for authentication type, instead of hard-coding the numbers.
- TemplateData includes JSONData instead of JSON, data is converted to a byte string in serveTemplate() instead of in the page functions.
- Framework for static authentication pages.
- Login changes including CP multi-auth and email PIN.
- Fix bug: JSON pages have the default auth type even when overridden.
- Fix bug: mobile PINs sometimes get stuck for multi-auth users, causing the login window to say it is expired.
- Fix bug: index page contained some jQuery code, causing errors.
- Scheduler:
- Add agent filtering by location group.
- Location group filter only shows up if one or more LGroups exist in the LISTVALS table.
- Event:
- Shows the event category next to checkboxes next to event status if "showEventCat" is set to "on" in config file.
- Agent filtering by location group. If the user's agent has a location group, defaults to being filtered by that location group.
- Location group filter only shows up if one or more LGroups exist in the LISTVALS table.
- Labor:
- Add agent filtering by location group.
- Location group filter only shows up if one or more LGroups exist in the LISTVALS table.
- Email templates: added header & pin templates.
0.14.016 - 2/21/2020
- KRGJ
- Event:
- Fix bug: Event status checkboxes not showing.
0.14.015 - 2/7/2020
- KRGJ
- Scheduler:
- Filtered unassigned events by location region.
- If there is no location, event shows up regardless of region selected.
- If there is a location but no region, doesn't show up if any region is selected.
0.14.014 - 2/4/2020
- KRGJ
- Scheduler:
- "To be scheduled" and "unassigned" checkboxes are now sticky settings stored in WEBCONFIG.
- Remove the toBeScheduled and unassigned settings from the scheduler links.
- CP User administration:
- User detail page now has a selection for pin type.
- Fix bug: # character not escaped properly, doesn't save properly in passwords.
- Supporting:
- Generic functions to save and load WEBCONFIG and CPCONFIG settings.
0.14.013 - 1/31/2020
- KRGJ
- Repair Units:
- Fix Bug: When I capture a signature, when I click save, it does not close the signature capture page.
- Fix Bug: When I void a repair unit in MC, it gives you a blank screen. If I navigate back to the repair units page, it is voided.
- Instead of displaying a warning when the UIValue (now the Lookup) field has a duplicate for that event (which might or might not mean a duplicate UI), now displays an error when there is a duplicate UI, and refuses to allow you to save this duplicate repair unit.
- Parts, labor, repair units:
- Fix Bug: When a line is read-only, free-form text identifiers aren't shown.
- Repair units, parts:
- Fix Bug: When entering an unidentified unit, the value I entered in the identifier field does not default into the page prompting me to enter the serial number.
- Fix bug: When choosing a part, search type fails to be set if other bitwise search settings are set (part search doesn't show correct search type), and editing your search loses those other bitwise settings.
- Fix bug: if you enter equipment as unidentified, then use it again before importing it, then delete one of the two, it deletes the identifier document. (Should only delete the identifier document if no references left.)
- Scheduler
- Fix Bug: "To Be Scheduled" events without orders are not showing in the scheduler page.
0.14.012 - 1/21/2019
- KRGJ
- Known bug: Part (not repair unit) UI search shows incorrect search type.
- Known bug: if you enter equipment as unidentified, then use it again before importing it, then delete one of the two, it deletes the identifier document. (Should only delete the identifier document if no references left.)
- partsEntry: Lookup Search Type is customer by default.
- repairUnit: Remove search all button from page, first lookup can only be customer or service order.
- chooseUniquePart:
- When searching by identifier, search type is now a drop-down, and can be changed in search page.
- When searching by identifier, can filter by stock or description.
- Search and filter text are now editable.
- Search by can choose Identifier, Stock, Description. If Stock or description, disables filter and search type, and takes you to the stock search page when you press search.
- Unidentified option no longer appears on service order search -- must search customer or all before saying unidentified.
- Unidentified now takes you to choose the stock number in page chooseStockNo (begins with filter text), then enter the primary identifier in page unidentified.
- Unidentified: new page to enter serial number of unidentified item.
- When you click save, checks for duplicates.
- If exact there is an exact match, shows the exact match(es) and refuses to let you save as unidentified.
- If no exact match, checks for matching serial numbers with other stock numbers. If there's an inexact match, it asks if you really mean that piece of equipment, but lets you tell it to go ahead and save as unidentified. Checks again for exact matches if you save as unidentified.
- Contact: Fix bug: header on select version of contact page shows as "Contact Lookup" instead of "Select Contact."
- Home and Menu: Fix Bug: logout button no longer works, because the template is escaping the onClick function.
0.14.011 - 11/22/2019
- KRGJ
- New pages to allow administrative users to change other users' passwords:
- adminMCUserList, adminMCUser, adminSaveMCUser
- Home: now five different colors for menu tiles, to avoid alternating stripes of color.
- Menu: now five buttons, since we have five different colors.
- User settings:
- User can select 4 buttons instead of 3, since we now have 5 available buttons instead of 4. First button remains home button.
- Fix bug: Saving buttons errored if user already had buttons saved.
- Scheduler:
- Fix bug: To Be Scheduled isn't sticky when navigating away and back.
- Fix bug: Event status of "Completed" shows as open.
- Fix bug: Events attached to void, completed and returned orders don't show as such, and don't show the event status as read-only. Updates to event statuses wouldn't save, but wouldn't show a reason why.
- Removed events attached to void, completed and returned orders from the list of "To Be Scheduled" events.
- Event:
- Fix bug: when using an agent who has a region, the region drop-down is initially selected with the user's region, but the agents aren't filtered until you change the region on the filter drop-down.
- Fix bug: Event status doesn't save properly from the event detail page.
- Fix bug: saving an event status from the event detail page cleared an invoiced event status.
- Fix bug: Read-only events didn't remove the "others" and "self" permissions, allowing users to edit the participants on read-only events, and giving them save and cancel buttons.
- Fix bug: Save, Cancel and Enter Signature buttons appeared at the top of the page regardless of permissions.
- Fix bug: Users with permissions to add or delete themselves from an event had a signature button, allowing them to collect a signature even if they didn't have permissions to edit that event.
- AdminCPUser:
- Fix bug: Error saving new user.
- Fix bug: Shows an error updating the password for a user for a single account, but updates the password anyway.
- Fix bug: Changing a user's password clears their failed mobile pin attempts instead of their failed password attempts.
0.14.010 - 10/17/2019
- KRGJ
- Home: pages defined in home.go, different users can have different pages based on AccessLevel (or other future criteria).
- New style of menu.
- Leftmost button is home.
- Top right has a user drop-down for configuration & logout.
- Right 3 buttons set by WEBCONFIG table.
- ConfigGrp: 1
- ConfigItm: 1st digit is button number, 2nd digit is 0 for name, 1 for href, 2 for onClick.
- Renamed deleteAdminCPView.go, deleteAdminCPView.tmpl, updateAdminCPView.go, and updateAdminConfig.go to adminDeleteCPView.go, adminDeleteCPView.tmpl, adminUpdateCPView.go, and adminUpdateConfig.go for consistency.
- Fix bug: adminSaveCPUser: gave error when successfully saving password for a contact who only had one customer account.
- Parts, Repair Units: move UIValue & associated lookups to "Lookup" header, separating from identifiers
0.14.009 - 10/11/2019
- DNB
- Fix Bug: Newly added views now correctly update instead of adding multiple views to table.
0.14.008 - 10/7/2019
- DNB
- CPView:
- Creates configurations for Customer Portal Equipment and Service order views.
- The associated SQL query clears the CPVIEW table. Check to make sure the customer doesnt have existing CPVIEW data before running. Drop table command has been commented out to ensure data is not accidentally deleted.
- Known bugs: Filtering is missing, save all button does not work.
0.14.007 - 9/9/2019
- KRGJ
- Scheduler:
- To be scheduled events and unassigned events can now be viewed at the bottom of your scheduler window with the appropriate checkboxes.
- To be scheduled events are blue, unassigned are yellow.
- Event detail page:
- Users can now add and remove agents from the participants list.
- The primary participant is set to the agent whose schedule you're viewing on the first save. If this agent is deleted, there is no primary agent, even if you add that agent back.
- If agents have permission to add/delete from their own schedule, they can add/delete their own user to/from an event.
- If agents have permission to modify their own schedule, they have permission to modify any events where they are an agent.
- If agents have permission to add/delete from others' schedules, they can add/delete any user to/from an event.
- If agents have permission to modify others' schedules, they can modify any events.
- Supporting functions:
- Update checkPermissions to accept tData instead of tData.Vars.
0.14.006 - 8/7/2019
- KRGJ
- Fix bug: pagination not working properly in adminViewLog
- Licensing: remove device changes for per-user licensing. Device changes are no longer tracked.
- Event detail page: add save, cancel and signature buttons to the top of the page.
- Scheduler: remove phone column, add status column. Status can now be saved from the scheduler page. Status turns blue when edited, black when saved, red if save fails.
0.14.005 - 7/9/2019
- KRGJ
- saveSignature: Trim leading and trailing "null" and "nul"
- scheduler: fix bug: agent not set properly on agentless users unless you first select a schedule.
- Licensing: Set license number to the constant numDevChanges instead of hard-coded to 5. Set numDevChanges to 20.
- Event detail page: hide the signature button on new events until the event has been saved.
- Logging: logLevel of 4 is now logEmail, to match the CP. logLogin is now 3.
- Admin log pages:
- added adminViewLog.go, adminViewLogStats.go, adminViewLog.tmpl, adminViewLogStats.tmpl, adminSaveLog.tmpl (csv), adminSaveLogStats.tmpl (csv), adminSearchLog.tmpl, adminLogScripts.tmpl
- Views MC and CP logs.
- Searches/filters logs by logLevel and date.
- Sorts by date, user, or logLevel.
- Search/sort options are persistent across log and stats pages, as long as you use the internal links.
- Statistics shows number of users logged in; average number of distinct pages visited by a user during the time period; average number of page loads, including duplicate pages, by a user during the time period; and a list of all of the pages loaded during the time period, along with their number of page loads, ordered by descending number of loads.
- The download button downloads a CSV file, filtered by search options.
- Log downloads ignores the "Per Page" choice, and downloads the entire list.
0.14.004 - 6/14/2019
- DNB
- Admin Config File:
- Added adminConfig.go, adminSaveConfig.go, adminUpdateConfig.go, adminConfig.tmpl, adminSaveConfig.tmpl
- Reads in and saves the configuration file.
- Works on both MC and CP configuration files.
- Can select which file to read in and which file to save.
0.14.003 - 6/5/2019
- Admin CP User Detail:
- Now permits multiple users with the same username/email. When updating a password, updates the password for all CP users with the same email address.
0.14.002 - 5/16/2019
- Labor:
- Fix bug: agent filtering changes agents in all lines instead of just one.
- Fix bug: agent filters don't show up on new labor lines.
- Default agent filters to agent's region if agent has a region. Scheduler:
- Default agent filters to agent's region of agent has a region.
0.14.001 - 5/15/2019
- Labor:
- Allow the user to specify an item status flag to show only a subset of the service items in the Labor Code drop-down list.
- The status flag is specified in the lStatusFlag config file setting.
- Added a search button to search the full set of service items. The full set of service items is still used for checking the validity.
- Added a configuration line to turn off the "Now" buttons. If "nowButtons" is "off", don't show the Now start and stop buttons. If it is anything else or missing, show the buttons.
- Drop-down lists to filter the agents by region and agent category. If the database has no region names, it doesn't show the region drop-down list.
- Scheduler:
- Drop-down lists to filter the agents by region and agent category. If the database has no region names, it doesn't show the region drop-down list.
- Back end:
- Implement SQL logging in writeLog function.
- Allow a user to specify an adapter instead of an IP. Overrides the IP if both are specified.
- Add strict transport security header, limit TLS version and cipher.
- Add new style of SQL query function, test with SQL logging and agent/filters queries.
0.13.002 - 3/7/2019
- Added logging messages for before and after page loads.
- Events and weblabor: added bounds checking for start and end dates.
0.13.001 - 2/26/2019
- Introduced logging levels and locations/types.
- Prints logging information with Context <= logLevel to logLocation
- Contexts:
- 0: Error
- 1: Important non-error info (start/stop, license refresh)
- 4: Login/logout
- 5: Page loads (after SQL completes)
- 9: SQL queries
- 10: Debugging info (includes page loads before function call)
- 15: Test info (temporary for programming use)
- logTypes:
- 0: text file
- 1: MC SQL: WEBLOG
- 2: CP SQL: CPLOG
- SQL logging not yet implemented
0.12.036 - 2/14/2019
- Event detail: prompt on leaving when edited.
- CP User detail:
- Prompt on leaving or searching when edited.
- Fix bug: clear account status, password, and access level when searching for a customer, or when a contact doesn't have a value.
- Account status "Locked" instead of "Disabled", for consistency with user prompts.
- CP User list:
- Account status "Locked" instead of "Disabled", for consistency with user prompts.
- Show account status of "Active" instead of blank.
- Yellow background if account status is locked.
0.12.035 - 2/9/2019
- Fix bug: Addresses appear more than once when search is limited to contacts
- Customer and Contact search/select pages: add the ability to select a contact without first selecting a customer.
- CPUser:
- Account Status box
- Prompt whether to lock the account or leave the password unchanged when saving with blank password. 0.12.034 -
- Finish administrative pages: adminCPUser, adminCPUserList
- Customers:
- Create an option to only show addresses with contacts.
- Filter by address type (BillTo, ShipTo, SoldTo, and customer defined address types).
0.12.033 - 1/20/2019
- Slight changes to licensing scheme -- device changes reset fully overnight.
- Add administrative pages (not yet linked in): adminCPUser, adminCPUserList, adminSaveCPUser.
0.12.032 - 1/11/2019
- Fix Bug: partially invoiced events are read-only.
0.12.031 - 1/10/2019
- Remove EventTime from use in WEB* events.
- Fix Bug: "Recurring" repeatedly added to subject when recurring events saved.
- Fix Bug: WEB* lines disappear when you change the event time.
0.12.030 - 1/8/2019
- Fix bugs in new recurring events
0.12.029 - 1/7/2019
- Upgrade webServer.go and setConfig.go with the code from the CP branch for text templates.
- Upgrade webServer.go and identifierMasks.go with the code from the CP branch for latitude, longitude, date, and datetime masks.
- Scheduler:
- Remove old-style recurring events.
- Add "(recurring)" to subject for recurring events.
- Labor, parts, repair units & repair images: add "(recurring)" to subject in header.
0.12.028 - 12/19/2018
- Fix bug: deleting repair units fails when unlinking because it checks for an OrderID on WEBREPIMAGES before unlinking them.
- Fix bug: Repair unit header with date and event subject don't show up if the page is read-only.
- Fix bug: Voided lines added via addLines() don't have identifiers
- Fix bug: Repair images header missing date and repair unit.
- Fix bug: Repair unit, labor, parts and repair images addLines() has wrong line format.
- Fix bug: Voided repair unit lines added via addLines() don't show as voided.
- Fix bug: Default labor date/time is 0/0/0 0:00
- Fix bug: On Parts entry page, repair assignment button on wrong row for new parts lines.
- Labor, parts, repair units, & repair images:
- New header colors:
- red - voided
- green - SO invoiced, completed
- blue - event to be scheduled
- yellow - event not today
- Standardize header fields with getHeaderFields() function.
- Event detail page:
- Same header colors as WEB* lines.
- Events now have a signature.
- To be scheduled checkbox in "When" dialog.
- Scheduler:
- New header colors:
- blue - to be scheduled
- yellow - before today
- To be scheduled checkbox toggles view between "To be scheduled" events (listed date & before) and normal events (listed date only)
- "Unassigned" at the end of agents list shows only unassigned events for that date.
0.12.027 - 12/2/2018
- Labor, parts, repair units, & repair images:
- Implement basic logging with Created, CreatedBy, LastEdit, and EditBy.
- Prevent adding lines to an event "To be scheduled."
- Prevent adding lines to an event with a SO voided, returned, invoiced or completed.
- Labor, parts, & repair images:
- Support a voided status.
- Prevent adding lines if the repair unit is voided.
- Labor: In the agents lists, display Name1 as well as initials.
- Repair units:
- When MC voids a repair unit, as whether to unlink other WEB* lines. If you press OK, it unlinks them. If you press Cancel, it voids them.
- Replace all instances of the queryValues variable with the more standard r.Form.
- ChooseUniquePart:
- Display a column "Committed" if you're searching the customer's equipment or all equipment.
- Don't allow the user to choose committed equipment.
- Customer search: Exclude retired addresses.
- Fix bug: repair images not unlinked from repair unit when repair unit deleted.
- Fix bug: missing "USE " statement in SQL query in Labor page. Labor page crashes if the default DB doesn't have a WEBLABORAGENTS table, looks for the agents in the default DB instead of the configured DB if it does exist.
- Fix bug: When an event has multiple participants, if you add a labor line and attempt to delete an agent in the list, it deletes the last agent in the list instead, and will not let you delete any others.
0.12.026 - 9/14/2018
- webServer.go & setConfig.go:
- Added a userType string to setConfig.go to tell basicAuth where to look for the user information.
- "mc" - MobileConnect user, login info stored in PEOPLE.
- "cp" - Customer Portal, login info stored in CPUSER and CONTACTS
- Added a staticPages []staticPage{} to setConfig.go to tell serveTLS about the directories with static pages.
0.12.025 - 8/31/2018
- convNote:
- Rename customerConv.go to convNote.go
- Rename customerCong.tmpl to convNote.tmpl
- Change references from customers to entities to make it more generic.
- Change link in customerDetail.tmpl to use the new page name and variable format.
- webServer.go & setConfig.go:
- Redo authentication to make it more modular.
- Added authTypes, a map from filename to authentication type.
- Authentication types:
- 0: no authentication
- 1: basicAuth
- defaultAuthType will be set by the authType line from the configuration file.
- serveDirectory and appName will be set by the configuration file lines with the same setting.
0.12.024 - 8/21/2018
- Move server configuration out of webServer.go into setConfig.go
- Move the import of event statuses from webServer.go to event.go
0.12.023 - 8/8/2018
- Fix bug: New repair units, labor lines and parts lines don't get an id until page refresh. (Latest version of Go SQL driver doesn't support LastInsertId())
- Move USE sqlDB statements to querystring in all SQL queries.
- Fix bug: some errors don't return to the front end in saveLabor.go, saveRepairUnit.go, savePartEntry.go
- Fix bug: move defer rows.Close() so that it doesn't execute if the query returns an error in SQL queries.
- Fix bug: New repair units have wrong button menus.
0.12.022 - 7/9/2018
- Fix bug: Signatures won't save.
- Fix bug: Customer page won't load from the scheduler page.
- Fix bug: No CalendarID sent to viewSignature or getSignature pages.
0.12.021 - 7/2/2018
- Changed executable name from FrontLineConnect.exe to FLMC.exe.
- Changed config file name from .FrontLineConnect to .FLMC.
- Changed log file name from flc.log to flmc.log
- Customers:
- Added read-only customer conversation notes page (customerConv.go, customerConv.tmpl)
- Added a link to conversation notes on the customer detail page.
- Webserver.go:
- Limit the maximum number of open connections to the database to 10.
- Fix bug: leaking SQL connections.
- Added shortDateTimeYear time format string.
0.12.020 - 4/5/2018
- index - display the version number on the index page.
- Labor:
- Fix bug: When entering labor identifiers, the user has to click save twice to get the identifier to save.
- Fix bug: when editing identifiers, gives an error instead of changing status to edited.
- Repair Units:
- Fix bug: Repair unit links broken on new repair units. Caused labor page to tell you that you don't have permits to enter. (Similar error on other pages.) Caused scheduler link from these pages to open page with no date selected.
- Fix bug: When you search for a repair unit, it doesn't update the identifiers if you leave the first page of identifiers.
- Stock Number Search:
- Fix bug: cannot select a part from the choose stock number page if you enter a value and search from the stock number page.
- Fix bug: stock number search when pressing enter moves from description back to stock number.
0.12.019 - 2/7/2018
- Add "Next 10" and "Previous 10" buttons to stock number search.
- Update identifier document when selecting a new stock number via the search.
- Filter stock number search by ItemType&9, the same filter we use for the picklist.
0.12.018 - 1/11/2018
- Fix licensing bug which caused licenses to expire as soon as they were issued on some servers.
0.12.017 - 12/5/2017
- Fix bug in customerDetail.go which caused it to return empty customer details.
0.12.016 - 12/1/2017
- labor.tmpl, partsEntry.tmpl, repairUnit.tmpl: add a check for empty labor code/stock number to function errorCheck().
- getIdentifierForm.go: Change the if logic to check for empty attributes&0xF0000 to a switch which checks for each identifier type, in preparation for handling more than type "any."
0.12.015 - 10/11/2017
- chooseUniquePart.go: limit customer search just to items that are sold or rented.
- getIdentifierForm.go: mark identifiers as unsupported if they are a data type other than "any."
- printForm.tmpl: mark a line as edited if an identifier is changed.
0.12.014 - 10/4/2017
- Parts, Labor, Repair Units:
- Add DtlID to WEBPARTS, WEBLABOR, WEBREPUNITS tables.
- Add hidden input to the templates with the DtlID.
- Save and update the DtlID with the appropriate pages.
- When deleting WEB lines, run deleteUIDSEntries() to clear out any entries which are not known to FrontLine Desktop.
- When saving WEB lines, check whether the UI has changed. If it has, run deleteUIDSEntries() to clear out any entries which are not known to the desktop version.
- saveIdentifierForm.go: Fix Bug: only check identifiers of the same item type when checking for uniqueness.
- supporting.go: new deleteUIDSEntries() function checks whether the line has a UI without either an OrderID or a DtlID. If so, deletes lines with that UI from UIDS_A and UIDS.
- chooseUniquePart: find and update the DtlID as well as the UI.
0.12.013 - 9/18/2017
- changeDateTime.tmpl: add up and down arrow buttons to increment/decrement quantity by half an hour at a time.
- labor.tmpl: add up and down arrow buttons to increment/decrement quantity by half an hour at a time.
- scripts.tmpl: add timeUp(formNum) and timeDown(formNum) functions to increment/decrement quantity by half an hour at a time.
0.12.012 - 9/18/2017
- changeDateTime.tmpl: remove the step from the quantity field; it didn't change the appearance/functionality in Chrome mobile.
- chooseUniquePart: when you choose "Unidentified", clear the UI but not the stock number.
0.12.011 - 9/18/2017
- chooseUniquePart.tmpl: Next/Previous 10 buttons
- chooseUniquePart.go: send the necessary variables to the template to support the Next/Last buttons.
- changeDateTime.tmpl:
- Make the stop time readonly
- Add a step of 0.25 to the quantity field.
0.12.010 - 9/15/2017
- changeDateTime.tmpl: Fix bug: error if no decimal point in duration/quantity.
- labor.tmpl, partsEntry.tmpl, repairUnit.tmpl:
- Add updateIdentifiers(formNum) function, to be run when the stock number or UI change.
- Update the addLine() function to rearrange the table cells in the new order.
- printForm.tmpl: update template to be completely blank if no form lines.
- updateIdentifiers.go, updateIdentifiers.tmpl:
- New page to accept UI, Stock number, and form number, get the ItemID from the stock number, and call printForm with the appropriate variables.
- webServer.go: add the updateIdentifiers page.
0.12.009 - 9/11/2017
- customers.go, customers.tmpl:
- Pass the CustomerID as well as the AddressID to the template.
- Update the CustomerID on the event detail page when a customer line is selected.
- event.go, event.tmpl, saveEvent.tmpl:
- Fix Bug: Use and save the CustomerID (EntityID) as well as the AddressID to identify the customer and address.
- Fix Bug: Fix date/time display errors when changing the date/time.
- Fix Bug: When creating new events, the labor/parts/repair units/repair images links are now created after we have a CalendarID.
0.12.008 - 9/7/2017
- Add UI int to WEBLABOR table in SQL
- webServer.go:
- Add ErrorText, HasValue, ReadOnly, FormNumber, LineType, Unique, Required, ToUpper to FormLine struct.
- Change saveLabor, savePartEntry, saveRepairUnit to JSON pages.
- Remove labor2, partsEntry2 and repairUnit2 pages.
- repairUnit.tmpl:
- Move repairUnit2.tmpl to repairUnit.tmpl
- Change saveRepairUnit function to expect JSON output. Add in ability to update the UI, and to deal with a popup error.
- partsEntry.tmpl:
- Move partsEntry2.tmpl to partsEntry.tmpl
- Change savePartsEntry function to expect JSON output. Add in ability to update the UI, and to deal with a popup error.
- labor.tmpl:
- Move labor2.tmpl to labor.tmpl
- Add in a hidden UI tag.
- Add in a hidden tag.
- Change saveLabor function to expect JSON output. Add in ability to update the UI, and to deal with a popup error.
- saveRepairUnit.go:
- Change data passing from QueryData & template to JSON.
- If we have an ItemID and identifiers, call saveIdentifierForm(). Check for errors, and update the UI if saveIdentifierForm gives a new one.
- saveLabor.go:
- Change data passing from QueryData & template to JSON.
- Handle UI being passed in.
- If we have an ItemID and identifiers, call saveIdentifierForm(). Check for errors, and update the UI if saveIdentifierForm gives a new one.
- savePartsEntry.go:
- Change data passing from QueryData & template to JSON.
- If we have an ItemID and identifiers, call saveIdentifierForm(). Check for errors, and update the UI if saveIdentifierForm gives a new one.
- labor.go:
- Add UI, pass to template.
- Look up ItemID in SQL instead of just using it to return the stock number.
- If there's an ItemID, call getIdentifierForm.
- partsEntry.go:
- Look up ItemID in SQL instead of just ising it to return the stock number.
- If there's an ItemID, call getIdentifierForm.
- repairUnit.go:
- Look up ItemID in SQL instead of just ising it to return the stock number.
- If there's an ItemID, call getIdentifierForm.
- getIdentifierForm:
- Append a new FormLine[] to tData.FormLines with the data from the identifier document obtained from the ItemID & UI, or a blank identifier document if no UI.
- saveIdentifierForm:
- Checks for any differences between the identifier document saved in SQL and the one being saved.
- Copies old entries to UIDS_A, and updates UIDS, after it:
- Checks to make sure that all unique identifiers are unique.
- Checks to make sure that no "required at sale" identifiers are left blank.
- Checks to ensure we aren't trying to change any fixed identifiers.
- Checks to make sure you have the correct permissions for each identifier.
- If there is a problem saving an individual identifier (ie, permissions on that one identifier), notify the user in the popup error.
- If something is invalid enough to prevent saving the entire document and line (ie, non-unique unique identifier), notify the user in the popup error and also return an error status.
- printForm.tmpl:
- Add hidden values to keep track of identifier attributes.
0.12.007 - 7/13/2017
- webserver.go:
- Add FormLines[] struct to TemplateData
- Add() function to allow addition in templates
- printForm.tmpl and printFormRO.tmpl (read-only): create a table with a form inside, using the data from FormLines[]
- supporting.go: testFillForm() creates a form with sample data, to test printing the form in the templates.
0.12.006 - 6/26/2017
- Event detail page: Relabel "Change" buttons to "Edit."
- Change date/time page: Relabel "Change" button to "OK."
- Parts and Repair Units: change "Choose unique part" to "Identifier"
0.12.005 - 6/21/2017
- Copy labor.tmpl to labor2.tmpl, partsentry.tmpl to partsEntry2.tmpl, and repairUnit to repairUnit2.tmpl, to avoid breaking the main labor, parts and repair unit entry pages while working on identifiers.
- Rearrange labor2, partsEntry2, and repairUnit2 to add in sample table cells for identifiers.
0.12.004 - 6/17/2017
- Event detail: disallow modifying recurring events.
- Scheduler: pass a value the event detail page to mark recurring events.
0.12.003 - 6/17/2017
- Event detail:
- Rename the "Select" buttons to "Change" buttons.
- Add a "Change" button to change the Date/Time.
- Modify saveEvent.go to update all of the new values.
- Modify saveEvent.go to create a new event if it isn't passed, or is passed a blank, CalendarID.
- New files: changeDateTime.go and changeDateTime.tmpl are pages to change the date and time on the event detail page.
0.12.002 - 6/3/2017
- Event detail: add a "Select" button to choose a new contact. Doesn't save.
- Contact:
- Modify the "Search" and "Filter" buttons to use an XMLHttpRequest instead of reloading the page, to preserve the opener.
- Add a type=select key/value pair to let the server know when you're loading the page to choose a new contact, replacing line links with a "chooseLine()" function, which passes the data back to the event detail page.
- Add an addressID=(AddressID) key/value pair to limit the search to the contacts at a specific address.
- Modify the Previous 20/Next 20 links to also use an XMLHttpRequest.
- Customer: modify the Previous 20/Next 20 links to use an XMLHttpRequest.
0.12.001 - 6/3/2017
- Change service.tmpl and service.go to scheduler.tmpl and scheduler.go.
- Event detail:
- Link to the contact detail when you click on the contact name.
- Add a "Select" button to choose a new customer. Doesn't yet save.
- Customer:
- Modify the "Search" and "Filter" buttons to use an XMLHttpRequest instead of reloading the page, to preserve the opener.
- Add a type=select key/value pair to let the server know when you're loading the page to choose a new customer, replacing line links with a "chooseLine()" function, which passes the data back to the event detail page.
0.11.012 - 5/18/2017
- Customer detail: add note subject and note.
- Contact detail: add note subject and note.
- Event detail: split customer name away from address. Bring up the customer detail when you click on the name, and map it when you click the address.
0.11.011 - 5/12/2017
- Licensing - remove all references to a local license file, since it's all on AWS.
0.11.010 - 5/3/2017
- deleteRepairUnit:
- Fix bug: tData.QueryData not initialized.
- repairUnit:
- Fix bug: When deleting fails due to license, after obtains license asks you to save again instead of delete again.
- repairImage:
- Fix bug: When deleting fails due to license, after obtains license asks you to save again instead of delete again.
- Fix some unexpected behavior when an image file has an error and is not readable by the exif tag reader function.
0.11.009 - 4/12/2017
- Check agent for permission checks on all web entry pages.
- Display service order and line number on event detail page.
0.11.008 - 4/4/2017
- Fix undefinied references to theStatus in event.tmpl, labor.tmpl, and repairImage.tmpl.
0.11.007 - 4/3/2017
- Repair Images: test for EXIF rotation tags, and rotate the image before resizing.
- Separate the uploads directory from the images directory. There is now a repImageDir option in .FrontLineConnect which controls the location of this directory. It defaults to FrontLineConnect/uploads/.
0.11.006 - 4/1/2017
- Permissions, licensing and redo SQL scans for the rest of the files.
0.11.005 - 3/9/2017
- Permissions, licensing, and redo SQL scans for:
- changeRepairUnit.go
- chooseRepairUnit.go, chooseRepairUnit.tmpl
- chooseStockNo.go, chooseStockNo.tmpl
0.11.004 - 3/8/2017
- Fix bug: labor entry start/stop time checks sometimes get stuck in an infinite loop. Only check the validity of the times if it has been at least two seconds from the last test.
0.11.003 - 3/6/2017
- Fix bug: creates invalid date string on repair images for non-recurring events.
- Only
0.11.002 - 3/3/2017
- Pull license file from AWS.
0.11.001 - 3/2/2017
- License file on will be a JSON array of objects. Each object will be a license. License objects will include:
- LicenseGroup: "site" or "user"
- LicenseType: "read-only" or "edit"
- People (only needed for LicenseGroup of "user"): array of PersonIDs.
- Working licensing with cookies, not pulling from AWS yet.
- See licensing docs for details.
- Looks for local license file, does not yet pull from AWS.
- For testing purposes, maintains licenses (removing oldest device) every hour instead of every day.
- Checks licenses only on repairImage.html
0.10.038 - 2/3/2017
- Standardize date strings with three format strings in webServer.go: longDateTime, longDate, shortDateTime.
- Use Format() to generate all date strings.
- ChooseRepairUnit & ChangeRepairUnit:
- Add cases for repair images.
- Update the file names for the repair images.
- Check for a repair image filename with the new repair unit before changing the repair unit.
- Fix bug: chooseRepairUnit showed repair units for all recurrences on recurring events.
- Repair images:
- Deleting repair image.
- Saving changes to the caption.
- Canceling changes to the caption.
- Checking for new lines when you save/cancel/delete a line.
- Check for existing image of the same name before saving.
- Change repair unit.
- Check for existing image of the new name before changing repair unit.
0.10.037 - 1/9/2017
- Repair units: Add a check for a blank identifier to errorCheck.
- ChooseUniquePart:
- Fix bug: multiple lines for each unique identifier when searching, because multiple addresses with different company names.
- Fix bug: "Search All" can time out with large databases and search strings which match too many identifiers.
- Repair images: first (very rough) draft of saving a file. 0.10.036
- Events: change permissions checked from 160000, 160001 to 160016, 160017
0.10.035 - 12/12/2016
- Parts, Labor:
- If some tries to save a line which has been assigned to a different repair unit, alert the user that the line has been assigned to a different repair unit, and ask them whether they want to save it as a new line on this repair unit. If they say yes, create the new line. If they say no, remove it from the page.
- If someone tries to delete a line which has been assigned to a different repair unit, display an alert, "Labor line has been assigned to a different repair unit, and was not deleted." then remove from page.
- If someone cancels a line which has been assigned to a different repair unit, notify the user and remove it from the page.
0.10.034 - 12/9/2016
- Repair Units:
- Event listeners not being attached to void or view signature buttons on signature entry.
- Fix bug: Don't add "Enter Signature" button to repair unit lines until they've been saved once.
- Fix bug: buttonMenu not centered vertically on imported repair units
- Parts, Repair Units: trigger stock and UIValue search events with enter button.
0.10.033 - 12/9/2016
- Parts, Labor, Repair Units:
- Fix bug: Page header gray instead of white when event is today.
- Fix bug: Form number NaN when no lines on page.
- Labor:
- Fix bug: "Now" button gives invalid date on single digit days.
- Repair Units:
- Fix bug: Search All not asking to change ownership.
- Fix bug: Repair unit parts & labor buttonMenu not centered vertically on new repair units.
0.10.032 - 12/8/2016
- Repair Units:
- Check permissions before reading lines, making lines editable, adding new lines, and having a void or delete button.
0.10.031 - 12/6/2016
- Labor:
- Fix bug: template crashes on header when there are no available lines.
- Parts:
- Fix bug: quantity never turns back to black from red.
- Check permissions before reading lines, making lines editable, adding new lines, and having a delete button.
0.10.030 - 12/6/2016
- Event detail:
- Check for permissions before making the note and status editable
- Fix bug: error saving the event details
- Parts:
- Fix bug: add error checking to disallow negative quantities
- Fix bug: error updating part entry.
- Check the stock number after searching. If not found in the search, ask to refresh the stock numbers.
- Fix bug: locked up the browser tab if you selected to refresh the stock list.
- Fixed race condition where it might re-check the stock number before it finishes downloading the new stock list.
- Labor:
- Fix bug: locked up the browser tab if you selected to refresh the stock list.
- Fixed race condition where it might re-check the stock number before it finishes downloading the new stock list.
- Check permissions before reading lines, making lines editable, adding new lines, and having a delete button. New permissions contexts:
- Web Scheduler: 160016
- Other Web Schedules: 160017
0.10.029 - 12/5/2016
- Repair Units:
- Fix bugs in changing line style to voided when voiding a repair unit.
- Don't allow signature entry until the line has been saved once.
- Fix bugs in imported button lines.
- chooseStockNo: fix bug: index out of range when no search string sent in
0.10.028 - 12/5/2016
- Choose Repair Units: Only give editable repair units as options.
- Parts, Labor, Repair Units: Prompt before leaving if unsaved changes.
0.10.027 - 12/4/2016
- Parts, Labor, Repair Units: Add a footer to designate imported lines.
- Choose Unique Part: Check permissions before allowing a user to change ownership of a repair unit.
0.10.026 - 11/30/2016
- Repair unit: Add a customer column when searching identifiers using "Search All."
- Fix bug: Parts: description not always updating when stock number updated.
- Parts, Labor, Repair Units:
- Sort lines in the order they were entered.
- Make stock number error checking case insensitive.
0.10.025 - 11/28/2016
- Parts, Repair Units: fix bug - missed URI encoding some search strings, which caused them to fail with some special characters
- Minimum width of 100px on buttonMenu cells.
- Parts:
- Finish updating the JavaScript to use the new header style.
- Finish updating the buttons to use the menuButton styling.
- Labor:
- Update the JavaScript code to use the new header style.
- Update the buttons to use the menuButton styleing.
- Parts, Labor, Repair Units: fix bug causing the form number for the new line to be NaN when the last line is deleted.
- Fix bug: error setting UI when selecting a repair part by identifier.
0.10.024 - 11/22/2016
- getStockItems - exclude packages from part stock items
- Change sqlString function to properly deal with NULL while leaving blanks in search strings. Update all references to sqlString.
- Repair Units
- Update the JavaScript code to use the new header style.
- Update buttons to use the menuButton styling.
- Parts
- Update the JavaScript code to use the new header style.
- Update the buttons to use the menuButton styling.
0.10.023 - 11/17/2016
- Parts, Labor and Repair Units: rough out redoing the headers to have one per page instead of one per line.
0.10.022 - 11/17/2016
- Parts and Repair Units: search page for stock numbers, to search by stock number or description. Search button next to stock number text box, also brought up automatically if you enter an invalid stock number.
0.10.021 - 11/14/2016
- Labor and Parts: display a header with the repair unit when assigned to a repair unit.
0.10.020 - 11/9/2016
- Repair Units:
- When deleting or voiding a invalid stock number.
0.10.021 - 11/14/2016
- Labor and Parts: display a header with the repair unit when assigned to a repair unit.
0.10.020 - 11/9/2016
- Repair Units:
- When deleting or voiding a repair unit, unlink all parts and labor.
- Void button for repair units with signatures
- Labor and Parts:
- Button to change repair unit assignment
0.10.019 - 10/27/2016
- Make voided repair units read-only and pink.
0.10.018 - 10/26/2016
- Fix bug where getting signature left the search buttons on the repair unit line when making line read-only after signature capture.
- Repair units: Check for an existing unique identifier when adding new lines, and make stock number read-only.
- Create new lines read-only when they have an OrderID or a SigPath.
- Fix bug where canceling an unsaved repair unit with a unique identifier left the stock field read-only
- Parts:
- Fix bug where canceling an unsaved repair unit with a unique identifier left the stock field read-only
0.10.017 - 10/25/2016
- Parts:
- Check for unique identifier when adding new lines, and make quantity and/or stock number read-only.
- Create new lines read-only when they have an OrderID.
0.10.016 - 10/24/0216
- Repair Units, Parts: add Desc2 and Desc3 to the description.
- Labor:
- Create new lines read-only when they have an OrderID.
- Use the date as well as the time to calculate quantity when stopping "Now."
- Update the date as well as the time when starting "Now."
- ChooseUniquePart: added Desc1, Desc2, Desc3 to the line for each identifier.
0.10.015 - 10/23/2016
- Labor, Parts, Repair Units: Remove deleted lines from the page when you refresh/cancel them.
0.10.014 - 10/21/2016
- Labor: Check for new labor when you add a line, cancel a line, save all or cancel all.
- Parts: Send repair unit to updatePartEntry in getNewLines.
- Repair Units: Fix bug: repair unit page now adds a line when deleting the last blank line.
- Labor, Parts, Repair Units:
- Send EventTime and CalendarID to updatePartEntry in getNewLines
- Track allForms, to enable finding the last form when the last form is read-only
- Check for new lines when you delete a line.
0.10.013 - 10/20/2016
- Parts:
- Check for new parts when you add a line, cancel a line, save all, or cancel all.
- Check for 0 length editableForms[] before finding the last form number.
- Repair Units, Parts, Labor:
- Fix bug: deletePartEntry removes the line from editableForms even when it fails to delete the line
- Fix bug: deleting blank lines at the beginning of addLine doesn't remove the line from editableForms.
0.10.012 - 10/19/2016
- Check for new repair units when you save a line, cancel a line, save all, or cancel all.
0.10.011 - 10/14/2016
- Labor, Parts and Repair units: convert addBlank(formNum) to addLine(formNum, lineData)
0.10.010 - 10/14/2016
- Remove logging of debugging information from multiple pages.
0.10.009 - 10/14/2016
- Parts:
- Keep track of which lines are editable, for save all and cancel all.
- Switch subject and description boxes on added lines, were backwards.
- Fix "Search" button on added lines, previously missing event listener.
- Add event listener on stock number to update description on items which begin with unique identifier then select "unidentified item" or "not a unique item".
- Blank description when canceled for unsaved lines.
- Fixed alignment of status message on added lines.
- Fixed error when deleting the only parts entry line.
- Set type="text" on stock field, to permit it to shrink as needed.
- Repair units:
- Keep track of which lines are editable, for save all and cancel all
- Switch subject and description boxes on added lines, were backwards.
- Add event listener on stock number to update description on items which begin with unique identifier then select "unidentified item" or "not a unique item".
- Blank description when canceled for unsaved lines.
- Fixed alignment of status message on added lines.
- Fixed error when deleting the only repair unit line.
- Set type="text" on stock field, to permit it to shrink as needed.
- Labor:
- "Now" buttons now update edited status on added lines.
- Fixed alignment of status message on added lines.
- Start time returns to default time instead of null when canceling unsaved labor lines.
- Fixed error when deleting the only labor line.
- Set type="text" on stock field added lines, so that it will shrink at the same rate as the existing lines.
0.10.008 - 10/12/2016
- Labor: keep track of which lines are editable, for save all and cancel all.
0.10.007 - 10/10/2016
- When searching all unique identifiers, now checks whether the customer linked to the calendar event owns the selected piece of equipment, then asks the user if they want to change ownership if they don't own it.
0.10.006 - 10/9/2016
- Repair units, parts, labor: fix bug: after first repair unit line added, errors when checking if it needs to add blanks.
- Repair units:
- Labor and parts links now only show up on saved repair unit lines.
- Fix "NaN" instead of header on added repair unit lines
- Labor: Fix alignment issues on added labor lines.
0.10.005 - 10/9/2016
- Saving repair unit signatures fixed.
0.10.004 - 10/8/2016
- chooseUniquePart: customer search and service order search
0.10.003 - 10/6/2016
- Introduced search types for chooseUniquePart
- searchType&1 gives the option "Not a unique item" and updates quantities
- searchType&32 searches only the customer's items
- searchType&64 searches only the service order's items
- Repair Units & Parts: remove onBlur listeners to search for unique identifier.
- Repair Units: 3 unique identifier search buttons, search all, customer or service order. Customer and Service order searches are not yet functional.
- Parts: search button searches all identifiers.
0.10.002 - 10/5/2016
- You can now reach the parts and labor pages from either the event or the repair unit.
- From the event, you see parts and labor not associated with a repair unit.
- From the repair unit, you see the parts and labor pages associated with that repair unit.
- Fixed a bug where the labor page was not receiving the LaborID when saving a new line, resulting in multiple identical lines.
0.10.001 - 10/3/2016
- Split Repair Units off from Parts.
- Create table WEBREPUNITS
- Repair units no longer have quantities.
- Parts no longer have signatures.
- chooseUniquePart now checks for a quantity before trying to set it
0.9.018 - 9/30/2016
- FrontLineWeb and flw are now FrontLineConnect and flc, change file names and references
- Cache the Event Status bits and display names on server load.
- Event detail: save and cancel changes to status and note.
0.9.017 - 9/25/2016
- Remove map link for customers and contacts with no mapping in Customer.tmpl, contact.tmpl, customerDetail.tmpl, and contactDetail.tmpl
- Event detail: save note works, but removed buttons before uploading, because cancel and save event status do not work.
0.9.016 - 9/25/2016
- WebParts:
- Make the line read-only when a signature is collected
- Make the line read-only on load or on cancel when there is a signature
- Give read-only lines a "View Signature" button when there is a signature
- saveSignature.tmpl and saveSignature.go, viewSignature.tmpl and viewSignature.go
- Save signatures in WEBPARTS table
0.9.015 - 9/16/2016
- signature capture via getSignature.tmpl and signature.svg
0.9.014 - 9/14/2016
- WebParts: when canceling, set stock and quantity fields to read-only
- Weblabor: fix bug where extra agents from the last filled-in line are added to the blank lines.
0.9.013 - 9/13/2016
- Scheduler: Fix bug where scheduler does not always pass the agent to the event detail page, which keeps you from properly linking back to the scheduler.
0.9.012 - 9/12/2016
- WebLabor and WebParts: Change read-only inputs from infoDivs back to readonly inputs
- styles.tmpl: Create readonly class to format read-only inputs.
0.9.011 - 9/12/2016
- WebParts:
- Set Quantity to read-only when there is a UIValue, and Stock to read-only when the UIValue/ItemID combo are already in the database.
- WebLabor and WebParts:
- Force the Quanitity field to the table cell size.
- Remove trailing decimal places on integer Quantity values.
- Force the Stock field to the table cell size.
0.9.010 - 9/10/2016
- WebLabor and WebParts:
- Check whether a line has an OrderID before saving, if so cancel
- Check whether a line has been deleted before saving, if so save the line with the same ID.
- Change editedStatus to put "Edited." in blue in the status div.
- Change "Save All" to "Save All Changes", which saves all forms with status divs of "Edited." or "Error saving.", and refreshes the rest.
0.9.009 - 9/8/2016
- Event detail: link back to scheduler view
- WebLabor and WebPartsEntry: preserve agent, date and eventTime for link back to scheduler page
- WebLabor: track eventDate and only show recurring event labor from this eventDate
0.9.008 - 9/7/2016
- Run free-form strings passed back to the server through encodeURIComponent
- WebLabor:
- Check make line readonly if it has an OrderID when canceling
- Check whether a line has an OrderID before deleting, if so cancel
- WebPartsEntry:
- Check make line readonly if it has an OrderID when canceling
- Check whether a line has an OrderID before deleting, if so cancel
0.9.007 - 9/6/2016
- WebPartsEntry:
- Convert stock and quantity to and from inputs when selecting/deselecting a unique identifier.
- Fix updating a description when selecting a unique identifier
- Make parts lines readonly when there is an OrderID
- WebLabor:
- Make labor lines readonly when there is an OrderID
- Make quantity a numeric field.
0.9.006 - 8/29/2016
- Run all strings passed in to the SQL query through a function to escape apostrophes.
- WebPartsEntry:
- Add button for signature entry
- Redo table to add extra space between save/cancel/delete/signature buttons
- Rearrange tables to remove signature fields
- Update description on cancel
- Update description when selecting a unique identifier
- Remove search button from unique identifier field, instead searching onblur
- WebLabor:
- Redo table to add extra space between save/cancel/delete buttons
0.9.005 - 8/25/2016
- WebPartsEntry:
- Add the JavaScript to look up a unique part and return the chosen values to the partsEntry line
- Change WEBPARTS.SerialNo to WEBPARTS.UIValue
- Change label from Serial Number to Identifier
- Event detail page:
- Add a link to parts entry from the event detail page
0.9.004 - 8/23/2016
- add chooseUniquePart.go, chooseUniquePart.tmple to look up unique identifiers. Lacks the JavaScript necessary to return it to the partsEntry page.
0.9.003 - 8/22/2016
- Update description when part number changes
0.9.002 - 8/17/2016
- WebPartsEntry:
- add save, cancel and delete button functionality
- fix alignment errors on blank form added to bottom
- Add desc1 field when page is loaded or item is canceled.
0.9.001 - 8/10/2016-8/12/2016
- add partEntries.go with the SQL to find WEBPARTS entries
- add partEntries.tmpl, just displays an empty line
- modify getStockItems.go to accept a part type, determining which stock items to return
0.8.026 - 8/8/2016
- Weblabor:
- Rearrange the table to switch date and subject
- Make the date field yellow if it's different from the event date
- Fix start & cancel buttons with new SQL table edits
- Fix adding new lines with new SQL table format
0.8.025 - 7/27/2016
- Weblabor:
- Rearrange table to put times on top and date and subject on the second row
- SQL to populate event date and event subject for header row
- Make the header yellow if the event date is not today
0.8.024 - 7/21/2016
- Fix event date & times for event detail view.
- Weblabor:
- Add start date
- Rearrange table, trying it with labels on the top
- Add a header to each labor entry, with a sample event date and event subject
- Change StartTime from a string to an int, to include the date.
- LABOR ENTRY IN THIS VERSION IS BROKEN; COMMITTING FOR PURPOSES OF REVIEWING THE INTERFACE.
0.8.023 - 7/14/2016
- Allow blank stock numbers
0.8.022 - 7/14/2016
- Check for a valid stock number onblur, and prevent saving invalid stock numbers.
0.8.021 - 6/30/2016
- Check whether a labor line is stored on the server before deleting from the server
- Store stock items in localStorage
0.8.020 - 6/6/2016
- Fix weblabor bugs:
- fields saved as null didn't cancel properly
- inconsistent quantity precision
- Weblabor: add delete button
0.8.019 - 6/3/2016
- Fix weblabor bugs:
- labor lines without itemIDs didn't show up.
- labor lines without agents could not be canceled
- Weblabor: cancel blank lines without contacting server
0.8.018 - 5/31/2016
- Fix error updating null itemID
0.8.017 - 5/31/2016
- Remove missed debugging alerts
0.8.016 - 5/31/2016
- Add a new, blank weblabor form whenever a form is saved and the last form contains data.
- Fix error inserting null itemID or null quantity
- Fix creation of multiple WEBLABOR entries when you save a new WEBLABOR line multiple times before reloading the page.
- Add queryString to error logging for errors running SQL queries.
0.8.015 - 5/18/2016
- Visual tweaks on event detail and labor pages
- Labor: blank status on form edit, so it no longer looks like the edits have been saved/canceled before you save/cancel them.
0.8.014 - 5/17/2016
- Labor: Save All and Refresh/Cancel All buttons
- Cancel button updates the templates
- Check for data before saving WEBLABOR line
0.8.013 - 5/11/2016-5/16/2016
- Labor: Use xhtmlhttprequest to call saveLabor.tmpl to update WEBLABOR database on save, so as not to reload the entire page.
- Labor: Use xhtmlhttprequest to call updateLabor.tmpl to reload WEBLABOR entry on cancel, so as not to reload the entire page.
- webServer: new variable JSON in tData, new map jsonPages[string]bool to keep track of which pages should have a JSON response instead of html. If pages are not in templates, but are in jsonPage, send tData.JSON instead of executing a template.
- updateLabor.tmpl does not yet update the agents.
0.8.012 - 5/2/2016
- Labor: Error checking on start, stop and quantity
- Labor: Form submission now in POST
- Links between event detail and labor entry pages
0.8.011 - 4/29/2016
- Fix bugs causing server to crash adding a new labor entry
0.8.010 - 4/29/2016
0.8.009 - 4/27/2016
- Labor page calculates stop time onload
- Blank WEBLABOR line at the bottom to enable adding a new WEBLABOR entry on labor page
- No more duplicate agents in non-selected agent picklist on labor page
- Loads agents correctly on labor page
- Still no error checking
- BUGS:
- Doesn't correctly display picklist for stock numbers
0.8.008 - 4/15/2016-4/27/2016
- Add Stop time to labor template
- Add "Now" buttons for start and stop times for the labor template
- Link Start, Stop and Hours Worked (Quantity): update stop time when quantity changes, quantity when stop time changes.
- Modify to allow multiple labor entries, load WEBLABOR lines attached to that event.
- Doesn't do any error checking.
- Add saveLabor.go and saveLabor.tmpl. Not tested yet.
- BUGS:
- Doesn't yet give provide a new line
- Duplicate agents between selected agents and picklist
- Doesn't load agents correctly
0.8.007 - 4/14/2016
- Edit to find some missing labor code stock items.
0.8.006 - 4/14/2016
- Pre-populate agents with agents assigned to calendar event
- Read form values & values persist on submit.
- Datalist with labor code stock items
0.8.005 - 4/11/2016
- add labor.tmpl
- javascript to add and remove agents from labor entry
- add labor.go - getLabor() does nothing
0.8.004 - 4/1/2016
- Add serviceName option to the config file
0.8.003 - 4/1/2016
- Add terms to customer detail page
0.8.002 - 3/31/2016
0.8.001 - 3/24/2016
0.7.008 - 3/11/2016
- Add day of week to date/time
0.7.007 - 3/11/2016
0.6.010 - 3/11/2016
- Sort entries for recurring and non-recurring events
0.6.009 - 3/11/2016
- Remove duplicate entries for recurring events
0.6.008 - 3/10/2016
- Find recurDates for hourly events.
0.6.005-0.6.007 - 2/25/2016-3/10/2016
- Find recurDates for daily, weekly, monthly and yearly events, and debug.
0.7.006 - 2/25/2016
- Fix bug in the FrontLineWeb.exe stop command.
0.7.005 - 2/24/2016
- Change the service DisplayName to serviceName
0.7.004 - 2/24/2016
- runtime.Caller() only finds compile-time directory. Implement a different method to find executable directory.
0.7.003 - 2/24/2016
- Fix directory reference for image links
0.7.002 - 2/23/2016
- Change to operate as a Windows service
- Known bug: image links broken
0.7.001 - 2/21/2016
- Log to file instead of to stdout
0.6.004 - 2/9/2016
- Find correct end times for recurring events, and print correct start and end times.
0.6.003 - 2/9/2016
- First rough take on recurring events. Handles RDATE, but not RRULE, and still has numerous bugs.
0.6.002 - 1/29/2016
- Link contact's name on the contact search to the contact detail view.
0.6.001 - 1/29/2016
- Rename address.go and address.tmpl to customerDetail.go and customerDetail.tmpl for consistency. Update links in webserver.go and customer.tmpl
- Contact Detail go/sql & template
0.5.012 - 1/28/2016
- Change form submissions back to get, leaving ability to use post in place
- Change header to have company name first, then menubar, then page name.
0.5.011 - 1/20/2016
- Event Detail: event status
- Change form submissions to post
0.5.010 - 1/4/2016
- Correct formatting error on address links in event detail and address detail views.
0.5.009 - 1/4/2016
- Add phone, email and address links to event detail view.
0.5.008 - 1/4/2016
- Contact and Customer search types now default to name.
- Agents in the scheduler view are now ordered alphabetically instead of by agent id.
0.5.007 - 11/3/2015
- Wrong index for email fields on event detail page. Fix.
0.5.006 - 11/3/2015
- Previous merge missing templates/event.tmpl
0.5.005 - 11/3/2015
- Merge v0.5 changes into master
0.4.004 - 10/30/2015
- Add long file name to logging output
- Event Detail: Fix dates, participants
0.5.004 - 10/28/2015
- Rearrange address fields in address.tmpl
- Change "Service" link to read "Scheduler"
- Change "Contact" option to "Name" in search and filter fields on contact search
0.5.003 - 10/22/2015
- Fix formatting of Contact link on index
0.5.002 - 10/22/2015
- Remove debugging printouts
0.5.001 - 10/22/2015
- Contact Lookup SQL & template
- Update Menu3 & telephone colors
0.5.000 - 10/21/2015
- Branch and remove work on Event Detail view. Will add a Contact Lookup view in v0.5 to be deployed for beta testing, then will continue to develop the Event Detail view in v0.4 and merge when the detail view is working.
0.4.003 - 10/20/2015
- Event Detail: Template for Event Detail View
- Event Detail: Parse data from SQL queries, to send to template
0.4.002 - 10/15/2015
- Address Detail View: Add google map links to address data cells
- Address Detail View: Format phone numbers and add telephone links, where there is a telephone number
- Address Detail View: Add a mailto link for the email address
0.4.001 - 10/14/2015
- SQL queries for Event Detail View
0.3.006 - 10/14/2015
- Redo merge from 0.3.003, then redo breaking into separate files.
0.3.005 - 10/13/2015
- Break webServer.go into separate files, creating:
- supporting.go - supporting functions for other files
- address.go - data generation for address.tmpl
- service.go - data generation for service.tmpl
- customer.go - data generation for customer.tmpl
0.3.004 - 10/13/2015
- Address detail view: finish making the template & getAddress() function
- Customer Lookup: create link to address detail view if you click on "Customer"
0.3.003 - 10/13/2015
- Merge branch v0.2 to master
0.3.000-0.3.002 - 10/13/2015
0.2.013 - 10/13/2015
- Table alignment change on Service Scheduler
0.2.012 - 10/12/2015
- Service Scheduler: change "Customer Name" column to "Place" and add address, create link to google maps
- Service Scheduler: add phone number column, create link to call
- Change link style in outline tables to better cover the whole table cell
0.2.11 - 10/10/2015
- Phone number formatting
- Customer Lookup: google maps link
- Customer Lookup: telephone link, make first phone number (the one for the telephone link) bold
0.2.010 - 10/8/2015
- Service scheduler: JavaScript for left & right arrows.
- Service scheduler: Adjust icon size to match larger text size.
- Customer lookup: Add Next 20 and Previous 20 links where applicable.
- Table border adjustments
0.2.006-0.2.009 - 9/30/2015
- Spacing adjustments.
- Force line breaks at natural breakpoints for names, addresses, multiple phone numbers on customer lookup.
- Add logout to index
- Move customer number column to be part of the customer name column.
0.2.005 - 9/24/2015
- Change the scheduler SQL query to use a left join for the customer address, so that events without customers will show
- Remove the "..." column from the scheduler, we will bring up the event details by clicking on the subject column instead
- Increase the text size for the web pages
- On the service scheduler, add the AddressID as the id for the cell with the customer name, and the CalendarID as the id for the cell with the subject
0.2.004 - 9/23/2015
- Update the web server and the service template to run the SQL query and populate the agent's schedule based on the form values for date and agent.
0.2.003 - 9/22/2015
- Update the service template and the web server to send the form values, and use them when the page reloads
0.2.002 - 9/17/2015
- Add AccessRights checking for the service scheduler.
- If you have read rights on context 160001, your agent picklist shows everyone
- If not, and you are an agent, your picklist shows only you
- If not, and you are not an agent, your picklist will be empty
0.2.001 - 9/16/2015
- Make TemplateData.QueryData a [][][]string, to enable passing multiple tables of query results
- Update customer.tmpl and service.tmpl to use the new QueryData structure
- Added a userAccess struct to keep track of the agentID and accessID of the user
- Added an /images/ path to the mux, handled as a fileserver.
- Create .png line drawings for arrow and add buttons.
- Pulls the "Schedule for: " pick list from the Agents table.
- If the user is an agent, puts the user's agent at the top of the pick list
0.1.006 - 9/13/2015
- Changed some titles and links from "scheduler" to "service"
- Changed some titles and links from "customers" to "customer"
- Moved scheduler.tmpl to service.tmpl
- Made an index template with a (very basic) splash page, index.tmpl
0.1.005 - 9/13/2015
- Moved index.tmpl to customer.tmpl; index.html still uses the customer.tmpl template
- Added a scheduler template, which only contains a header and the various internal templates
- Added a menu template, menu.tmpl, with a menu by Jalal's suggestion
- Added a style template, styles.tmpl
- Added a logout template - but this might never actually be used
- Added a logout button that sends bogus login credentials via XMLHttpRequest()
- Added a script template, scripts.tmpl, which contains the logout script
- Set the web server to read these templates into the template map
0.1.004 - 9/12/2015
- Removed some missed debugging messages
0.1.003 - 9/12/2015
- Change the number of rows returned in the customer search to 20
- If more than 20 rows match, display a message to that effect at the bottom of the table.
- Add "AddressID CustomerID" as the id for each row.
- If less than 20 rows returned, shorten the template data slices.
- Specify widths for columns.
0.1.002 - 8/26/2015
- Database changes:
- renamed field Password to WebAccess
- Refills the search and filter boxes on reload.
0.1.001 - 8/26/2015
- Configuration file changes:
- sqlAddress (defaults to 127.0.0.1)
- sqlUser (defaults to frontLine)
- sqlPass (defaults to sql4fl)
- sqlPort (defaults to 1433)
- sqlDB (defaults to FLTEXT)
- Database changes:
- add a field Password (varchar 60) to PEOPLE
- Uses bcrypt to check the password, using PEOPLE.UserName and PEOPLE.Password
- Index.tmpl now is the customer lookup: Name, Number, Address, Phone
- Doesn't yet fill the search boxes on reload, therefore can't use the filter boxes.
- Returns 10 lines, does not yet choose how many.
0.0.001 - 7/13/2015
- Configuration file changes:
- port (http port) (defaults to 80)
- sPort (https port) (defaults to 443)
- Redirects all traffic for http://localhost:port to https://localhost:sPort
- Uses the path from the URL to select a template from the map, enabling serving of multiple pages.
0.0.000 - 7//11/2015
- Initial release of FrontLineWeb
- Listens and serves over TLS
- Configuration file specifies:
- address (IP address) (defaults to localhost)
- port (https port) (defaults to 4000)
- certificate file (defaults to config/cert.pem)
- key file (defaults to config/key.pem)
- template directory (defaults to templates)
- Reads in config file, and serves template for index.html to anything in the directory https://address:port/FrontLine/
- Performs basic HTTP authorization, with valid pairs user/pass and test/junk WEBCONFIG Table
- ConfigGrp 1: Buttons
- ConfigItm x0: Button x text
- ConfgItm x1: Button x link
- ConfigItm x2: Button x onClick
- ConfigGrp 2: Sticky settings
- ConfigItm 11: To be scheduled