CHANGELIST 28: 2014-06-21 12:53 -0400 Steve Butler

Description:

* Improved loading screen performance
** Force loading screen display earlier during page rendering.  Now the script
   is placed at the very beginning of the page body (instead of in the footer)
** Introduced custom wordpress action in header.php for this purpose
** Don't remove the loading screen as soon as the loading conditions are
   satisfied.  Instead wait until the next poll event to give the browser extra
   time to finish rendering the page.

File List:


CHANGELIST 27: 2014-06-21 12:49 -0400 Steve Butler

Description:

* Files added for theme versioning and publishing
** list_changes.sh to generate readable list of changelists
** HTML list of changes in changes.html
** versions.txt contains information about contents of theme versions.txt

File List:


CHANGELIST 26: 2014-06-21 12:46 -0400 Steve Butler

Description:

* Removing obsolete image files

File List:


CHANGELIST 25: 2014-06-18 22:05 -0400 Steve Butler

Description:

* adding YUIDoc generated HTML documentation to repository

File List:


CHANGELIST 24: 2014-06-18 22:05 -0400 Steve Butler

Description:

* cleaned up code documentation formatting for better parsing by YUIDoc

File List:


CHANGELIST 22: 2014-06-18 13:42 -0400 Steve Butler

Description:

* Documented javascript classes used in the implementation of the theme

File List:


CHANGELIST 21: 2014-06-06 13:52 -0400 Steve Butler

Description:

* renamed incorrect page background image for righthand sidebar, which caused
the page to display with an empty background when the sidebar is on the right

File List:


CHANGELIST 20: 2014-06-06 13:38 -0400 Steve Butler

Description:

* fixed incorrect name of global variable causing background graphic not to
display

File List:


CHANGELIST 19: 2014-06-06 08:41 -0400 Steve Butler

Description:

* removed symbolic links from repository

File List:


CHANGELIST 18: 2014-06-06 08:38 -0400 Steve Butler

Description:

* added right-sidebar styles
* sidebar page menu styles
* button style
* removed redundant and obsolete style

File List:


CHANGELIST 17: 2014-06-05 18:17 -0400 Steve Butler

Description:

* replaced all occurrences of path substring "dusk-to-dawn-aminutestime" with "new-dawn"
* removed obsolete javascript file load_screen.js

File List:


CHANGELIST 16: 2014-06-05 13:56 -0400 Steve Butler

Description:

* added missing files to theme repository:
** background image for rightside sidebar
** javascript module for adding bubbles background decoration
** javascript module for theme global attributes

File List:


CHANGELIST 15: 2014-06-05 13:52 -0400 Steve Butler

Description:

* renamed theme folder from "dusk-to-dawn-aminutestime" to "new-dawn"

File List:


CHANGELIST 14: 2014-06-04 23:01 -0400 Steve Butler

Description:

* introduced new javascript file theme_globals.js to hold any theme-specific javascript
  that needs to be accessible throughout the site.  Currently the only item is the root
  URL to the theme, theme_root_path
** replaced all hard-coded image URLs with fully qualified URLs in javascript using
   theme_root_path as a prefix
** removed image tag from header.php for bubbles background image, and instead add it
   via javascript in backgroundImage.js

* removed various debug log statements from the loadingScreen javascript files

* updated theme stylesheet:
** changed theme name to "A New Dawn"
** added wordpress post URL as the theme URL
** updated the theme description
** eliminated various redundant styles

* added new actions to wordpress page in functions.php:
** set_theme_environment
*** queues action to set global theme javascript attributes
** remove_parent_theme_customizations
*** queues an action to remove some of the parent theme customization options from the
    theme-specific section of the wordpress admin panel
** set_background_image
*** queues an action to add the bubble background image to the document

File List:


CHANGELIST 13: 2014-05-29 05:03 +0100 Steve Butler

Description:

* added css_notify.js script to page in functions.php

* removed setupCSSNotification() from create_loadingScreen.js, as this
functionality is now integrated into css_notify.js

* added css_notify calls to create_loadingPage and poll_loadingPage so
the page will not be considered loaded until style.css has finished loading

File List:


CHANGELIST 12: 2014-05-29 00:42 +0100 Steve Butler

