Merge branch 'master' into templateallthemarkup
authorJason Skomorowski <jason@indexdata.com>
Thu, 21 Aug 2014 20:04:18 +0000 (16:04 -0400)
committerJason Skomorowski <jason@indexdata.com>
Thu, 21 Aug 2014 20:04:18 +0000 (16:04 -0400)
1  2 
src/mkws-core.js

diff --combined src/mkws-core.js
@@@ -20,7 -20,6 +20,7 @@@ window.mkws = 
                  // initial value allows jQuery popup to use logging.
    teams: {},
    widgetType2function: {},
 +  defaultTemplates: {},
  
    locale_lang: {
      "de": {
@@@ -169,7 -168,12 +169,12 @@@ mkws.setMkwsConfig = function(overrides
    var config_default = {
      use_service_proxy: true,
      pazpar2_url:        "//mkws.indexdata.com/service-proxy/",
-     service_proxy_auth: "//mkws.indexdata.com/service-proxy-auth",
+     service_proxy_auth: undefined, // generally rolled from the next three properties
+     // Was: //mkws.indexdata.com/service-proxy-auth
+     pp2_hostname: "mkws.indexdata.com",
+     sp_path: "service-proxy-auth",
+     sp_auth_query: undefined, // Will be: "command=auth&action=perconfig",
+     sp_auth_credentials: undefined,
      lang: "",
      sort_options: [["relevance"], ["title:1", "title"], ["date:0", "newest"], ["date:1", "oldest"]],
      perpage_options: [10, 20, 30, 50],
      facets: ["xtargets", "subject", "author"], /* display facets, in this order, [] for none */
      responsive_design_width: undefined, /* a page with less pixel width considered as narrow */
      log_level: 1,     /* log level for development: 0..2 */
 +    template_vars: {}, /* values that may be exposed to templates */
  
      dummy: "dummy"
    };
@@@ -208,6 -211,110 +213,6 @@@ mkws.objectInheritingFrom = function(o
  }
  
  
 -mkws.defaultTemplate = function(name) {
 -  if (name === 'Record') {
 -    return '\
 -<table>\
 -  <tr>\
 -    <th>{{mkws-translate "Title"}}</th>\
 -    <td>\
 -      {{md-title}}\
 -      {{#if md-title-remainder}}\
 -        ({{md-title-remainder}})\
 -      {{/if}}\
 -      {{#if md-title-responsibility}}\
 -        <i>{{md-title-responsibility}}</i>\
 -      {{/if}}\
 -    </td>\
 -  </tr>\
 -  {{#if md-date}}\
 -  <tr>\
 -    <th>{{mkws-translate "Date"}}</th>\
 -    <td>{{md-date}}</td>\
 -  </tr>\
 -  {{/if}}\
 -  {{#if md-author}}\
 -  <tr>\
 -    <th>{{mkws-translate "Author"}}</th>\
 -    <td>{{md-author}}</td>\
 -  </tr>\
 -  {{/if}}\
 -  {{#if md-electronic-url}}\
 -  <tr>\
 -    <th>{{mkws-translate "Links"}}</th>\
 -    <td>\
 -      {{#each md-electronic-url}}\
 -        <a href="{{this}}">Link{{mkws-index1}}</a>\
 -      {{/each}}\
 -    </td>\
 -  </tr>\
 -  {{/if}}\
 -  {{#mkws-if-any location having="md-subject"}}\
 -  <tr>\
 -    <th>{{mkws-translate "Subject"}}</th>\
 -    <td>\
 -      {{#mkws-first location having="md-subject"}}\
 -        {{#if md-subject}}\
 -          {{#mkws-commaList md-subject}}\
 -            {{this}}{{/mkws-commaList}}\
 -        {{/if}}\
 -      {{/mkws-first}}\
 -    </td>\
 -  </tr>\
 -  {{/mkws-if-any}}\
 -  <tr>\
 -    <th>{{mkws-translate "Locations"}}</th>\
 -    <td>\
 -      {{#mkws-commaList location}}\
 -        {{mkws-attr "@name"}}{{/mkws-commaList}}\
 -    </td>\
 -  </tr>\
 -</table>\
 -';
 -  } else if (name === "Summary") {
 -    return '\
 -<a href="#" id="{{_id}}" onclick="{{_onclick}}">\
 -  <b>{{md-title}}</b>\
 -</a>\
 -{{#if md-title-remainder}}\
 -  <span>{{md-title-remainder}}</span>\
 -{{/if}}\
 -{{#if md-title-responsibility}}\
 -  <span><i>{{md-title-responsibility}}</i></span>\
 -{{/if}}\
 -{{#if md-date}}, {{md-date}}\
 -{{#if location}}\
 -, {{#mkws-first location}}{{mkws-attr "@name"}}{{/mkws-first}}\
 -{{/if}}\
 -{{#if md-medium}}\
 -<span>, {{md-medium}}</span>\
 -{{/if}}\
 -{{/if}}\
 -';
 -  } else if (name === "Image") {
 -    return '\
 -      <a href="#" id="{{_id}}" onclick="{{_onclick}}">\
 -        {{#mkws-first md-thumburl}}\
 -          <img src="{{this}}" alt="{{../md-title}}"/>\
 -        {{/mkws-first}}\
 -        <br/>\
 -      </a>\
 -';
 -  } else if (name === 'Facet') {
 -    return '\
 -<a href="#"\
 -{{#if fn}}\
 -onclick="mkws.{{fn}}(\'{{team}}\', \'{{field}}\', \'{{term}}\');return false;"\
 -{{/if}}\
 ->{{term}}</a>\
 -<span>{{count}}</span>\
 -';
 -  }
 -
 -  return null;
 -};
 -
 -
  // The following functions are dispatchers for team methods that
  // are called from the UI using a team-name rather than implicit
  // context.
@@@ -562,8 -669,30 +567,30 @@@ mkws.pagerNext = function(tname) 
        }
      */
  
+     function sp_auth_url(config) {
+       if (config.service_proxy_auth) {
+       mkws.log("using pre-baked sp_auth_url '" + config.service_proxy_auth + "'");
+       return config.service_proxy_auth;
+       } else {
+       var s = '//';
+       s += config.auth_hostname ? config.auth_hostname : config.pp2_hostname;
+       s += '/' + config.sp_path;
+         var q = config.sp_auth_query;
+         if (q) {
+           s += '?' + q;
+         }
+       var c = config.sp_auth_credentials;
+       if (c) {
+         s += ('&username=' + c.substr(0, c.indexOf('/')) +
+               '&password=' + c.substr(c.indexOf('/')+1));
+       }
+       mkws.log("generated sp_auth_url '" + s + "'");
+       return s;
+       }
+     }
      if (mkws.config.use_service_proxy && !mkws.authenticated && !mkws.authenticating) {
-       authenticateSession(mkws.config.service_proxy_auth,
+       authenticateSession(sp_auth_url(mkws.config),
                            mkws.config.service_proxy_auth_domain,
                            mkws.config.pazpar2_url);
      } else if (!mkws.authenticating) {