527 Commits
Author SHA1 Message Date
Jonathan Rosenbaum 0b56dea180 Closes #68 2018-04-27 07:33:33 +00:00
Jonathan Rosenbaum df31281ef8 If volunteer has no hours for new year and is a member, this assings 0 to remaining.
* otherwise spinner spins infinitely, and membership discount is not applied.
2018-04-27 05:42:18 +00:00
Jonathan Rosenbaum 3e76e145c6 Adds autogrow library (pulling with git) version 1.16 2018-03-21 21:51:23 +00:00
Jonathan Rosenbaum 914d15f98c Closes #63 with https://github.com/ro31337/jquery.ns-autogrow 2018-03-21 21:44:15 +00:00
Jonathan Rosenbaum 6bda47b485 Points out possible file name for virtual host file. 2018-03-21 21:40:58 +00:00
Jonathan Rosenbaum 31c785ed13 New website! 2018-02-15 04:24:04 +00:00
Jonathan Rosenbaum eff1e61dd4 Added some new knowledge. 2018-01-08 06:46:35 +00:00
Jonathan Rosenbaum 5b490e18e7 Adds more detail about fine tuning access, and improves apache setup instructions. 2018-01-06 07:36:49 +00:00
Jonathan Rosenbaum 5edc4f97c2 Adds several items:
* BIOS / UEFI
* GRUB2 PASSWORD PROTECT
* SSD or HD ENCRYPTION
2018-01-06 07:10:42 +00:00
Jonathan Rosenbaum 0bcd6e881f More clarity. 2018-01-05 08:37:46 +00:00
Jonathan Rosenbaum 44aa25412b Better security explanation. 2018-01-05 01:11:38 +00:00
Jonathan Rosenbaum 4d65085be5 revert 2018-01-04 10:03:42 +00:00
Jonathan Rosenbaum 2026bddaec More info about secret-tool. 2018-01-04 07:40:32 +00:00
Jonathan Rosenbaum 33cc14cdb0 format 2018-01-04 06:32:48 +00:00
Jonathan Rosenbaum 38d66155c8 Updates self-signed certificates for more recent browsers. 2018-01-04 06:30:55 +00:00
Jonathan Rosenbaum b961002595 format 2018-01-04 01:41:05 +00:00
Jonathan Rosenbaum 9612e4aa6f format 2018-01-04 01:40:13 +00:00
Jonathan Rosenbaum eba20c3da6 Another update 2018-01-04 01:38:57 +00:00
Jonathan Rosenbaum c7adb7867f More changies 2018-01-04 01:21:41 +00:00
Jonathan Rosenbaum 195f7bee3f Another addition: fine-tuning 2018-01-04 00:33:16 +00:00
Jonathan Rosenbaum 39c8bbc946 More layout improvment. 2018-01-04 00:01:52 +00:00
Jonathan Rosenbaum 1d952049b7 Improving the layout a little
* probably should make this a *MD
2018-01-04 00:00:49 +00:00
Jonathan Rosenbaum e67302b991 Documentation updates for secure terminals! 2018-01-03 23:48:27 +00:00
Jonathan Rosenbaum f384c3b7ed Fixes #59. 2018-01-02 19:28:21 +00:00
Jonathan Rosenbaum e388bd5358 This closes #58. 2018-01-02 07:36:17 +00:00
Jonathan Rosenbaum b08a2387a0 Avoids unnecessary error, related to #56. 2018-01-02 06:54:26 +00:00
Jonathan Rosenbaum 8ffb51e20a Fixes #57, happy New Years! 2018-01-01 22:46:29 +00:00
Jonathan Rosenbaum 28f836597f Closes New Years bug closes #56 :) 2018-01-01 11:01:09 +00:00
Jonathan Rosenbaum c69181048f Partial fix for #56. 2018-01-01 10:45:18 +00:00
Jonathan Rosenbaum 68e835d74b This fixes #43 and fixes #47. 2017-12-26 09:42:40 +00:00
Jonathan Rosenbaum 588cbe7580 Sends update interests to _parent, avoiding 2x etherpad. 2017-12-25 09:03:54 +00:00
Jonathan Rosenbaum 91e11655d8 Closes #50
* works for Up, Down, Update
* Close works when etherpad isn't open, otherwise scrolls to top
2017-12-24 09:03:23 +00:00
Jonathan Rosenbaum 97ae064a5f Improves css:
* removes unneccessary horizonal scrolling at the bottom
* sets up a grid for the header
2017-12-23 06:37:55 +00:00
Jonathan Rosenbaum 07ee1b27bd Improving the css a little, noticed this issue when using monitor with less width. 2017-12-22 07:50:34 +00:00
Jonathan Rosenbaum 39234f9b10 A similar bug was fixed in d0028b5779
* With new SQL logic volunteer obj is empty for non-volunteers, this corrects this by creating false empty data in an new temp. object.
2017-12-19 04:58:49 +00:00
Jonathan Rosenbaum 937bf5adff Fixes #51; a matter of SQL. 2017-12-19 04:39:30 +00:00
Jonathan Rosenbaum d802552d7f Adds examine_shop class for future changes: #43 & #47 2017-12-16 09:19:56 +00:00
Jonathan Rosenbaum d0028b5779 Adds performance improvements for volunteer_benefits closing #46
* Major changes, will test more, but appears to be working very well.
2017-12-16 09:15:50 +00:00
Jonathan Rosenbaum 33c5e60969 Combines result1 with result2 in prep to address volunteer for #46. 2017-12-15 20:36:30 +00:00
Jonathan Rosenbaum e61cbba5c5 Only changes cursor non-allowed in Paid Membership td, bug introduced with last change. 2017-12-15 05:29:38 +00:00
Jonathan Rosenbaum f59020a823 membership_benefits now just one call as desired for issue #46
* now need to do the same thing for volunteer_benefits
2017-12-15 05:22:18 +00:00
Jonathan Rosenbaum 6baadda5ef This reverts one change in #46, contact.js does initiate chosen. 2017-12-15 05:18:35 +00:00
Jonathan Rosenbaum 140ba1938e Partially addresses performance issue noted in #46
* removes uncessary use of contact.js
* removes duplicate code in shop.js
2017-12-14 21:14:29 +00:00
Jonathan Rosenbaum 0eed1328b5 Now that iframes are used in shop_log this fixes #45, thanks to Matt Marino for observing this issue. 2017-12-13 05:39:21 +00:00
Jonathan Rosenbaum 8aae19686b This partially addresses #43. 2017-12-11 06:38:56 +00:00
Jonathan Rosenbaum 49157e3341 Closes #39; major record changing improvement to YBDB!
* shop_log.php becomes shop_log_iframe.php
* shop_log.php now controls the iframe logic
2017-12-11 02:21:49 +00:00
Jonathan Rosenbaum 29212e5ae4 Added a missing ; 2017-12-11 02:21:08 +00:00
Jonathan Rosenbaum 90e643544f New call for global_pad for #39. 2017-12-11 02:18:58 +00:00
Jonathan Rosenbaum 5f6505a016 For #39, links for shop_log.php changed to shop_log_iframe.php 2017-12-11 02:17:06 +00:00
Jonathan Rosenbaum a960dbda55 Adds the new prefix conf for etherpad which also was added for individual reports, part of #39. 2017-12-11 02:15:10 +00:00
Jonathan Rosenbaum 8789a289b7 New configurations for etherpad; more documentation on the wiki coming. 2017-12-11 02:13:58 +00:00
Jonathan Rosenbaum 5d6a1ab384 One of the steps for #39 - include header behavior
* getting 2 iframes to behave properly so that etherpad isn't constantly reloading at the front sign-in was a little tricky and required slight alteration of some of the include headers.
2017-12-11 02:05:39 +00:00
Jonathan Rosenbaum 77be1aa86e Adds etherpad.js plugin library for #39! 2017-12-09 07:19:13 +00:00
Jonathan Rosenbaum 959fc08092 This implements etherpad (#39) for individual_history_log! 2017-12-09 07:09:35 +00:00
Jonathan Rosenbaum 655d009766 Fixes #38 with TIMEDIFF. 2017-12-09 00:38:33 +00:00
Jonathan Rosenbaum a7decc5735 Closes #29! 2017-11-26 05:35:50 +00:00
Jonathan Rosenbaum e99d2863b8 This fixes a bug introduced by the 34650c9be fix.
* There is an issue if the spinner is used, when the transaction is complete, the function is called infinitely.
2017-11-26 04:44:27 +00:00
Jonathan Rosenbaum a56ec4d9ff GPLv3!
FLOSS daily!
2017-11-18 04:02:38 -05:00
Jonathan Rosenbaum 16c6b39d02 Fixes #36, swap intval with floatval. 2017-11-18 05:41:30 +00:00
Jonathan Rosenbaum 8ba910b37b Adds better error output, fixes #34. 2017-11-17 02:54:44 +00:00
Jonathan Rosenbaum a2a0b10077 Actually no for #23, doesen't resolve seconds or even ti/to. 2017-11-16 03:27:53 +00:00
Jonathan Rosenbaum 4574410744 Fixes #23 - time skewed by one step! 2017-11-16 02:13:43 +00:00
Jonathan Rosenbaum 34650c9be0 Mozilla, not chrome, picked up on the strict javascript requirement.
* some javascript libraries failed, but not all
* put volunteer_hours_to_membership_discount() in the right place, right above redeemable().
* Fixed!
2017-11-15 02:53:25 +00:00
Jonathan Rosenbaum f471c24339 Had to comment out disabled of amount as introduced with 956faaa279
* amount.val was saved because input was disabled
2017-11-14 08:02:51 +00:00
Jonathan Rosenbaum 956faaa279 Because #4 creates a special type of transaction, amount is disabled.
* enabled on sold_to.change
2017-11-14 06:32:57 +00:00
Jonathan Rosenbaum 2e0568c107 This fixes #4 with option 1, but introduces #29. 2017-11-14 05:06:06 +00:00
Jonathan Rosenbaum beeab5e775 Fixes #28. 2017-11-13 22:34:33 +00:00
Jonathan Rosenbaum 62a51320e3 This fixes #21, and cleans up the code a little. 2017-11-13 22:00:18 +00:00
Jonathan Rosenbaum cc41801975 Just a spelling correction. 2017-11-13 08:07:13 +00:00
Jonathan Rosenbaum 69b9c5e433 Two minor fixes.
* If sum is really large it is fixed(2) so that difference in transaction_log is correct and it turns green, etc.
* typeof amount.val() is check for undefined to avoid unneccesary error output.
2017-11-13 07:27:44 +00:00
Jonathan Rosenbaum 98965c8b19 If redeemed hours in NaN, converted to 0. 2017-11-13 07:25:40 +00:00
Jonathan Rosenbaum 52069d9b52 Fixes a bug introduced by adding datetime with enh #26.
* links for shop_log weren't opening up the latest shop, or any shop.
2017-11-13 05:45:59 +00:00
Jonathan Rosenbaum 104de44dc5 This closes #25!
* Requires mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql
2017-11-13 00:38:01 +00:00
Jonathan Rosenbaum 68061f3408 CanEdit now proper for change from date to datetime. 2017-11-12 16:50:45 +00:00
Jonathan Rosenbaum 463a54a951 Closes #26, date to datetime, much nicer! 2017-11-12 16:14:56 +00:00
Jonathan Rosenbaum 57ecbab44a Modifies date in shops from date to datetime for #26. 2017-11-12 16:13:25 +00:00
Jonathan Rosenbaum d7aefb1416 This allows you to update in place without closing. Nice. 2017-11-12 08:57:18 +00:00
Jonathan Rosenbaum d8ddb34d1f This mostly closes #15, not all the enhancements, but nice enough. 2017-11-12 08:18:46 +00:00
Jonathan Rosenbaum 7fd089809f Enh: Added day of the week at the top. 2017-11-12 06:45:37 +00:00
Jonathan Rosenbaum 6b79915686 Corrects a spelling mistake. 2017-11-12 06:30:27 +00:00
Jonathan Rosenbaum 5928a936d2 Adds sold_to field in regards to #19.
* Sold By or
* Performed by
2017-11-12 06:28:47 +00:00
Jonathan Rosenbaum f7d389551a This resolves #23
* Adds LIST_MINUTE_INTERVAL
* Creates a new generic function from list_min15() .. list_min() with one new arguement, the minute interval that 60 should divide by cleanly.
* May clean up the $elapsed_hours, but currently have LIST_MINUTE_INTERVAL set to 1, so we are happy!
2017-11-12 04:21:35 +00:00
Jonathan Rosenbaum d065279477 Amount breakdown now being properly displayed for donations / monetary donation.
* basically, there isn't a breakdown.
2017-11-12 03:30:04 +00:00
Jonathan Rosenbaum 3f870cf60e Fixes #24. 2017-11-12 03:05:10 +00:00
Jonathan Rosenbaum 424c279e9e Fixes #22 with escape() 2017-11-12 02:35:42 +00:00
Jonathan Rosenbaum 3e9c23c676 Provides more information in amount title if has paid history.
* Original Price
* Paid
* Redeemed Hours
2017-11-11 22:47:50 +00:00
Jonathan Rosenbaum 3d02473e03 This should fix #22. 2017-11-11 22:46:04 +00:00
Jonathan Rosenbaum 080357c2f3 Resolves #17 2017-11-08 09:17:51 +00:00
Jonathan Rosenbaum adeb4f8854 Adds moment library to stats header. 2017-11-05 01:18:18 +00:00
Jonathan Rosenbaum 8be7a8a9b3 Removes unneccesary code. 2017-11-05 01:16:52 +00:00
Jonathan Rosenbaum 44748ca740 Changing Sale Date to Donation Date for all Donations. 2017-11-03 03:12:57 +00:00
Jonathan Rosenbaum a26ab11123 Temporary solution for #14. 2017-11-01 08:42:58 +00:00
Jonathan Rosenbaum 1f38eb1f9a Closes #13 by removing unncessary logic check.
* Hopefully, no reason for checking for new account.
2017-11-01 08:03:06 +00:00
Jonathan Rosenbaum 8396b66a76 Corrects a bug where comparisons req. Number cast. 2017-10-31 07:54:34 +00:00
Jonathan Rosenbaum bc3c7450fd Handles when contact_id exceeds greatest or least contact_id.
* will go to the closest contact_id, nice behavior.
2017-10-31 07:03:00 +00:00
Jonathan Rosenbaum b63df15721 Closes #12 enhancement. 2017-10-31 06:06:22 +00:00
Jonathan Rosenbaum 28ded7650e Adds placeholder ShopId to tabulator header. 2017-10-31 05:23:11 +00:00
Jonathan Rosenbaum f742fc9621 Adds prev next buttons as req in enhancement #12 2017-10-31 05:20:47 +00:00
Jonathan Rosenbaum 3dff971ac9 Adds accurate sorting for time_in, time_out, and total.
* uses moment.js
* changed from formatter to mutator for time_in and time_out.
2017-10-30 03:15:29 +00:00
Jonathan Rosenbaum c622cee563 Minor sytax fix. 2017-10-30 03:06:44 +00:00
Jonathan Rosenbaum c466ae0927 Adds moment to header. 2017-10-30 03:04:39 +00:00
Jonathan Rosenbaum 7b65374c13 Adds moment dot files. 2017-10-30 03:03:26 +00:00
Jonathan Rosenbaum 4bb9b043ad This adds moment to perfect date/time sorting with tabulator! 2017-10-30 03:01:55 +00:00
Jonathan Rosenbaum f15d312e5a Turns off cell editing, add "" for status. 2017-10-30 00:16:48 +00:00
Jonathan Rosenbaum 9cc6cb20be A complete redo with tabulator! 2017-10-29 23:49:12 +00:00
Jonathan Rosenbaum 68431826f3 Adds reports{js,php} for modern reporting with tabulator!
* and integration
2017-10-29 23:46:41 +00:00
Jonathan Rosenbaum 58a3e00f70 Adds tabulator and reports.js to this header. 2017-10-29 23:45:04 +00:00
Jonathan Rosenbaum 5e5899160a This cleans up the html a little for the last fix #10 2017-10-19 08:33:24 +00:00
Jonathan Rosenbaum e08708b66a Show signed-in patrons with distinct color for list_donation_locations_withheade
* closes #10
* combines signed-in with everyone else
* everyone should be put in alphabetical order in the future
2017-10-19 08:08:00 +00:00
Jonathan Rosenbaum 821009e0ad Turns patron name into a link in transaction_log. 2017-10-19 07:27:26 +00:00
Jonathan Rosenbaum 57c7bcd615 This closes #11 by turning shop_id into a link.
* transaction.css was too low a priority so added style in transaction_log.
2017-10-19 05:12:35 +00:00
Jonathan Rosenbaum 3c5eea235a This fixes #9 by allowing two behaviors via REDEEM_ONE_TO_ONE:
* based on the SWEAT_EQUITY_LIMIT with discounts applied,
* based on 1 to 1 (1hr of volunteering === 1hr of free stand time) regardless of the SWEAT_EQUITY_LIMIT
2017-10-19 04:27:44 +00:00
Jonathan Rosenbaum 28ff8f5fd6 Removed a td: Closes #3 2017-10-18 07:10:15 +00:00
Jonathan Rosenbaum 8ded4fa995 Minor change to show closes #8 Matt Marino enhancement request. 2017-10-11 08:19:54 +00:00
Jonathan Rosenbaum b9e17872ac Shows if banned.
* tr becomes red
* title becomes banned
* not all td currently change, however, it is sufficient to get the message across, and let the greeter know there is an issue.
2017-10-11 08:05:43 +00:00
Jonathan Rosenbaum 6eba0250d6 Returns banned list. 2017-10-11 06:18:00 +00:00
Jonathan Rosenbaum 5695fe8b07 This resolves the issue with user defined arrays (local_configurations) not carrying over.
* include works, too, and in this paticular code would not provide a disadvantage
2017-10-11 05:38:57 +00:00
Jonathan Rosenbaum 814a2bc4b6 Some long overdue major changes. 2017-10-10 03:49:05 +00:00
Jonathan Rosenbaum b4f1ca18de Little spelling change. 2017-10-10 03:34:10 +00:00
Jonathan Rosenbaum a3b2188e27 Provides an explanation for all the header include files. 2017-10-10 03:32:52 +00:00
Jonathan Rosenbaum 6a464d29be Adds tabulator capability to reports. 2017-10-10 03:19:10 +00:00
Jonathan Rosenbaum 407893b872 Adds the nice tabulator library! 2017-10-10 03:18:06 +00:00
Jonathan Rosenbaum cc6346a1b7 Simplified include_headers by removing include_header_start_shop.
* No important changes with shop_log.
2017-10-10 03:15:47 +00:00
Jonathan Rosenbaum 6fcf67c0c1 Changed season to shop season as recommended by Jonathan Nellis. 2017-09-20 07:13:53 +00:00
Jonathan Rosenbaum 28e290ba48 More text decoration improvements. 2017-09-19 08:02:00 +00:00
Jonathan Rosenbaum d3ed149289 Improves the update interests css a little bit. 2017-09-19 07:42:50 +00:00
Jonathan Rosenbaum 6846165297 Changes the color coding for volunteers who have redeemed all their hours. 2017-09-19 05:56:02 +00:00
Jonathan Rosenbaum 7b1e3f0545 Makes status font smaller to avoid overruns. 2017-09-19 05:40:03 +00:00
Jonathan Rosenbaum 7696b05dc9 Adds Update Interests to the Volunteer Hours column! 2017-09-19 04:51:49 +00:00
Jonathan Rosenbaum cc44575d2a More awesome improvements. 2017-09-18 04:08:36 +00:00
Jonathan Rosenbaum f5a5deb214 url correction 2017-09-17 20:25:29 +00:00
Jonathan Rosenbaum 5af92d5fe1 More expansion. 2017-09-17 20:22:31 +00:00
Jonathan Rosenbaum 8c33f95022 More improvements. 2017-09-17 20:12:53 +00:00
Jonathan Rosenbaum 1710842deb More policy additions. 2017-09-17 20:07:05 +00:00
Jonathan Rosenbaum 21a8447d54 Added some more important information in the 1st paragraph. 2017-09-17 09:19:05 +00:00
Jonathan Rosenbaum b2b306502b Improving verbiage. 2017-09-17 06:02:45 +00:00
Jonathan Rosenbaum 0e56e1b269 Long overdue update of shop welcome page.
* updates with new policies
* simplifies somewhat
* changes the color
2017-09-17 05:34:31 +00:00
Jonathan Rosenbaum 2ee0d57dc4 Changes from loud red, to cool blue (experiment). 2017-09-17 05:12:57 +00:00
Jonathan Rosenbaum 7c21381fef Adds include_footer so people have links to report bugs, etc. 2017-09-17 05:11:47 +00:00
Jonathan Rosenbaum 800205cbdd Changes margin-left from 170 to 80px to avoid run-overs. 2017-09-17 01:51:17 +00:00
Jonathan Rosenbaum d98c033348 Changes id to class for more than one row with same contact_id. 2017-09-17 01:29:02 +00:00
Jonathan Rosenbaum c356cb9aaf Adds Volunteer Hours and Paid Membership Columns to shop log:
* shows Summary for Volunteer hours
* show whether membership is current or not
* a little css magic in shop.js
2017-09-17 01:20:18 +00:00
Jonathan Rosenbaum 798ae356b6 Fixes Membership discount for non-member (EAB (all hours) and Volunteer) #2 2017-09-03 00:00:54 +00:00
Jonathan Rosenbaum 367f9707d5 Changes Statistics to Reports. Lots of header include files. 2017-08-14 03:53:18 +00:00
Jonathan Rosenbaum f95febd851 Realized that having readonly on membership may prevent a patron from renewing slightly earlier, so reverted.
* Could allow renewal perhaps 2 months before, and turn off readonly, as a feature.
2017-08-11 07:38:39 +00:00
Jonathan Rosenbaum 2b5c07665b Fixes another introduced bug so that readonly is only on for paid members for Memberships transactions. 2017-08-11 06:55:36 +00:00
Jonathan Rosenbaum 7b84256a39 Turns off input for membership transaction if patron is a paid member. 2017-08-11 06:36:17 +00:00
Jonathan Rosenbaum 79e8baf0b7 Fixes a bug where paid member was not showing for someone with a valid membership. 2017-08-11 06:24:31 +00:00
Jonathan Rosenbaum f889eccc71 Turns off quantity (community_bike) for Memberships. 2017-08-11 05:54:33 +00:00
Jonathan Rosenbaum b72ce46423 Introduced a bug with the last commit, fixed! 2017-08-11 05:46:51 +00:00
Jonathan Rosenbaum 9ef3efe15c Improves documentation for local_configurations.php. 2017-08-10 23:53:33 +00:00
Jonathan Rosenbaum 1eb5982595 Cleans up the code a little bit. 2017-08-09 07:48:26 +00:00
Jonathan Rosenbaum a2ae9907e4 Fixes a bug with then newest introduced volunteer benefits math. 2017-08-09 05:48:56 +00:00
Jonathan Rosenbaum 3f195f358b Comments out console.log. 2017-08-09 05:30:27 +00:00
Jonathan Rosenbaum e37a0ec2f7 Redeemable now properly adds discount when there has been previous transactions .
* some fun math!
2017-08-09 05:25:23 +00:00
Jonathan Rosenbaum 8f45c94cd8 Turns off all console.log. 2017-08-08 05:42:31 +00:00
Jonathan Rosenbaum d450864bdf Displays original price for membership discount transaction. 2017-08-08 05:29:47 +00:00
Jonathan Rosenbaum 2c05f7e768 Properly reflects membership discount in amount on save. 2017-08-08 04:50:43 +00:00
Jonathan Rosenbaum 1b56a37859 Adds membership_discount_price span that will not be displayed. 2017-08-08 03:39:50 +00:00
Jonathan Rosenbaum 8da2bb24eb Switches to membership discount when there are no remaining volunteer hours to redeem for volunteers who are also paid members. 2017-08-08 03:32:04 +00:00
Jonathan Rosenbaum 6bd1742c54 Improves the code be expanding the scope of the volunteer benefits object, and providing correct calculations in Stand Time so that the stand time transaction is properly rendered on select change. 2017-08-07 22:42:55 +00:00
Jonathan Rosenbaum 609078a60d Removes an uncessary function call and callback return that was used to Stand Time which was replaced by accurate code in transactions.js. 2017-08-07 22:41:48 +00:00
Jonathan Rosenbaum c814e49031 Adds Stand Time to membership benefits definition. 2017-08-07 22:40:44 +00:00
Jonathan Rosenbaum 945428b0c9 amount.one didn't hack it, back to amount.on. 2017-08-07 20:17:43 +00:00
Jonathan Rosenbaum 6f3fc83a0b Adds a few additional transactions to the membership benefits definition. 2017-08-07 20:08:36 +00:00
Jonathan Rosenbaum de853b5da0 Adds membership discount span. 2017-08-07 20:08:02 +00:00
Jonathan Rosenbaum dd6a77f1d8 Adds membership discount to volunteer benefits css. 2017-08-07 20:07:17 +00:00
Jonathan Rosenbaum eaa1d18788 Assigns a value if transaction tests true for membership discount. 2017-08-07 20:06:08 +00:00
Jonathan Rosenbaum f040988854 This changes on to one which is a better strategy when it is only necessary for the handler to fire once and empty the results for the membership discount. 2017-08-07 18:00:34 +00:00
Jonathan Rosenbaum 137cc27ca1 Properly displays discounted price in #membership_discount. 2017-08-07 17:33:47 +00:00
Jonathan Rosenbaum a0f3e74165 This improves the math for membership discount and shows it in the original price element. 2017-08-07 03:40:15 +00:00
Jonathan Rosenbaum 20741bd9d6 Provides membership discount value on callback. 2017-08-07 01:29:53 +00:00
Jonathan Rosenbaum f69c4d49c9 Defines Membership discount. 2017-08-07 01:22:06 +00:00
Jonathan Rosenbaum 1f73ed2a2e Changed to allow unlimited hour-to-hour Stand Time. 2017-08-06 19:03:39 +00:00
Jonathan Rosenbaum 2d264773ed This properly records orginal price when redeeming volunteer hours for Stand Time when input is already pre-filled. 2017-08-06 08:22:55 +00:00
Jonathan Rosenbaum 09cc2893a4 Improves the output feedback. 2017-08-06 07:16:55 +00:00
Jonathan Rosenbaum a084161d03 Free stand time for bike purchases is now working. 2017-08-06 07:00:52 +00:00
Jonathan Rosenbaum ff0bb290e2 Tests the free stand time callback. 2017-08-06 05:18:53 +00:00
Jonathan Rosenbaum fc694c4a87 Adds new stand time definition for free stand time period. 2017-08-06 05:17:58 +00:00
Jonathan Rosenbaum aab521eb6b Improves the max bike earned logic. 2017-08-05 22:01:02 +00:00
Jonathan Rosenbaum e852af5e5f Max Bike Earned logic now working. 2017-08-05 21:15:20 +00:00
Jonathan Rosenbaum fb0e9cfbfb Corrects some human introduced bugs by returned code to earlier state. 2017-08-05 19:22:02 +00:00
Jonathan Rosenbaum 3e18f89e65 Discount works properly when redeemable value is not greater than sweat equity limit.
* Also, improved tabbing to take into account the spinner.
2017-08-05 19:05:16 +00:00
Jonathan Rosenbaum 27ff8f87d2 Corrects an introduced bug where max is assigned a value, but obj.volunteer does not have a value assigned, yet. 2017-08-05 18:28:16 +00:00
Jonathan Rosenbaum 165b81adc5 Gives a 0 value when there is no vhr & vhr 2017-08-05 18:13:57 +00:00
Jonathan Rosenbaum 2f33f8eef8 If volunteer hours remaining is 0, spinner is disabled on spin or zeroed on input. 2017-08-05 06:44:59 +00:00
Jonathan Rosenbaum 17573c20e4 Adds new value to redeemable function, and comments unneccesary code in function. 2017-08-05 06:13:59 +00:00
Jonathan Rosenbaum 5e80aedca7 Fills in the blanks for volunteer hours remaining and redeemed in mouseover. 2017-08-05 05:49:25 +00:00
Jonathan Rosenbaum bc747c90a2 Creates new object when year changes. 2017-08-05 04:41:55 +00:00
Jonathan Rosenbaum 9e8ea84a0e Assigns 0.00 if redeemable_hours are NaN, and runs a test so info isn't shown esessentially for a non-volunteer. 2017-08-05 03:42:21 +00:00
Jonathan Rosenbaum 5047f59996 This uses tradition declaration notation rather than emacscript 6 notation, just for compatibility with older browsers. 2017-08-05 03:08:18 +00:00
Jonathan Rosenbaum b7f128feca Creates the object, and adds redeemed hours together. 2017-08-04 06:25:27 +00:00
Jonathan Rosenbaum aeb6b23889 Adds volunteer history update. 2017-08-04 06:24:54 +00:00
Jonathan Rosenbaum a48fb518f7 Saves redeemed hour value properly if previous edited transaction is saved again. 2017-08-03 21:39:08 +00:00
Jonathan Rosenbaum f95f2d2b2c This gets volunteer history select working correctly. 2017-08-03 21:23:13 +00:00
Jonathan Rosenbaum e6b05b4eab Callback to query Volunteer benefits history. 2017-08-03 21:10:25 +00:00
Jonathan Rosenbaum 086a87900a Adds delete_transaction id so that delete can be turned off for completed / saved transactions. 2017-08-03 21:09:33 +00:00
Jonathan Rosenbaum 8ed0677750 Now a previous saved transaction cannot be deleted. 2017-08-03 21:08:28 +00:00
Jonathan Rosenbaum 34e91b07bd Adds original_price span. 2017-08-03 20:28:34 +00:00
Jonathan Rosenbaum c1bde007b4 Minor text edit. 2017-08-03 20:27:53 +00:00
Jonathan Rosenbaum 63cecfc678 Fixes a minor bug introduced on first transaction for benefit transactions. 2017-08-03 20:26:47 +00:00
Jonathan Rosenbaum daf885cc4a Shows original price and redeemed volunteer hours for saved transaction when edit button is pressed. 2017-08-03 20:03:27 +00:00
Jonathan Rosenbaum 7147ea6213 Adds to new values (original_price and redeemed_hours) to the history for benefit transactions. 2017-08-03 19:44:38 +00:00
Jonathan Rosenbaum 04846ae362 Uses a new type for the volunteer column. 2017-08-03 03:29:35 +00:00
Jonathan Rosenbaum d0e88bac58 Turns off/on spinner for membership based on choices in functions. 2017-08-03 00:15:38 +00:00
Jonathan Rosenbaum d4cb86b3c0 Adds transactions_with_volunteer_benefits and transactions_with_membership_benefits.
* Allows transactions to provide volunter and/or membership benefits
* Volunteer benefits take precedent for patrons with both types of benefits if a tranaction offers both.
2017-08-02 22:27:39 +00:00
Jonathan Rosenbaum c214c48a3d Adds an additional check for Stand Time or nothing else works. 2017-08-02 22:07:03 +00:00
Jonathan Rosenbaum 2508653fef Shows amount if expired membership & status is stand time. 2017-08-02 21:27:34 +00:00
Jonathan Rosenbaum 23d8bcf60e Adds the correct conversion for Stand Time transactions, still limited like normal transactions. 2017-08-02 21:15:11 +00:00
Jonathan Rosenbaum bd00d498f1 Corrects a bug, by returning a deleted value. 2017-08-02 20:27:13 +00:00
Jonathan Rosenbaum 1c6508abd0 This corrects the math for all situations. 2017-08-02 20:16:17 +00:00
Jonathan Rosenbaum a225aacda4 Adds the discount math. One unimportant bug created which will be fixed. 2017-08-02 09:15:11 +00:00
Jonathan Rosenbaum 76b73352dc Adds VOLUNTEER_DISCOUNT. 2017-08-02 06:18:46 +00:00
Jonathan Rosenbaum cf7bcd5103 Function redeemable added to handle duplicate logic for volunteer hours spinner. 2017-08-02 05:13:43 +00:00
Jonathan Rosenbaum 35c3a69f73 This doesn't allow a value > current_year_volunteer_values on input. 2017-08-01 05:57:34 +00:00
Jonathan Rosenbaum 38286d280a Now uses stand_time_value for "Stand Time" transactions. 2017-08-01 05:34:49 +00:00
Jonathan Rosenbaum 6a89e5d675 Adds a new definition, stand_time_value. 2017-08-01 05:15:20 +00:00
Jonathan Rosenbaum 0ef4138aa4 Changes the logic so that price is read for stand time transactions. 2017-07-31 21:58:58 +00:00
Jonathan Rosenbaum 6b8cdbe0af Adds logic to keyboard input, and makes incremental true. Nice stuff. 2017-07-31 21:27:12 +00:00
Jonathan Rosenbaum 52ba58d805 Changes the model suggestion for volunteer table. 2017-07-31 21:07:51 +00:00
Jonathan Rosenbaum 157cb8474d This gets some of the basic logic working for redeeming volunteer hours. 2017-07-31 21:06:40 +00:00
Jonathan Rosenbaum 7fb848f7d4 The corrects a hereunto unknown very minor bug where data is not being check for value in the deposit calculator function. 2017-07-30 20:02:25 +00:00
Jonathan Rosenbaum a557e2b8f5 This sets up some of the math framework to redeem volunteer hours from amount. 2017-07-29 20:56:45 +00:00
Jonathan Rosenbaum 4feb5022eb Puts all volunteer data into one column called "volunteer".
* Reflects the changes in json, and adds more definition to the json callback.
2017-07-29 20:29:18 +00:00
Jonathan Rosenbaum 81e261bc6a Finally have the values rendering properly. 2017-07-28 01:26:54 +00:00
Jonathan Rosenbaum 793fcb42e1 Adds a better regexp thanks to this:
https://stackoverflow.com/questions/12643009/regular-expression-for-floating-point-numbers
2017-07-27 19:27:19 +00:00
Jonathan Rosenbaum 21125249ea Makes it even nicer thanks to this good read:
https://stackoverflow.com/questions/16791940/jquery-ui-spinner-able-to-exceed-max-by-keyboard
2017-07-27 19:12:19 +00:00
Jonathan Rosenbaum 1202c4909a This cleans up things a bit for spinner. 2017-07-27 18:47:16 +00:00
Jonathan Rosenbaum e663006698 Some experimentation making sure the spinner is working.
* Need to improve the css
* Need to link everything togther, the fun part!
2017-07-27 18:01:53 +00:00
Jonathan Rosenbaum 960296c856 Adds the spinner libraries to the code, and adds some css values. 2017-07-27 17:58:53 +00:00
Jonathan Rosenbaum 9f263a68d6 Adds the jQuery UI spinner. 2017-07-27 17:44:35 +00:00
Jonathan Rosenbaum 670d27432b Add MAX_BIKE_EARNED definition. 2017-07-26 19:19:28 +00:00
Jonathan Rosenbaum c6f68ff19b Fixes a presentation bug for paid member in Stand Time. 2017-07-24 05:30:36 +00:00
Jonathan Rosenbaum 7a09ccfead Won't charge stand time if a member. Simplified callback reusing funtion. 2017-07-24 05:02:21 +00:00
Jonathan Rosenbaum f1daa79213 Fixes a bug, and adds membership_benefits function for easier querying. 2017-07-24 04:45:51 +00:00
Jonathan Rosenbaum ff0142aa30 Improves logic for multiple logins and real sign out. 2017-07-24 01:26:50 +00:00
Jonathan Rosenbaum 55620576dd Adds styling for stand time info. 2017-07-24 01:25:57 +00:00
Jonathan Rosenbaum a05575999c Improves the presentation. 2017-07-23 19:57:43 +00:00
Jonathan Rosenbaum eaefff480c Figures out stand time amount with optional grace period. 2017-07-23 19:06:52 +00:00
Jonathan Rosenbaum 7969da316c Adds a missing ; in new definition. 2017-07-23 17:13:48 +00:00
Jonathan Rosenbaum e724e8d9cb The beginnings of Stand Time logic. 2017-07-23 16:57:23 +00:00
Jonathan Rosenbaum 3087e5d21f Adds Stand Time transaction type. 2017-07-23 16:56:12 +00:00
Jonathan Rosenbaum ea3390354c Adds Stand Time definitions. 2017-07-23 16:55:08 +00:00
Jonathan Rosenbaum 40a2a6abab Tests if volunteer_hours exists. 2017-07-20 22:47:37 +00:00
Jonathan Rosenbaum 1805449b50 Changes Personal to Stand Time and many other things:
* Updates populate
* Makes Stand Time a special transaction_type_id
* Adds new definitions to database_functions
2017-07-20 22:29:33 +00:00
Jonathan Rosenbaum df15b6933f Adds some improvements:
* Adds Stand Time Transaction
* Turns off Build Your Own Bike Transaction
* Improves documentation
2017-07-20 20:29:47 +00:00
Jonathan Rosenbaum c70bac75f7 The corrects a logic error for show_description.
Now working properly when changed in SQL
2017-07-20 20:12:36 +00:00
Jonathan Rosenbaum 3c734a60e2 Fixes active flag for transation_type pulldowns. 2017-07-20 19:09:18 +00:00
Jonathan Rosenbaum 79e246246d Now carries over the current year volunteer hours data. 2017-07-18 05:02:44 +00:00
Jonathan Rosenbaum e9da500848 This adds SQL logic for current year volunteer hours and visits. 2017-07-18 04:42:34 +00:00
Jonathan Rosenbaum f782cb90fc This adds the current year to the title for volunteer hours. 2017-07-18 04:40:01 +00:00
Jonathan Rosenbaum 9d07e9a740 Improves the presentation logic. 2017-07-17 20:50:12 +00:00
Jonathan Rosenbaum 787fff74d6 Adds initial Volunteer Hour logic and displays in transactions with title. 2017-07-17 20:38:23 +00:00
Jonathan Rosenbaum 3a0a83cd37 Adds same SQL logic as with paid_membership stats. 2017-07-17 19:16:21 +00:00
Jonathan Rosenbaum be7155de5d Improves the text in the headers. 2017-07-17 19:12:16 +00:00
Jonathan Rosenbaum 8a8009c1f1 Removes an unintentional copy/paste bug. 2017-07-17 19:10:31 +00:00
Jonathan Rosenbaum 7ce6389cd6 Adds another MAX so newest expiration date is reflected. 2017-07-17 19:06:48 +00:00
Jonathan Rosenbaum 8089b40f19 Changed to show only the most recent membership. 2017-07-17 18:45:20 +00:00
Jonathan Rosenbaum afb64b7420 Adds title in span with email, phone, exp. date for membership.
Ofcourse, ask for ID, too.  May add membership # in the future.
2017-07-17 09:16:46 +00:00
Jonathan Rosenbaum fb422fcc3b This returns the latest expiration date for membership.
Future proofing when people have had more than 1 paid membership!
2017-07-17 07:11:21 +00:00
Jonathan Rosenbaum 69ea453461 Changes the language from members to metrics
The reason is because Positive Spin policies have changed.  These metrics give you a better idea of who has actually been at the shop based on metrics:

Days and Hours (currently 2 / 8)
2017-07-17 06:39:15 +00:00
Jonathan Rosenbaum 072313ffc3 Adds constants for membership and volunteers. 2017-07-17 06:03:43 +00:00
Jonathan Rosenbaum b9497ac7c3 Show whether a patron is a paid member or not. 2017-07-17 06:02:32 +00:00
Jonathan Rosenbaum ac54744d20 Removes debugging code. 2017-07-17 06:01:02 +00:00
Jonathan Rosenbaum 60a63e360a This creates divs spans to show data about membership / volunteers. 2017-07-17 05:58:53 +00:00
Jonathan Rosenbaum aee1543b0c Gets rid of debug and unnecessary code. 2017-07-17 00:31:56 +00:00
Jonathan Rosenbaum 1c7d28dd36 Working properly, was borrowing some volunteer metric query before. 2017-07-17 00:28:31 +00:00
Jonathan Rosenbaum 447f7afd61 Now properly finds paid members who are volunteers by metric. 2017-07-17 00:16:44 +00:00
Jonathan Rosenbaum d1c4b91a1f Header description improvement. 2017-07-15 23:41:42 +00:00
Jonathan Rosenbaum f44c6d2bb3 Adds stats for paid members. 2017-07-15 23:38:49 +00:00
Jonathan Rosenbaum 29eefefd39 Nicer than using exclude in .git 2017-07-15 22:51:52 +00:00
Jonathan Rosenbaum 2fd156e66e More for DHHR. 2017-07-15 22:45:23 +00:00
Jonathan Rosenbaum 8f7f737068 Adds a link to dhhr.php
This file is currently not in devel, but it is being used for Positive Spin.
2017-07-15 22:43:05 +00:00
Jonathan Rosenbaum 7286fc8c3e Adds a link to dhhr.php
This file is currently not in devel, but it is being used for Positive Spin.
2017-07-15 22:39:12 +00:00
Jonathan Rosenbaum 2617c008c0 Improves the header information with days/hours. 2017-07-15 22:30:00 +00:00
Jonathan Rosenbaum 461bddac81 Improves the output. 2017-07-15 22:20:46 +00:00
Jonathan Rosenbaum 163645a329 This corrects the sql membership logic. 2017-07-15 22:08:09 +00:00
Jonathan Rosenbaum 2c78a54486 You can now use local_configuations.php for configuration. 2017-07-15 19:12:20 +00:00
Jonathan Rosenbaum ce921e8169 Added realpath so that included files work properly. 2017-07-15 18:48:34 +00:00
Jonathan Rosenbaum 2d12b59786 You may now use Connections/local_configurations.php for configurations. 2017-07-15 18:14:44 +00:00
Jonathan Rosenbaum c54bd12f16 Added a little css magic for the footer. 2017-07-15 06:04:35 +00:00
Jonathan Rosenbaum 57f3a2b9ef Reverse wiki link. 2017-07-15 05:53:07 +00:00
Jonathan Rosenbaum d2c5e518c7 Wiki link. 2017-07-15 05:51:41 +00:00
Jonathan Rosenbaum ad9cb37cd4 Adds Bugs, Wiki, and Development info in the footer! 2017-07-15 05:49:15 +00:00
Jonathan Rosenbaum d8d16af935 Checking if adding a space after # in Markdown brings back the header. 2017-07-15 04:39:15 +00:00
Jonathan Rosenbaum 51f91ddbad Add a deposit to initialize the POS 2017-07-14 03:21:33 +00:00
Jonathan Rosenbaum bb89cba8ba Thought it would be a good idea to add the database schema. 2017-07-13 19:45:14 +00:00
Jonathan Rosenbaum dfc8bd477a Changes length of description shown. Allows for lazy searches in the browser. 2017-07-13 19:03:40 +00:00
Jonathan Rosenbaum dc228a84ca Adds full Desciption for each description when hoving over column. 2017-07-02 21:46:00 +00:00
Jonathan Rosenbaum aa0f870d28 Provides error checking when sold_to or sold_by are not logged-in. 2016-10-10 07:32:54 +00:00
Jonathan Rosenbaum 2d3a184e84 Corrects error checking for middle name.
When and existing contact was updated it would produce an error that the
contact already existed, and a new middle name needed to be used, also when
created a contact without adding a first and/or last name the same error was
produced.  This fix corrects that bug.
2016-05-09 04:19:05 +00:00
Jonathan Rosenbaum e7120a042a Fixing bug created by previous commit.
Only increasing max_name_length for the one known affected function.  In the
future will need to explore this even further, since there are names a lot
longer than 20 characters.
2016-03-26 07:13:10 +00:00
Jonathan Rosenbaum 6d4585b804 $max_name_length is now globally controlled.
20 was too short for some names, increased it to 30, not sure why this variable
was historically necessary.
2016-03-26 07:02:23 +00:00
Jonathan Rosenbaum 8ed593e4d5 This adds WAIVER_LABEL so that it can be user defined.
The button changes to "Show Complete Text".
2016-03-26 05:37:52 +00:00
Jonathan Rosenbaum f783891e95 The first stage of allowing the waiver label to be modified in
database_functions; the next step will be testing changes to
contact_add_edit.php on the test system.
2016-03-26 05:12:31 +00:00
Jonathan Rosenbaum 4c6622440f Adds proper comparison for unique visitors. CAST can be used, too. 2016-02-03 08:31:01 +00:00
Jonathan Rosenbaum f0263359f2 Changed a title. 2016-01-30 20:44:43 +00:00
Jonathan Rosenbaum 7d2372dc15 Adds paid membership period in days. 2016-01-30 03:26:02 +00:00
Jonathan Rosenbaum 92fe18644d Adds membership stats. An important addition.
Currently, searches ranges for volunteer specs for membership, and notes paid
member when they also qualify as a volunteer member.
2016-01-30 03:19:01 +00:00
Jonathan Rosenbaum 16e0bbcbf9 Adds documentation for Memberships transaction_type_id. 2016-01-30 03:16:50 +00:00
Jonathan Rosenbaum ff3e59e2d0 The beginnings. Looking forward to this one, and linking to paid members. 2016-01-29 10:59:02 +00:00
Jonathan Rosenbaum 8eac9b6dd5 Stat totals for shop types. In the future a graph would be nice. 2016-01-29 10:38:55 +00:00
Jonathan Rosenbaum 4a77289b2f Adds mysql free specific to the query. 2016-01-29 10:37:15 +00:00
Jonathan Rosenbaum 2fba96db94 This fine tunes the searching to one day. 2016-01-29 07:47:44 +00:00
Jonathan Rosenbaum 9b9fbe6d55 Minor changes. Make button text green. 2016-01-29 07:10:33 +00:00
Jonathan Rosenbaum a8ffd9fdf1 Applies new css changes (stats.css). 2016-01-27 23:11:11 +00:00
Jonathan Rosenbaum 78ef360e1b New link for Community Service hours! 2016-01-27 23:10:12 +00:00
Jonathan Rosenbaum 0e9a91eb69 Adds date range serach for community service hours. A much needed feature. 2016-01-27 23:08:11 +00:00
Jonathan Rosenbaum b3734d6591 This creates a unified file for stats css. 2016-01-27 23:07:15 +00:00
Jonathan Rosenbaum d26dc1cef1 Adds a Calendar Date Picker (PickMeUp).
This is nice stuff, always a delight to utilize ajax.  More stat pages may have
this change with stats.js operated globally.
2016-01-27 10:36:27 +00:00
Jonathan Rosenbaum e54836d09a Adds statuses for volunteers and visitors, totals, and total combined. Pretty interesting stats. Will add date range submit next. 2016-01-26 06:22:28 +00:00
Jonathan Rosenbaum 3456b069f0 Corrects the paths. 2016-01-26 06:16:39 +00:00
Jonathan Rosenbaum 7a451c3002 This makes shop_log a class, too. Probably transactions.css isn't the most logical place for these classes but it works for now. 2016-01-26 06:14:59 +00:00
Jonathan Rosenbaum 3358af425f Added documentation for other_volunteer. 2016-01-26 04:23:34 +00:00
Jonathan Rosenbaum 9ff3b1219f Makes css correct, and allows fine control for stats. 2016-01-25 08:52:09 +00:00
Jonathan Rosenbaum 8522c0e985 As it turns out, adding base was not such a great idea. 2016-01-25 08:15:52 +00:00
Jonathan Rosenbaum 91ede32f80 Adds other_volunteer to the table. Useful for treating community volunteer hours differently in stats, etc. 2016-01-25 08:04:40 +00:00
Jonathan Rosenbaum a0f974ee58 This adds the base tag href="/" that corrects several issues for finding resources in the head. Things look different. 2016-01-25 07:44:28 +00:00
Jonathan Rosenbaum baa196ab39 This adds a Status Totals by Date Range link. 2016-01-25 07:42:42 +00:00
Jonathan Rosenbaum 1e5cec042a Merge branch 'devel' of https://github.com/fspc/Yellow-Bike-Database into devel
Hopefully, no issues merging.
2016-01-19 08:54:10 +00:00
Jonathan Rosenbaum 72da7e96d9 BUG Fix: When the year changed from 2015 to 2016, there was a javascript error
due to coding that affected noUiSlider, and also caused payment_type not to be
recorded in the database because of the correlating javascript issue.  Also,
this caused the Deposit Range not to work correctly.
2016-01-19 08:39:37 +00:00
Jonathan Rosenbaum 818caf32da And here is the important file for 90c93eb. 2015-12-27 19:40:21 +00:00
Jonathan Rosenbaum 90c93eb996 Improves the css a little (in transaction.css) for shop_log now that table is relative to take into account longer statuses. 2015-12-27 19:36:07 +00:00
Jonathan Rosenbaum 6d1bb2ad8b Modifies Student Volunteer to Student Volunteer/Community Service
Changes fixed size in shop_log to relative for sign-in display
Changes Donations to the accounting group Donations
2015-12-27 01:29:46 +00:00
Jonathan Rosenbaum 263e6ceb69 Simply changes positivespin.org/home2 to positivespin.org. In the future this should be unhardwired. 2015-12-26 06:22:13 +00:00
Jonathan Rosenbaum c5755bcddf Added the change, not just documentation, for parent 3234faa46. 2015-12-03 02:25:22 +00:00
Jonathan Rosenbaum 3234faa464 This tiny change fixes the Bookkeeping Reports. What threw me off was the caveat concerning the purpose of "Accounting Group", basically is used to group together similar types of transactions, like Sales, Deposits, and Receivables. 2015-12-03 02:16:57 +00:00
Jonathan Rosenbaum e02e1b74d4 Tests to find out if a Patron's name already exists in the database.
If so, this error is produced:  Your name already exists, please choose a different middle initial.
2015-12-02 09:53:58 +00:00
Jonathan Rosenbaum 5737b195f9 Brings back date_created in contacts after inadvertently removing it when improving contact creation. Originally, this code
$insertSQL = sprintf("INSERT INTO contacts (date_created) VALUES (%s)",
						   GetSQLValueString('current_time', "date"));

instantly created a contact, which was very annoying.
2015-11-30 23:20:41 +00:00
Jonathan Rosenbaum a303522b1a Update README.md 2015-10-14 03:24:52 -04:00
Jonathan Rosenbaum 171b779df7 Removes unneccessary information from the top of the page.
1) It is not clear what the historic purpose was of having shop 90 at the top of the page.
2015-05-09 05:35:01 +00:00
Jonathan Rosenbaum b4387774d7 Fixed a bug found by Drew Gatlin using GetSQLValueString.
This uses addslashes() to escape comments.