Description:

* created new method CSSNotificationWebkitStrategy.resourceMatchesStyleSheet()
to encapsulate comparison logic used when detecting whether a resource has loaded.

* added ability in webkit strategy to compare style nodes that keep the URL in data-href
attribute instead of the href attribute, as wordpress generated nodes do.

File List:


CHANGELIST 11: 2014-05-28 09:30 -0400 Steve Butler

Description:

* added new unit tests in test_cssload.js:

** CSSNotificationStrategyFactory
*** newStrategyObject()
**** getStrategyName() returns existing type,new object of that type
     is created and returned.
**** getStrategyName() returns non-existant type,
     newBaseClassObjectForKnownException() is called.
*** newBaseClassObjectForKnownException()
**** exception is TypeError,object of base type is returned.
**** exception is an unhandled type,exception is re-thrown.

** CSSNotificationBasicStrategy
*** setNotificationOnElement()
**** normal case,onload property is set to callback on link element.

** CSSNotificationPollingStrategy
*** constructor
**** normal case,object of correct type is created and returned.
**** normal case,properties are initialized correctly.
*** setNotification()
**** normal case,this.stop_watch.start() is called.
**** normal case,this.poll() is called.

* Added code in css_notify.css to satisfy tests


* Also added several methods due to re-factoring, that do not currently have
tests

** CSSNotificationBasicStrategy
*** throwExceptionForInvalidArgument(node,callback)

** CSSNotificationPollingStrategy
*** poll(node,callback)
*** invokeNotificationIfResourceHasLoaded(node,callback)
*** isAnotherPollRequired()
*** scheduleAnotherPoll(node,callback)

** CSSNotificationGeckoStrategy
*** invokeNotificationIfResourceHasLoaded(node,callback)

** CSSNotificationWebkitStrategy
*** invokeNotificationIfResourceHasLoaded(node,callback)


* Changed name format of Strategy classes from "<Token>CSSNotificationStrategy"
 to "CSSNotification<Token>Strategy"


* Removed redundant proof-of-concept procedures from loadingScreen.js

* added loadingScreen.js as a dependency to test harness HTML.  This is due to
the use of the StopWatch class with the CSS Notifications.

File List:


CHANGELIST 10: 2014-05-21 19:42 -0400 Steve Butler

Description:

* new test harness: test_css_notify.html for running tests related to
  cross-browser notifications of when CSS files have loaded

* unit tests in test_cssload.js:

** BrowserID class
*** getId()
**** userAgent string matches one test substring,the ID associated with the
     substring is returned
**** userAgent string doesn't match any test substring, unknown is returned

** capitalizeString() global function
*** normal case, returns capitalized string

** CSSNotificationStrategyFactory
*** getStrategyName()
**** ID was passed to ctor,Returned string has form <ID>CSSNotificationStrategy
     where <ID> is capitalized

* Code to pass above tests added in css_notify.js

File List:


CHANGELIST 9: 2014-05-14 20:11 -0400 Steve Butler

Description:

* removed reference in functions.php to wp_head action since it was not published
by the parent theme.  Attaching the javascript to wp_footer makes no change in the
final page.

* Added logic to create_loadingScreen to set a global flag when child theme CSS
is loaded (works in IE only)

* Added logic to poll_loadingScreen to make global CSS flag part of the page loading
test.
* Also added debugging message for each pre-loaded image
* Corrected image src values so they are not dependant on the current page URL.

* Changed styles on loading screen background div to position: fixed, instead of
absolute, so the loading screen always appears in the full browser window, regardless
of page scroll position.

File List:


CHANGELIST 8: 2014-05-13 04:06 +0100 Steve Butler

Description:

* removed whitespace from end of functions.php to fix wordpress warnings:
"Warning: Cannot modify header information - headers already sent by
(output started at /home/stebut13/aminutestime.com/jobblog/wp-content/
themes/dusk-to-dawn-aminutestime/functions.php:24) ... "

File List:


CHANGELIST 7: 2014-05-09 18:45 +0100 Steve Butler

Description:

* show loading screen using object-oriented implementation in load_screen2.js instead of
  procedural implementation in load_screen.js
