mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-14 17:58:59 +00:00
New build scripts
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@5282 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
76
source/web/scripts/ajax/dojo/src/cal/textDirectory.js
Normal file
76
source/web/scripts/ajax/dojo/src/cal/textDirectory.js
Normal file
@@ -0,0 +1,76 @@
|
||||
/*
|
||||
Copyright (c) 2004-2006, The Dojo Foundation
|
||||
All Rights Reserved.
|
||||
|
||||
Licensed under the Academic Free License version 2.1 or above OR the
|
||||
modified BSD license. For more information on Dojo licensing, see:
|
||||
|
||||
http://dojotoolkit.org/community/licensing.shtml
|
||||
*/
|
||||
|
||||
dojo.provide("dojo.cal.textDirectory");
|
||||
dojo.require("dojo.string");
|
||||
|
||||
dojo.cal.textDirectory.Property = function(/*String*/line){
|
||||
// summary: parses a single line from an iCalendar text/directory file
|
||||
// and creates an object with four named values; name, group, params
|
||||
// and value. name, group and value are strings containing the original
|
||||
// tokens unaltered and values is an array containing name/value pairs
|
||||
// or a single name token packed into arrays.
|
||||
|
||||
// split into name/value pair
|
||||
var left = dojo.string.trim(line.substring(0, line.indexOf(':')));
|
||||
var right = dojo.string.trim(line.substr(line.indexOf(':') + 1));
|
||||
|
||||
// separate name and paramters
|
||||
var parameters = dojo.string.splitEscaped(left,';');
|
||||
this.name = parameters[0];
|
||||
parameters.splice(0, 1);
|
||||
|
||||
// parse paramters
|
||||
this.params = [];
|
||||
var arr;
|
||||
for(var i = 0; i < parameters.length; i++){
|
||||
arr = parameters[i].split("=");
|
||||
var key = dojo.string.trim(arr[0].toUpperCase());
|
||||
|
||||
if(arr.length == 1){ this.params.push([key]); continue; }
|
||||
|
||||
var values = dojo.string.splitEscaped(arr[1],',');
|
||||
for(var j = 0; j < values.length; j++){
|
||||
if(dojo.string.trim(values[j]) != ''){
|
||||
this.params.push([key, dojo.string.trim(values[j])]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// separate group
|
||||
if(this.name.indexOf('.') > 0){
|
||||
arr = this.name.split('.');
|
||||
this.group = arr[0];
|
||||
this.name = arr[1];
|
||||
}
|
||||
|
||||
// don't do any parsing, leave to implementation
|
||||
this.value = right;
|
||||
}
|
||||
|
||||
|
||||
dojo.cal.textDirectory.tokenise = function(/*String*/text){
|
||||
// summary: parses text into an array of properties.
|
||||
|
||||
// normlize to one property per line and parse
|
||||
var nText = dojo.string.normalizeNewlines(text,"\n").
|
||||
replace(/\n[ \t]/g, '').
|
||||
replace(/\x00/g, '');
|
||||
|
||||
var lines = nText.split("\n");
|
||||
var properties = [];
|
||||
|
||||
for(var i = 0; i < lines.length; i++){
|
||||
if(dojo.string.trim(lines[i]) == ''){ continue; }
|
||||
var prop = new dojo.cal.textDirectory.Property(lines[i]);
|
||||
properties.push(prop);
|
||||
}
|
||||
return properties; // Array
|
||||
}
|
Reference in New Issue
Block a user