Drew discovered the bug while entering a comment in the PS shop.  He is studying at Civil Engineering at WVU.  Drew actually began his journey at YBD - http://www.crazyguyonabike.com/directory/?user=JGatlin  - now that is pretty cosmic.  :)

My name is Drew, or John depending on whom you ask. I'm currently "taking some time off" and touring throughout the southwestern United States -- I might venture into Mexico at some point in the next couple of months. Before I began this journey I lived in Austin, TX for most of my young life and attended Hendrix College in Conway, AR for a year and a half. In Austin I spent(/spend whenever I go back) a lot of time at the Austin Yellow Bike Project (YBP) and just recently got to know those over at Bikes Across Borders (BAB). In fact, I did my first tour with BAB in January of this year (2008) from Austin to Nuevo Laredo, Mexico. My experience with YBP led me to help start a bike project in Conway called Back In The Saddle Bike Collective in January 2007. The organization is currently thriving and operating out of two storage units and brings me much happiness. I'll continue working with them when I head back to school in the fall of 2008. For now, all I want to do is tour as long as possible. I expect I'll be able to keep it up at least until May, and I hope to be able to head into Mexico before it's all over.
2015-05-05 07:51:05 +00:00
Jonathan Rosenbaum 5b42c9da3f Cleans up code from previous rendition. 2015-04-15 07:25:51 +00:00
Jonathan Rosenbaum a671e41ffd This resolves the issue with contacts created on multiple terminals.
0) concurrency issue, one contact_id was edited by 2 or more terminals
1) Better than having a new contact_id created everytime the contact_add_edit page is opened which was the behavior of the original program.
2) Still need to clean-up the code a little, and do a little bit more testing, but appears to be working nicely.
3) Still uses GET for initial setup, a todo to change.
4) Glad the bug was found, and now is fixed.
2015-04-15 06:41:12 +00:00
Jonathan Rosenbaum ef058ba56b Removal of hardwired universal login. 2015-04-13 09:04:11 +00:00
Jonathan Rosenbaum 109cf3d3c9 Adds checking number to cvs num if one exists. 2015-04-11 05:15:47 +00:00
Jonathan Rosenbaum e983cc7d0f Added statements for anonymous transactions. 2015-04-11 04:13:22 +00:00
Jonathan Rosenbaum f23720cf6d Adds coordinators name to the csv description. 2015-04-11 02:35:00 +00:00
Jonathan Rosenbaum 80d85c9dcd Adds patrons name to the csv description. 2015-04-07 05:55:32 +00:00
Jonathan Rosenbaum a1b7d0df0f Downloads GnuCash file(s) to the browser! 2015-04-06 10:36:28 +00:00
Jonathan Rosenbaum 6d636aaff6 Removes an uncessary mysql_fetch_assoc line from credit. 2015-04-06 09:10:25 +00:00
Jonathan Rosenbaum 76ad12e4a3 Returns directory and filename for GnuCash csv 2015-04-06 08:39:31 +00:00
Jonathan Rosenbaum f89c86384a Creates GnuCash csv transaction files!
1) Does not automatically download them the browser yet, but can be found in the designated directory.  Works great with GnuCash!  Victory!
2015-04-06 07:31:42 +00:00
Jonathan Rosenbaum 7997087a85 Lol, this improves select yourself gui.
1) moves error text to the right of shop user select
2) changes error to "Please Select Yourself"
2015-04-06 02:26:02 +00:00
Jonathan Rosenbaum 10ac1bb58a Minor improvements. 2015-04-05 19:46:59 +00:00
Jonathan Rosenbaum 6a71e63e0e Moves repair policy above learn more and removes blockquotes. 2015-04-05 19:42:01 +00:00
Jonathan Rosenbaum d37752cf03 Improved the existing user part a little bit more. 2015-04-05 19:28:57 +00:00
Jonathan Rosenbaum ab1343d4d1 Adds existing user and link to update information 2015-04-05 19:16:41 +00:00
Jonathan Rosenbaum 099b7d6e6a This improves the menu based on context.
1) Sign In/Sign Out will be Current Shop for Coordinator/Greeter
2015-04-05 18:56:31 +00:00
Jonathan Rosenbaum dacb562b82 Adds div hide to show_more()
1) third arguement will hide div on click or submit
2) another user enhancement
2015-04-05 18:47:16 +00:00
Jonathan Rosenbaum 878f6857e0 Probably this will work better. 2015-04-05 09:29:08 +00:00
Jonathan Rosenbaum 63db1d9928 Improves GUI a little bit more. 2015-04-05 09:10:53 +00:00
Jonathan Rosenbaum ee46dc8fd5 GUI and logic changes from practical experience in the shop environment
1) makes sign in button larger
2) changes "Current Shop" menu text to "Sign In" for normal user
3) takes all users after submitting contact to Sign In page rather than only new users.
2015-04-05 08:52:54 +00:00
Jonathan Rosenbaum c5443438f9 initial templating of gnucash csv creation 2015-04-03 06:54:16 +00:00
Jonathan Rosenbaum 81fdd2c518 send values for processing individual csv files for each selected account type 2015-04-03 05:00:51 +00:00
Jonathan Rosenbaum 45b71aca5c Adds submit button and improves gui.
1) Adds more text explanation .. although NULL transactions are just an experimental idea.
2) beginnings of submit code
2015-04-02 20:15:59 +00:00
Jonathan Rosenbaum bae4030274 $0 deposits now acceptable for record-keeping reasons
Originally, deposits of $0 (amount > 0) would not be considered real deposits, however, there may be shops where only non-monetary transactions occurred (amount >= 0) which would be useful to record in an accounting program.
One caveat, if a monetary transaction is recorded, but the depositor only enters $0, the deposit will show "Difference: n/a", however this should be a cue since it should be obvious that a real world deposit of $0 would not be made at a bank.
2015-04-02 03:57:10 +00:00
Jonathan Rosenbaum 8057a6733a Added some pertinent advice about self-signed certs. 2015-03-24 07:34:09 +00:00
Jonathan Rosenbaum 1c50bdc7bc Adds a hidden value for date.
1) Allows shop to be updated, without it dissapearing because the date is zeroed out.
2) Because input became a div in previous commit.
2015-03-24 05:55:29 +00:00
Jonathan Rosenbaum 25e030c613 Removes the ability to edit shop date.
1) Not necessary for a production site
2) Great for testing from the interface when a shop needs to be deleted, however, this can be done just as easily directly through the database.
2015-03-24 05:11:16 +00:00
Jonathan Rosenbaum f919422de4 Turns off the ability to delete a users sign-in entry.
1) Bots like to follow the delete link on demostrations and delete all the time-in entries.
2) YBDB adhers to open trust metrics that are common at bicycle collectives, bots really do not care about trust including bots from google, they love exploring every link though.
3) This functionality isn't really necessary since it is possible to make the sign-in time the same as the sign-out time if the person changes their mind about their visit.
2015-03-24 04:47:10 +00:00
Jonathan Rosenbaum 8e20312ca7 Clarified documentation for SHOW_SHOP_ID
- This is the ability to making transaction id editable
- Concurrent shops at different locations
- Same shop location at a different time
2015-03-22 01:24:50 +00:00
Jonathan Rosenbaum e95b40911b Need to improve the order. 2015-03-20 05:28:10 +00:00
Jonathan Rosenbaum 60383f9641 More bits of wisdom. 2015-03-20 05:25:15 +00:00
Jonathan Rosenbaum 1444e9f971 Some more bits of wisdom. 2015-03-20 05:08:18 +00:00
Jonathan Rosenbaum aa38572bb9 Minor changes in examples. 2015-03-19 08:18:34 +00:00
Jonathan Rosenbaum 358a507022 Adds some more clarity. 2015-03-19 07:37:45 +00:00
Jonathan Rosenbaum 6754c9a324 Additions to help in examples.
1) updated information on how to ensure that passwords are hidden even wehn KeePass is opened.
2) added docker.txt which goes into details about sysadm of docker.
2015-03-19 07:05:20 +00:00
Jonathan Rosenbaum 67bbf33283 Added some power-manager suggestions. 2015-03-18 21:13:43 +00:00
Jonathan Rosenbaum 0fe1f9e870 No need for an example certificate, text provides better inforomation. 2015-03-18 20:52:27 +00:00
Jonathan Rosenbaum 71ab549a37 Added desktop startup application information. 2015-03-18 20:49:51 +00:00
Jonathan Rosenbaum 595618d789 Explains how to secure the password.
There are other things that can be done within the terminal to prevent tampering, e.g., read-only environment,
but the above protects the password from hacking, eavesdropping, and from regular users
in the shop, basically, only the sysadmin and bookkeeper should have remote access via the password.
So, YBDB, although on the internet will be confined to the terminal(s) you allow it to be on, and
the Point of Sale will be at the proper location .. at the front of the Community Bike Shop where people
walk-in/walk-out.
2015-03-18 15:29:57 +00:00
Jonathan Rosenbaum 277bad2d07 Upstart example with monit stanza. 2015-03-18 13:38:15 +00:00
Jonathan Rosenbaum fd6371598a The beginnings of showing when volunteer gains membership status.
1)  Based hours/days
2)  Will add calendar year spec.
2015-03-17 17:13:11 +00:00
Jonathan Rosenbaum 67ffd06c37 Distinct values if user logins more than once - list_CurrentShopUsers
1) a user can serve in many roles, but before this change there were duplicated entries in the pull-down in transactions if that would happen.
2015-03-14 19:24:47 +00:00
Jonathan Rosenbaum 8d73c85cca Corrects no error check for waiver under Mozilla.
1)  Strangly Chromium didn't pick-up on this bug, but worked perfectly.
2015-03-14 06:48:26 +00:00
Jonathan Rosenbaum 825b4cbf90 Caught a typo in the waiver, doesn't affect code. 2015-03-07 07:16:00 +00:00
Jonathan Rosenbaum ec28310f43 The header was pointing to the wrong directory. Corrected. 2015-03-07 07:05:13 +00:00
Jonathan Rosenbaum 71aa35af00 Fixed two bugs with interest survey.
1)  Removed UNIQUE from selections.selection
2)  SELECT query added contact_id