* renamed various files:
** load_screen2.js to loadingScreen.js
** open_load_screen.js to create_loadingScreen.js
** close_load_screen.js to poll_loadingScreen.js
* updated wordpress calls in functions.php to reflect name changes

File List:


CHANGELIST 6: 2014-05-09 00:17 -0400 Steve Butler

Description:

* restoring main unit test file

File List:


CHANGELIST 5: 2014-05-09 00:14 -0400 Steve Butler

Description:

* added documentation for NoScrollbar class

* changes to LoadingScreen unit tests:
** changed LoadingScreen class unit tests to remove occurrences of poll_start_time,
   and instead use the StopWatch property.
** Replaced occurrences of LoadingScreen.stop_watch.getClockTimeInMs() with
   LoadingScreen.stop_watch.start() followed by LoadingScreen.stop_watch.secondsElapsed()
** added test: LoadingScreen.startPolling(),normal case,stop_watch.start() is called.

* Made changes to LoadingScreen implementation to pass the modified unit tests.

* changes to NoScrollbar:
** fixed string concatenation error in disableScrollbars() method.

File List:


CHANGELIST 4: 2014-05-07 19:27 -0400 Steve Butler

Description:

* removed last vestiges of old procedural implementation of loadscreen functionality.

* Added LoadingScreen unit tests:

** Create LoadingScreen
*** document is supplied as argument,returned object uses the given document
*** normal case,loadingIsFinished() returns false.

** LoadingScreen.createCloseButton()
*** no arguments specified, default arguments are passed to customElementStyleString().
*** normal case,Returned button has onClick property set to call clear().

** LoadingScreen.startPolling()
*** normal case,poll_start_time set to result of call to getClockTimeInMs().
*** normal case,setupPollEvent() is called

** LoadingScreen.showCloseButton()
*** normal case,disabled and visibility styles are set on close button element

** LoadingScreen.pollEventHandler()
*** webpage has finished loading,clear() is called and setupPollEvent() is not
*** clear screen timeout has elapsed,clear() is called and setupPollEvent() is not
*** images have loaded and clear screen timeout has elapsed,clear() is only called once and setupPollEvent() is not
*** clear screen timeout has not elapsed but show button timeout has elapsed,showCloseButton() is called and setupPollEvent() is called
*** no timeouts have elapsed,setupPollEvent() is called

** LoadingScreen.addElementToDocument()
*** normal case,supplied element is added to document immediately after element with specified id in document order

** LoadingScreen.combineScreenElements()
*** normal case,element returned is result of call to createBackground()
*** no arguments,result of call to createText() with no arguments is appended as child to returned element
*** no arguments,result of call to createCloseButton() with no arguments is appended as child to returned element
*** text element is passed,provided element is appended as child to returned element and createText() is not called
*** button element is passed,provided element is appended as child to returned element and createCloseButton() is not called

** LoadingScreen.show()
*** no arguments,addElementToDocument() is called with the result of call to combineScreenElements()
*** function argument,addElementToDocument() is called with the result of call to supplied function.
*** normal case,no_scrollbar.disableScrollbars() is called

** LoadingScreen.clear()
*** normal case,element with id == this.id was removed from the document
*** normal case,no_scrollbar.reenableScrollbars() is called.

** Added tests for several properties in tests for LoadingScreen creation (ctor)

* Added methods to LoadingScreen object in load_screen2.js to implement these tests.

File List:


CHANGELIST 3: 2014-04-30 19:45 -0400 Steve Butler

Description:

* added new unit test file: test_LoadingScreen.js


* wrote new tests for LoadingScreen class:

** LoadingScreen creation/initialization:
*** Create LoadingScreen
*** LoadingScreen initialization
*** Create LoadingScreen,div id is supplied as argument,returned object has the given id

** LoadingScreen.createBackground()
*** normal case, <div> element is returned with default settings
*** colour is supplied as argument,returned <div> has the given background colour
*** normal case,returned <div> inherited id from LoadingScreen object.

** LoadingScreen.customElementStyleString()
*** nothing is supplied,empty string is returned.
*** only position is supplied,returned string contains left and top.
*** only colour is supplied,returned string contains color style.
*** only extra style is supplied,returned string ends with given style string.
*** all arguments are supplied,all are returned in style string.

