Mike Taylor [Wed, 2 Apr 2014 16:16:50 +0000 (17:16 +0100)]
New widget, "Record" (singular)
Mike Taylor [Wed, 2 Apr 2014 16:07:59 +0000 (17:07 +0100)]
Autosearch works again for mkwsTermlists.
Mike Taylor [Wed, 2 Apr 2014 16:06:29 +0000 (17:06 +0100)]
Move the maybeAutosearch widget from the mkws namespace into the widget namespace.
Mike Taylor [Wed, 2 Apr 2014 16:05:21 +0000 (17:05 +0100)]
Reorder.
Mike Taylor [Wed, 2 Apr 2014 16:03:23 +0000 (17:03 +0100)]
Rename local variable.
Mike Taylor [Wed, 2 Apr 2014 16:02:15 +0000 (17:02 +0100)]
Move auto-searching code out of Records widget into
mkws.maybeAutosearch utility function.
Mike Taylor [Wed, 2 Apr 2014 15:46:44 +0000 (16:46 +0100)]
Oops, reinstate accidentally deleted line.
Mike Taylor [Wed, 2 Apr 2014 15:42:56 +0000 (16:42 +0100)]
Recognise targetfilter attribute instead of torusquery
Mike Taylor [Wed, 2 Apr 2014 15:42:43 +0000 (16:42 +0100)]
Use targetfilter attribute instead of torusquery
Mike Taylor [Wed, 2 Apr 2014 15:40:04 +0000 (16:40 +0100)]
Accept and pass through "limit" argument from auto-widgets.
Mike Taylor [Wed, 2 Apr 2014 15:39:41 +0000 (16:39 +0100)]
newSearch and triggerSearch functions now accept 'limit' argument.
This is a stateless one-shot passed into each invocation as needed,
separate from (and joined with) the prevailing set of limits that have
been set by navigation.
Mike Taylor [Wed, 2 Apr 2014 15:38:44 +0000 (16:38 +0100)]
Add limit.
Change perpage and sort.
Mike Taylor [Wed, 2 Apr 2014 13:55:21 +0000 (14:55 +0100)]
torusquery selects targets by category.
Mike Taylor [Wed, 2 Apr 2014 13:10:50 +0000 (14:10 +0100)]
Merge branch 'master' of ssh://git.indexdata.com/home/git/private/mkws
Mike Taylor [Wed, 2 Apr 2014 12:32:00 +0000 (13:32 +0100)]
Targets are now specified by torusquery.
Mike Taylor [Wed, 2 Apr 2014 12:31:37 +0000 (13:31 +0100)]
Autosearching submits torusquery parameter from widget.
This can be used to say:
<div class='mkwsRecords' autosearch='dinosaur' torusquery='udb=brown'/>
Mike Taylor [Wed, 2 Apr 2014 12:30:46 +0000 (13:30 +0100)]
newSearch() and triggerSearch() now accept new torusquery paremeter.
Mike Taylor [Wed, 2 Apr 2014 10:53:08 +0000 (11:53 +0100)]
Whitespace.
Mike Taylor [Wed, 2 Apr 2014 10:51:43 +0000 (11:51 +0100)]
Whitespace
Mike Taylor [Wed, 2 Apr 2014 10:48:25 +0000 (11:48 +0100)]
Removal of old full-record div now honours teamname.
Mike Taylor [Wed, 2 Apr 2014 06:58:46 +0000 (07:58 +0100)]
chmod 444 for read-only generated files instead of -w.
That's because chmod -w on the file in a directory with g+s fails with:
$ chmod -w jquery.json-2.4.js
chmod: jquery.json-2.4.js: new permissions are r--rw-r--, not r--r--r--
and this impedes the Jenkins testing.
Mike Taylor [Tue, 1 Apr 2014 15:15:39 +0000 (16:15 +0100)]
Set perpage parameter in auto-searcher.
Mike Taylor [Tue, 1 Apr 2014 15:12:38 +0000 (16:12 +0100)]
Auto-search uses perpage configuration item.
Mike Taylor [Tue, 1 Apr 2014 15:12:10 +0000 (16:12 +0100)]
newSearch and triggerSearch accept a perpage argument.
Mike Taylor [Tue, 1 Apr 2014 12:53:57 +0000 (13:53 +0100)]
Quote the property-name "class" in an object constant.
This is in some sense reasonable to require, since "class" is for some
reason a keyword in JavaScript even though it's not used by the
language which doesn't even have classes. Douglas Crockford's book
"JavaScript: The Good Parts" lists 59 reserved words of which maybe
half are actually used in the language. The others include such
tantalising morsels as "interface" and "implements", "package",
"protected" and even "debugger".
In the absence of this quoting, our JavaScript minifier yui-compressor
responds with
Exception in thread "main" java.lang.reflect.InvocationTargetException
then forty levels of completely uninformative stack-trace before
giving up and rather lamely saying "... 5 more".
Is it really too much to ask that a JavaScript parser should respond
to a syntax error with "syntax error: unquoted keyword 'class'"?
Sheesh.
Mike Taylor [Tue, 1 Apr 2014 12:22:43 +0000 (13:22 +0100)]
Remove unused utility function objectWithParent.
We use Object.create instead: not as good, but good enough.
Mike Taylor [Tue, 1 Apr 2014 12:20:55 +0000 (13:20 +0100)]
Use mkws.getParameterByName
Mike Taylor [Tue, 1 Apr 2014 12:20:39 +0000 (13:20 +0100)]
Use mkws.getParameterByName instead of same-named local function.
Mike Taylor [Tue, 1 Apr 2014 12:20:13 +0000 (13:20 +0100)]
Mv team-local getParameterByName function to mkws.getParameterByName
So it can be accessed from both the team and individual widgets.
Mike Taylor [Tue, 1 Apr 2014 12:16:17 +0000 (13:16 +0100)]
Remove unused temporary
Mike Taylor [Tue, 1 Apr 2014 12:15:51 +0000 (13:15 +0100)]
Remove extraneous logging
Mike Taylor [Tue, 1 Apr 2014 12:14:25 +0000 (13:14 +0100)]
Auto-search parameters are taken from widget config, not node.
Mike Taylor [Tue, 1 Apr 2014 12:01:58 +0000 (13:01 +0100)]
Move much of the "ready" callback code outside.
It's static analysis of the auto-search query.
Mike Taylor [Tue, 1 Apr 2014 11:49:24 +0000 (12:49 +0100)]
Only establish the "ready" subscriber if there's an autosearch attribute.
Mike Taylor [Tue, 1 Apr 2014 11:26:29 +0000 (12:26 +0100)]
Auto-searching code is now part of the Records widget.
Mike Taylor [Tue, 1 Apr 2014 11:26:12 +0000 (12:26 +0100)]
Remove runAutoSearch. Relevant code is now in the Records widget.
Mike Taylor [Tue, 1 Apr 2014 11:24:12 +0000 (12:24 +0100)]
newSearch is now made available a that.newSearch.
It's needed by the auto-searching code in individual widgets.
Mike Taylor [Tue, 1 Apr 2014 11:19:39 +0000 (12:19 +0100)]
Team does not subscribe to "ready" event (but "Records" widget does)
Mike Taylor [Tue, 1 Apr 2014 10:07:32 +0000 (11:07 +0100)]
Remove unnecessary logging.
Mike Taylor [Tue, 1 Apr 2014 10:06:41 +0000 (11:06 +0100)]
Subscriber for "ready" event now invokes runAutoSearch.
Mike Taylor [Tue, 1 Apr 2014 10:06:22 +0000 (11:06 +0100)]
runAutoSearches now merely publishes a "ready" event.
Mike Taylor [Tue, 1 Apr 2014 10:05:59 +0000 (11:05 +0100)]
Auto-executing body.
Mike Taylor [Tue, 1 Apr 2014 08:38:22 +0000 (09:38 +0100)]
Blind attempt to fix Jenkins error.
Mike Taylor [Mon, 31 Mar 2014 16:23:39 +0000 (17:23 +0100)]
Add a logging div.
Mike Taylor [Mon, 31 Mar 2014 16:21:51 +0000 (17:21 +0100)]
Move queue function to the top of the team-factory function.
log publishes on the "log" queue for the benefit of the Log widget.
Mike Taylor [Mon, 31 Mar 2014 16:20:15 +0000 (17:20 +0100)]
Add mkws-widget-log.js to COMPONENTS.
Mike Taylor [Mon, 31 Mar 2014 16:19:46 +0000 (17:19 +0100)]
New file, mkws-widget-log.js
Mike Taylor [Mon, 31 Mar 2014 15:53:22 +0000 (16:53 +0100)]
Re-order COMPONENTS
Mike Taylor [Mon, 31 Mar 2014 15:35:41 +0000 (16:35 +0100)]
JSON parsing of data-mkws-config attribute now protected by try/catch
block, complains loudly on failure.
Mike Taylor [Mon, 31 Mar 2014 15:26:51 +0000 (16:26 +0100)]
Add attribute-parsing code to widget constructor.
Handles three cases:
1. data-mkws-config -- argument is a JSON fragment containing any
number of key=value pairs to be added to the configuration
2. Any other data-mkws-NAME -- argument is a string, and is set as the
value of the configuration item NAME.
3. Any other attribute NAME that is not one of a hardwired set that are
recognised and discarded -- argument is a string, and is set
as the value of the attribute name.
Case 1 is the industrial-strength one that can be used when setting a
complex value, such as a list of facets:
data-mkws-config='{ "facets": ["xtargets", "author", "subject"] }'
Case 2 is the general-purpose way of setting any string value simply:
data-mkws-perpage="50"
Case 3 is a simplifying short-cut for case 2:
perpage="20"
Mike Taylor [Mon, 31 Mar 2014 15:15:52 +0000 (16:15 +0100)]
Sweet, sweet use of data-mkws-config to change facet order.
Mike Taylor [Fri, 28 Mar 2014 17:01:54 +0000 (17:01 +0000)]
Each widget now has its own config object, inheriting from the team
confirm, which inherits from the MKWS config, which inherits from the
default config. W00t!
Mike Taylor [Fri, 28 Mar 2014 17:01:19 +0000 (17:01 +0000)]
Add config() accessor function. Used only by widget factory.
Mike Taylor [Fri, 28 Mar 2014 16:28:35 +0000 (16:28 +0000)]
Each team now has its own config object, m_config, which inherits from
the global mkws.config (which of course in turn inherits from the
default set of parameters).
All configuration information is now taken from the per-team config.
Mike Taylor [Fri, 28 Mar 2014 16:16:55 +0000 (16:16 +0000)]
Do the copy-into-htdocs operations all on a single line.
Mike Taylor [Fri, 28 Mar 2014 16:16:25 +0000 (16:16 +0000)]
mkws.defaultMkwsConfig replaced with mkws.setMkwsConfig.
This makes a hash that inherits from an immutable set of defaults.
Mike Taylor [Fri, 28 Mar 2014 11:32:12 +0000 (11:32 +0000)]
Simplify.
Mike Taylor [Fri, 28 Mar 2014 11:05:03 +0000 (11:05 +0000)]
Move default empty-hash assignment of mkws_config inside defaultMkwsConfig
Mike Taylor [Fri, 28 Mar 2014 11:04:28 +0000 (11:04 +0000)]
Tests inspect mkws.config rather than old mkws_config
Mike Taylor [Fri, 28 Mar 2014 11:02:22 +0000 (11:02 +0000)]
Fix blindly-copied comment.
Mike Taylor [Fri, 28 Mar 2014 11:00:53 +0000 (11:00 +0000)]
Switch around code order so a local alias can be used more.
Mike Taylor [Fri, 28 Mar 2014 11:00:12 +0000 (11:00 +0000)]
Copy mkws_config into mkws.config, and thereafter use that
Mike Taylor [Fri, 28 Mar 2014 10:48:22 +0000 (10:48 +0000)]
Add mkws.objectWithParent function -- not yet used.
Mike Taylor [Thu, 27 Mar 2014 17:08:08 +0000 (17:08 +0000)]
Break some long lines.
Mike Taylor [Thu, 27 Mar 2014 17:03:55 +0000 (17:03 +0000)]
Factor common code out of delimitTarget and delimitQuery into new
utility function removeMatchingFilters.
Mike Taylor [Thu, 27 Mar 2014 16:28:27 +0000 (16:28 +0000)]
Reorder
Mike Taylor [Thu, 27 Mar 2014 16:28:18 +0000 (16:28 +0000)]
Reorder.
Mike Taylor [Thu, 27 Mar 2014 16:26:31 +0000 (16:26 +0000)]
Move dispatcher functions outside self-executor.
Mike Taylor [Thu, 27 Mar 2014 15:56:08 +0000 (15:56 +0000)]
Move defaultMkwsConfig out of auto-executer.
Mike Taylor [Thu, 27 Mar 2014 15:48:30 +0000 (15:48 +0000)]
Remove unnecessary duplicate test.
Mike Taylor [Thu, 27 Mar 2014 15:44:42 +0000 (15:44 +0000)]
Remove extraneous prefix.
Mike Taylor [Thu, 27 Mar 2014 15:43:57 +0000 (15:43 +0000)]
Move registerWidgetType and promotionFunction outside the
self-executing function.
Mike Taylor [Thu, 27 Mar 2014 13:19:21 +0000 (13:19 +0000)]
Remove trailing whitespace.
Mike Taylor [Thu, 27 Mar 2014 13:19:01 +0000 (13:19 +0000)]
Insert semicolons after all statements of the form
mkws.FN = function(args) { ... }
Missing them off is usually all right, but when it goes wrong (as when
I missed the semi-colon from the end of the recently-moved mkws.log
definition) it goes catastrophically wrong and is very hard to debug.
Mike Taylor [Thu, 27 Mar 2014 13:18:46 +0000 (13:18 +0000)]
Insert semicolons after all statements of the form
mkws.FN = function(args) { ... }
Missing them off is usually all right, but when it goes wrong (as when
I missed the semi-colon from the end of the recently-moved mkws.log
definition) it goes catastrophically wrong and is very hard to debug.
Mike Taylor [Thu, 27 Mar 2014 13:17:26 +0000 (13:17 +0000)]
Insert semicolons after all statements of the form
mkws.FN = function(args) { ... }
Missing them off is usually all right, but when it goes wrong (as when
I missed the semi-colon from the end of the recently-moved mkws.log
definition) it goes catastrophically wrong and is very hard to debug.
Mike Taylor [Thu, 27 Mar 2014 13:15:56 +0000 (13:15 +0000)]
Reindent.
Mike Taylor [Thu, 27 Mar 2014 13:15:43 +0000 (13:15 +0000)]
Move mkws.log out of immediate-execute wrapper.
Mike Taylor [Thu, 27 Mar 2014 12:16:49 +0000 (12:16 +0000)]
Fix parameter name.
Mike Taylor [Thu, 27 Mar 2014 12:15:48 +0000 (12:15 +0000)]
Remove do-nothing invocation wrapper.
Mike Taylor [Thu, 27 Mar 2014 12:03:46 +0000 (12:03 +0000)]
Whitespace
Mike Taylor [Thu, 27 Mar 2014 12:01:57 +0000 (12:01 +0000)]
Whitespace.
Mike Taylor [Thu, 27 Mar 2014 12:01:08 +0000 (12:01 +0000)]
Whitespace.
Mike Taylor [Thu, 27 Mar 2014 11:32:52 +0000 (11:32 +0000)]
Change logging message.
Mike Taylor [Thu, 27 Mar 2014 11:32:33 +0000 (11:32 +0000)]
Whitespace.
Mike Taylor [Thu, 27 Mar 2014 11:31:58 +0000 (11:31 +0000)]
Got rid of ALL promotion-function names.
All is now done by passing anonymous functions to registerWidgetType.
Mike Taylor [Wed, 26 Mar 2014 17:49:07 +0000 (17:49 +0000)]
Include mkws-widget-authname.js in COMPONENTS.
Mike Taylor [Wed, 26 Mar 2014 17:48:50 +0000 (17:48 +0000)]
New file, and the first standalone widget:
mkws-widget-authname.js implements the Authname widget.
Fixes bug MKWS-145.
Mike Taylor [Wed, 26 Mar 2014 17:48:11 +0000 (17:48 +0000)]
Add mkwsAuthname widget, and CSS styling.
Mike Taylor [Wed, 26 Mar 2014 17:42:33 +0000 (17:42 +0000)]
Instead of saving authName in the mkws structure, publish it to the
"authenticated" queue of each team.
Mike Taylor [Wed, 26 Mar 2014 17:39:25 +0000 (17:39 +0000)]
Remove logging of authName
Mike Taylor [Wed, 26 Mar 2014 17:33:31 +0000 (17:33 +0000)]
Save displayName of authenticated library, if any, as mkws.authName.
Part of MKWS-145 (Make a library-name widget).
Mike Taylor [Wed, 26 Mar 2014 17:32:22 +0000 (17:32 +0000)]
Single version with low-level components.
Mike Taylor [Wed, 26 Mar 2014 17:19:45 +0000 (17:19 +0000)]
The Perpage widget's promotion-function is now anonymous.
This feels strangely daring. It's very neat and concise, but may be
wandering dangerously close to the line where elegance is bought at
the price of incomprehensibility.
Mike Taylor [Wed, 26 Mar 2014 17:18:18 +0000 (17:18 +0000)]
Fix Sort and Perpage widgets by yet more that=this.
Mike Taylor [Wed, 26 Mar 2014 17:16:36 +0000 (17:16 +0000)]
Move comment.
Mike Taylor [Wed, 26 Mar 2014 17:14:32 +0000 (17:14 +0000)]
Each registerWidgetType invocation directly follows the function it
invokes. Makes each widget's source a standalone piece of text.
Mike Taylor [Wed, 26 Mar 2014 17:12:34 +0000 (17:12 +0000)]
Comment up to date.
Mike Taylor [Wed, 26 Mar 2014 17:12:05 +0000 (17:12 +0000)]
Rename all promote<TYPE> functions to promoteTo<TYPE>
Mike Taylor [Wed, 26 Mar 2014 17:11:06 +0000 (17:11 +0000)]
Rename variable.