Refactored code to work with trails

This commit is contained in:
Tobi Schäfer 2014-12-01 20:45:16 +01:00
parent da65dbbbfd
commit b112395a53
15 changed files with 77 additions and 552 deletions

View file

@ -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
View file

@ -0,0 +1,43 @@
// The Antville Project
// http://code.google.com/p/antville
//
// Copyright 20012014 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;
}

View file

@ -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'>

View file

@ -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>

View file

@ -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) :

View file

@ -1,10 +1,34 @@
// The Antville Project
// http://code.google.com/p/antville
//
// Copyright 20012014 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);
}

View file

@ -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'>