Refactored code to work with trails
This commit is contained in:
parent
da65dbbbfd
commit
b112395a53
15 changed files with 77 additions and 552 deletions
|
@ -18,6 +18,7 @@
|
|||
/**
|
||||
* @fileoverview Defines the Feature prototype.
|
||||
* Another trial to implement modular features.
|
||||
* @deprecated
|
||||
*/
|
||||
|
||||
/**
|
||||
|
@ -162,4 +163,4 @@ Feature.getPermission = function(action) {
|
|||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
43
code/Global/Trail.js
Normal file
43
code/Global/Trail.js
Normal file
|
@ -0,0 +1,43 @@
|
|||
// The Antville Project
|
||||
// http://code.google.com/p/antville
|
||||
//
|
||||
// Copyright 2001–2014 by the Workers of Antville.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the ``License'');
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an ``AS IS'' BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
function Trail(name) {
|
||||
var Proto = global[name];
|
||||
if (Proto && Proto instanceof Function) {
|
||||
return Proto;
|
||||
}
|
||||
app.log('Undefined trail ' + name);
|
||||
return;
|
||||
}
|
||||
|
||||
Trail.invoke = function (name, callback, args) {
|
||||
var trail = Trail(name);
|
||||
if (trail) {
|
||||
callback.apply(trail, args);
|
||||
}
|
||||
};
|
||||
|
||||
function trail_macro(param, name, macro) {
|
||||
macro || (macro = 'trail');
|
||||
var Proto = Trail(name);
|
||||
var trail = new Proto();
|
||||
var method = trail[macro + '_macro'];
|
||||
if (method && method instanceof Function) {
|
||||
method.call(trail, param);
|
||||
}
|
||||
return;
|
||||
}
|
|
@ -43,7 +43,7 @@
|
|||
<div class='uk-form-row'>
|
||||
<fieldset>
|
||||
<legend><% gettext Connections %></legend>
|
||||
<% feature connect prefix='' suffix='' %>
|
||||
<% trail Connect prefix='' suffix='' %>
|
||||
</fieldset>
|
||||
</div>
|
||||
<div class='uk-form-row'>
|
||||
|
|
|
@ -90,7 +90,7 @@
|
|||
<textarea cols="31" rows="10" class="formText" wrap="virtual"
|
||||
name="text"><% request.text encoding="form" %></textarea>
|
||||
</p>
|
||||
<% feature recaptcha %>
|
||||
<% trail Recaptcha %>
|
||||
<p>
|
||||
<button type="submit" name="send" value="1"><% gettext Send %></button>
|
||||
<a href="" class="cancel"><% gettext Cancel %></a>
|
||||
|
|
|
@ -198,8 +198,8 @@ Membership.prototype.contact_action = function() {
|
|||
if (!req.postParams.text) {
|
||||
throw Error(gettext('Please enter the message text.'));
|
||||
}
|
||||
Feature.invoke('recaptcha', function() {
|
||||
return this.verify(req.postParams);
|
||||
Trail.invoke('Recaptcha', function () {
|
||||
this.verify(req.postParams);
|
||||
});
|
||||
this.notify(req.action, this.creator.email, session.user ?
|
||||
gettext('[{0}] Message from user {1}', root.title, session.user.name) :
|
||||
|
|
|
@ -1,10 +1,34 @@
|
|||
// The Antville Project
|
||||
// http://code.google.com/p/antville
|
||||
//
|
||||
// Copyright 2001–2014 by the Workers of Antville.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the ``License'');
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an ``AS IS'' BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
/**
|
||||
* @fileOverview Defines the Trails mountpoint.
|
||||
*/
|
||||
|
||||
Trails.load = function (trails) {
|
||||
trails || (trails = []);
|
||||
trails instanceof Array || (trails = [trails]);
|
||||
if (trails instanceof Array === false) {
|
||||
trails = String(trails).split(',');
|
||||
}
|
||||
trails.forEach(function (name) {
|
||||
name = name.trim();
|
||||
var repository = new helma.File(app.dir, '../trails/' + name);
|
||||
if (repository.exists()) {
|
||||
console.log('Adding trail', repository.toString());
|
||||
//console.log('Adding trail', repository.toString());
|
||||
app.addRepository(repository.toString());
|
||||
app.data.trails.push(name);
|
||||
}
|
||||
|
|
|
@ -91,7 +91,7 @@ else <% if <% site.mode %> is restricted then "" else
|
|||
<div class='uk-form-row uk-margin-top'>
|
||||
<fieldset>
|
||||
<legend><% gettext Connections %></legend>
|
||||
<% feature connect context=profile default=— %>
|
||||
<% trail Connect context=profile default=— %>
|
||||
</fieldset>
|
||||
</div>
|
||||
<div class='uk-form-row uk-margin-top'>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue