Thursday, November 15, 2007

I'm releasing v3.1.1 today. It's mostly just a couple of bug fixes. One being just a typo of "instert" instead of "insert." Another being that somehow a couple rogue words got into the code for the music issue submission function in the program logs. I think what happened was that I was working on stuff remotely while at work and the keyboard did not release from the remote window when I started typing into something else. Annoying!

Here's the full list of updates:
  • Fixed loading of saved form input data in the music search.
  • Pressing the "load" button in the music search now runs the search as well, preventing the need to click search after clicking load.
  • Change album locations form now has a field for the ID number.
  • Fixed typo in text on program log page.
  • Fixed error in music issue submission from program log.
Now time to start working on the new permissions system...for real! This is going to be a bitch, but I already have the database structure created.

Let's hear it for having to go through every single file in ELCRo line by line.

Tuesday, November 6, 2007

I fixed a bug that was preventing the loading of saved form data from working properly in the music search. I also added the function call to run the search to the commands run when the "load" button is clicked. So now the user only needs to click "load" and their previous inputs will be loaded and the search will run.

Friday, November 2, 2007

I updated the system to v3.1 today.

In addition to the features and bug fixes in the below posts, I also added a feature to music searches that allows users to specify words they do not want to appear in the results. Typing a minus sign in front of a word will cause the system to skip over albums that contain that word.

Complete list of updates:
  • Added the global field back to the full music search.
  • Music search only loads with a few search options now. There is a button to click to show the rest.
  • Multiple words entered into a search field in the music search are now treated as separate search terms. This will return all results that contain those words regardless of if they are next to each other or not.
  • Adding a minus (-) sign before a word in the music search will cause only results that do not contain that word to be retuned. These can be mixed with words that the user does want to be returned.
  • Removed the '%' symbol from the power readings.
  • Added a checkbox to toggle the color coding in program logs.
  • Added the ability for users to adjust the font size in program logs.
  • Fixed Javascript errors that would occur during AJAX requests from the program log.
  • Fixed most IE incompatibilities in the program log.
  • Updated coding so that all functions called by submitted forms in program logs are now done by a single function call.
  • Pressing enter in the forms in program logs will now submit them for songs, announcements, and mic breaks.
  • There is now time validation for all program log form submissions.
  • Fixed some of the Javascript errors that would show up in the error console for the music search.
  • Fixed error when removing a DJ from a program log.
  • Sorting options for program logs only display under filter options now.
  • Fixed bug in loading/saving form data on chart submission page.
  • Fixed music search so that when you click an artist's name and are taken to the search, the search actually runs.
  • Fixed bug in music search that caused the short description field to be ignored.

Wednesday, October 31, 2007

Apparently, when a user clicked on the artist name and was taken to the music search, the page loaded with the fields filled in, but did not actually run the search.

This has been fixed.
There was a bug that caused the loading and saving of form data in the chart submission tool to not work correctly. Because there are two forms on a single page, the data from one would overwrite the other. I updated the code so that it saves them individually.

Monday, October 22, 2007

I added font size control to the program logs so that users can change the size of the text in the display portion of the log. 

This was a very simple javascript/CSS solution that only required a few extra lines of code. I made some null links that had onclick event actions that either add or subtract one from a variable. Then the printResults() function gets run again to redraw the table. The table itself has a CSS font size tag in it that sizes according the value of the variable. 

The static sized columns in the table (time, identifier, ID number) stay the same size though. I don't really see much of a need to mess with that. The feature probably won't get much use anyway. 
The checkbox to remove the color coding from program logs seems to be working. That was a bitch and a half to implement since I had to insert code in in like fifty different places.

Then just as I was doing the last few, I realized a totally quicker, easier, and more efficient way to code it. Oh well!
It's been a month since my last ELCRo release! Wow! It'll be a little while still since I'm trying to get 3.1 up to where I want it to be. 

I'm still trying to get the program log feeds to work in IE, but I can't figure out for the life of me why they don't work. 

Thursday, October 11, 2007

I changed some of the processing for music searches so that now all words entered into each field are searched separately. So if I typed "pop indie country" into the review box, it will search each of those words separately and return results that contail all thread whether they are in that order or not. 
I simplified the music search page a little. Now when the page loads, the user is only present with a few search options. At the button there is a button that can be clicked to show the rest of the options. 

Wednesday, October 10, 2007

Global music search has been put back in. This is only available in the full music search, not in the program logs. 
I had to add "onSubmit="return false;"" to each of the form tags in the program log so that hitting enter wouldn't accidentally cause the whole page to refresh. 
All of the functions called when submitting items in a program log are now called as a single function. This will make using an 'enter' catch possible.

Also, I removed another JS error from when ELCRo looks up albums by the ID number and I added validation to the clock for all entries. For some reason only music entries had this.

Tuesday, October 9, 2007

All log entries now load in IE. I added a couple more Try...Catch statements to make this work. The problems were occuring for items that had blank XML nodes in the AJAX response from the server. I should probably fix this at the source, but this menthod seems to work fine. 
I'm finally going to start getting back to work on ELCRo. So far I've removed the '%' symbol from the transmitter power fields and fixed some of the Javascript errors in the program log's AJAX requests by adding Try...Catch statements. 

I still have a few other bugs to work out. The program logs stopped working in IE and it's been requested by a few people that I add 'enter' catches when submitting new entries. I guess I'll make it so pressing 'enter' anywhere in the box will submit the entry. 

More to come later...

Friday, September 21, 2007

An error was pointed out to me that occurs when trying to submit an album to a program log that has a '+' in it. This actually affects all things using AJAX and there are a couple other characters as well. It was just never noticed before because if you're not doing something that writes data you don't get an error. It just gets ignored.

The program is in the use of the GET method. When the plus sign isn't escaped, it's treated like a space. I thought I had everything being escaped, but the javascript escape() method does not cover everything. So I switched over to the encodeURIcomponent() method which does cover this.

This is currently only fixed in beta, but I'll port it over soon.

Tuesday, September 18, 2007

I released v3.0.6 last night. Only two minor updates.
  • Fixed the "add synopsis" link in the program logs so that it actually shows up when it's supposed to.
  • Added a button to insert links into bulletin entries.

Wednesday, September 12, 2007

I'll be releasing v3.0.5 tonight before I get to bed...probably during my radio show.

The only update is that non-english characters are now escaped before the XML is created in the AJAX functions for the music search and program logs.
I released v3.0.4 today.
  • Date field in meeting minute submission no longer autopopulates with extra characters at the end.
  • Meeting type field in meeting minute submission no longer defaults to the first option in the list.
  • Upgraded to the latest version of TinyMCE WYSIWYG. Version 2.1.2.
  • Fixed color display issues for meeting minutes and removed unnecessary slashes.
  • Changed database selection form from POST to GET method.
  • Removed empty white space at the bottom of the home screen.
  • Made some slight visual changes to the CD review points page.
I've been looking at the code for allowing users to search music by DJs that may have played it, but I still can't get it working. Whether I do left joins or inner joins, it doesn't seem to work and it takes fooooooooorever. I'm going to put that back on the backburner for now.

Monday, September 10, 2007

As of right now, I think I might have everything fixed and working properly again. ::knock on wood::

I released v3.0.3 today with all of the fixes:
  • Added database selection box to home page for advanced access users. Allows user to switch between test and production databases.
  • Fixed bug that allowed any user to delete any program log. Now deleting logs is reserved for programming and full permissions.
  • Updated DJ search, DJ edit and print review queries to make them MySQL 5 compliant.
  • Administration for custom homepage messages has been moved to a new page and opened up to users with full permissions.
I'm still finding more issues caused by the MySQL version upgrade. Apparently, nulls are handled a little differently. Still trying to figure this one out.
HAH!

I found the problem thanks to the help of some users on the MySQL forum. I noticed that the server was upgraded to version 5 which I'm assuming happened on Thursday. I actually noticed this by accident when I was double checking the version of MySQL so I could put it in my post on the forum. I had a sneaking suspicion that this could be the problem, but I wasn't sure. Then a user on the forum posted something about using commas in joins. So I checked out the manual and sure enough, I found out that version 5 handles things a little differently. Mainly the below section:
  • Previously, the comma operator (,) and JOIN both had the same precedence, so the join expression t1, t2 JOIN t3 was interpreted as ((t1, t2) JOIN t3). Now JOIN has higher precedence, so the expression is interpreted as (t1, (t2 JOIN t3)). This change affects statements that use an ON clause, because that clause can refer only to columns in the operands of the join, and the change in precedence changes interpretation of what those operands are.

    Example:

    CREATE TABLE t1 (i1 INT, j1 INT);
    CREATE TABLE t2 (i2 INT, j2 INT);
    CREATE TABLE t3 (i3 INT, j3 INT);
    INSERT INTO t1 VALUES(1,1);
    INSERT INTO t2 VALUES(1,1);
    • INSERT INTO t3 VALUES(1,1);
    SELECT * FROM t1, t2 JOIN t3 ON (t1.i1 = t3.i3);

    Previously, the SELECT was legal due to the implicit grouping of t1,t2 as (t1,t2). Now the JOIN takes precedence, so the operands for the ON clause are t2 and t3. Because t1.i1 is not a column in either of the operands, the result is an Unknown column 't1.i1' in 'on clause' error. To allow the join to be processed, group the first two tables explicitly with parentheses so that the operands for the ON clause are (t1,t2) and t3:

    SELECT * FROM (t1, t2) JOIN t3 ON (t1.i1 = t3.i3);

    Alternatively, avoid the use of the comma operator and use JOIN instead:

    SELECT * FROM t1 JOIN t2 JOIN t3 ON (t1.i1 = t3.i3);

    This change also applies to statements that mix the comma operator with INNER JOIN, CROSS JOIN, LEFT JOIN, and RIGHT JOIN, all of which now have higher precedence than the comma operator.

So after making one of the problem queries compliant with this, all was well.

Now I just have to upgrade a shit ton of other queries.
STILL having tons of issues related to Thursday's mess. For some reason, some queries return errors that columns can't be found yet those same column work fine in other queries.

I don't even know what to do about this right now.

Friday, September 7, 2007

It turns out that the problems weren't over yesterday when I thought they were. When I got home from work, I found two more tables that were screwed up so I had XFire drop them. Luckily, they were tables that were created and scrapped from use before ELCRo ever went live.

I also was alerted of a bug that was keeping all users with 'dj' level permissions from doing program logs. What a mess that was. It was just an issue with me making a typo in a variable name in an IF statement. Fixed it up last night and released v3.0.2.
  • Stopped time display in program log from adding an additional leading zero and displaying on two lines sometimes.
  • Added college admin tool to menu system.
  • Fixed the display of the colleges in the admin tool.
  • Upped the result limit for program log searches from 100 to 1000.
  • When the active box is unchecked the program clock will no longer update when adding a new entry.
  • Fixed minor error that prevented some non-playlist songs from being added to a program log.
  • Fixed bug that was locking users with 'dj' permissions out of the program log.
I believe that there is now only one log missing from the system as well as I added the others in manually.

Now, time to start work on v3.1!

Thursday, September 6, 2007

Ok, looks like everything is now under control. That was seriously a bitch!

I got the webhost to get the 'djinfotemp' table dropped and was able to restore a slightly older version of it from a backup.

Then I was able to get the DJ search working again. This was really weird though because it was saying that columns didn't exist, but would access them fine in other queries. I just changed the query so that instead of using more efficient left joins, they're just joined with standard joins.

It works for now.
Major crisis!!

This morning, a user called me and said that they were getting a MySQL connection error. Well, she didn't know that that was what it was, but when she read it to me, I knew what it was. I figured it was simple and an email to the webhost would bring everything back online.

Didn't get so lucky, when everything came online, there were some major issues. For some reason, the code that logs each pageview, code that hasn't been touched since before v1.0 didn't work anymore. MySQL didn't like the date format anymore. So I fixed that and was able to get in only to find out that it the DJINFOTEMP table, the table that stores the edits to DJ contact information before they are approved, could not be accessed. MySQL said that it didn't exist when I tried to access it, but wouldn't allow me to recreate the table because it already existed. When I tried to drop it, MySQL said it didn't exist. What the hell!?!?!

It didn't seem like any other tables were corrupted or suffered any data loss, though I did nearly have a heartattack in fear that they might have. My last backup of the database was taken way back on 7/16.

For the time being, I disabled the code that accesses that table because it was barring programming and full permission people from getting into ELCRo. I figured that would be alright for the time being since everything else seemed fine. I did a quick little test in some of the stuff and it seemed fine until I did a music search. I am getting an error that DJcollege is an unknown column now. I don't know why. The column is there and this code always worked before. I can't find any issues in the database relating to this either, but it's a MySQL error.

More updates to come as I have them.

During all of this, I made a few fixes and am releasing v3.0.1. I'll have to do another release this week for the updates that I was planning on doing today.

v3.0.1
- Removed insert log link from menu
- Changed the way that the page view log is updated with the timestamp
- Added page logging to the log combination tool and to program log header edits.
Well, less than 24 hours in and I'm already working on the first update to v3.0. I should have v3.0.1 out the door either later today or tomorrow.

I already fixed one bug so far. The menu system still included the insert log function listed. This has now been removed since it is no longer a separate tool.

Other bugs that need to be fixed:
- Somewhere along the line, the admin for the college list got left out of the menu system. I suspect it's been gone since v2.0.
- The college admin tool when opened isn't formatted correctly.
- Searching logs by content does not seem to work correctly.

I'm also going to make the points on home page a link to the points detail.

Wednesday, September 5, 2007

I made a few minor tweaks to the text sizes for the bulletins/blogs and reviews on the home page. I think it looks a little better this way.

3.0 should be going completely live today.

The demo last night went alright, despite a few presentation issues and me forgetting how to use a computer. I thought there was an issue with displaying logs, but I was just a moron and opened a test log that didn't have any entries. D'oh!

Monday, September 3, 2007

I had to fix a few little bugs in the feed reading system.

I made it so that malformed feeds will be skipped over instead of the system trying to force them to XML. This was causing some errors with a few feeds (namely, CMJ). I also made it so that if there are no feeds available, an error message is no longer produced on the client side.

Friday, August 31, 2007

I got the points list updated now so that the user can select one or more semesters at a time to view the points for. I also switched the sorting to the same javascript table sort function used in a few other areas of ELCRo. This really speeds up the searching.

With that done, I think I'm about out of steam for v3.0. It's not nearly what I was originally hoping for, but I think I'm pretty happy with it. I'm just glad to have gotten the new program logs done.

So right now, my road map looks something like the below. This is mostly the more major things that I have planned. There are a lot of other littler things and a few other big things that I'm not sure exactly where I'll fit in yet.

v3.1 (mid September):
  • Minor music search enhancements
  • Saved music searches
v3.5 (end of October):
  • Revamped permissions system
  • Equipment database
  • Concert and community event posting (this will also be feed into a new tab in the program logs)
  • Password manager
v4.0 (end of January):
  • Revamped DJ info system
  • DJ web info
  • New DJ search (mimicking music search)
  • Marking albums as favorites and recommending to other DJs
  • Rating albums
  • Meeting scheduling
  • Ability for program logs to automatically receive entries from Google automation system
  • Scheduling program grants with reminders in program logs
  • Scheduling programming (will feed public website)
  • Managing sub requests
v5.0 (end of April):
  • Revamped (and working) log checking
  • Messaging system (for taking phone messages and sending messages to other users)
  • Personal blogging
  • Alumni mailing list