nicer
2015-03-06 18:39:59 +00:00
Jonathan Rosenbaum 5a36eea47b Stores comments from interest inventory as 1. 2015-03-06 09:38:46 +00:00
Jonathan Rosenbaum ac1aea3651 Remembers state per contact_id for interest survey.
1) still need to store comments
2015-03-06 08:36:51 +00:00
Jonathan Rosenbaum e9e3a0ef66 This completes the interest survey logic.
1).  In confs, update works well, delete has an issue with on delete cascade.
2).  Saves state properly.  Now just need to create a front-end to query for volunteer organizers.
2015-03-06 08:27:15 +00:00
Jonathan Rosenbaum 433ab1a224 Changed table name from choices to selections. Makes better sense. 2015-03-05 20:20:32 +00:00
Jonathan Rosenbaum 1ee42f580a This changes the database schema for interest survey. 2015-03-05 20:08:21 +00:00
Jonathan Rosenbaum e33531303f Interests now populate the database as defined in the configurations.
1). Directions are in database_functions.
2). Initial population occurs on first submit.
3). Interests can be changed or deleted
4). It isn't a GUI interface, but it is useful for those without a MySQL understanding.
2015-03-05 05:09:50 +00:00
Jonathan Rosenbaum 6bbf55a25e Changes the header for shop_log and start_shop.
1)  Pages will go back to shop_welcome (original behavior) but for these two pages.  This prevents transaction pages from going back.
2) Added an About/Help link to the left.
3) Changed the width/margin of the associated tables so that it would line up withe new table presenting the menu links.
2015-03-04 18:52:49 +00:00
Jonathan Rosenbaum a82afc8425 This removes the handles from the slider for contacts.
1)  Also, changed the text a little for volunteer interests, added 3D-printing, etc.
2015-03-03 23:12:16 +00:00
Jonathan Rosenbaum 956df1761d Adds delete/update variables for interests.
1) No confirguration GUI yet, but this is many times better than requiring people to make these changes directly to the database.
2015-03-03 20:38:13 +00:00
Jonathan Rosenbaum ec69322128 Made id a fk to contact_id in contacts. 2015-03-03 10:59:14 +00:00
Jonathan Rosenbaum cf3cfe8838 Created a new table 'options' to store interest inventory values
also ..
1). zip to Zip Code .. some day will need to make international
2) changed Fill-in Form to "Check them out!" for volunteer interest .. subject to real world testing.
2015-03-03 10:27:11 +00:00
Jonathan Rosenbaum 88d717cdca Adds tab indexing an initial focus 2015-03-03 03:26:20 +00:00
Jonathan Rosenbaum 62231e8d68 Fixes the css issue for contact_add_edit. 2015-03-03 02:33:55 +00:00
Jonathan Rosenbaum 7f05a37f34 Adds the interests check boxes.
1)  Just needs a little css work by removing transaction css & js from head.
2015-03-02 21:43:45 +00:00
Jonathan Rosenbaum f5ddfdb70a CSS Enhancement to the volunteer interests div - a border. 2015-03-02 10:33:51 +00:00
Jonathan Rosenbaum 96e2c941b8 Begins linking volunteer interest form into page. 2015-03-02 09:54:45 +00:00
Jonathan Rosenbaum ae846cf5b9 This defines constants/variables for a volunteer interest form. 2015-03-01 09:11:02 +00:00
Jonathan Rosenbaum 6aa95e1ad4 Added an example of a working connector.
- mailman specific
- has been tested to work properly for both subscribe, and unsubscribe
- uses node.js
- two stage security
  1) password is specific to connector for recognization
  2) password used by list not kept local
- ssl used for all communication
- yeah!
2015-02-28 09:54:13 +00:00
Jonathan Rosenbaum 39def79d87 Improves the code to connector. 2015-02-28 06:36:36 +00:00
Jonathan Rosenbaum e51d5a1c89 Provides an interface to an email connector.
Define a url for an email connector that will connect to an email list.
The url can be a server:port, program, etc.
Name (First, Last) email address, and connector password will be sent to the connector.

The purpose of email connectors is to provide autonomy in the choice
of email services and programs.  E.g. mailman, googlegroups
See ./examples for an example connector
2015-02-28 03:08:26 +00:00
Jonathan Rosenbaum b1a11b9f3b Saves state for waiver & email_list, and more
1).  Adds configuration options to turn off waiver & email_list options
2).  Puts waiver in Connections/waiver.txt
3).  New MySQL waiver column added, receive_newsletter used for email_list.
2015-02-25 09:23:41 +00:00
Jonathan Rosenbaum 4cd269fd06 Improves start_shop, gets contacts ready for processing.
1) Slight improvements in UI with start_shop .. the date.
2) Adds deferred promise for contact.js.
2015-02-20 07:21:03 +00:00
Jonathan Rosenbaum 55a8de3df8 Adds error validation for email list slider. 2015-02-12 18:47:25 +00:00
Jonathan Rosenbaum 763587f840 Adds a toggle for email lists.
1).  Improvments to name/email regexp
2).  beginnings of validation logic for email list toggle
2015-02-12 07:17:59 +00:00
Jonathan Rosenbaum a1717c99af Fixes a minor textarea bug by removing whitespace in the code. 2015-02-11 07:48:30 +00:00
Jonathan Rosenbaum 386742da2d Spiffs up shop_log. 2015-02-11 07:06:32 +00:00
Jonathan Rosenbaum 2869299725 Prevents new contact_ids from being continuously created.
1). There must be at least a full_name.
2). Because of error validation that includes other required fields, too.
2015-02-11 05:22:18 +00:00
Jonathan Rosenbaum 7b64d0c494 Spiffs up contact_and_edit, adding error correction and required waiver.
1). Next step will be an opt-in/out to mailman.
2). Originally this program was using google lists, but there are too many steps for users involved.
2015-02-11 01:55:38 +00:00
Jonathan Rosenbaum 8f8e1623df Correct transaction_id for storage transactions in history. 2015-02-08 09:00:06 +00:00
Jonathan Rosenbaum b54cfe2312 Handles anonymous correctly in history.
1) 1 if checked
2) undefined if unchecked.
2015-02-08 07:45:47 +00:00
Jonathan Rosenbaum 82a2159fd4 Changes check_number to undefined if it doesn't exist. 2015-02-08 07:34:47 +00:00
Jonathan Rosenbaum 4a562671ec Handles check_number value correctly. 2015-02-08 07:10:47 +00:00
Jonathan Rosenbaum 4c87a15566 Provides correct payment_type value. 2015-02-08 07:05:07 +00:00
Jonathan Rosenbaum be823f25e6 Now chooses sold_to selector based on type. 2015-02-07 06:00:47 +00:00
Jonathan Rosenbaum e9b5cec740 Added transaction_id to the blob. 2015-02-07 04:34:45 +00:00
Jonathan Rosenbaum 26a0721620 Nows uses deferred.promise, and recognizes 'keypress' for history. 2015-02-07 01:38:45 +00:00
Jonathan Rosenbaum e47498a00a Transaction history is now stored.
1).  Next step, view history in the transaction when more than 1 transaction.
2015-02-06 09:50:57 +00:00
Jonathan Rosenbaum 82e4eb3f29 Turned error check into a function.
1).  This allows "close" to produce errors, although not actually prevent them.
2).  This provides a return code for "save" so that the transaction history can be saved.
2015-02-06 07:31:03 +00:00
Jonathan Rosenbaum ba0b491344 Corrected the focus on transction_id, also
1).  In mysql, description is not text
2).  .. added history as blob, drupalish
2015-02-06 06:24:18 +00:00
Jonathan Rosenbaum ebc4bdd989 Adds "use strict", and moved one function to the proper location. 2015-02-04 01:46:42 +00:00
Jonathan Rosenbaum 50ecfd22d1 Brings focus back to select > transaction_type, green in css. 2015-01-30 08:26:30 +00:00
Jonathan Rosenbaum be43ea3245 Show start storage original date if it has changed.
1).  Some css improvments.
2).  The beginnings of transaction history.
3).  Trying to find out why the window reloads twice on transactions without errors.
2015-01-29 07:32:02 +00:00
Jonathan Rosenbaum 1ed32814e1 Reversed previous change. 2015-01-28 19:55:43 +00:00
Jonathan Rosenbaum 232309de70 More validation for storage transaction in regards to save. 2015-01-28 19:47:16 +00:00
Jonathan Rosenbaum 6b8e10355f Patron must be signed-in to complete a storage transaction. 2015-01-28 19:31:27 +00:00
Jonathan Rosenbaum c31551d66a Fixed the payement type label bug, but altering the selector.
1).  This selector turned of edit when clicked, but because of the way it was construed it was hiding the label.  Only became obvious when the validation tests were added.
2015-01-28 08:12:13 +00:00
Jonathan Rosenbaum a2fbb3d5cc Added SHOP_SHOP_ID option.
1). Most collectives require only one shop at a time, but YBDB provides a way to handle 2 concurrent shops in the same location.  The current shop will be shown, and users will have to remember the number of the previous shop to enter into the transaction.  Note: Remote shops function independently via there IP identification.
2015-01-28 07:16:40 +00:00
Jonathan Rosenbaum 2175ab18e4 Removes a bug where Payment Type label became hidden.
1).  Relates an on load selector with hide() that has been preempted
     by the new error validation.  But will watch to make sure new
     bugs haven't been introduced.
2015-01-28 06:44:54 +00:00
Jonathan Rosenbaum b01649d369 Select Type is now static to avoid unnecessary errors.
1).  Makes better sense from a UI perspective.
2015-01-28 04:30:42 +00:00
Jonathan Rosenbaum e8610e6b2f Removes "no description" now that error validation is in effect.
1).  Deposits don't require a description.
2015-01-27 22:42:18 +00:00
Jonathan Rosenbaum 116416af06 Additional check, and namespace changes. 2015-01-27 22:39:17 +00:00
Jonathan Rosenbaum dba651a8e8 Adds checks for amount and payment_type to avoid false errors. 2015-01-27 22:25:20 +00:00
Jonathan Rosenbaum c813ea5eec If Patron isn't logged in but sold_to will validate correctly. 2015-01-27 22:08:02 +00:00
Jonathan Rosenbaum caedba99cc Allows storage transactions error validation to work properly. 2015-01-27 21:53:22 +00:00
Jonathan Rosenbaum b0f940b2b1 Fixed check number error validation bug. 2015-01-27 21:18:31 +00:00
Jonathan Rosenbaum ca4895037c Corrects payment_type error.
1). Logic for storage transactions still needs to be added
2015-01-27 19:28:33 +00:00
Jonathan Rosenbaum 597982369d Fixes a bug when decimal places get too large for nouislider. 2015-01-27 08:26:17 +00:00
Jonathan Rosenbaum cdbfd74ddb Adds error checking for date and quantity. 2015-01-27 07:47:18 +00:00
Jonathan Rosenbaum 4254265850 Adds a large majority of error check for edit transactions.
1). Adds more to css
2). Changes $transaction_id to transaction_id in *js
3). Shortens some selectors
4). Adds additional error spans
5). A few checks need bug fixes (check_number, payment_types)
2015-01-27 07:27:27 +00:00
Jonathan Rosenbaum 60bd4befea Replaces show_soldto_location with 2 new columns.
1). show_soldto_signed_in or show_soldto_not_signed_in
2).  More info can be found in populate.sql
2015-01-26 21:10:41 +00:00
Jonathan Rosenbaum 75bf45ad0e Adds sale date error span. 2015-01-26 19:32:43 +00:00
Jonathan Rosenbaum fd7ad163cf Adds a check for obj.sold_to. 2015-01-26 19:18:46 +00:00
Jonathan Rosenbaum 50c740feb8 Adds a hidden input field to remember non-logged user value in edit trans. 2015-01-26 19:15:36 +00:00
Jonathan Rosenbaum 304c9e2f37 Added not logged-in logic for transaction edit, also:
1). Added error spans for transaction edit
2). Removed some css from transaction.js
3). Added css for errors to transaction.css
2015-01-26 18:52:16 +00:00
Jonathan Rosenbaum 934bc4438c Gives #1 trans and id of 0. 2015-01-26 02:43:47 +00:00
Jonathan Rosenbaum deaa8ea02f Adds new logic to handle 1-only real depost.
1).  If 1 real deposit exists, and next real deposit hasn't been
     deposited.
2015-01-26 02:09:04 +00:00
Jonathan Rosenbaum 5e11243d41 Provides fake deposits when none or only 1 exists. 2015-01-25 23:53:08 +00:00
Jonathan Rosenbaum 1979bde7eb Prevents both slider handles from having the same value. 2015-01-25 06:03:02 +00:00
Jonathan Rosenbaum cdf99e4005 Simplifies the code, fixes a bug on upper with jumping to 0. 2015-01-25 04:31:36 +00:00
Jonathan Rosenbaum df66ead71e Puts inputs on same row as transaction slider. 2015-01-25 03:00:15 +00:00
Jonathan Rosenbaum 88cdfc5887 Made transaction slider keyboard friendly. 2015-01-25 02:51:47 +00:00
Jonathan Rosenbaum 063c9fcfe3 Adds all deposits to the range per year, and last deposit from prev year. 2015-01-24 06:43:00 +00:00
Jonathan Rosenbaum 9d4ec10312 Adds range to slider, and links it to year choice. 2015-01-24 03:33:17 +00:00
Jonathan Rosenbaum 2593c6fe9b Improvements to saving search state. 2015-01-23 10:19:22 +00:00
Jonathan Rosenbaum 9e314551f9 Update README.md 2015-01-22 01:03:08 -05:00
Jonathan Rosenbaum 46c18a181c Update README.md 2015-01-22 01:01:05 -05:00
Jonathan Rosenbaum ab87744f46 Removes hardwired options in shop_log, preps for GnuCash CSV. 2015-01-22 04:36:25 +00:00
Jonathan Rosenbaum 04c2574c99 Removed rest of PHP SELFs, mapped account to values in conf. 2015-01-21 21:47:16 +00:00
Jonathan Rosenbaum 69cc2241d2 Moved individual_history back to /, and removed another PHP_SELF from trans. 2015-01-20 06:12:13 +00:00
Jonathan Rosenbaum 2dd7573408 Saves state for trans search; slider improvements. 2015-01-17 10:28:10 +00:00
Jonathan Rosenbaum c034d5d72e Fixes a search bug when date is in the past. 2015-01-16 00:18:58 +00:00
Jonathan Rosenbaum 687bb3ca01 Libraries used by the new visual interface for csv. 2015-01-15 21:31:39 +00:00
Jonathan Rosenbaum e59f090355 Added more of the interface to generate csv files for GnuCash. 2015-01-15 21:29:36 +00:00
Jonathan Rosenbaum 4bb22b2ea1 Updates unbind() to on(). 2015-01-15 09:34:01 +00:00
Jonathan Rosenbaum f8b96a05b7 When no shop, prevents unloaded page transactions from being edited. 2015-01-15 07:33:09 +00:00
Jonathan Rosenbaum fd9fe984d1 More to the attic, PSised welcome page. :) 2015-01-14 07:04:11 +00:00
Jonathan Rosenbaum 0fa5ecc9f8 Moving more unecessary files to the attic. 2015-01-14 06:23:54 +00:00
Jonathan Rosenbaum 8d2b3d40d3 Moves unused devel files from the distant past into the attic. 2015-01-14 06:17:04 +00:00
Jonathan Rosenbaum e444cdb93c Preparing GnuCash CSV interface, and fixed no shop bug with new logic. 2015-01-14 06:10:04 +00:00
Jonathan Rosenbaum d689505318 Spiffed up the search near the footer. 2015-01-13 20:08:03 +00:00
Jonathan Rosenbaum e168381a05 Fixes a bug where storage transactions don't show up in searches if NULL.
1.  Also adds a configuration for a directory to write/download csv files from.
2.  Including directions for the above.
2015-01-13 05:56:03 +00:00
Jonathan Rosenbaum bf2527e1cf Changed some text is populate. 2015-01-12 18:57:52 +00:00
Jonathan Rosenbaum a44e5e93f2 Fixes an issue when Sum has ",", and a spelling mistake. 2015-01-12 06:00:51 +00:00
Jonathan Rosenbaum c1a33b7076 Provides anonymous capability for transactions. 2015-01-12 05:19:09 +00:00
Jonathan Rosenbaum 9f5c338738 Storage transaction id now changes to most recent when transaction complete. 2015-01-11 09:09:36 +00:00
Jonathan Rosenbaum 2a0d9f542f Resets payment_type && amount if storage date is nullified. 2015-01-10 11:06:21 +00:00
Jonathan Rosenbaum a082412e4c When no shop, no Change Fund mouseover editing. 2015-01-10 08:38:03 +00:00
Jonathan Rosenbaum 1929c5d752 Commented out some unnecessary code. 2015-01-10 08:20:23 +00:00
Jonathan Rosenbaum dfa8d2b2ea Moved display:none to php for reload. 2015-01-10 08:18:08 +00:00
Jonathan Rosenbaum b68b4926b4 Added Bike Delivery as shop type. 2015-01-10 08:01:18 +00:00
Jonathan Rosenbaum d16811fe95 Added editable Change Fund.
1. Mouseover allows edit of Change Fund.
2. Difference is shown, and stored in db for page reloads.
2015-01-10 07:54:12 +00:00
Jonathan Rosenbaum 33b4d29417 Provides error correction for no current shop. 2015-01-07 07:59:33 +00:00
Jonathan Rosenbaum b5be74863d Fixes an annoying problem with PHP_SELF, corrected by using "". 2015-01-06 10:16:36 +00:00
Jonathan Rosenbaum 1791320659 Returns an important call inadvertantly removed. 2015-01-06 09:01:51 +00:00
Jonathan Rosenbaum 7658c11d53 Added check number when Check is clicked. 2015-01-06 08:25:57 +00:00
Jonathan Rosenbaum a94d62c78b Improves user input and output for Deposit Calculator. 2015-01-04 08:50:47 +00:00
Jonathan Rosenbaum d40dfca931 Cleans up the code, and allows proper behavior.
1.  async:false because mysql can be slow
2.  improved a regexp causing weird behavior with edit button
2015-01-04 01:35:19 +00:00
Jonathan Rosenbaum 511dc81471 Added some human interaction with Deposit Calculator. 2015-01-03 11:00:33 +00:00
Jonathan Rosenbaum 890b8f1b15 Yeah, working mysql/json logic is in place! 2015-01-03 07:50:48 +00:00
Jonathan Rosenbaum d8b74b7a79 More preps for Deposit Calculator. 2015-01-02 22:44:27 +00:00
Jonathan Rosenbaum f6d392b0b5 Several improvements:
1.  Now uses better function, CurrentShopUser for signed-in users so that people need to be signed in to make purchases.
2.  Improved header text for Contacts.
3.  Removed edit link when paid checked.
4.  Fixed populate.sql
5.  Added payment type column in transaction_log.php
2015-01-02 10:12:37 +00:00
Jonathan Rosenbaum 06188f5dfe Now will properly report current shop for shop 1. 2014-12-31 08:18:37 +00:00
Jonathan Rosenbaum 9ab7723b6a Fixed now. 2014-12-31 07:48:24 +00:00
Jonathan Rosenbaum 3dc17d58dd Fixed sql. 2014-12-31 07:34:10 +00:00
Jonathan Rosenbaum d41f647211 Removed an unnessary parenthesis in sql. 2014-12-31 06:00:20 +00:00
Jonathan Rosenbaum dc7dd4d01f Beginning of transaction calculator framework & enh. 2014-12-31 05:53:49 +00:00
Jonathan Rosenbaum 7ddff6778c More enhancements on deposits before adding business logic. 2014-12-30 16:39:31 +00:00
Jonathan Rosenbaum baebf5612b Improves Deposit presentation.
Also,
1. renumbered tabindex
2. added constant for default number of rows shown for transactions.
2014-12-30 09:32:59 +00:00
Jonathan Rosenbaum 2370ccee7b Many goodies for a better user experience.
1. New NONSHOP constant. 0=no function =>1 is function
2. Moved individual_hours_log back to /
3. Added better view/business logic for storage transactions,
   and new documentation.
4. New users logging in can immediately add a project/comments
5. Added more documentation to populate and a new show_payment field.
2014-12-30 08:34:49 +00:00
Jonathan Rosenbaum f72f022811 Added payment_type. 2014-12-29 07:53:41 +00:00
Jonathan Rosenbaum baf8f61d9e Fixes time behavior for DST, and adds a user-defined constant. 2014-12-29 02:25:50 +00:00
Jonathan Rosenbaum 6f1a9d241e Another UI change, css file, and sql change. 2014-12-29 01:18:02 +00:00
Jonathan Rosenbaum 203708dad2 Improvements to the transaction UI. 2014-12-29 00:14:26 +00:00
Jonathan Rosenbaum d2332719a0 Replaces some hardwired variables with user-defined constants. 2014-12-27 07:59:59 +00:00
Jonathan Rosenbaum 2274b69a8e Replaces some hardwired variables with user-defined constants.
populate.sql will be updated usually via work done at https://github.com/fspc/ybdb
2014-12-27 07:56:53 +00:00
Jonathan Rosenbaum 508ed7c3b9 jQuery - when paid checkbox is checked/unchecked database is updated.
Color changes, too.
2014-12-26 06:26:26 +00:00
Jonathan Rosenbaum 87eb7fba3a Changes Submit to Save for better HID. 2014-12-23 06:15:46 +00:00
Jonathan Rosenbaum 879a30c191 Merge branch 'devel' of https://github.com/fspc/Yellow-Bike-Database into devel
Made a commit before pulling
2014-12-23 05:39:13 +00:00
Jonathan Rosenbaum b385089144 Replaces YBP home with PS home :), and turns relative links absolute. 2014-12-23 04:56:36 +00:00
Jonathan Rosenbaum a31eb65e32 Removes long line. 2014-12-20 16:54:03 -05:00
Jonathan Rosenbaum 43824b5016 Added header back. 2014-12-20 02:50:57 +00:00
Jonathan Rosenbaum ec6cd5d998 Brought back the header and footer. 2014-12-20 02:42:24 +00:00
Jonathan Rosenbaum 36987d3100 It is not necessary to have eclipse templates/plugins in a source dir .. rm. 2014-12-20 02:31:15 +00:00
Jonathan Rosenbaum 796c1f6ebb A few changes before implementing jquery, and move sql to sql dir. 2014-12-20 02:27:44 +00:00
Jonathan Rosenbaum c4abcd651d Adds back some code that got deleted as part of the long line. 2014-12-19 20:39:50 +00:00
Jonathan Rosenbaum f21ed0eba6 Makes files absolute for the constants so links work properly. 2014-12-19 20:20:44 +00:00
Jonathan Rosenbaum 752684c9df Gets individual*logs working again from new dir. 2014-12-19 20:16:52 +00:00
Jonathan Rosenbaum b815ebb714 Moves individual*logs to stats. 2014-12-19 20:12:56 +00:00
Jonathan Rosenbaum 57e0e1ea0f Adds jQuery to the header. 2014-12-19 18:53:11 +00:00
Jonathan Rosenbaum f384dacaf3 Removes annoying long line added by some pyscho editor. 2014-12-19 18:51:31 +00:00
Jonathan Rosenbaum 2c0f8325c1 Adds an uncompressed version of jQuery. 2014-12-19 18:19:27 +00:00
Jonathan Rosenbaum 64b06c541d Puts stat files in their own directory to make things cleaner; deletes *zip 2014-12-19 18:16:54 +00:00
Jonathan Rosenbaum e3cd977baf Removed - not necessary in source code. 2014-12-19 17:46:24 +00:00
Jonathan Rosenbaum e4c295468c These files are not necessary; used for Adobe Dreamweaver. 2014-12-19 17:38:52 +00:00
Jonathan Rosenbaum 5411617f64 Made several changes to transaction_log, removed unnecessary editor line from *select, added planb waiver to contact_add_edit, and changes to database_functions to fit into transaction changes. 2014-12-17 23:03:32 +00:00
Jonathan Rosenbaum e1092d5085 Fixes order for transaction pull-down when it is > 9 2014-12-15 17:25:05 +00:00
Jonathan Rosenbaum 10ac9f8410 Reverting, since this is copied over with Docker image. 2014-12-15 04:39:19 +00:00
Jonathan Rosenbaum 5636f65d33 Interesting changes made remotely with BlueFish in a Container.
The beginning of changing the logic of using location in transactions, to
using people.
2014-12-15 04:18:50 +00:00
864 changed files with 249024 additions and 8420 deletions
+15
View File
@@ -0,0 +1,15 @@
*~
*swp
csv/*
js/chosen
js/nouislider
CBDB/
php-console/
examples/cert.pem
Connections/local_configurations.php
js/PickMeUp-2.8.0/
json/shop.php
sql/populate-private.sql
stats/dhhr.php
temp/
test.php
+8 -3
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,6 @@
Positive Spin is a volunteer-run organization. Your volunteered time, and our
ability to benefit the community with our exciting services and programs are
directly related. We can provide funding for various committees. Please indicate
if you would be interested in helping us with any of the following management
needs, operations, events and programs.
Update your interests any time you are in the shop:
+33
View File
@@ -0,0 +1,33 @@
<h2>Waiver of Liability</h2>
<p>I, and my heirs, in consideration of my participation with Positive Spin
Incorporated hereby release Positive Spin Incorporated, its officers, directors
and agents, and any other people officially connected with this organization,
from any and all liability for damage to or loss of personal property, sickness,
or injury from whatever source, legal entanglements, imprisonment, death, or
loss of money, which might occur while participating in said
event/activity/class. Specifically, I release Positive Spin Incorporated from
any liability or responsibility for my personal well-being, condition of tools
and equipment provided and produced thereof, including, but not limited to,
bicycles and modes of transportation produced by participants. Positive Spin
Incorporated provides a working,mechanical environment and I am aware of the
risks of participation. I hereby state that I am in sufficient physical
condition to accept a rigorous level of physical activity and exertion, as is
sometimes the case when working in a mechanical environment. I understand that
participation in this program is strictly voluntary and I freely chose to
participate. I understand Positive Spin Incorporated does not provide medical
coverage for me. I verify that I will be responsible for any medical costs I
incur as a result of my participation.
</p>
<h2>Positive Spin's Safer Space Agreement</h2>
<p>As visitors or volunteers at Positive Spin, we agree to maintain a safer space.
A safer space is an inclusive environment in which everyone can feel welcome,
where no one is shown favoritism, and everyone can feel safe from oppressive,
discriminatory and hateful behavior and language. This includes, but is not limited to,
physical and verbal abuse, sexual harassment, or discrimination based on race, culture,
age, sex, gender identity, sexual orientation, religion, political beliefs, physical characteristics, disabilities, social or economic background.
</p>
<p>If you feel anyone is not abiding by this agreement, please tell a volunteer or
constructively confront the individual yourself. If behavior that violates this agreement persists,
it can potentially lead to being banned from Positive Spin.
</p>
+674
View File
@@ -0,0 +1,674 @@
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU General Public License is a free, copyleft license for
software and other kinds of works.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users. We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors. You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights. Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received. You must make sure that they, too, receive
or can get the source code. And you must show them these terms so they
know their rights.
Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.
For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software. For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.
Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so. This is fundamentally incompatible with the aim of
protecting users' freedom to change the software. The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable. Therefore, we
have designed this version of the GPL to prohibit the practice for those
products. If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.
Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary. To prevent this, the GPL assures that
patents cannot be used to render the program non-free.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Use with the GNU Affero General Public License.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:
<program> Copyright (C) <year> <name of author>
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<http://www.gnu.org/licenses/>.
The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
-109
View File
File diff suppressed because one or more lines are too long
+12 -3
View File
@@ -1,5 +1,14 @@
#Yellow-Bike-Database
# Yellow-Bike-Database
**Development Branch of Yellow Bike Project Hours and Transaction Database**
Yellow Bike Database (YBDB) is a specialized software for Community Bike Shops (CBS). It is one of the most, if not the most mature solutions currently available for CBSes. Originally, developed for the Austin Yellow Bike Project, this software fork has taken on a life of its own, borrowing on the simplicity of the original software but adding many enhancements to lessen the learning curve, and bring it into the 21st century!
The basic objective here since Yellow Bike Project does not host their own version control repository is to keep Main pristine, and do development work here, on the assumption that they may want to commit new changes. This branch is being used by [YBDB](https://github.com/fspc/ybdb), the BikeBike Docker image.
In 2014, Positive Spin of Morgantown, WV in the USA was looking for a way to replace the messy, ineffective, and highly error-prone paper based record system used by the shop. Docker images were created to
[test out and explore](https://bike.bikelover.org) what few projects could be found at the time. YBDB stood out, not because of its appearance, but because of how closely its approach mirrored the paper based recording system used by Positive Spin.
It was a successful choice, and continues to improve! You can read more about the FLOSS process at [bikecollectives.org in this presentation](https://www.bikecollectives.org/wiki/images/1/1e/2017-SE-BikeBike-Libre-slides.pdf).
There is a demo at [http://ybdb.wvcompletestreets.org](http://ybdb.wvcompletestreets.org). Try it out!
Docker Development is at [https://github.com/fspc/ybdb](https://github.com/fspc/ybdb).
Check out the [Wiki](https://github.com/fspc/Yellow-Bike-Database/wiki)!
File diff suppressed because one or more lines are too long
@@ -1,14 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<connections>
<connection id="83422b28-2181-4f36-b3b7-c239d76e66a2" type="sftp">
<name>YBDB_Remote</name>
<host>www.austinyellowbike.org</host>
<path>/home/austinyellowbike/ybdb.austinyellowbike.org/test1</path>
<login>austinyellowbike</login>
<compression>AUTO</compression>
</connection>
<connection id="c7c85d43-0d53-4a53-9445-3353c25f5474" type="workspace">
<name>YBDB</name>
<path>/YBDB</path>
</connection>
</connections>
@@ -1,10 +0,0 @@
' If there is an argument, use it as the directory to change to.
If WScript.Arguments.Length=1 Then
Set WshObj = CreateObject("WScript.Shell")
WshObj.CurrentDirectory = WScript.Arguments(0)
End If
' Launch the shortcut in the current directory which has the same
' base name as this script.
Set AppObj = CreateObject("Shell.Application")
AppObj.ShellExecute(Replace(WScript.ScriptFullName, ".vbs", ".lnk"))
@@ -1,89 +0,0 @@
README.portable (Draft)
=======================
This "portable" version of Git for Windows (MSysGit) does not need to
be installed. It will run from any directory you place it in, even
onto a USB thumbdrive. It will not write permanent entries into the
Windows registry. It does not need administrator privileges to "install".
Installation
------------
This package is contained in a 7-zip archive with a file name like
'PortableGit-<versionstring>.7z'. It is a self-extracting archive:
add the file extension '.exe', and you can (double-)click it; you'll be
asked for the desired target directory (which defaults to C:\Program
Files\Git). You may change that as needed or desired. Your user account
needs write access to the selected directory. (You can move that
directory with all its contents to a different place or computer at any
time should you later desire so).
Functional differences to "normal" MSysGit installation package
---------------------------------------------------------------
This version does not offer you the convenient right-click context menu
entries "Git GUI Here" and "Git Bash Here", because these would require
to add entries into the Windows registry.
Warning
-------
Since this portable package does not modify any Windows %path%
variables, it is not possible to run the git.exe and gitk.exe files
directly. Start the Git Bash or Git Cmd instead, or add the cmd/ folder
to your %path%.
How to start using PortableGit
------------------------------
If you are comfortable with a Unix-like shell, just launch 'git-bash.bat'.
If not, just launch 'git-cmd.bat'.
Alternatively, you can execute these commands to modify the %path%
variable temporarily:
set gitdir=c:\portablegit
set path=%gitdir%\cmd;%path%
Adjust the 'gitdir' according to your setup. As long as you do not
close the command window, you can now simply type "git" or "gitk" to
really call "c:\portablegit\cmd\git.cmd" or "c:\portablegit\cmd\gitk.cmd".
Quick start
-----------
Start configuring git with your personal settings:
git config --global user.name "Joe Sixpack"
git config --global user.email joe.sixpack@g_mail.com
Start using git:
git --help
How to change %path% permanently
--------------------------------
You may also want to make the modification to the %path% variable a
permanent one. The %path% variable may be changed:
* either on a System level (for all users in the lower pane), if you are
an Administrator
* or for your own user account only (in the upper pane).
To change the %path% variable permanently:
* right-click "My Computer",
* select "Properties",
* open "Advanced",
* click "Environment Variables",
* highlight the "Path" variable,
* click "Edit" (either in upper or in lower pane),
* add your specific path to front of "Variable value" field, separated
by a semicolon from the existing entry.
@@ -1,323 +0,0 @@
{\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss\fprq2\fcharset0 Arial;}{\f1\fnil\fcharset0 Arial;}{\f2\fnil\fcharset2 Symbol;}}
{\colortbl ;\red0\green0\blue0;\red0\green0\blue255;}
{\*\generator Msftedit 5.41.21.2509;}\viewkind4\uc1\pard\cf1\lang1033\b\f0\fs32 Git Release Notes (Git-1.7.3.1-preview20101002)\b0\fs20\par
Last update: 2 October 2010\par
\par
\b\fs24 Introduction\b0\fs20\par
\par
These release notes describe issues specific to the Git for Windows release.\par
\par
General release notes covering the history of the core git commands are included in the subdirectory doc/git/html of the installation directory. Look for files starting with RelNotes.\par
\par
\b\fs24 Known issues\par
\pard{\pntext\f2\'B7\tab}{\*\pn\pnlvlblt\pnf2\pnindent0{\pntxtb\'B7}}\fi-288\li432\b0\fs20 Some commands are not yet supported on Windows and excluded from the installation; namely: git archimport, git cvsexportcommit, git cvsimport, git cvsserver, git instaweb, git shell.\par
{\pntext\f2\'B7\tab}The Logitec QuickCam software can cause spurious crashes. See "Why does make often crash creating a sh.exe.stackdump file when I try to compile my source code?" on the MinGW Wiki (\cf0{\field{\*\fldinst{HYPERLINK "http://www.mingw.org/wiki/Environment_issues"}}{\fldrslt{\ul\cf2 http://www.mingw.org/wiki/Environment_issues}}}\cf1\f0\fs20 )\par
{\pntext\f2\'B7\tab}The Quick Launch icon will only be installed for the user running setup (typically the Administrator). This is a technical restriction and will not change.\par
{\pntext\f2\'B7\tab}curl uses $HOME/_netrc instead of $HOME/.netrc.\par
{\pntext\f2\'B7\tab}If you want to specify a different location for --upload-pack, you have to start the absolute path with two slashes. Otherwise MSys will mangle the path.\par
{\pntext\f2\'B7\tab}git and bash have serious problems with non-ASCII file names (Issue 80, 159).\par
{\pntext\f2\'B7\tab}If configured to use plink, you will have to connect with putty first and accept the host key.\par
{\pntext\f2\'B7\tab}As merge tools are executed using the MSys bash, options starting with "/" need to be handled specially: MSys would interpret that as a POSIX path, so you need to double the slash (Issue 226). Example: instead of "/base", say "//base". Also, extra care has to be paid to pass Windows programs Windows paths, as they have no clue about MSys style POSIX paths -- You can use something like $(cmd //c echo "$POSIXPATH").\par
\pard\b\fs24\par
Changes since Git-1.7.2.3-preview20100911\par
\par
\i\fs20 New Features\par
\pard{\pntext\f2\'B7\tab}{\*\pn\pnlvlblt\pnf2\pnindent0{\pntxtb\'B7}}\fi-288\li432\b0\i0 Comes with Git 1.7.3.1 plus patches.\par
{\pntext\f2\'B7\tab}Updated to Vim 7.3, file-5.04 and InnoSetup 5.3.11\par
\pard\li144\par
\pard\b\i Bugfixes\b0\i0\par
\pard{\pntext\f2\'B7\tab}{\*\pn\pnlvlblt\pnf2\pnindent0{\pntxtb\'B7}}\fi-288\li432 Issue 528 (remove uninstaller from Start Menu) was fixed\par
{\pntext\f2\'B7\tab}Issue 527 (failing to find the certificate authority bundle) was fixed\par
{\pntext\f2\'B7\tab}Issue 524 (remove broken and unused sdl-config file) was fixed\par
{\pntext\f2\'B7\tab}Issue 523 (crash pushing to WebDAV remote) was fixed\par
\pard\b\fs24\par
Changes since Git-1.7.1-preview20100612\par
\par
\i\fs20 New Features\par
\pard{\pntext\f2\'B7\tab}{\*\pn\pnlvlblt\pnf2\pnindent0{\pntxtb\'B7}}\fi-288\li432\b0\i0 Comes with Git 1.7.2.3 plus patches.\par
\pard\li144\par
\pard\b\i Bugfixes\b0\i0\par
\pard{\pntext\f2\'B7\tab}{\*\pn\pnlvlblt\pnf2\pnindent0{\pntxtb\'B7}}\fi-288\li432 Issue 519 (build problem with compat/regex/regexec.c) was fixed\par
{\pntext\f2\'B7\tab}Issue 430 (size of panes not preserved in git-gui) was fixed\par
{\pntext\f2\'B7\tab}Issue 411 (git init failing to work with CIFS paths) was fixed\par
{\pntext\f2\'B7\tab}Issue 501 (failing to clone repo from root dir using relative path) was fixed\par
\pard\b\fs24\par
Changes since Git-1.7.0.2-preview20100309\par
\par
\i\fs20 New Features\par
\pard{\pntext\f2\'B7\tab}{\*\pn\pnlvlblt\pnf2\pnindent0{\pntxtb\'B7}}\fi-288\li432\b0\i0 Comes with Git 1.7.1 plus patches.\par
\pard\li144\par
\pard\b\i Bugfixes\b0\i0\par
\pard{\pntext\f2\'B7\tab}{\*\pn\pnlvlblt\pnf2\pnindent0{\pntxtb\'B7}}\fi-288\li432 Issue 27 (git-send-mail not working properly) was fixed again\par
{\pntext\f2\'B7\tab}Issue 433 (error while running git svn fetch) was fixed\par
{\pntext\f2\'B7\tab}Issue 427 (Gitk reports error: "couldn't compile regular expression pattern: invalid repetition count(s)") was fixed\par
{\pntext\f2\'B7\tab}Issue 192 (output truncated) was fixed again\par
{\pntext\f2\'B7\tab}Issue 365 (Out of memory? mmap failed) was fixed\par
{\pntext\f2\'B7\tab}Issue 387 (gitk reports "error: couldn't execute "git:" file name too long") was fixed\par
{\pntext\f2\'B7\tab}Issue 409 (checkout of large files to network drive fails on XP) was fixed\par
{\pntext\f2\'B7\tab}Issue 428 (The return value of git.cmd is not the same as git.exe) was fixed\par
{\pntext\f2\'B7\tab}Issue 444 (Git Bash Here returns a "File not found error" in Windows 7 Professional - 64 bits) was fixed\par
{\pntext\f2\'B7\tab}Issue 445 (git help does nothing) was fixed\par
{\pntext\f2\'B7\tab}Issue 450 ("git --bare init" shouldn't set the directory to hidden.) was fixed\par
{\pntext\f2\'B7\tab}Issue 456 (git script fails with error code 1) was fixed\par
{\pntext\f2\'B7\tab}Issue 469 (error launch wordpad in last netinstall) was fixed\par
{\pntext\f2\'B7\tab}Issue 474 (git update-index --index-info silently does nothing) was fixed\par
{\pntext\f2\'B7\tab}Issue 482 (Add documentation to avoid "fatal: $HOME not set" error) was fixed\par
{\pntext\f2\'B7\tab}Issue 489 (git.cmd issues warning if %COMSPEC% has spaces in it) was fixed\par
{\pntext\f2\'B7\tab}Issue 436 ("mkdir : No such file or directory" error while using git-svn to fetch or rebase) was fixed\par
{\pntext\f2\'B7\tab}Issue 440 (Uninstall does not remove cheetah.) was fixed\par
{\pntext\f2\'B7\tab}Issue 441 (Git-1.7.0.2-preview20100309.exe installer fails with unwritable msys-1.0.dll when ssh-agent is running) was fixed\par
\pard\b\fs24\par
Changes since Git-1.6.5.1-preview20091022\par
\par
\i\fs20 New Features\par
\pard{\pntext\f2\'B7\tab}{\*\pn\pnlvlblt\pnf2\pnindent0{\pntxtb\'B7}}\fi-288\li432\b0\i0 Comes with official Git 1.7.0.2.\par
{\pntext\f2\'B7\tab}Comes with Git-Cheetah (on 32-bit Windows only, for now).\par
{\pntext\f2\'B7\tab}Comes with connect.exe, a SOCKS proxy.\par
{\pntext\f2\'B7\tab}Tons of improvements in the installer, thanks to Sebastian Schuberth.\par
{\pntext\f2\'B7\tab}On Vista, if possible, symlinks are used for the built-ins.\par
{\pntext\f2\'B7\tab}Features Hany's dos2unix tool, thanks to Sebastian Schuberth.\par
{\pntext\f2\'B7\tab}Updated Tcl/Tk to version 8.5.8 (thanks Pat Thoyts!).\par
{\pntext\f2\'B7\tab}By default, only .git/ is hidden, to work around a bug in Eclipse (thanks to Erik Faye-Lund).\par
\pard\li144\par
\pard\b\i Bugfixes\b0\i0\par
\pard{\pntext\f2\'B7\tab}{\*\pn\pnlvlblt\pnf2\pnindent0{\pntxtb\'B7}}\fi-288\li432 Fixed threaded grep (thanks to Heiko Voigt).\par
{\pntext\f2\'B7\tab}git gui was fixed for all kinds of worktree-related failures (thanks Pat Thoyts).\par
{\pntext\f2\'B7\tab}git gui now fully supports themed widgets (thanks Pat Thoyts and Heiko Voigt).\par
{\pntext\f2\'B7\tab}Git no longer complains about an unset RUNTIME_PREFIX (thanks Johannes Sixt).\par
{\pntext\f2\'B7\tab}git gui can Explore Working Copy on Windows again (thanks Markus Heidelberg).\par
{\pntext\f2\'B7\tab}git gui can create shortcuts again (fixes issue 425, thanks Heiko Voigt).\par
{\pntext\f2\'B7\tab}When "git checkout" cannot overwrite files because they are in use, it will offer to try again, giving the user a chance to release the file (thanks Heiko Voigt).\par
{\pntext\f2\'B7\tab}Ctrl+W will close gitk (thanks Jens Lehmann).\par
{\pntext\f2\'B7\tab}git gui no longer binds Ctrl+C, which caused problems when trying to use said shortcut for the clipboard operation "Copy" (fixes issue 423, thanks Pat Thoyts).\par
{\pntext\f2\'B7\tab}gitk does not give up when the command line length limit is reached (issue 387).\par
{\pntext\f2\'B7\tab}The exit code is fixed when Git.cmd is called from cmd.exe (thanks Alexey Borzenkov).\par
{\pntext\f2\'B7\tab}When launched via the (non-Cheetah) shell extension, the window icon is now correct (thanks Sebastian Schuberth).\par
{\pntext\f2\'B7\tab}Uses a TrueType font for the console, to be able to render UTF-8 correctly.\par
{\pntext\f2\'B7\tab}Clarified the installer's line ending options (issue 370).\par
{\pntext\f2\'B7\tab}Substantially speeded up startup time from cmd unless NO_FSTAB_THREAD is set (thanks Johannes Sixt).\par
{\pntext\f2\'B7\tab}Update msys-1.0.dll yet again, to handle quoted parameters better (thanks Heiko Voigt).\par
{\pntext\f2\'B7\tab}Updated cURL to a version that supports SSPI.\par
{\pntext\f2\'B7\tab}Updated tar to handle the pax headers generated by \i git archive\i0 .\par
{\pntext\f2\'B7\tab}Updated sed to a version that can handle the filter-branch examples.\par
{\pntext\f2\'B7\tab}.git* files can be associated with the default text editor (issue 397).\par
\pard\b\fs24\par
Changes since Git-1.6.4-preview20090729\par
\par
\i\fs20 New Features\par
\pard{\pntext\f2\'B7\tab}{\*\pn\pnlvlblt\pnf2\pnindent0{\pntxtb\'B7}}\fi-288\li432\b0\i0 Comes with official git 1.6.5.1.\par
{\pntext\f2\'B7\tab}Thanks to Johan 't Hart, files and directories starting with a single dot (such as '.git') will now be marked hidden (you can disable this setting with core.hideDotFiles=false in your config) (Issue 288).\par
{\pntext\f2\'B7\tab}Thanks to Thorvald Natvig, Git on Windows can simulate symbolic links by using reparse points when available. For technical reasons, this only works for symbolic links pointing to files, not directories.\par
{\pntext\f2\'B7\tab}A lot of work has been put into making it possible to compile Git's source code (the part written in C, of course, not the scripts) with Microsoft Visual Studio. This work is ongoing.\par
{\pntext\f2\'B7\tab}Thanks to Sebastian Schuberth, we only offer the (Tortoise)Plink option in the installer if the presence of Plink was detected \ul and\ulnone at least one Putty session was found..\par
{\pntext\f2\'B7\tab}Thanks to Sebastian Schuberth, the installer has a nicer icon now.\par
{\pntext\f2\'B7\tab}Some more work by Sebastian Schuberth was done on better integration of Plink (Issues 305 & 319).\par
\pard\li144\par
\pard\b\i Bugfixes\b0\i0\par
\pard{\pntext\f2\'B7\tab}{\*\pn\pnlvlblt\pnf2\pnindent0{\pntxtb\'B7}}\fi-288\li432 Thanks to Sebastian Schuberth, \i git svn\i0 picks up the SSH setting specified with the installer (Issue 305).\par
\pard\b\fs24\par
Changes since Git-1.6.3.2-preview20090608\par
\par
\i\fs20 New Features\par
\pard{\pntext\f2\'B7\tab}{\*\pn\pnlvlblt\pnf2\pnindent0{\pntxtb\'B7}}\fi-288\li432\b0\i0 Comes with official git 1.6.4.\par
{\pntext\f2\'B7\tab}Supports \cf0{\field{\*\fldinst{HYPERLINK "https://"}}{\fldrslt{\ul\cf2 https://}}}\cf1\f0\fs20 URLs, thanks to Erik Faye-Lund.\par
{\pntext\f2\'B7\tab}Supports send-email, thanks to Erik Faye-Lund (Issue 27).\par
{\pntext\f2\'B7\tab}Updated Tcl/Tk to version 8.5.7, thanks to Pat Thoyts.\par
\pard\li144\par
\pard\b\i Bugfixes\b0\i0\par
\pard{\pntext\f2\'B7\tab}{\*\pn\pnlvlblt\pnf2\pnindent0{\pntxtb\'B7}}\fi-288\li432 The home directory is now discovered properly (Issues 108 & 259).\par
{\pntext\f2\'B7\tab}IPv6 is supported now, thanks to Martin Martin Storsj\cf0\f1\'f6 (Issue 182).\cf1\f0\par
\pard\b\fs24\par
Changes since Git-1.6.3-preview20090507\par
\par
\i\fs20 New Features\par
\pard{\pntext\f2\'B7\tab}{\*\pn\pnlvlblt\pnf2\pnindent0{\pntxtb\'B7}}\fi-288\li432\b0\i0 Comes with official git 1.6.3.2.\par
{\pntext\f2\'B7\tab}Uses TortoisePlink instead of Plink if available.\par
\pard\li144\par
\pard\b\i Bugfixes\b0\i0\par
\pard{\pntext\f2\'B7\tab}{\*\pn\pnlvlblt\pnf2\pnindent0{\pntxtb\'B7}}\fi-288\li432 Plink errors out rather than hanging when the user needs to accept a host key first (Issue 96).\par
{\pntext\f2\'B7\tab}The user home directory is inferred from $HOMEDRIVE\\$HOMEPATH instead of $HOME (Issue 108).\par
{\pntext\f2\'B7\tab}The environment setting $CYGWIN=tty is ignored (Issues 138, 248 and 251).\par
{\pntext\f2\'B7\tab}The "ls" command shows non-ASCII filenames correctly now (Issue 188).\par
{\pntext\f2\'B7\tab}Adds more syntax files for vi (Issue 250).\par
{\pntext\f2\'B7\tab}$HOME/.bashrc is included last from /etc/profile, allowing .bashrc to override all settings in /etc/profile (Issue 255).\par
{\pntext\f2\'B7\tab}Completion is case-insensitive again (Issue 256).\par
{\pntext\f2\'B7\tab}The "start" command can handle arguments with spaces now (Issue 258).\par
{\pntext\f2\'B7\tab}For some Git commands (such as "git commit"), vi no longer "restores" the cursor position.\par
\pard\b\fs24\par
Changes since Git-1.6.2.2-preview20090408\par
\par
\i\fs20 New Features\par
\pard{\pntext\f2\'B7\tab}{\*\pn\pnlvlblt\pnf2\pnindent0{\pntxtb\'B7}}\fi-288\li432\b0\i0 Comes with official git 1.6.3.\par
{\pntext\f2\'B7\tab}Thanks to Marius Storm-Olsen, Git has a substantially faster readdir() implementation now.\par
{\pntext\f2\'B7\tab}Marius Storm-Olsen also contributed a patch to include nedmalloc, again speeding up Git noticably.\par
{\pntext\f2\'B7\tab}Compiled with GCC 4.4.0\par
\pard\li144\par
\pard\b\i Bugfixes\b0\i0\par
\pard{\pntext\f2\'B7\tab}{\*\pn\pnlvlblt\pnf2\pnindent0{\pntxtb\'B7}}\fi-288\li432 Portable Git contains a README.portable.\par
{\pntext\f2\'B7\tab}Portable Git now actually includes the builtins.\par
{\pntext\f2\'B7\tab}Portable Git includes git-cmd.bat and git-bash.bat.\par
{\pntext\f2\'B7\tab}Portable Git is now shipped as a .7z; it still is a self-extracting archive if you rename it to .exe.\par
{\pntext\f2\'B7\tab}Git includes the Perl Encode module now.\par
{\pntext\f2\'B7\tab}Git now includes the filter-branch tool.\par
{\pntext\f2\'B7\tab}There is a workaround for a Windows 7 regression triggering a crash in the progress reporting (e.g. during a clone). This fixes issues 236 and 247.\par
{\pntext\f2\'B7\tab}gitk tries not to crash when it is closed while reading references (Issue 125, thanks Pat Thoyts).\par
{\pntext\f2\'B7\tab}In some setups, hard-linking is not as reliable as it should be, so we have a workaround which avoids hard links in some situations (Issues 222 and 229).\par
{\pntext\f2\'B7\tab}git-svn sets core.autocrlf to false now, hopefully shutting up most of the git-svn reports.\par
\pard\b\fs24\par
Changes since Git-1.6.2.1-preview20090322\par
\par
\i\fs20 New Features\par
\pard{\pntext\f2\'B7\tab}{\*\pn\pnlvlblt\pnf2\pnindent0{\pntxtb\'B7}}\fi-288\li432\b0\i0 Comes with official git 1.6.2.2.\par
{\pntext\f2\'B7\tab}Upgraded Tcl/Tk to 8.5.5.\par
{\pntext\f2\'B7\tab}TortoiseMerge is supported by mergetool now.\par
{\pntext\f2\'B7\tab}Uses pthreads (faster garbage collection on multi-core machines).\par
{\pntext\f2\'B7\tab}The test suite passes!\par
\pard\li144\par
\pard\b\i Bugfixes\b0\i0\par
\pard{\pntext\f2\'B7\tab}{\*\pn\pnlvlblt\pnf2\pnindent0{\pntxtb\'B7}}\fi-288\li432 Renaming was made more robust (due to Explorer or some virus scanners, files could not be renamed at the first try, so we have to try multiple times).\par
{\pntext\f2\'B7\tab}Johannes Sixt made \ul lots\ulnone of changes to the test-suite to identify properly which tests should pass, and which ones cannot pass due to limitations of the platform.\par
{\pntext\f2\'B7\tab}Support PAGERs with spaces in their filename.\par
{\pntext\f2\'B7\tab}Quite a few changes were undone which we needed in the olden days of msysGit.\par
{\pntext\f2\'B7\tab}Fall back to / when HOME cannot be set to the real home directory due to locale issues (works around Issue 108 for the moment).\par
\pard\b\fs24\par
Changes since Git-1.6.2-preview20090308\par
\par
\i\fs20 New Features\par
\pard{\pntext\f2\'B7\tab}{\*\pn\pnlvlblt\pnf2\pnindent0{\pntxtb\'B7}}\fi-288\li432\b0\i0 Comes with official git 1.6.2.1.\par
{\pntext\f2\'B7\tab}A portable application is shipped in addition to the installer (Issue 195).\par
{\pntext\f2\'B7\tab}Comes with a Windows-specific mmap() implementation (Issue 198).\par
\pard\li144\par
\pard\b\i Bugfixes\b0\i0\par
\pard{\pntext\f2\'B7\tab}{\*\pn\pnlvlblt\pnf2\pnindent0{\pntxtb\'B7}}\fi-288\li432 ANSI control characters are no longer shown verbatim (Issue 124).\par
{\pntext\f2\'B7\tab}Temporary files are created respecting core.autocrlf (Issue 177).\par
{\pntext\f2\'B7\tab}The Git Bash prompt is colorful again (Issue 199).\par
{\pntext\f2\'B7\tab}Fixed crash when hardlinking during a clone failed (Issue 204).\par
{\pntext\f2\'B7\tab}An infinite loop was fixed in git-gui (Issue 205).\par
{\pntext\f2\'B7\tab}The ssh protocol is always used with plink.exe (Issue 209).\par
{\pntext\f2\'B7\tab}More vim files are shipped now, so that syntax highlighting works.\par
\pard\b\fs24\par
Changes since Git-1.6.1-preview20081225\par
\par
\i\fs20 New Features\par
\pard{\pntext\f2\'B7\tab}{\*\pn\pnlvlblt\pnf2\pnindent0{\pntxtb\'B7}}\fi-288\li432\b0\i0 Comes with official git 1.6.2.\par
{\pntext\f2\'B7\tab}Comes with upgraded vim 7.2.\par
{\pntext\f2\'B7\tab}Compiled with GCC 4.3.3.\par
{\pntext\f2\'B7\tab}The user can choose the preferred CR/LF behavior in the installer now.\par
{\pntext\f2\'B7\tab}Peter Kodl contributed support for hardlinks on Windows.\par
{\pntext\f2\'B7\tab}The bash prompt shows information about the current repository.\par
\pard\li144\par
\pard\b\i Bugfixes\b0\i0\par
\pard{\pntext\f2\'B7\tab}{\*\pn\pnlvlblt\pnf2\pnindent0{\pntxtb\'B7}}\fi-288\li432 If supported by the file system, pack files can grow larger than 2gb.\par
{\pntext\f2\'B7\tab}Comes with updated msys-1.0.dll (should fix some Vista issues).\par
{\pntext\f2\'B7\tab}Assorted fixes to support the new libexec/git-core/ layout better.\par
{\pntext\f2\'B7\tab}Read-only files can be properly replaced now.\par
{\pntext\f2\'B7\tab}git-svn is included again (original caveats still apply).\par
{\pntext\f2\'B7\tab}Obsolete programs from previous installations are cleaned up.\par
\pard\li144\par
\pard\b\fs24 Changes since Git-1.6.0.2-preview20080923\par
\i\fs20\par
New Features\par
\pard{\pntext\f2\'B7\tab}{\*\pn\pnlvlblt\pnf2\pnindent0{\pntxtb\'B7}}\fi-288\li432\b0\i0 Comes with official git 1.6.1.\par
{\pntext\f2\'B7\tab}Avoid useless console windows.\par
{\pntext\f2\'B7\tab}Installer remembers how to handle PATH. \par
\pard\b\fs24\par
Changes since Git-1.6.0.2-preview20080921\par
\i\fs20\par
Bugfixes\b0\i0\par
\pard{\pntext\f2\'B7\tab}{\*\pn\pnlvlblt\pnf2\pnindent0{\pntxtb\'B7}}\fi-288\li432 ssh works again.\par
{\pntext\f2\'B7\tab}'git add -p' works again.\par
{\pntext\f2\'B7\tab}Various programs that aborted with 'Assertion failed: argv0_path' are fixed.\par
\pard\b\fs24\par
Changes since Git-1.5.6.1-preview20080701\par
\i\fs20\par
Removed Features\par
\pard{\pntext\f2\'B7\tab}{\*\pn\pnlvlblt\pnf2\pnindent0{\pntxtb\'B7}}\fi-288\li432\b0\i0 git svn is excluded from the end-user installer (see Known Issues).\par
\pard\b\fs24\par
\i\fs20 New Features\par
\pard{\pntext\f2\'B7\tab}{\*\pn\pnlvlblt\pnf2\pnindent0{\pntxtb\'B7}}\fi-288\li432\b0\i0 Comes with official git 1.6.0.2.\par
\pard\li144\par
\pard\b\i Bugfixes\b0\i0\par
\pard{\pntext\f2\'B7\tab}{\*\pn\pnlvlblt\pnf2\pnindent0{\pntxtb\'B7}}\fi-288\li432 No Windows-specific bugfixes.\par
\pard\b\fs24\par
Changes since Git-1.5.6-preview20080622\par
\par
\i\fs20 New Features\par
\pard{\pntext\f2\'B7\tab}{\*\pn\pnlvlblt\pnf2\pnindent0{\pntxtb\'B7}}\fi-288\li432\b0\i0 Comes with official git 1.5.6.1.\par
\pard\li144\par
\pard\b\i Bugfixes\b0\i0\par
\pard{\pntext\f2\'B7\tab}{\*\pn\pnlvlblt\pnf2\pnindent0{\pntxtb\'B7}}\fi-288\li432 Includes fixed msys-1.0.dll that supports Vista and Windows Server 2008 (Issue 122).\par
{\pntext\f2\'B7\tab}cmd wrappers do no longer switch off echo.\par
\pard\b\fs24\par
Changes since Git-1.5.5-preview20080413\par
\par
\i\fs20 New Features\par
\pard{\pntext\f2\'B7\tab}{\*\pn\pnlvlblt\pnf2\pnindent0{\pntxtb\'B7}}\fi-288\li432\b0\i0 Comes with official git 1.5.6.\par
{\pntext\f2\'B7\tab}Installer supports configuring a user provided plink (PuTTY).\par
\pard\li144\par
\pard\b\i Bugfixes\b0\i0\par
\pard{\pntext\f2\'B7\tab}{\*\pn\pnlvlblt\pnf2\pnindent0{\pntxtb\'B7}}\fi-288\li432 Comes with tweaked msys-1.0.dll to solve some command line mangling issues.\par
{\pntext\f2\'B7\tab}cmd wrapper does no longer close the command window.\par
{\pntext\f2\'B7\tab}Programs in the system PATH, for example editors, can be launched from Git without specifying their full path.\par
{\pntext\f2\'B7\tab}"git stash apply stash@\{1\}" works.\par
{\pntext\f2\'B7\tab}Comes with basic ANSI control code emulation for the Windows console to avoid wrapping of pull/merge's diffstats.\par
{\pntext\f2\'B7\tab}Git correctly passes port numbers to PuTTY's plink \par
\pard\b\fs24\par
Changes since Git-1.5.4-preview20080202\par
\par
\i\fs20 New Features\par
\pard{\pntext\f2\'B7\tab}{\*\pn\pnlvlblt\pnf2\pnindent0{\pntxtb\'B7}}\fi-288\li432\b0\i0 Comes with official git 1.5.5.\par
{\pntext\f2\'B7\tab}core.autocrlf is enabled (true) by default. This means git converts to Windows line endings (CRLF) during checkout and converts to Unix line endings (LF) during commit. This is the right choice for cross-platform projects. If the conversion is not reversible, git warns the user. The installer warns about the new default before the installation starts.\par
{\pntext\f2\'B7\tab}The user does no longer have to "accept" the GPL but only needs to press "continue".\par
{\pntext\f2\'B7\tab}Installer deletes shell scripts that have been replaced by builtins. Upgrading should be safer.\par
{\pntext\f2\'B7\tab}Supports "git svn". Note that the performance might be below your expectation.\par
\pard\li144\par
\pard\b\i Bugfixes\b0\i0\par
\pard{\pntext\f2\'B7\tab}{\*\pn\pnlvlblt\pnf2\pnindent0{\pntxtb\'B7}}\fi-288\li432 Newer ssh fixes connection failures (issue 74).\par
{\pntext\f2\'B7\tab}Comes with MSys-1.0.11-20071204. This should solve some "fork: resource unavailable" issues.\par
{\pntext\f2\'B7\tab}All DLLs are rebased to avoid problems with "fork" on Vista.\par
\pard\b\fs24\par
Changes since Git-1.5.3.6-preview20071126\par
\par
\i\fs20 New Features\par
\pard{\pntext\f2\'B7\tab}{\*\pn\pnlvlblt\pnf2\pnindent0{\pntxtb\'B7}}\fi-288\li432\b0\i0 Comes with official git 1.5.4.\par
{\pntext\f2\'B7\tab}Some commands that are not yet suppoted on Windows are no longer included (see Known Issues above).\par
{\pntext\f2\'B7\tab}Release notes are displayed in separate window.\b\fs24\par
\b0\fs20{\pntext\f2\'B7\tab}Includes qsort replacement to improve performance on Windows 2000.\par
\pard\b\fs24\par
\i\fs20 Bugfixes\b0\i0\par
\pard{\pntext\f2\'B7\tab}{\*\pn\pnlvlblt\pnf2\pnindent0{\pntxtb\'B7}}\fi-288\li432 Fixes invalid error message that setup.ini cannot be deleted on uninstall.\par
{\pntext\f2\'B7\tab}Setup tries harder to finish the installation and reports more detailed errors.\par
{\pntext\f2\'B7\tab}Vim's syntax highlighting is suitable for dark background.\par
\pard\b\fs24\par
Changes since Git-1.5.3.5-preview20071114\par
\par
\i\fs20 New Features\par
\pard{\pntext\f2\'B7\tab}{\*\pn\pnlvlblt\pnf2\pnindent0{\pntxtb\'B7}}\fi-288\li432\b0\i0 Git is included in version 1.5.3.6.\b\i\par
\b0\i0{\pntext\f2\'B7\tab}Setup displays release notes.\par
\pard\b\fs24\par
\i\fs20 Bugfixes\b0\i0\par
\pard{\pntext\f2\'B7\tab}{\*\pn\pnlvlblt\pnf2\pnindent0{\pntxtb\'B7}}\fi-288\li432 pull/fetch/push in git-gui works. Note, there is no way for ssh to ask for a passphrase or for confirmation if you connect to an unknown host. So, you must have ssh set up to work without passphrase. Either you have a key without passphrase, or you started ssh-agent. You may also consider using PuTTY by pointing GIT_SSH to plink.exe and handle your ssh keys with Pageant. In this case you should include your login name in urls. You must also connect to an unknown host once from the command line and confirm the host key, before you can use it from git-gui.\par
\pard\b\fs24\par
Changes since Git-1.5.3-preview20071027\fs20\par
\i\par
New Features\par
\pard{\pntext\f2\'B7\tab}{\*\pn\pnlvlblt\pnf2\pnindent0{\pntxtb\'B7}}\fi-288\li432\b0\i0 Git is included in version 1.5.3.5.\par
{\pntext\f2\'B7\tab}Setup can be installed as normal user.\par
{\pntext\f2\'B7\tab}When installing as Administrator, all icons except the Quick Launch icon will be created for all users.\par
{\pntext\f2\'B7\tab}"git help user-manual" displays the user manual.\par
\pard\b\par
\i Bugfixes\b0\i0\par
\pard{\pntext\f2\'B7\tab}{\*\pn\pnlvlblt\pnf2\pnindent0{\pntxtb\'B7}}\fi-288\li432 Git Bash works on Windows XP 64.\par
\pard\par
\b\fs24 Changes since Git-1.5.3-preview20071019\par
\fs20\par
\i Bugfixes\i0\par
\pard{\pntext\f2\'B7\tab}{\*\pn\pnlvlblt\pnf2\pnindent0{\pntxtb\'B7}}\fi-288\li432\b0 The templates for a new repository are found.\par
{\pntext\f2\'B7\tab}The global configuration /etc/gitconfig is found.\par
{\pntext\f2\'B7\tab}Git Gui localization works. It falls back to English if a translation has errors.\par
\pard\par
\b\fs24 Changes since WinGit-0.2-alpha\par
\b0\fs20 The history of the release notes stops here. Various new features and bugfixes are available since WinGit-0.2-alpha. Please check the git history of the msysgit project for details.\par
}
@@ -1,8 +0,0 @@
#!/bin/sh
# Copyright (C) 2002, Earnie Boyd
# mailto:earnie@users.sf.net
# This file is part of MSYS
# http://www.mingw.org/msys.shtml
# File: awk
gawk "$@"
@@ -1,8 +0,0 @@
#! /bin/sh
# Copyright (C) 2002, Earnie Boyd
# mailto:earnie@users.sf.net
# This file is a part of Minimal SYStem
# http://www.mingw.org/msys.html
# File: bunzip2
bzip2 -d $@
@@ -1,160 +0,0 @@
#!/bin/perl.exe
# Perl c_rehash script, scan all files in a directory
# and add symbolic links to their hash values.
my $openssl;
my $dir = "/usr/ssl";
if(defined $ENV{OPENSSL}) {
$openssl = $ENV{OPENSSL};
} else {
$openssl = "openssl";
$ENV{OPENSSL} = $openssl;
}
$ENV{PATH} .= ":$dir/bin";
if(! -x $openssl) {
my $found = 0;
foreach (split /:/, $ENV{PATH}) {
if(-x "$_/$openssl") {
$found = 1;
last;
}
}
if($found == 0) {
print STDERR "c_rehash: rehashing skipped ('openssl' program not available)\n";
exit 0;
}
}
if(@ARGV) {
@dirlist = @ARGV;
} elsif($ENV{SSL_CERT_DIR}) {
@dirlist = split /:/, $ENV{SSL_CERT_DIR};
} else {
$dirlist[0] = "$dir/certs";
}
foreach (@dirlist) {
if(-d $_ and -w $_) {
hash_dir($_);
}
}
sub hash_dir {
my %hashlist;
print "Doing $_[0]\n";
chdir $_[0];
opendir(DIR, ".");
my @flist = readdir(DIR);
# Delete any existing symbolic links
foreach (grep {/^[\da-f]+\.r{0,1}\d+$/} @flist) {
if(-l $_) {
unlink $_;
}
}
closedir DIR;
FILE: foreach $fname (grep {/\.pem$/} @flist) {
# Check to see if certificates and/or CRLs present.
my ($cert, $crl) = check_file($fname);
if(!$cert && !$crl) {
print STDERR "WARNING: $fname does not contain a certificate or CRL: skipping\n";
next;
}
link_hash_cert($fname) if($cert);
link_hash_crl($fname) if($crl);
}
}
sub check_file {
my ($is_cert, $is_crl) = (0,0);
my $fname = $_[0];
open IN, $fname;
while(<IN>) {
if(/^-----BEGIN (.*)-----/) {
my $hdr = $1;
if($hdr =~ /^(X509 |TRUSTED |)CERTIFICATE$/) {
$is_cert = 1;
last if($is_crl);
} elsif($hdr eq "X509 CRL") {
$is_crl = 1;
last if($is_cert);
}
}
}
close IN;
return ($is_cert, $is_crl);
}
# Link a certificate to its subject name hash value, each hash is of
# the form <hash>.<n> where n is an integer. If the hash value already exists
# then we need to up the value of n, unless its a duplicate in which
# case we skip the link. We check for duplicates by comparing the
# certificate fingerprints
sub link_hash_cert {
my $fname = $_[0];
$fname =~ s/'/'\\''/g;
my ($hash, $fprint) = `"$openssl" x509 -hash -fingerprint -noout -in '$fname'`;
chomp $hash;
chomp $fprint;
$fprint =~ s/^.*=//;
$fprint =~ tr/://d;
my $suffix = 0;
# Search for an unused hash filename
while(exists $hashlist{"$hash.$suffix"}) {
# Hash matches: if fingerprint matches its a duplicate cert
if($hashlist{"$hash.$suffix"} eq $fprint) {
print STDERR "WARNING: Skipping duplicate certificate $fname\n";
return;
}
$suffix++;
}
$hash .= ".$suffix";
print "$fname => $hash\n";
$symlink_exists=eval {symlink("",""); 1};
if ($symlink_exists) {
symlink $fname, $hash;
} else {
system ("cp", $fname, $hash);
}
$hashlist{$hash} = $fprint;
}
# Same as above except for a CRL. CRL links are of the form <hash>.r<n>
sub link_hash_crl {
my $fname = $_[0];
$fname =~ s/'/'\\''/g;
my ($hash, $fprint) = `"$openssl" crl -hash -fingerprint -noout -in '$fname'`;
chomp $hash;
chomp $fprint;
$fprint =~ s/^.*=//;
$fprint =~ tr/://d;
my $suffix = 0;
# Search for an unused hash filename
while(exists $hashlist{"$hash.r$suffix"}) {
# Hash matches: if fingerprint matches its a duplicate cert
if($hashlist{"$hash.r$suffix"} eq $fprint) {
print STDERR "WARNING: Skipping duplicate CRL $fname\n";
return;
}
$suffix++;
}
$hash .= ".r$suffix";
print "$fname => $hash\n";
$symlink_exists=eval {symlink("",""); 1};
if ($symlink_exists) {
symlink $fname, $hash;
} else {
system ("cp", $fname, $hash);
}
$hashlist{$hash} = $fprint;
}
@@ -1,4 +0,0 @@
#!/bin/sh
# Make the 'clear' command work, by invoking command.com/cmd.exe 'cls'
$COMSPEC //C cls
File diff suppressed because it is too large Load Diff
@@ -1,8 +0,0 @@
#!/bin/sh
# Copyright (C) 2002, Earnie Boyd
# mailto:earnie@users.sf.net
# This file is part of MSYS
# http://www.mingw.org/msys.shtml
# File: echo
echo "$@"
@@ -1,8 +0,0 @@
#!/bin/sh
# Copyright (C) 2002, Earnie Boyd
# mailto:earnie@users.sf.net
# This file is part of MSYS
# http://www.mingw.org/msys.shtml
# File: egrep
grep -E "$@"
@@ -1,155 +0,0 @@
@echo off
rem Copyright (C): 2001, 2002 Earnie Boyd
rem mailto:earnie@users.sf.net
rem This file is part of Minimal SYStem
rem http://www.mingw.org/msys.shtml
rem
rem File: msys.bat
rem Revision: 2.0
rem Revision Date: April 17th, 2002
rem ember to set the "Start in:" field of the shortcut.
rem A value similar to C:\msys\1.0\bin is what the "Start in:" field needs
rem to represent.
rem this should let run MSYS shell on x64
if "%PROCESSOR_ARCHITECTURE%" == "AMD64" (
SET COMSPEC=%WINDIR%\SysWOW64\cmd.exe
)
rem ember value of GOTO: is used to know recursion has happened.
if "%1" == "GOTO:" goto %2
rem ember command.com only uses the first eight characters of the label.
set OS_VERSION="NT"
goto _WindowsNT
rem ember that we only execute here if we are in command.com.
:_Windows
set OS_VERSION="9x"
if "x%COMSPEC%" == "x" set COMSPEC=command.com
start %COMSPEC% /e:4096 /c %0 GOTO: _Resume %0 %1 %2 %3 %4 %5 %6 %7 %8 %9
goto EOF
rem ember that we execute here if we recursed.
:_Resume
for %%F in (1 2 3) do shift
rem ember that we get here even in command.com.
:_WindowsNT
if "x%MSYSTEM%" == "x" set MSYSTEM=MINGW32
if "%1" == "MSYS" set MSYSTEM=MSYS
if NOT "x%DISPLAY%" == "x" set DISPLAY=
rem We here assume old behavior, to make sure that older platforms can still use
rem this batch file to start their MSys environment.
set BIN=""
if EXIST bin\nul set BIN=bin\
if EXIST %BIN%bash.exe goto startbash
if EXIST %BIN%rxvt.exe goto startrxvt
rem If we're not on win9x type OSs, lets try a little better at finding bash/rxvt
if "win%OS_VERSION%"=="win9x" goto failed
set BIN="%~dp0bin\"
if EXIST %BIN%bash.exe goto startbash
if EXIST %BIN%rxvt.exe goto startrxvt
:failed
echo Cannot find the rxvt.exe or bash.exe binary -- aborting.
pause
rem exit 1
rem we skip using exit 1 here, since it will close the console you were working on
rem which probably isn't what you wanted. If the bat file was run from a shortcut
rem the window will still close, like you would expect it to. Sorry, you cant test
rem for exit values anymore, but hey, you can just un-rem the line above then! :-)
goto EOF
rem If you don't want to use rxvt then rename the file rxvt.exe to something
rem else. Then bash.exe will be used instead.
:startrxvt
rem Setup the default colors for rxvt.
if "x%MSYSBGCOLOR%" == "x" set MSYSBGCOLOR=White
if "x%MSYSFGCOLOR%" == "x" set MSYSFGCOLOR=Black
if "x%MINGW32BGCOLOR%" == "x" set MINGW32BGCOLOR=LightYellow
if "x%MINGW32FGCOLOR%" == "x" set MINGW32FGCOLOR=Navy
if "%MSYSTEM%" == "MSYS" set BGCOLOR=%MSYSBGCOLOR%
if "%MSYSTEM%" == "MSYS" set FGCOLOR=%MSYSFGCOLOR%
if "%MSYSTEM%" == "MINGW32" set BGCOLOR=%MINGW32BGCOLOR%
if "%MSYSTEM%" == "MINGW32" set FGCOLOR=%MINGW32FGCOLOR%
start %COMSPEC% /c %BIN%rxvt -backspacekey  -sl 2500 -fg %FGCOLOR% -bg %BGCOLOR% -sr -fn Courier-12 -tn msys -geometry 80x25 -e /bin/bash --login -i
exit
:startbash
call %COMSPEC% /c %BIN%bash --login -i
:EOF
rem ChangeLog:
rem 2002.03.07 Earnie Boyd mailto:earnie@users.sf.net
rem * Move the @echo off to the top.
rem * Change the binmode setting to nobinmode.
rem * Remove the angle brackets around email address to workaround MS
rem buggy command processor.
rem
rem 2002.03.12 Earnie Boyd mailto:earnie@users.sf.net
rem * Add filter logic to find rxvt.exe
rem
rem 2002.03.13 Earnie Boyd mailto:earnie@users.sf.net
rem * Revert the nobinmode change.
rem
rem 2002.03.20 Earnie Boyd mailto:earnie@users.sf.net
rem * Add logic for stating bash.
rem
rem 2002.04.11 Earnie Boyd mailto;earnie@users.sf.net
rem * Add logic for setting MSYSTEM value based on parameter.
rem
rem 2002.04.15 Olivier Gautherot mailto:olivier_gautherot@mentorg.com
rem * Reduce number test conditions for finding an executable.
rem
rem 2002.04.15 Earnie Boyd mailto:earnie@users.sf.net
rem * Unset DISPLAY if set before starting shell.
rem
rem 2002.04.16 Earnie Boyd mailto:earnie@users.sf.net
rem * Remove use of DEFINED in conditional statments for variables for
rem command.com support.
rem * Add check for nonexistance of USERNAME variable for Win9x support.
rem
rem 2002.04.17 Earnie Boyd mailto:earnie@users.sf.net
rem * Add foreground and background color defaults based on MSYSTEM value.
rem
rem 2002.04.22 Earnie Boyd mailto:earnie@users.sf.net
rem * More Win 9x changes.
rem
rem 2002.05.04 Earnie Boyd mailto:earnie@users.sf.net
rem * Remove the SET of USERNAME and HOME.
rem
rem 2002.11.18 Earnie Boyd mailto:earnie@users.sf.net
rem * Add command.com detection and restart with a larger environment to
rem avoid errors on w9x.
rem Many thanks to Randy W. Sims mailto:RandyS@ThePierianSpring.org.
rem See Randy's response to "RE: [Mingw-msys] Installation on WindowsME"
rem from 11/06/2002 in the archives of mingw-msys@lists.sf.net.
rem
rem 2002.11.19 Paul Garceau mailto:pgarceau@attbi.com
rem * Fix a typo: Change COMPSPEC to COMSPEC.
rem
rem 2002.11.25 Earnie Boyd mailto:earnie@users.sf.net
rem * Remove the SET CYGWIN since it doesn't matter any longer.
rem
rem 2003.02.03 Earnie Boyd mailto:earnie@users.sf.net
rem * Win9x doesn't like ``EXISTS dir'' so change it to ``EXISTS dir\nul''.
rem Thanks to Nicolas Weber mailto:nicolasweber@gmx.de.
rem
rem 2003.03.06 Earnie Boyd mailto:earnie@users.sf.net
rem * Add -backspacekey switch to rxvt startup.
rem * Move RXVT color setup to startrxvt label
rem
rem 2004.01.30 Earnie Boyd mailto:earnie@users.sf.net
rem * Add -geometry parameter to work around an off by one issue with
rem the default values.
rem Thanks to Dave Schuyler mailto:parameter@users.sf.net
@@ -1,15 +0,0 @@
@rem Do not use "echo off" to not affect any child calls.
@setlocal
@rem Get the abolute path to the current directory, which is assumed to be the
@rem Git installation root.
@for /F "delims=" %%I in ("%~dp0") do @set git_install_root=%%~fI
@set PATH=%git_install_root%\bin;%git_install_root%\mingw\bin;%git_install_root%\cmd;%PATH%
@if not exist "%HOME%" @set HOME=%HOMEDRIVE%%HOMEPATH%
@if not exist "%HOME%" @set HOME=%USERPROFILE%
@set PLINK_PROTOCOL=ssh
@cd %HOME%
@start %COMSPEC%
@@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<connection>
<connection>
<name>Default</name>
<source>file:/C:/Users/Naitlin</source>
</connection>
</connection>
@@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<sites>
<site>
<name>YBDB &lt;-&gt; YBDB_Remote</name>
<source>workspace:/YBDB</source>
<destination>aptanavfs://83422b28-2181-4f36-b3b7-c239d76e66a2/</destination>
</site>
</sites>
@@ -1,2 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<servers/>
@@ -1,25 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchHistory>
<launchGroup id="org.eclipse.ui.externaltools.launchGroup">
<mruHistory/>
<favorites/>
</launchGroup>
<launchGroup id="org.eclipse.debug.ui.launchGroup.profile">
<mruHistory/>
<favorites/>
</launchGroup>
<launchGroup id="org.eclipse.debug.ui.launchGroup.debug">
<mruHistory>
<launch memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;launchConfiguration local=&quot;true&quot; path=&quot;Firefox - Internal Server&quot;/&gt;&#13;&#10;"/>
<launch memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;launchConfiguration local=&quot;true&quot; path=&quot;Internet Explorer - Internal Server&quot;/&gt;&#13;&#10;"/>
</mruHistory>
<favorites/>
</launchGroup>
<launchGroup id="org.eclipse.debug.ui.launchGroup.run">
<mruHistory>
<launch memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;launchConfiguration local=&quot;true&quot; path=&quot;Firefox - Internal Server&quot;/&gt;&#13;&#10;"/>
<launch memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;launchConfiguration local=&quot;true&quot; path=&quot;Internet Explorer - Internal Server&quot;/&gt;&#13;&#10;"/>
</mruHistory>
<favorites/>
</launchGroup>
</launchHistory>
@@ -1,4 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<workingSetManager>
<workingSet aggregate="true" factoryID="org.eclipse.ui.internal.WorkingSetFactory" id="1377655030398_0" label="Window Working Set" name="Aggregate for window 1377655030395"/>
</workingSetManager>
-1
View File
@@ -1 +0,0 @@
org.eclipse.core.runtime=1
-26
View File
@@ -1,26 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>YBDB</title>
<!-- TemplateBeginEditable name="head" -->
<!-- Insert code here -->
<!-- TemplateEndEditable -->
<link href="../css_yb_standard.css" rel="stylesheet" type="text/css" />
</head>
<body class="yb_standard">
<table align="center">
<tr valign="top">
<td height="40" align="right"><a href="../shop_log.php">Current Shop</a> | <a href="../start_shop.php"> All Shops</a> | <a href="../contact_add_edit_select.php">Edit Contact Info</a> | <a href="../stats.php">Statistics</a> | <a href="../transaction_log.php">Transaction Log</a> | <a href="http://www.austinyellowbike.org/" target="_blank">YBP Home</a></td>
</tr>
<tr>
<td><!-- TemplateBeginEditable name="Body" -->Body<!-- TemplateEndEditable --></td>
</tr>
</table>
</body>
</html>
Binary file not shown.
-10
View File
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,63 @@
<?php
//This function redirects the Log to the Welcome Page
function redirect($sec_delay){
$sec_delay = $sec_delay* 1000;
echo <<<EOD
<SCRIPT language="JavaScript">
<!--
function getgoing()
{
top.location="http://www.ybdb.austinyellowbike.org/shop_log.php?" + location.search.substring(1);
}
setTimeout('getgoing()',$sec_delay);
//-->
</SCRIPT>
EOD;
}
?>
<?php
if (isset($_GET['email'])) {
$email = $_GET['email'];
} else {
$email = -1;
}
$editFormAction = $_SERVER['PHP_SELF'] . '?' . $_SERVER['QUERY_STRING'];
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<?php
//Welcome page redirects
redirect(15); //Always redirect in 60 seconds on this page
?>
<link href="css_yb_standard.css" rel="stylesheet" type="text/css" />
</head>
<body>
<table border="0" align="center" cellpadding="1" cellspacing="0" class="yb_standardCENTER">
<tr>
<td height="900" valign="top"><p class="yb_standardCENTERred">First-time sign in almost complete </p>
<p>You have been sent an email to confirm your subscription to:</p>
<p><strong>The Yellow Bike Project - Monthly Newsletter </strong></p>
<p> To begin receiving the newsletter follow the instructions in the confirmation email. </p>
<p>&nbsp;</p>
<p>You will be redirected to the sign-in sheet in a moment. <span class="yb_standardCENTERred">Please sign in there. </span></p>
</td>
</tr>
</table>
<p>&nbsp;</p>
<IFRAME SRC="http://groups.google.com/group/yellowbike-newsletter/boxsubscribe?email=<?php echo $email;?>" WIDTH=760 HEIGHT=500>
</IFRAME>
<p>&nbsp;</p>
</body>
</html>
+180
View File
@@ -0,0 +1,180 @@
<?php
require_once('Connections/YBDB.php');
require_once('Connections/database_functions.php');
if($_GET['shop_id']>0){
$shop_id = $_GET['shop_id'];
} else {
$shop_id = current_shop_by_ip();
}
switch ($_GET['error']) {
case 'new_error_message': //this is a sample error message. insert error case here
$error_message = '';
break;
default:
$error_message = 'Enter or Update Contact Information - </span><span class="yb_standard"> Yellow Bike uses this information soely to support the project and it is kept entirely private. When we apply for grants it helps us to know a little bit about our shop users. <p>Thanks for supporting The Yellow Bike Project. </p> </span><span class="yb_heading3red">';
break;
}
$page_shop_log = PAGE_SHOP_LOG . "?shop_id=$shop_id";
if($_GET['contact_id'] == 'new_contact'){
//adds contact is new_contact is selected
$insertSQL = sprintf("INSERT INTO contacts (date_created) VALUES (%s)",
GetSQLValueString('current_time', "date"));
mysql_select_db($database_YBDB, $YBDB);
$Result1 = mysql_query($insertSQL, $YBDB) or die(mysql_error());
mysql_select_db($database_YBDB, $YBDB);
$query_Recordset2 = "SELECT MAX(contact_id) as new_contact_id FROM contacts;";
$Recordset2 = mysql_query($query_Recordset2, $YBDB) or die(mysql_error());
$row_Recordset2 = mysql_fetch_assoc($Recordset2);
$totalRows_Recordset2 = mysql_num_rows($Recordset2);
$contact_id = $row_Recordset2['new_contact_id'];
$contact_id_entry = 'new_contact';
mysql_free_result($Recordset2);
} elseif(isset($_GET['contact_id'])) {
//else contact_id is assigned from passed value
$contact_id = $_GET['contact_id'];
$contact_id_entry = $_GET['contact_id'];
} else {
$contact_id = -1;
$contact_id_entry = -1;
}
$editFormAction = $_SERVER['PHP_SELF'] . "?contact_id={$contact_id}&shop_id={$shop_id}";
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
$updateSQL = sprintf("UPDATE contacts SET first_name=%s, middle_initial=%s, last_name=%s, email=%s, DOB=%s, receive_newsletter=%s, phone=%s, address1=%s, address2=%s, city=%s, `state`=%s, zip=%s, pass=ENCODE(%s,'yblcatx') WHERE contact_id=%s",
GetSQLValueString($_POST['first_name'], "text"),
GetSQLValueString($_POST['middle_initial'], "text"),
GetSQLValueString($_POST['last_name'], "text"),
GetSQLValueString($_POST['email'], "text"),
GetSQLValueString($_POST['DOB'], "date"),
GetSQLValueString($_POST['list_yes_no'], "int"),
GetSQLValueString($_POST['phone'], "text"),
GetSQLValueString($_POST['address1'], "text"),
GetSQLValueString($_POST['address2'], "text"),
GetSQLValueString($_POST['city'], "text"),
GetSQLValueString($_POST['state'], "text"),
GetSQLValueString($_POST['zip'], "text"),
GetSQLValueString($_POST['password'], "text"),
GetSQLValueString($_POST['contact_id'], "int"));
mysql_select_db($database_YBDB, $YBDB);
$Result1 = mysql_query($updateSQL, $YBDB) or die(mysql_error());
if ($_POST['contact_id_entry'] == 'new_contact'){
//navigate back to shop that it came from
//if there is an email address submitted pass this to google groups signup. Otherwise redirect to shop log.
if ((strpos($_POST['email'], '@') > 0) && ($_POST['list_yes_no'] == 1)) {
$email = $_POST['email'];
$pagegoto = "contact_add_edit_confirmation_iframe.php" . "?shop_id={$shop_id}&new_user_id={$contact_id}&email=$email";
} else {
$pagegoto = PAGE_SHOP_LOG . "?shop_id={$shop_id}&new_user_id={$contact_id}";
}
header(sprintf("Location: %s", $pagegoto));
}
}
mysql_select_db($database_YBDB, $YBDB);
$query_Recordset1 = "SELECT *, DECODE(pass,'yblcatx') AS passdecode FROM contacts WHERE contact_id = $contact_id";
$Recordset1 = mysql_query($query_Recordset1, $YBDB) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
?>
<?php include("include_header.html"); ?>
<table>
<tr valign="top">
<td align="left"><span class="yb_heading3red"><?php echo $error_message; ?></span></td>
</tr>
<tr>
<td align="center">
<form method="post" name="form1" action="<?php echo $editFormAction; ?>">
<table width="500" border="1" cellpadding="1" cellspacing="0" bordercolor="#CCCCCC">
<tr valign="baseline">
<td width="200" align="right" nowrap>Contact_id:</td>
<td><?php echo $row_Recordset1['contact_id']; ?></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">First_name:</td>
<td><input type="text" name="first_name" value="<?php echo $row_Recordset1['first_name']; ?>" size="32"></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">Middle_initial:</td>
<td><input name="middle_initial" type="text" value="<?php echo $row_Recordset1['middle_initial']; ?>" size="1" maxlength="1"></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">Last_name:</td>
<td><input type="text" name="last_name" value="<?php echo $row_Recordset1['last_name']; ?>" size="32"></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">Email:</td>
<td><input type="text" name="email" value="<?php echo $row_Recordset1['email']; ?>" size="32"></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">Date of Birth: </td>
<td><input type="text" name="DOB" value="<?php echo $row_Recordset1['DOB']; ?>" size="10" />
(YYYY-MM-DD) </td>
</tr>
<tr valign="baseline">
<td nowrap align="right">Receive YBP Newsletter?:</td>
<td><?php list_yes_no(list_yes_no,$row_Recordset1['receive_newsletter']); ?></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">Phone:</td>
<td><input type="text" name="phone" value="<?php echo $row_Recordset1['phone']; ?>" size="32"></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">Address1:</td>
<td><input type="text" name="address1" value="<?php echo $row_Recordset1['address1']; ?>" size="32"></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">Address2:</td>
<td><input type="text" name="address2" value="<?php echo $row_Recordset1['address2']; ?>" size="32"></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">City:</td>
<td><input type="text" name="city" value="<?php echo $row_Recordset1['city']; ?>" size="32"></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">State:</td>
<td><input name="state" type="text" value="<?php echo $row_Recordset1['state']; ?>" size="2" maxlength="2"></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">ZIP:</td>
<td><input type="text" name="zip" value="<?php echo $row_Recordset1['zip']; ?>" size="5"></td>
</tr>
<tr valign="baseline">
<td nowrap align="right">New Password:</td>
<td><input name="password" type="password" id="password" value="<?php echo $row_Recordset1['passdecode']; ?>" size="32">
<br />
Your password keeps others from viewing your personal information. </td>
</tr>
<tr valign="baseline">
<td nowrap align="right">&nbsp;</td>
<td><input type="submit" value="Update Contact Info"></td>
</tr>
</table>
<input type="hidden" name="MM_insert" value="form1">
<input type="hidden" name="contact_id" value="<?php echo $row_Recordset1['contact_id']; ?>">
<input type="hidden" name="contact_id_entry" value="<?php echo $contact_id_entry; ?>">
</form> </td>
</tr>
</table>
<p>&nbsp;</p>
<?php include("include_footer.html"); ?>
<?php
mysql_free_result($Recordset1);
?>
+227
View File
@@ -0,0 +1,227 @@
<?php
require_once('Connections/YBDB.php');
require_once('Connections/database_functions.php');
$page_edit_contact = PAGE_EDIT_CONTACT;
$page_individual_history_log = INDIVIDUAL_HISTORY_LOG;
mysql_select_db($database_YBDB, $YBDB);
//?shop_id=2
if($_GET['shop_id']>0){
$shop_id = $_GET['shop_id'];
} else {
$shop_id = current_shop_by_ip();
if (isset($shop_id)) {
//$shop_id stays the same
} else {
$gotopage = PAGE_START_SHOP . "?error=no_shop";
header(sprintf("Location: %s",$gotopage ));
}
}
if($_GET['visit_id']>0){
$visit_id = $_GET['visit_id'];
} else {
$visit_id =-1;}
if($_GET['new_user_id']>0){
$new_user_id = $_GET['new_user_id'];
} else {
$new_user_id = -1;
}
$query_Recordset1 = "SELECT shop_hours.shop_visit_id, shop_hours.contact_id, shop_hours.shop_user_role, shop_hours.project_id, shop_hours.time_in, shop_hours.time_out, TIME_FORMAT(TIMEDIFF(time_out, time_in),'%k:%i') as et, shop_hours.comment, CONCAT(contacts.last_name, ', ', contacts.first_name, ' ',contacts.middle_initial) AS full_name, contacts.first_name FROM shop_hours
LEFT JOIN shop_user_roles ON shop_hours.shop_user_role=shop_user_roles.shop_user_role_id
LEFT JOIN contacts ON shop_hours.contact_id=contacts.contact_id
WHERE shop_hours.shop_id = $shop_id ORDER BY hours_rank, time_in DESC;";
$Recordset1 = mysql_query($query_Recordset1, $YBDB) or die(mysql_error());
//$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
mysql_select_db($database_YBDB, $YBDB);
$query_Recordset2 = "SELECT * FROM shops WHERE shop_id = $shop_id;";
$Recordset2 = mysql_query($query_Recordset2, $YBDB) or die(mysql_error());
$row_Recordset2 = mysql_fetch_assoc($Recordset2);
$totalRows_Recordset2 = mysql_num_rows($Recordset2);
$shop_date = $row_Recordset2['date'];
$shop_location = $row_Recordset2['shop_location'];
$shop_type = $row_Recordset2['shop_type'];
mysql_select_db($database_YBDB, $YBDB);
$query_Recordset3 = "SELECT MIN(time_in) as shop_start FROM shop_hours WHERE shop_id = $shop_id;";
$Recordset3 = mysql_query($query_Recordset3, $YBDB) or die(mysql_error());
$row_Recordset3 = mysql_fetch_assoc($Recordset3);
$totalRows_Recordset3 = mysql_num_rows($Recordset3);
$shop_start_time = $row_Recordset3['shop_start'];
//Action on form update
//shop_log2.php?shop_id=2&amp;visit_id=4
$editFormAction = $_SERVER['PHP_SELF'] . "?shop_id=$shop_id&visit_id=$visit_id&welcome=yes";
$editFormAction_novisit = $_SERVER['PHP_SELF'] . "?shop_id=$shop_id&welcome=yes";
//if (isset($_SERVER['QUERY_STRING'])) {
// $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
//}
//Form Submit New Shop User
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form_new") && ($_POST["contact_id"] == "no_selection")){
//if no contact is selected
$error_message = '<span class="yb_heading3red">Please Select a User</span><br />';
} elseif ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form_new")) {
$insertSQL = sprintf("INSERT INTO shop_hours (contact_id, shop_id, shop_user_role, time_in) VALUES (%s, %s, %s, %s)",
GetSQLValueString($_POST['contact_id'], "int"),
GetSQLValueString($shop_id, "int"),
GetSQLValueString($_POST['user_role'], "text"),
GetSQLValueString($_POST['time_in'], "date"));
mysql_select_db($database_YBDB, $YBDB);
$Result1 = mysql_query($insertSQL, $YBDB) or die(mysql_error());
$insertGoTo = "shop_log2.php";
if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $editFormAction_novisit));
}
//$_POST["MM_insert"] is in the form: FormUpdate_$VisitID OR FormUpdate_142. This line seperates the visit id from the
//list($is_UpdateForm, $visit_id) = split('[_]', $_POST["MM_insert"]);
//Update Record isset($_POST["MM_update"])
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "FormUpdate")) {
$updateSQL = sprintf("UPDATE shop_hours SET time_out=%s WHERE shop_visit_id=%s",
GetSQLValueString($_POST['time_out'], "date"),
GetSQLValueString($_POST['shop_visit_id'], "int"));
//"2006-10-12 18:15:00"
mysql_select_db($database_YBDB, $YBDB);
$Result1 = mysql_query($updateSQL, $YBDB) or die(mysql_error());
$gotopage = "index.html";
header(sprintf("Location: %s",$editFormAction )); //$editFormAction
}
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "FormEdit")) {
$updateSQL = sprintf("UPDATE shop_hours SET contact_id=%s, shop_user_role=%s, project_id=%s, time_in=%s, time_out=%s, comment=%s WHERE shop_visit_id=%s",
GetSQLValueString($_POST['contact_id'], "int"),
GetSQLValueString($_POST['user_role'], "text"),
GetSQLValueString($_POST['project'], "text"),
GetSQLValueString($_POST['time_in'], "date"),
GetSQLValueString($_POST['time_out'], "date"),
GetSQLValueString($_POST['comment'], "text"),
GetSQLValueString($_POST['shop_visit_id'], "int"));
//"2006-10-12 18:15:00"
mysql_select_db($database_YBDB, $YBDB);
$Result1 = mysql_query($updateSQL, $YBDB) or die(mysql_error());
header(sprintf("Location: %s",$editFormAction_novisit )); //$editFormAction
}
?>
<?php include("include_header.html"); ?>
<table border="0" cellpadding="1" cellspacing="0">
<tr>
<td align="left" valign="bottom"><?php echo $error_message;?>
Shop ID: <span class="yb_standarditalics"><?php echo $shop_id;?></span>; &nbsp;Location: <span class="yb_standarditalics"><?php echo $shop_location;?></span>; &nbsp;Date: <span class="yb_standarditalics"><?php echo $shop_date;?></span>; &nbsp;Shop Type: <span class="yb_standarditalics"><?php echo $shop_type;?></span> </td>
</tr>
<tr>
<td>
<table border="1" cellpadding="1" cellspacing="0" bordercolor="#CCCCCC">
<tr bordercolor="#CCCCCC" bgcolor="#99CC33">
<td height="35"><strong>Shop User </strong></td>
<td height="35" bgcolor="#99CC33"><strong>Status</strong></td>
<td width="70" height="35"><strong>Time In </strong></td>
<td width="70" height="35"><strong>Time Out </strong></td>
<td height="35"><strong>Update Hours </strong></td>
<td height="35"><strong>Edit Data </strong></td>
</tr>
<form method="post" name="form_new" action="<?php echo $editFormAction; ?>">
<tr bordercolor="#CCCCCC">
<td height="40" valign="bottom"><strong>New User:</strong><br>
<span class="yb_standard_small">&nbsp;&nbsp;Not in the list: Create <a href="<?php echo $page_edit_contact; ?>?contact_id=new_contact&shop_id=<?php echo $shop_id?>">New User</a></span>
<?php list_contacts_select_user('contact_id', $new_user_id); ?></td>
<td valign="bottom"><strong>
<?php list_shop_user_roles('user_role','Personal'); ?>
</strong></td>
<td valign="bottom"><strong>
<?php if($totalRows_Recordset1 <> 0){
list_time($shop_start_time,'0000-00-00 00:00:00','time_in',-60,0,'none',16);
} else {
list_time("{$shop_date} 08:00:00",'0000-00-00 00:00:00','time_in',-15, 0, 'none',16);
}
?>
</strong></td>
<td valign="bottom"><img src="150_10.jpg" width="150" height="10" /></td>
<td valign="bottom"><input name="Submit" type="submit" value="Sign In" /></td>
<td valign="bottom">&nbsp;</td>
</tr>
<input type="hidden" name="MM_insert" value="form_new">
</form>
<tr valign="bottom" bordercolor="#CCCCCC" bgcolor="#99CC33">
<td height="25" colspan="6" bgcolor="#99CC33">&nbsp;&nbsp;&nbsp;&nbsp;Existing Shop Users:</td>
</tr>
<?php while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)) { //do {
if($visit_id == $row_Recordset1['shop_visit_id']) {?>
<form method="post" name="FormUpdate_<?php echo $row_Recordset1['shop_visit_id']; ?>" action="<?php echo $editFormAction; ?>">
<tr valign="bottom" bordercolor="#CCCCCC" bgcolor="#CCCC33">
<td>Edit Record: <br>
<?php list_contacts('contact_id', $row_Recordset1['contact_id']); ?></td>
<td><?php list_shop_user_roles('user_role', $row_Recordset1['shop_user_role']); ?></td>
<td><?php list_time($shop_start_time,'0000-00-00 00:00:00','time_in',-60,0,$row_Recordset1['time_in'],16); ?></td>
<td><?php
if ($row_Recordset1['time_out'] <> '0000-00-00 00:00:00'){
list_time($row_Recordset1['time_in'],$row_Recordset1['time_out'],'time_out',0,1,$row_Recordset1['time_out']);
} ?></td>
<td><input type="submit" name="Submit" value="Update Changes" /></td>
<td></td>
</tr>
<tr bordercolor="#CCCCCC" bgcolor="#CCCC33">
<td colspan="6"><table border="0" cellspacing="0" cellpadding="1">
<tr>
<td width="125"><div align="right">Project:</div></td>
<td><?php list_projects('project', $row_Recordset1['project_id']); ?></td>
</tr>
<tr>
<td><div align="right">Comment:</div></td>
<td><input name="comment" type="text" value="<?php echo $row_Recordset1['comment']; ?>" size="90" /></td>
</tr>
<?php ?>
<tr>
<td><div align="right">Delete:</div></td>
<td>Click to Delete this Shop User's Visit:</td>
<?php ?>
</tr>
</table> </td>
</tr>
<input type="hidden" name="MM_insert" value="FormEdit">
<input type="hidden" name="shop_visit_id" value="<?php echo $row_Recordset1['shop_visit_id']; ?>">
</form>
<?php } else { //This section executes if it is not the visit_id selected NOT FOR EDIT ?>
<form method="post" name="FormUpdate_<?php echo $row_Recordset1['shop_visit_id']; ?>" action="<?php echo $editFormAction; ?>">
<tr bordercolor="#CCCCCC">
<td><a href="<?php echo "{$page_individual_history_log}?contact_id=" . $row_Recordset1['contact_id']; ?>"><?php echo $row_Recordset1['full_name']; ?></a></td>
<td><?php echo $row_Recordset1['shop_user_role']; ?></td>
<td><?php echo date_to_time($row_Recordset1['time_in']); ?></td>
<td><?php echo list_time($row_Recordset1['time_in'],$row_Recordset1['time_out'],'time_out',0,1,'none', 8,$row_Recordset1['et']); ?></td>
<td><?php sign_out($row_Recordset1['time_out'], $row_Recordset1['first_name']); ?></td>
<td><?php echo "<a href=\"{$_SERVER['PHP_SELF']}?shop_id={$shop_id}&visit_id={$row_Recordset1['shop_visit_id']}\">edit</a>"; ?></td>
</tr>
<input type="hidden" name="MM_insert" value="FormUpdate">
<input type="hidden" name="shop_visit_id" value="<?php echo $row_Recordset1['shop_visit_id']; ?>">
</form>
<?php } // if
} //while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); // while Recordset1 ?>
</table> </tr>
<tr>
<td height="40" valign="bottom"></td>
</tr>
</table>
<p>&nbsp;</p>
<?php include("include_footer.html"); ?>
<?php
mysql_free_result($Recordset1);
?>
+59
View File
@@ -0,0 +1,59 @@
<?php
require_once('Connections/YBDB.php');
require_once('Connections/database_functions.php');
if($_GET['visit_id']>0){
$visit_id = $_GET['visit_id'];
} else {
$visit_id =-1;
}
if($_GET['shop_id']>0){
$shop_id = $_GET['shop_id'];
} else {
$shop_id =-1;
}
if(isset($_GET['confirm_delete'])){
$confirm_delete = $_GET['confirm_delete'];
} else {
$confirm_delete ='no';
}
$page_delete_yes = $_SERVER['PHP_SELF'] . "?" . htmlentities($_SERVER['QUERY_STRING']) . "&confirm=yes";
if ($shop_id <> 90){
//returns to the shop_log?shop_id page
$page_delete_no = PAGE_SHOP_LOG . "?" . htmlentities($_SERVER['QUERY_STRING']);
} else {
//returns to the individual hours page
$page_delete_no = INDIVIDUAL_HOURS_LOG . "?" . htmlentities($_SERVER['QUERY_STRING']);
}
if ((visit_id <> -1) && (shop_id <> -1) && ($_GET['confirm'] == 'yes')){
$insertSQL = "DELETE FROM shop_hours WHERE shop_visit_id = {$visit_id}";
mysql_select_db($database_YBDB, $YBDB);
$Result1 = mysql_query($insertSQL, $YBDB) or die(mysql_error());
$pagegoto = $page_delete_no;
header(sprintf("Location: %s", $pagegoto)); //browse back to shop
} // end if to delete
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Yellow Bike - Shop Login</title>
<link href="css_yb_standard.css" rel="stylesheet" type="text/css" />
</head>
<body class="yb_standard">
<p>Do you really want to delete this visit:</p>
<p>
<a href="<?php echo $page_delete_yes ?>">Yes</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<a href="<?php echo $page_delete_no ?>">No</a></p>
</body>
</html>
+227
View File
@@ -0,0 +1,227 @@
<?php
require_once('Connections/YBDB.php');
require_once('Connections/database_functions.php');
$page_edit_contact = PAGE_EDIT_CONTACT;
$page_individual_history_log = INDIVIDUAL_HISTORY_LOG;
mysql_select_db($database_YBDB, $YBDB);
//?shop_id=2
if($_GET['shop_id']>0){
$shop_id = $_GET['shop_id'];
} else {
$shop_id = current_shop_by_ip();
if (isset($shop_id)) {
//$shop_id stays the same
} else {
$gotopage = PAGE_START_SHOP . "?error=no_shop";
header(sprintf("Location: %s",$gotopage ));
}
}
if($_GET['visit_id']>0){
$visit_id = $_GET['visit_id'];
} else {
$visit_id =-1;}
if($_GET['new_user_id']>0){
$new_user_id = $_GET['new_user_id'];
} else {
$new_user_id = -1;
}
$query_Recordset1 = "SELECT shop_hours.shop_visit_id, shop_hours.contact_id, shop_hours.shop_user_role, shop_hours.project_id, shop_hours.time_in, shop_hours.time_out, TIME_FORMAT(TIMEDIFF(time_out, time_in),'%k:%i') as et, shop_hours.comment, CONCAT(contacts.last_name, ', ', contacts.first_name, ' ',contacts.middle_initial) AS full_name, contacts.first_name FROM shop_hours
LEFT JOIN shop_user_roles ON shop_hours.shop_user_role=shop_user_roles.shop_user_role_id
LEFT JOIN contacts ON shop_hours.contact_id=contacts.contact_id
WHERE shop_hours.shop_id = $shop_id ORDER BY hours_rank, time_in DESC;";
$Recordset1 = mysql_query($query_Recordset1, $YBDB) or die(mysql_error());
//$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
mysql_select_db($database_YBDB, $YBDB);
$query_Recordset2 = "SELECT * FROM shops WHERE shop_id = $shop_id;";
$Recordset2 = mysql_query($query_Recordset2, $YBDB) or die(mysql_error());
$row_Recordset2 = mysql_fetch_assoc($Recordset2);
$totalRows_Recordset2 = mysql_num_rows($Recordset2);
$shop_date = $row_Recordset2['date'];
$shop_location = $row_Recordset2['shop_location'];
$shop_type = $row_Recordset2['shop_type'];
mysql_select_db($database_YBDB, $YBDB);
$query_Recordset3 = "SELECT MIN(time_in) as shop_start FROM shop_hours WHERE shop_id = $shop_id;";
$Recordset3 = mysql_query($query_Recordset3, $YBDB) or die(mysql_error());
$row_Recordset3 = mysql_fetch_assoc($Recordset3);
$totalRows_Recordset3 = mysql_num_rows($Recordset3);
$shop_start_time = $row_Recordset3['shop_start'];
//Action on form update
//shop_log2.php?shop_id=2&amp;visit_id=4
$editFormAction = $_SERVER['PHP_SELF'] . "?shop_id=$shop_id&visit_id=$visit_id&welcome=yes";
$editFormAction_novisit = $_SERVER['PHP_SELF'] . "?shop_id=$shop_id&welcome=yes";
//if (isset($_SERVER['QUERY_STRING'])) {
// $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
//}
//Form Submit New Shop User
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form_new") && ($_POST["contact_id"] == "no_selection")){
//if no contact is selected
$error_message = '<span class="yb_heading3red">Please Select a User</span><br />';
} elseif ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form_new")) {
$insertSQL = sprintf("INSERT INTO shop_hours (contact_id, shop_id, shop_user_role, time_in) VALUES (%s, %s, %s, %s)",
GetSQLValueString($_POST['contact_id'], "int"),
GetSQLValueString($shop_id, "int"),
GetSQLValueString($_POST['user_role'], "text"),
GetSQLValueString($_POST['time_in'], "date"));
mysql_select_db($database_YBDB, $YBDB);
$Result1 = mysql_query($insertSQL, $YBDB) or die(mysql_error());
$insertGoTo = "shop_log2.php";
if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $editFormAction_novisit));
}
//$_POST["MM_insert"] is in the form: FormUpdate_$VisitID OR FormUpdate_142. This line seperates the visit id from the
//list($is_UpdateForm, $visit_id) = split('[_]', $_POST["MM_insert"]);
//Update Record isset($_POST["MM_update"])
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "FormUpdate")) {
$updateSQL = sprintf("UPDATE shop_hours SET time_out=%s WHERE shop_visit_id=%s",
GetSQLValueString($_POST['time_out'], "date"),
GetSQLValueString($_POST['shop_visit_id'], "int"));
//"2006-10-12 18:15:00"
mysql_select_db($database_YBDB, $YBDB);
$Result1 = mysql_query($updateSQL, $YBDB) or die(mysql_error());
$gotopage = "index.html";
header(sprintf("Location: %s",$editFormAction )); //$editFormAction
}
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "FormEdit")) {
$updateSQL = sprintf("UPDATE shop_hours SET contact_id=%s, shop_user_role=%s, project_id=%s, time_in=%s, time_out=%s, comment=%s WHERE shop_visit_id=%s",
GetSQLValueString($_POST['contact_id'], "int"),
GetSQLValueString($_POST['user_role'], "text"),
GetSQLValueString($_POST['project'], "text"),
GetSQLValueString($_POST['time_in'], "date"),
GetSQLValueString($_POST['time_out'], "date"),
GetSQLValueString($_POST['comment'], "text"),
GetSQLValueString($_POST['shop_visit_id'], "int"));
//"2006-10-12 18:15:00"
mysql_select_db($database_YBDB, $YBDB);
$Result1 = mysql_query($updateSQL, $YBDB) or die(mysql_error());
header(sprintf("Location: %s",$editFormAction_novisit )); //$editFormAction
}
?>
<?php include("include_header.html"); ?>
<table border="0" cellpadding="1" cellspacing="0">
<tr>
<td align="left" valign="bottom"><?php echo $error_message;?>
Shop ID: <span class="yb_standarditalics"><?php echo $shop_id;?></span>; &nbsp;Location: <span class="yb_standarditalics"><?php echo $shop_location;?></span>; &nbsp;Date: <span class="yb_standarditalics"><?php echo $shop_date;?></span>; &nbsp;Shop Type: <span class="yb_standarditalics"><?php echo $shop_type;?></span> </td>
</tr>
<tr>
<td>
<table border="1" cellpadding="1" cellspacing="0" bordercolor="#CCCCCC">
<tr bordercolor="#CCCCCC" bgcolor="#99CC33">
<td height="35"><strong>Shop User </strong></td>
<td height="35" bgcolor="#99CC33"><strong>Status</strong></td>
<td width="70" height="35"><strong>Time In </strong></td>
<td width="70" height="35"><strong>Time Out </strong></td>
<td height="35"><strong>Update Hours </strong></td>
<td height="35"><strong>Edit Data </strong></td>
</tr>
<form method="post" name="form_new" action="<?php echo $editFormAction; ?>">
<tr bordercolor="#CCCCCC">
<td height="40" valign="bottom"><strong>New User:</strong><br>
<span class="yb_standard_small">&nbsp;&nbsp;Not in the list: Create <a href="<?php echo $page_edit_contact; ?>?contact_id=new_contact&shop_id=<?php echo $shop_id?>">New User</a></span>
<?php list_contacts_select_user('contact_id', $new_user_id); ?></td>
<td valign="bottom"><strong>
<?php list_shop_user_roles('user_role','Personal'); ?>
</strong></td>
<td valign="bottom"><strong>
<?php if($totalRows_Recordset1 <> 0){
list_time($shop_start_time,'0000-00-00 00:00:00','time_in',-60,0,'none',16);
} else {
list_time("{$shop_date} 08:00:00",'0000-00-00 00:00:00','time_in',-15, 0, 'none',16);
}
?>
</strong></td>
<td valign="bottom"><img src="150_10.jpg" width="150" height="10" /></td>
<td valign="bottom"><input name="Submit" type="submit" value="Sign In" /></td>
<td valign="bottom">&nbsp;</td>
</tr>
<input type="hidden" name="MM_insert" value="form_new">
</form>
<tr valign="bottom" bordercolor="#CCCCCC" bgcolor="#99CC33">
<td height="25" colspan="6" bgcolor="#99CC33">&nbsp;&nbsp;&nbsp;&nbsp;Existing Shop Users:</td>
</tr>
<?php while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)) { //do {
if($visit_id == $row_Recordset1['shop_visit_id']) {?>
<form method="post" name="FormUpdate_<?php echo $row_Recordset1['shop_visit_id']; ?>" action="<?php echo $editFormAction; ?>">
<tr valign="bottom" bordercolor="#CCCCCC" bgcolor="#CCCC33">
<td>Edit Record: <br>
<?php list_contacts('contact_id', $row_Recordset1['contact_id']); ?></td>
<td><?php list_shop_user_roles('user_role', $row_Recordset1['shop_user_role']); ?></td>
<td><?php list_time($shop_start_time,'0000-00-00 00:00:00','time_in',-60,0,$row_Recordset1['time_in'],16); ?></td>
<td><?php
if ($row_Recordset1['time_out'] <> '0000-00-00 00:00:00'){
list_time($row_Recordset1['time_in'],$row_Recordset1['time_out'],'time_out',0,1,$row_Recordset1['time_out']);
} ?></td>
<td><input type="submit" name="Submit" value="Update Changes" /></td>
<td></td>
</tr>
<tr bordercolor="#CCCCCC" bgcolor="#CCCC33">
<td colspan="6"><table border="0" cellspacing="0" cellpadding="1">
<tr>
<td width="125"><div align="right">Project:</div></td>
<td><?php list_projects('project', $row_Recordset1['project_id']); ?></td>
</tr>
<tr>
<td><div align="right">Comment:</div></td>
<td><input name="comment" type="text" value="<?php echo $row_Recordset1['comment']; ?>" size="90" /></td>
</tr>
<?php ?>
<tr>
<td><div align="right">Delete:</div></td>
<td>Click to Delete this Shop User's Visit:</td>
<?php ?>
</tr>
</table> </td>
</tr>
<input type="hidden" name="MM_insert" value="FormEdit">
<input type="hidden" name="shop_visit_id" value="<?php echo $row_Recordset1['shop_visit_id']; ?>">
</form>
<?php } else { //This section executes if it is not the visit_id selected NOT FOR EDIT ?>
<form method="post" name="FormUpdate_<?php echo $row_Recordset1['shop_visit_id']; ?>" action="<?php echo $editFormAction; ?>">
<tr bordercolor="#CCCCCC">
<td><a href="<?php echo "{$page_individual_history_log}?contact_id=" . $row_Recordset1['contact_id']; ?>"><?php echo $row_Recordset1['full_name']; ?></a></td>
<td><?php echo $row_Recordset1['shop_user_role']; ?></td>
<td><?php echo date_to_time($row_Recordset1['time_in']); ?></td>
<td><?php echo list_time($row_Recordset1['time_in'],$row_Recordset1['time_out'],'time_out',0,1,'none', 8,$row_Recordset1['et']); ?></td>
<td><?php sign_out($row_Recordset1['time_out'], $row_Recordset1['first_name']); ?></td>
<td><?php echo "<a href=\"{$_SERVER['PHP_SELF']}?shop_id={$shop_id}&visit_id={$row_Recordset1['shop_visit_id']}\">edit</a>"; ?></td>
</tr>
<input type="hidden" name="MM_insert" value="FormUpdate">
<input type="hidden" name="shop_visit_id" value="<?php echo $row_Recordset1['shop_visit_id']; ?>">
</form>
<?php } // if
} //while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); // while Recordset1 ?>
</table> </tr>
<tr>
<td height="40" valign="bottom"></td>
</tr>
</table>
<p>&nbsp;</p>
<?php include("include_footer.html"); ?>
<?php
mysql_free_result($Recordset1);
?>
View File
+381 -104
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.

After

Width:  |  Height:  |  Size: 538 B

+437
View File
@@ -0,0 +1,437 @@
/*!
Chosen, a Select Box Enhancer for jQuery and Prototype
by Patrick Filler for Harvest, http://getharvest.com
Version 1.3.0
Full source at https://github.com/harvesthq/chosen
Copyright (c) 2011-2014 Harvest http://getharvest.com
MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md
This file is generated by `grunt build`, do not edit it by hand.
*/
/* @group Base */
.chosen-container {
position: relative;
display: inline-block;
vertical-align: middle;
font-size: 13px;
zoom: 1;
*display: inline;
-webkit-user-select: none;
-moz-user-select: none;
user-select: none;
}
.chosen-container * {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.chosen-container .chosen-drop {
position: absolute;
top: 100%;
left: -9999px;
z-index: 1010;
width: 100%;
border: 1px solid #aaa;
border-top: 0;
background: #fff;
box-shadow: 0 4px 5px rgba(0, 0, 0, 0.15);
}
.chosen-container.chosen-with-drop .chosen-drop {
left: 0;
}
.chosen-container a {
cursor: pointer;
}
/* @end */
/* @group Single Chosen */
.chosen-container-single .chosen-single {
position: relative;
display: block;
overflow: hidden;
padding: 0 0 0 8px;
height: 25px;
border: 1px solid #aaa;
border-radius: 5px;
background-color: #fff;
background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #ffffff), color-stop(50%, #f6f6f6), color-stop(52%, #eeeeee), color-stop(100%, #f4f4f4));
background: -webkit-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
background: -moz-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
background: -o-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
background: linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
background-clip: padding-box;
box-shadow: 0 0 3px white inset, 0 1px 1px rgba(0, 0, 0, 0.1);
color: #444;
text-decoration: none;
white-space: nowrap;
line-height: 24px;
}
.chosen-container-single .chosen-default {
color: #999;
}
.chosen-container-single .chosen-single span {
display: block;
overflow: hidden;
margin-right: 26px;
text-overflow: ellipsis;
white-space: nowrap;
}
.chosen-container-single .chosen-single-with-deselect span {
margin-right: 38px;
}
.chosen-container-single .chosen-single abbr {
position: absolute;
top: 6px;
right: 26px;
display: block;
width: 12px;
height: 12px;
background: url('chosen-sprite.png') -42px 1px no-repeat;
font-size: 1px;
}
.chosen-container-single .chosen-single abbr:hover {
background-position: -42px -10px;
}
.chosen-container-single.chosen-disabled .chosen-single abbr:hover {
background-position: -42px -10px;
}
.chosen-container-single .chosen-single div {
position: absolute;
top: 0;
right: 0;
display: block;
width: 18px;
height: 100%;
}
.chosen-container-single .chosen-single div b {
display: block;
width: 100%;
height: 100%;
background: url('chosen-sprite.png') no-repeat 0px 2px;
}
.chosen-container-single .chosen-search {
position: relative;
z-index: 1010;
margin: 0;
padding: 3px 4px;
white-space: nowrap;
}
.chosen-container-single .chosen-search input[type="text"] {
margin: 1px 0;
padding: 4px 20px 4px 5px;
width: 100%;
height: auto;
outline: 0;
border: 1px solid #aaa;
background: white url('chosen-sprite.png') no-repeat 100% -20px;
background: url('chosen-sprite.png') no-repeat 100% -20px;
font-size: 1em;
font-family: sans-serif;
line-height: normal;
border-radius: 0;
}
.chosen-container-single .chosen-drop {
margin-top: -1px;
border-radius: 0 0 4px 4px;
background-clip: padding-box;
}
.chosen-container-single.chosen-container-single-nosearch .chosen-search {
position: absolute;
left: -9999px;
}
/* @end */
/* @group Results */
.chosen-container .chosen-results {
color: #444;
position: relative;
overflow-x: hidden;
overflow-y: auto;
margin: 0 4px 4px 0;
padding: 0 0 0 4px;
max-height: 240px;
-webkit-overflow-scrolling: touch;
}
.chosen-container .chosen-results li {
display: none;
margin: 0;
padding: 5px 6px;
list-style: none;
line-height: 15px;
word-wrap: break-word;
-webkit-touch-callout: none;
}
.chosen-container .chosen-results li.active-result {
display: list-item;
cursor: pointer;
}
.chosen-container .chosen-results li.disabled-result {
display: list-item;
color: #ccc;
cursor: default;
}
.chosen-container .chosen-results li.highlighted {
background-color: #3875d7;
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #3875d7), color-stop(90%, #2a62bc));
background-image: -webkit-linear-gradient(#3875d7 20%, #2a62bc 90%);
background-image: -moz-linear-gradient(#3875d7 20%, #2a62bc 90%);
background-image: -o-linear-gradient(#3875d7 20%, #2a62bc 90%);
background-image: linear-gradient(#3875d7 20%, #2a62bc 90%);
color: #fff;
}
.chosen-container .chosen-results li.no-results {
color: #777;
display: list-item;
background: #f4f4f4;
}
.chosen-container .chosen-results li.group-result {
display: list-item;
font-weight: bold;
cursor: default;
}
.chosen-container .chosen-results li.group-option {
padding-left: 15px;
}
.chosen-container .chosen-results li em {
font-style: normal;
text-decoration: underline;
}
/* @end */
/* @group Multi Chosen */
.chosen-container-multi .chosen-choices {
position: relative;
overflow: hidden;
margin: 0;
padding: 0 5px;
width: 100%;
height: auto !important;
height: 1%;
border: 1px solid #aaa;
background-color: #fff;
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(1%, #eeeeee), color-stop(15%, #ffffff));
background-image: -webkit-linear-gradient(#eeeeee 1%, #ffffff 15%);
background-image: -moz-linear-gradient(#eeeeee 1%, #ffffff 15%);
background-image: -o-linear-gradient(#eeeeee 1%, #ffffff 15%);
background-image: linear-gradient(#eeeeee 1%, #ffffff 15%);
cursor: text;
}
.chosen-container-multi .chosen-choices li {
float: left;
list-style: none;
}
.chosen-container-multi .chosen-choices li.search-field {
margin: 0;
padding: 0;
white-space: nowrap;
}
.chosen-container-multi .chosen-choices li.search-field input[type="text"] {
margin: 1px 0;
padding: 0;
height: 25px;
outline: 0;
border: 0 !important;
background: transparent !important;
box-shadow: none;
color: #999;
font-size: 100%;
font-family: sans-serif;
line-height: normal;
border-radius: 0;
}
.chosen-container-multi .chosen-choices li.search-choice {
position: relative;
margin: 3px 5px 3px 0;
padding: 3px 20px 3px 5px;
border: 1px solid #aaa;
max-width: 100%;
border-radius: 3px;
background-color: #eeeeee;
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), color-stop(100%, #eeeeee));
background-image: -webkit-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
background-image: -moz-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
background-image: -o-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
background-size: 100% 19px;
background-repeat: repeat-x;
background-clip: padding-box;
box-shadow: 0 0 2px white inset, 0 1px 0 rgba(0, 0, 0, 0.05);
color: #333;
line-height: 13px;
cursor: default;
}
.chosen-container-multi .chosen-choices li.search-choice span {
word-wrap: break-word;
}
.chosen-container-multi .chosen-choices li.search-choice .search-choice-close {
position: absolute;
top: 4px;
right: 3px;
display: block;
width: 12px;
height: 12px;
background: url('chosen-sprite.png') -42px 1px no-repeat;
font-size: 1px;
}
.chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover {
background-position: -42px -10px;
}
.chosen-container-multi .chosen-choices li.search-choice-disabled {
padding-right: 5px;
border: 1px solid #ccc;
background-color: #e4e4e4;
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), color-stop(100%, #eeeeee));
background-image: -webkit-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
background-image: -moz-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
background-image: -o-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
background-image: linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
color: #666;
}
.chosen-container-multi .chosen-choices li.search-choice-focus {
background: #d4d4d4;
}
.chosen-container-multi .chosen-choices li.search-choice-focus .search-choice-close {
background-position: -42px -10px;
}
.chosen-container-multi .chosen-results {
margin: 0;
padding: 0;
}
.chosen-container-multi .chosen-drop .result-selected {
display: list-item;
color: #ccc;
cursor: default;
}
/* @end */
/* @group Active */
.chosen-container-active .chosen-single {
border: 1px solid #5897fb;
box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
}
.chosen-container-active.chosen-with-drop .chosen-single {
border: 1px solid #aaa;
-moz-border-radius-bottomright: 0;
border-bottom-right-radius: 0;
-moz-border-radius-bottomleft: 0;
border-bottom-left-radius: 0;
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #eeeeee), color-stop(80%, #ffffff));
background-image: -webkit-linear-gradient(#eeeeee 20%, #ffffff 80%);
background-image: -moz-linear-gradient(#eeeeee 20%, #ffffff 80%);
background-image: -o-linear-gradient(#eeeeee 20%, #ffffff 80%);
background-image: linear-gradient(#eeeeee 20%, #ffffff 80%);
box-shadow: 0 1px 0 #fff inset;
}
.chosen-container-active.chosen-with-drop .chosen-single div {
border-left: none;
background: transparent;
}
.chosen-container-active.chosen-with-drop .chosen-single div b {
background-position: -18px 2px;
}
.chosen-container-active .chosen-choices {
border: 1px solid #5897fb;
box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
}
.chosen-container-active .chosen-choices li.search-field input[type="text"] {
color: #222 !important;
}
/* @end */
/* @group Disabled Support */
.chosen-disabled {
opacity: 0.5 !important;
cursor: default;
}
.chosen-disabled .chosen-single {
cursor: default;
}
.chosen-disabled .chosen-choices .search-choice .search-choice-close {
cursor: default;
}
/* @end */
/* @group Right to Left */
.chosen-rtl {
text-align: right;
}
.chosen-rtl .chosen-single {
overflow: visible;
padding: 0 8px 0 0;
}
.chosen-rtl .chosen-single span {
margin-right: 0;
margin-left: 26px;
direction: rtl;
}
.chosen-rtl .chosen-single-with-deselect span {
margin-left: 38px;
}
.chosen-rtl .chosen-single div {
right: auto;
left: 3px;
}
.chosen-rtl .chosen-single abbr {
right: auto;
left: 26px;
}
.chosen-rtl .chosen-choices li {
float: right;
}
.chosen-rtl .chosen-choices li.search-field input[type="text"] {
direction: rtl;
}
.chosen-rtl .chosen-choices li.search-choice {
margin: 3px 5px 3px 0;
padding: 3px 5px 3px 19px;
}
.chosen-rtl .chosen-choices li.search-choice .search-choice-close {
right: auto;
left: 4px;
}
.chosen-rtl.chosen-container-single-nosearch .chosen-search,
.chosen-rtl .chosen-drop {
left: 9999px;
}
.chosen-rtl.chosen-container-single .chosen-results {
margin: 0 0 4px 4px;
padding: 0 4px 0 0;
}
.chosen-rtl .chosen-results li.group-option {
padding-right: 15px;
padding-left: 0;
}
.chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div {
border-right: none;
}
.chosen-rtl .chosen-search input[type="text"] {
padding: 4px 5px 4px 20px;
background: white url('chosen-sprite.png') no-repeat -30px -20px;
background: url('chosen-sprite.png') no-repeat -30px -20px;
direction: rtl;
}
.chosen-rtl.chosen-container-single .chosen-single div b {
background-position: 6px 2px;
}
.chosen-rtl.chosen-container-single.chosen-with-drop .chosen-single div b {
background-position: -12px 2px;
}
/* @end */
/* @group Retina compatibility */
@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-resolution: 144dpi) {
.chosen-rtl .chosen-search input[type="text"],
.chosen-container-single .chosen-single abbr,
.chosen-container-single .chosen-single div b,
.chosen-container-single .chosen-search input[type="text"],
.chosen-container-multi .chosen-choices .search-choice .search-choice-close,
.chosen-container .chosen-results-scroll-down span,
.chosen-container .chosen-results-scroll-up span {
background-image: url('chosen-sprite@2x.png') !important;
background-size: 52px 37px !important;
background-repeat: no-repeat !important;
}
}
/* @end */
+95
View File
@@ -0,0 +1,95 @@
.contacts {
display: inline-block;
text-align: right;
width: 161px;
font-weight: bold;
padding-right: 5px;
}
.contact_comment {
display: inline-block;
}
/* center label with textarea */
.center_comment * {
vertical-align: middle;
}
#interest_form, #waiver {
padding: 10px;
display: block;
border: 1px solid rgb(173, 216, 230);
}
#interest_form > p {
margin-top: 0;
}
#submit_contact, #sign_in_button {
height: 36px;
width: 98px;
font-size: x-large;
}
#submit_contact:focus {
color: green;
}
#interest_form_button:focus {
color: green;
}
#waiver_button:focus {
color: green;
}
/* errors */
#waiver_error, #phone_error, #email_error,
#first_name_error, #last_name_error, #email_list_error
{
color: red;
}
/* toggle for mailman or other email list */
.toggle {
height: 50px;
}
.toggle.off .noUi-handle {
border-color: red;
}
.toggle.on .noUi-handle {
border-color: green;
}
/* get rid of the pesky handle stripping with specificity (when figured out) */
#email_list_toggle > div > div > div:before, #email_list_toggle > div > div > div:after,
{
content: none;
}
.toggle.noUi-horizontal .noUi-handle {
width: 34px;
height: 20px;
top: -2px;
}
.toggle.noUi-horizontal.noUi-extended {
padding-right: 32px;
}
.toggle.noUi-horizontal.noUi-extended .noUi-handle {
left: -1px;
}
.toggle.noUi-horizontal.noUi-extended .noUi-origin {
right: -32px;
}
#email_list_block > div {
display: inline-block;
}
/* end email list toggle */
@@ -41,7 +41,8 @@
font-weight: bold;
}
.yb_heading3red {
color: #FF0000;
//color: #FF0000;
color: blue;
background-color: #FFFFFF;
font-weight: bold;
}
@@ -78,4 +79,20 @@
.yb_standardred {
color: #FF0000;
background-color: #FFFFFF;
}
.footer {
text-align: center;
margin: 20px 0 5px;
font-size: 85%;
color: #999;
}
.footer-line a {
text-decoration: none;
color: #cc3334;
}
.footer-line a:hover {
text-decoration: underline;
}
+168
View File
@@ -0,0 +1,168 @@
/* Functional styling;
* These styles are required for noUiSlider to function.
* You don't need to change these rules to apply your design.
*/
.noUi-target,
.noUi-target * {
-webkit-touch-callout: none;
-webkit-user-select: none;
-ms-touch-action: none;
-ms-user-select: none;
-moz-user-select: none;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.noUi-target {
position: relative;
direction: ltr;
}
.noUi-base {
width: 100%;
height: 100%;
position: relative;
}
.noUi-origin {
position: absolute;
right: 0;
top: 0;
left: 0;
bottom: 0;
}
.noUi-handle {
position: relative;
z-index: 1;
}
.noUi-stacking .noUi-handle {
/* This class is applied to the lower origin when
its values is > 50%. */
z-index: 10;
}
.noUi-stacking + .noUi-origin {
/* Fix stacking order in IE7, which incorrectly
creates a new context for the origins. */
*z-index: -1;
}
.noUi-state-tap .noUi-origin {
-webkit-transition: left 0.3s, top 0.3s;
transition: left 0.3s, top 0.3s;
}
.noUi-state-drag * {
cursor: inherit !important;
}
/* Painting and performance;
* Browsers can paint handles in their own layer.
*/
.noUi-base {
-webkit-transform: translate3d(0,0,0);
transform: translate3d(0,0,0);
}
/* Slider size and handle placement;
*/
.noUi-horizontal {
height: 18px;
}
.noUi-horizontal .noUi-handle {
width: 34px;
height: 28px;
left: -17px;
top: -6px;
}
.noUi-vertical {
width: 18px;
}
.noUi-vertical .noUi-handle {
width: 28px;
height: 34px;
left: -6px;
top: -17px;
}
/* Styling;
*/
.noUi-background {
background: #FAFAFA;
box-shadow: inset 0 1px 1px #f0f0f0;
}
.noUi-connect {
background: #3FB8AF;
box-shadow: inset 0 0 3px rgba(51,51,51,0.45);
-webkit-transition: background 450ms;
transition: background 450ms;
}
.noUi-origin {
border-radius: 2px;
}
.noUi-target {
border-radius: 4px;
border: 1px solid #D3D3D3;
box-shadow: inset 0 1px 1px #F0F0F0, 0 3px 6px -5px #BBB;
}
.noUi-target.noUi-connect {
box-shadow: inset 0 0 3px rgba(51,51,51,0.45), 0 3px 6px -5px #BBB;
}
/* Handles and cursors;
*/
.noUi-dragable {
cursor: w-resize;
}
.noUi-vertical .noUi-dragable {
cursor: n-resize;
}
.noUi-handle {
border: 1px solid #D9D9D9;
border-radius: 3px;
background: #FFF;
cursor: default;
box-shadow: inset 0 0 1px #FFF,
inset 0 1px 7px #EBEBEB,
0 3px 6px -3px #BBB;
}
.noUi-active {
box-shadow: inset 0 0 1px #FFF,
inset 0 1px 7px #DDD,
0 3px 6px -3px #BBB;
}
/* Handle stripes;
*/
/*
.noUi-handle:before,
.noUi-handle:after {
content: "";
display: block;
position: absolute;
height: 14px;
width: 1px;
background: #E8E7E6;
left: 14px;
top: 6px;
}
*/
.noUi-handle:after {
left: 17px;
}
.noUi-vertical .noUi-handle:before,
.noUi-vertical .noUi-handle:after {
width: 14px;
height: 1px;
left: 6px;
top: 14px;
}
.noUi-vertical .noUi-handle:after {
top: 17px;
}
/* Disabled state;
*/
[disabled].noUi-connect,
[disabled] .noUi-connect {
background: #B8B8B8;
}
[disabled] .noUi-handle {
cursor: not-allowed;
}
+166
View File
@@ -0,0 +1,166 @@
/* Functional styling;
* These styles are required for noUiSlider to function.
* You don't need to change these rules to apply your design.
*/
.noUi-target,
.noUi-target * {
-webkit-touch-callout: none;
-webkit-user-select: none;
-ms-touch-action: none;
-ms-user-select: none;
-moz-user-select: none;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.noUi-target {
position: relative;
direction: ltr;
}
.noUi-base {
width: 100%;
height: 100%;
position: relative;
}
.noUi-origin {
position: absolute;
right: 0;
top: 0;
left: 0;
bottom: 0;
}
.noUi-handle {
position: relative;
z-index: 1;
}
.noUi-stacking .noUi-handle {
/* This class is applied to the lower origin when
its values is > 50%. */
z-index: 10;
}
.noUi-stacking + .noUi-origin {
/* Fix stacking order in IE7, which incorrectly
creates a new context for the origins. */
*z-index: -1;
}
.noUi-state-tap .noUi-origin {
-webkit-transition: left 0.3s, top 0.3s;
transition: left 0.3s, top 0.3s;
}
.noUi-state-drag * {
cursor: inherit !important;
}
/* Painting and performance;
* Browsers can paint handles in their own layer.
*/
.noUi-base {
-webkit-transform: translate3d(0,0,0);
transform: translate3d(0,0,0);
}
/* Slider size and handle placement;
*/
.noUi-horizontal {
height: 18px;
}
.noUi-horizontal .noUi-handle {
width: 34px;
height: 28px;
left: -17px;
top: -6px;
}
.noUi-vertical {
width: 18px;
}
.noUi-vertical .noUi-handle {
width: 28px;
height: 34px;
left: -6px;
top: -17px;
}
/* Styling;
*/
.noUi-background {
background: #FAFAFA;
box-shadow: inset 0 1px 1px #f0f0f0;
}
.noUi-connect {
background: #3FB8AF;
box-shadow: inset 0 0 3px rgba(51,51,51,0.45);
-webkit-transition: background 450ms;
transition: background 450ms;
}
.noUi-origin {
border-radius: 2px;
}
.noUi-target {
border-radius: 4px;
border: 1px solid #D3D3D3;
box-shadow: inset 0 1px 1px #F0F0F0, 0 3px 6px -5px #BBB;
}
.noUi-target.noUi-connect {
box-shadow: inset 0 0 3px rgba(51,51,51,0.45), 0 3px 6px -5px #BBB;
}
/* Handles and cursors;
*/
.noUi-dragable {
cursor: w-resize;
}
.noUi-vertical .noUi-dragable {
cursor: n-resize;
}
.noUi-handle {
border: 1px solid #D9D9D9;
border-radius: 3px;
background: #FFF;
cursor: default;
box-shadow: inset 0 0 1px #FFF,
inset 0 1px 7px #EBEBEB,
0 3px 6px -3px #BBB;
}
.noUi-active {
box-shadow: inset 0 0 1px #FFF,
inset 0 1px 7px #DDD,
0 3px 6px -3px #BBB;
}
/* Handle stripes;
*/
.noUi-handle:before,
.noUi-handle:after {
content: "";
display: block;
position: absolute;
height: 14px;
width: 1px;
background: #E8E7E6;
left: 14px;
top: 6px;
}
.noUi-handle:after {
left: 17px;
}
.noUi-vertical .noUi-handle:before,
.noUi-vertical .noUi-handle:after {
width: 14px;
height: 1px;
left: 6px;
top: 14px;
}
.noUi-vertical .noUi-handle:after {
top: 17px;
}
/* Disabled state;
*/
[disabled].noUi-connect,
[disabled] .noUi-connect {
background: #B8B8B8;
}
[disabled] .noUi-handle {
cursor: not-allowed;
}
+86
View File
@@ -0,0 +1,86 @@
/**
* @package PickMeUp - jQuery datepicker plugin
* @author Nazar Mokrynskyi <nazar@mokrynskyi.com>
* @author Stefan Petre <www.eyecon.ro>
* @copyright Copyright (c) 2013-2015, Nazar Mokrynskyi
* @copyright Copyright (c) 2008-2009, Stefan Petre
* @license MIT License, see license.txt
*/
.pickmeup {
background: #000;
border-radius: 0.4em;
-moz-box-sizing: content-box;
box-sizing: content-box;
display: none;
position: absolute; }
.pickmeup * {
-moz-box-sizing: border-box;
box-sizing: border-box; }
.pickmeup .pmu-instance {
display: inline-block;
height: 13.8em;
padding: .5em;
text-align: center;
width: 15em; }
.pickmeup .pmu-instance .pmu-button {
color: #eee;
cursor: pointer;
outline: none;
text-decoration: none; }
.pickmeup .pmu-instance .pmu-today {
background: #17384d;
color: #88c5eb; }
.pickmeup .pmu-instance .pmu-button:hover {
background: "transparent";
color: #88c5eb; }
.pickmeup .pmu-instance .pmu-not-in-month {
color: #666; }
.pickmeup .pmu-instance .pmu-disabled,
.pickmeup .pmu-instance .pmu-disabled:hover {
color: #333;
cursor: default; }
.pickmeup .pmu-instance .pmu-selected {
background: #136a9f;
color: #eee; }
.pickmeup .pmu-instance .pmu-not-in-month.pmu-selected {
background: #17384d; }
.pickmeup .pmu-instance nav {
color: #eee;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
line-height: 2em; }
.pickmeup .pmu-instance nav *:first-child :hover {
color: #88c5eb; }
.pickmeup .pmu-instance nav .pmu-prev,
.pickmeup .pmu-instance nav .pmu-next {
display: none;
height: 2em;
width: 1em; }
.pickmeup .pmu-instance nav .pmu-month {
width: 14em; }
.pickmeup .pmu-instance .pmu-years *,
.pickmeup .pmu-instance .pmu-months * {
display: inline-block;
line-height: 3.6em;
width: 3.5em; }
.pickmeup .pmu-instance .pmu-day-of-week {
color: #999;
cursor: default; }
.pickmeup .pmu-instance .pmu-day-of-week *,
.pickmeup .pmu-instance .pmu-days * {
display: inline-block;
line-height: 1.5em;
width: 2em; }
.pickmeup .pmu-instance .pmu-day-of-week * {
line-height: 1.8em; }
.pickmeup .pmu-instance:first-child .pmu-prev,
.pickmeup .pmu-instance:last-child .pmu-next {
display: block; }
.pickmeup .pmu-instance:first-child .pmu-month,
.pickmeup .pmu-instance:last-child .pmu-month {
width: 13em; }
.pickmeup .pmu-instance:first-child:last-child .pmu-month {
width: 12em; }
.pickmeup:not(.pmu-view-days) .pmu-days, .pickmeup:not(.pmu-view-days) .pmu-day-of-week, .pickmeup:not(.pmu-view-months) .pmu-months, .pickmeup:not(.pmu-view-years) .pmu-years {
display: none; }
+69
View File
@@ -0,0 +1,69 @@
.stats td {
padding: 0px 10px 0px 10px;
}
#status_totals, #community_service_hours, #shops, #members, #dhhr_hours{
height: 36px;
width: 98px;
font-size: x-large;
color:green;
}
.stats-clear:after,.stats-clear:before,.stats-bar {
content:"";
display:table;
clear:both;
}
.nextprev a {
font-size:17px;
border:1px solid #cccccc;
}
.nextprev a:link,.nextprev a:visited {
background-color:#ffffff;
color:#000000;
}
.nextprev a.stats-right {
background-color:#4CAF50;
color:#ffffff;
border-color:#4CAF50
}
.stats-btn,.stats-button {
border:none;
display:inline-block;
outline:0;
padding:8px 16px;
vertical-align:middle;
overflow:hidden;
text-decoration:none;
color:inherit;
background-color:inherit;
text-align:center;
cursor:pointer;
white-space:nowrap
}
.stats-btn:hover {
box-shadow:0 8px 16px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19);
}
.stats-btn,.stats-button {
-webkit-touch-callout:none;
-webkit-user-select:none;
-khtml-user-select:none;
-moz-user-select:none;
-ms-user-select:none;
user-select:none;
}
.stats-disabled,.stats-btn:disabled,.stats-button:disabled {
cursor:not-allowed;opacity:0.3;
}
.stats-disabled *,:disabled *{
pointer-events:none;
}
.stats-btn.stats-disabled:hover,.stats-btn:disabled:hover {
box-shadow:none;
}
/*
.stats-left{float:left!important}
.stats-right{float:right!important}
*/
@@ -0,0 +1,574 @@
/* Tabulator v3.3.1 (c) Oliver Folkerd */
.tabulator {
position: relative;
background-color: #fff;
overflow: hidden;
font-size: 14px;
text-align: left;
width: 100%;
max-width: 100%;
margin-bottom: 20px;
-ms-transform: translatez(0);
transform: translatez(0);
}
.tabulator[tabulator-layout="fitDataFill"] .tabulator-tableHolder .tabulator-table {
min-width: 100%;
}
.tabulator.tabulator-block-select {
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.tabulator .tabulator-header {
position: relative;
box-sizing: border-box;
width: 100%;
border-bottom: 2px solid #ddd;
background-color: #fff;
font-weight: bold;
white-space: nowrap;
overflow: hidden;
-moz-user-select: none;
-khtml-user-select: none;
-webkit-user-select: none;
-o-user-select: none;
}
.tabulator .tabulator-header .tabulator-col {
display: inline-block;
position: relative;
box-sizing: border-box;
background-color: #fff;
text-align: left;
vertical-align: bottom;
overflow: hidden;
}
.tabulator .tabulator-header .tabulator-col.tabulator-moving {
position: absolute;
border: 1px solid #ddd;
background: #e6e6e6;
pointer-events: none;
}
.tabulator .tabulator-header .tabulator-col .tabulator-col-content {
position: relative;
padding: 8px;
}
.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title {
box-sizing: border-box;
width: 100%;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
vertical-align: bottom;
}
.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title .tabulator-title-editor {
box-sizing: border-box;
width: 100%;
border: 1px solid #999;
padding: 1px;
background: #fff;
}
.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-arrow {
display: inline-block;
position: absolute;
top: 14px;
right: 8px;
width: 0;
height: 0;
border-left: 6px solid transparent;
border-right: 6px solid transparent;
border-bottom: 6px solid #bbb;
}
.tabulator .tabulator-header .tabulator-col.tabulator-col-group .tabulator-col-group-cols {
position: relative;
display: -ms-flexbox;
display: flex;
border-top: 1px solid #ddd;
overflow: hidden;
}
.tabulator .tabulator-header .tabulator-col.tabulator-col-group .tabulator-col-group-cols .tabulator-col:last-child {
margin-right: -1px;
}
.tabulator .tabulator-header .tabulator-col:first-child .tabulator-col-resize-handle.prev {
display: none;
}
.tabulator .tabulator-header .tabulator-col.ui-sortable-helper {
position: absolute;
background-color: #e6e6e6 !important;
border: 1px solid #ddd;
}
.tabulator .tabulator-header .tabulator-col .tabulator-header-filter {
position: relative;
box-sizing: border-box;
margin-top: 2px;
width: 100%;
text-align: center;
}
.tabulator .tabulator-header .tabulator-col .tabulator-header-filter textarea {
height: auto !important;
}
.tabulator .tabulator-header .tabulator-col .tabulator-header-filter svg {
margin-top: 3px;
}
.tabulator .tabulator-header .tabulator-col.tabulator-sortable .tabulator-col-title {
padding-right: 25px;
}
.tabulator .tabulator-header .tabulator-col.tabulator-sortable:hover {
cursor: pointer;
background-color: #e6e6e6;
}
.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort="none"] .tabulator-col-content .tabulator-arrow {
border-top: none;
border-bottom: 6px solid #bbb;
}
.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort="asc"] .tabulator-col-content .tabulator-arrow {
border-top: none;
border-bottom: 6px solid #666;
}
.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort="desc"] .tabulator-col-content .tabulator-arrow {
border-top: 6px solid #666;
border-bottom: none;
}
.tabulator .tabulator-header .tabulator-frozen {
display: inline-block;
position: absolute;
z-index: 10;
}
.tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-left {
border-right: 2px solid #ddd;
}
.tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-right {
border-left: 2px solid #ddd;
}
.tabulator .tabulator-header .tabulator-calcs-holder {
box-sizing: border-box;
width: 100%;
background: white !important;
border-top: 1px solid #ddd;
border-bottom: 1px solid #ddd;
overflow: hidden;
}
.tabulator .tabulator-header .tabulator-calcs-holder .tabulator-row {
background: white !important;
}
.tabulator .tabulator-header .tabulator-calcs-holder .tabulator-row .tabulator-col-resize-handle {
display: none;
}
.tabulator .tabulator-tableHolder {
position: relative;
width: 100%;
white-space: nowrap;
overflow: auto;
-webkit-overflow-scrolling: touch;
}
.tabulator .tabulator-tableHolder:focus {
outline: none;
}
.tabulator .tabulator-tableHolder .tabulator-placeholder {
position: absolute;
box-sizing: border-box;
display: -ms-flexbox;
display: flex;
-ms-flex-align: center;
align-items: center;
top: 0;
left: 0;
height: 100%;
width: 100%;
}
.tabulator .tabulator-tableHolder .tabulator-placeholder span {
display: inline-block;
margin: 0 auto;
padding: 10px;
color: #000;
font-weight: bold;
font-size: 20px;
}
.tabulator .tabulator-tableHolder .tabulator-table {
position: relative;
display: inline-block;
background-color: #fff;
white-space: nowrap;
overflow: visible;
}
.tabulator .tabulator-tableHolder .tabulator-table .tabulator-row.tabulator-calcs {
font-weight: bold;
background: #ececec !important;
}
.tabulator .tabulator-tableHolder .tabulator-table .tabulator-row.tabulator-calcs.tabulator-calcs-top {
border-bottom: 2px solid #ddd;
}
.tabulator .tabulator-tableHolder .tabulator-table .tabulator-row.tabulator-calcs.tabulator-calcs-bottom {
border-top: 2px solid #ddd;
}
.tabulator .tabulator-row {
position: relative;
box-sizing: border-box;
min-height: 30px;
background-color: #fff;
border-bottom: 1px solid #ddd;
}
.tabulator .tabulator-row.tabulator-selectable:hover {
background-color: #f5f5f5 !important;
cursor: pointer;
}
.tabulator .tabulator-row.tabulator-selected {
background-color: #9ABCEA;
}
.tabulator .tabulator-row.tabulator-selected:hover {
background-color: #769BCC;
cursor: pointer;
}
.tabulator .tabulator-row.tabulator-moving {
position: absolute;
border-top: 1px solid #ddd;
border-bottom: 1px solid #ddd;
pointer-events: none !important;
z-index: 15;
}
.tabulator .tabulator-row .tabulator-frozen {
display: inline-block;
position: absolute;
background-color: inherit;
z-index: 10;
}
.tabulator .tabulator-row .tabulator-frozen.tabulator-frozen-left {
border-right: 2px solid #ddd;
}
.tabulator .tabulator-row .tabulator-frozen.tabulator-frozen-right {
border-left: 2px solid #ddd;
}
.tabulator .tabulator-row .tabulator-cell {
display: inline-block;
position: relative;
box-sizing: border-box;
padding: 8px;
vertical-align: middle;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.tabulator .tabulator-row .tabulator-cell:last-of-type {
border-right: none;
}
.tabulator .tabulator-row .tabulator-cell.tabulator-editing {
border: 1px solid #1D68CD;
padding: 0;
}
.tabulator .tabulator-row .tabulator-cell.tabulator-editing input, .tabulator .tabulator-row .tabulator-cell.tabulator-editing select {
border: 1px;
background: transparent;
}
.tabulator .tabulator-row .tabulator-cell.tabulator-validation-fail {
border: 1px solid #dd0000;
}
.tabulator .tabulator-row .tabulator-cell.tabulator-validation-fail input, .tabulator .tabulator-row .tabulator-cell.tabulator-validation-fail select {
border: 1px;
background: transparent;
color: #dd0000;
}
.tabulator .tabulator-row .tabulator-cell:first-child .tabulator-col-resize-handle.prev {
display: none;
}
.tabulator .tabulator-row .tabulator-cell.tabulator-row-handle {
display: -ms-inline-flexbox;
display: inline-flex;
-ms-flex-align: center;
align-items: center;
-moz-user-select: none;
-khtml-user-select: none;
-webkit-user-select: none;
-o-user-select: none;
}
.tabulator .tabulator-row .tabulator-cell.tabulator-row-handle .tabulator-row-handle-box {
width: 80%;
}
.tabulator .tabulator-row .tabulator-cell.tabulator-row-handle .tabulator-row-handle-box .tabulator-row-handle-bar {
width: 100%;
height: 3px;
margin: 2px 10% 0 10%;
background: #666;
}
.tabulator .tabulator-row.tabulator-group {
box-sizing: border-box;
border-bottom: 1px solid #999;
border-right: 1px solid #ddd;
border-top: 1px solid #999;
padding: 5px;
padding-left: 10px;
background: #fafafa;
font-weight: bold;
min-width: 100%;
}
.tabulator .tabulator-row.tabulator-group:hover {
cursor: pointer;
background-color: rgba(0, 0, 0, 0.1);
}
.tabulator .tabulator-row.tabulator-group.tabulator-group-visible .tabulator-arrow {
margin-right: 10px;
border-left: 6px solid transparent;
border-right: 6px solid transparent;
border-top: 6px solid #666;
border-bottom: 0;
}
.tabulator .tabulator-row.tabulator-group.tabulator-group-level-1 .tabulator-arrow {
margin-left: 20px;
}
.tabulator .tabulator-row.tabulator-group.tabulator-group-level-2 .tabulator-arrow {
margin-left: 40px;
}
.tabulator .tabulator-row.tabulator-group.tabulator-group-level-3 .tabulator-arrow {
margin-left: 60px;
}
.tabulator .tabulator-row.tabulator-group.tabulator-group-level-4 .tabulator-arrow {
margin-left: 80px;
}
.tabulator .tabulator-row.tabulator-group.tabulator-group-level-5 .tabulator-arrow {
margin-left: 1000px;
}
.tabulator .tabulator-row.tabulator-group .tabulator-arrow {
display: inline-block;
width: 0;
height: 0;
margin-right: 16px;
border-top: 6px solid transparent;
border-bottom: 6px solid transparent;
border-right: 0;
border-left: 6px solid #666;
vertical-align: middle;
}
.tabulator .tabulator-row.tabulator-group span {
margin-left: 10px;
color: #666;
}
.tabulator .tabulator-col-resize-handle {
position: absolute;
right: 0;
top: 0;
bottom: 0;
width: 5px;
}
.tabulator .tabulator-col-resize-handle.prev {
left: 0;
right: auto;
}
.tabulator .tabulator-col-resize-handle:hover {
cursor: ew-resize;
}
.tabulator .tabulator-footer {
padding: 5px 10px;
border-top: 2px solid #ddd;
text-align: right;
font-weight: bold;
white-space: nowrap;
-ms-user-select: none;
user-select: none;
-moz-user-select: none;
-khtml-user-select: none;
-webkit-user-select: none;
-o-user-select: none;
}
.tabulator .tabulator-footer .tabulator-calcs-holder {
box-sizing: border-box;
width: calc("100% + 20px");
margin: -5px -10px 5px -10px;
text-align: left;
background: white !important;
border-bottom: 1px solid #ddd;
border-top: 1px solid #ddd;
overflow: hidden;
}
.tabulator .tabulator-footer .tabulator-calcs-holder .tabulator-row {
background: white !important;
}
.tabulator .tabulator-footer .tabulator-calcs-holder .tabulator-row .tabulator-col-resize-handle {
display: none;
}
.tabulator .tabulator-footer .tabulator-calcs-holder:only-child {
margin-bottom: -5px;
border-bottom: none;
}
.tabulator .tabulator-footer .tabulator-pages {
margin: 0 7px;
}
.tabulator .tabulator-footer .tabulator-page {
display: inline-block;
margin: 0 2px;
border: 1px solid #ddd;
border-radius: 3px;
padding: 2px 5px;
background: rgba(255, 255, 255, 0.2);
font-family: inherit;
font-weight: inherit;
font-size: inherit;
}
.tabulator .tabulator-footer .tabulator-page.active {
color: #d00;
}
.tabulator .tabulator-footer .tabulator-page:disabled {
opacity: .5;
}
.tabulator .tabulator-footer .tabulator-page:not(.disabled):hover {
cursor: pointer;
background: rgba(0, 0, 0, 0.2);
color: #fff;
}
.tabulator .tablulator-loader {
position: absolute;
display: -ms-flexbox;
display: flex;
-ms-flex-align: center;
align-items: center;
top: 0;
left: 0;
z-index: 100;
height: 100%;
width: 100%;
background: rgba(0, 0, 0, 0.4);
text-align: center;
}
.tabulator .tablulator-loader .tabulator-loader-msg {
display: inline-block;
margin: 0 auto;
padding: 10px 20px;
border-radius: 10px;
background: #fff;
font-weight: bold;
font-size: 16px;
}
.tabulator .tablulator-loader .tabulator-loader-msg.tabulator-loading {
border: 4px solid #333;
color: #000;
}
.tabulator .tablulator-loader .tabulator-loader-msg.tabulator-error {
border: 4px solid #D00;
color: #590000;
}
.tabulator.table-striped .tabulator-row:nth-child(even) {
background-color: #f9f9f9;
}
.tabulator.table-bordered {
border: 1px solid #ddd;
}
.tabulator.table-bordered .tabulator-header .tabulator-col {
border-right: 1px solid #ddd;
}
.tabulator.table-bordered .tabulator-tableHolder .tabulator-table .tabulator-row .tabulator-cell {
border-right: 1px solid #ddd;
}
.tabulator.table-condensed .tabulator-header .tabulator-col .tabulator-col-content {
padding: 5px;
}
.tabulator.table-condensed .tabulator-tableHolder .tabulator-table .tabulator-row {
min-height: 24px;
}
.tabulator.table-condensed .tabulator-tableHolder .tabulator-table .tabulator-row .tabulator-cell {
padding: 5px;
}
.tabulator .tabulator-tableHolder .tabulator-table .tabulator-row.active {
background: #f5f5f5 !important;
}
.tabulator .tabulator-tableHolder .tabulator-table .tabulator-row.success {
background: #dff0d8 !important;
}
.tabulator .tabulator-tableHolder .tabulator-table .tabulator-row.info {
background: #d9edf7 !important;
}
.tabulator .tabulator-tableHolder .tabulator-table .tabulator-row.warning {
background: #fcf8e3 !important;
}
.tabulator .tabulator-tableHolder .tabulator-table .tabulator-row.danger {
background: #f2dede !important;
}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More