** LoadingScreen.createText()
*** normal case, <div> is returned with correct text.
*** no text is specified,returned <div> has default text
*** no style is specified,returned <div> has a default styling
*** all arguments specified, all arguments are passed to customElementStyleString().
*** no arguments specified, default arguments are passed to customElementStyleString().
*** all arguments specified,returned style string appears at end of element style property.

** LoadingScreen.createCloseButton()
*** normal case,<button> element is returned with correct text and id.
*** no style is specified,returned <button> has default styling.
*** all arguments specified,all arguments are passed to customElementStyleString().
*** all arguments specified,returned style string appears at end of element style property.
*** text string is provided,returned <button> element contains the specified text.
*** no arguments specified, default arguments are passed to customElementStyleString().
*** normal case,Returned button has onClick property set to call clear().


* implemented LoadingScreen class, and methods to implement the functionality to pass the
  previous test cases, in load_screen2.js

File List:


CHANGELIST 2: 2014-04-21 21:48 -0400 Steve Butler

Description:

* StopWatch unit tests added:
** start() has not been called, exception is thrown

* added new test file test_ImageLoader.js, and injected it into
test_load_screen.html
* added file cool.png as a test resource

* ImageLoader tests added:
** Create ImageLoader
** getImageList()
*** queueImage() has not been called, an empty Array is returned
*** queueImage() has been called several times,all queued images are returned in
 a list
** createImage()
*** normal case,Image object is returned
** initNewImage()
*** normal case, onload and onerror are set on returned object
*** normal case, onload() calls event handler with true argument
*** normal case,onerror() calls event handler with false argument
** loadImage()
*** normal case, Image object returned with src attribute set to argument
*** normal case, initNewImage() is invoked
*** normal case, callback is passed to initNewImage()
** loadAll()
*** several images are queued, loadImage() is called once for each queued image
*** event handler argument supplied,handler is passed on to loadImage()
*** several images are queued, queue is empty
*** some images fail to load, those images are not removed from the queue but
the others are

* added ImageLoader object implementation in load_screen2.js to pass the above
tests

File List:


CHANGELIST 1: 2014-04-15 22:30 -0400 Steve Butler

Description:

* Moved unit tests for NoScrollbar and StopWatch into respective external
scripts
* NoScrollbar tests:
** NoScrollbar creation is ok
** NoScrollbar script id is set correctly
** NoScrollbar.addStyleElement,normal case,a single child element was added.
** NoScrollbar.addStyleElement,normal case,new element has correct tag and id.
** NoScrollbar.addStyleElement,normal case,a child element was returned.
** NoScrollbar.addStyleElement,normal case,returned node equals new child.
** NoScrollbar.addStyleElement,element of id already exists,no change made to
parent element
** NoScrollbar.addStyleElement,element of id already exists,existing element is
returned
** NoScrollbar.disableScrollbars,style element does not exist,addScriptElement()
is called.
** NoScrollbar.disableScrollbars,style element does not exist,addScriptElement()
is called w ith supplied head element.
** NoScrollbar.disableScrollbars,style element already exists,addScriptElement()
is not called.
** NoScrollbar.disableScrollbars,style element does not exist,overflow style is
attached to new element.
** NoScrollbar.disableScrollbars,empty dimension argument,overflow style created
in both dimensions.
** NoScrollbar.disableScrollbars,style element doesn't exist,addStyleElement()
is called with head element of supplied document.
** NoScrollbar.reenableScrollbars,normal case,correct style element is deleted
from document.
** NoScrollbar.reenableScrollbars,no style element exists with specified id,
document is unchanged.
* changes to NoScrollbar to pass above tests
* StopWatch tests:
** Create StopWatch
** StopWatch.start(),normal case,getClockTimeInMs() was called.
** StopWatch.secondsElapsed(),start() has been called,getClockTimeInMs() was
called.
** StopWatch.secondsElapsed(),start() has been called,start() has been called,
returned time is the difference between the return value of GetClockTimeInMs()
and the value that was returned when it was called by start()
* changes to StopWatch to pass above tests

File List:


CHANGELIST 0: 2014-04-10 19:43 +0100 Steve Butler

Description:

- checking jobblog file into repository for the first time.

File List: