These are things that there appears to be no possible way to do in WikiTalk.
Validate, convert and fix dates
Sort an array in descending order
Reuse variables
Merge multiple topics' content into one page
Put comments in code
Handle errors
Handle international characters for ex. Norwegian æ, ø and å
Fixed but not released:
Features released:
Remove duplicate values from an array
Add, subtract, multiply and divide integers
Validate, convert and fix dates
Examples and/or test cases:
Given today's date, loop through the mondays for the past four weeks.
Find invalid topic property values containing dates. Example: Users create topics with a date property such as Reportdate. Users may enter in "yyyy-mm-dd", "yyyymmdd" or "m/d/y" format. I should be able to create a topic that gives me the list of all topics with incorrect dates or date formats. (e.g. Date.DateValue(theproperty, "yyyy-mm-dd") or Date.IsValid(theproperty, "m/d/yyyy") Note: Locality matters for date formats. Think January 2nd, 2003. US is 1/2/3 or 1/2/03. UK is 2/1/03. ymd is 3/1/2. Can also use dashes instead of slashes.
Sort an array in descending order
You can sort an array but you can't sort it descending. For example, a set of topics have a property ReportDate which is in yyyy-mm-dd format. I want the most recent reports listed first.
Examples and/or test cases:
Sort the array ["a", "b", "c"] so it returns "cba".
I have added a Reverse function to FlexWikiEngine.BELArray.cs for that. I am currently finding out how to get write access to the CVS. In the meantime, maybe you can add it manually yourself? -- HansB
[ExposedMethod(ExposedMethodFlags.CachePolicyNone, "Reverse the array")]
public BELArray Reverse()
{
ArrayList answer = new ArrayList(Array);
answer.Reverse();
return new BELArray(answer);
}
Reuse variables
Variables are not supported in WikiTalk. This is key to performance. For example, a complex search across thousands of topics might result in 10 topics being found.
Examples and/or test cases:
A complex search across thousands of topics might result in 10 topics being found. You want to list the topics at the top of the page and then summarize them later in the page.
Search across thousands of topics and give the count for how many topics are found. Then go back and list the topics without having to pass the results array to a function (topic property function).
Merge multiple topics' content into one page
There is no way to use WikiTalk to insert a topic's content into the another topic.
Examples and/or test cases:
Status reports are entered as individual topics. Sample code to get all status reports: namespace.TopicsWith("ISTopicType", "StatusReport").Sort Test case is to generate a consolidated status report.
Comment
Can't you do this using the _Body property? That is, something like this
Out of 100 topics, there are 10 unique values in the Reportdate property. List the 10.
The Recent Topics list (right hand side of screen) includes duplicate names. Change to show the 10 most recent topics names, ordered by when I last visited them.
I can think of two (for now) approaches to this that we could take:
Provide a Unique method to the ArrayType that returns another Array containing just the unique entires.
Implement a Hashtable-like type that can only hold unique values from the outset.
The Unique method approach would undoubtedly be quicker to implement, but I don't see either as being particularly arduous -- DerekLakin [18-Jan-2005]
Note that there is already a Set class inside FlexWiki that does exactly this. It could be exposed in WikiTalk. Of course, that starts to open the door to questions about a whole class hierarchy for collections (<picture of David running screaming away as fast as possible...>. Adding a single Unique method to Array is probably a nice start. -- DavidOrnstein [18-Jan-2005]
Create a table listing projects, their costs and the total. Projects would be individual topics with each topic having Projectcost attribute containing the cost.
Like most problems there are several possibilities for solving this too:
Implement the required operators in WikiTalk so that '+', '-', '*' and '/' can be used in WikiTalk. This could be applied, where appropriate, for other types.
Implement a Math class that provides Add, Subtract, Multiply and Divide methods. These methods could accept (and return) ObjectTypes allowing the operations on other types (where appropriate).
Implement Add, Subtract, Multiply and Divide methods on the IntegerType.
Providing operator support in WikiTalk itself would be longer and more complicated (I suspect) than any other approach. Implementing a Math class would be a good way of centralising all the arithmetic functionality. Adding the relevant methods to the Integer class would be consistent with the approach taken in existing classes such as the DateTimeType.
That's not to say that the existing arithmetic methods in existing classes couldn't be moved out to a new Math class, but it would be a breaking change.
I'm happy to take either/both of these on once we've had a discussion and resolved upon which approach to take. -- DerekLakin [18-Jan-2005]
There has been discussion about the introduction of operators and it would be nice for them to come along at some point. There's a topic on it, but I can't find it right now. I think the way this was envisioned was that the actual infix notation with a binary operator (like 1+2) really translated into calls to the appropriate methods on the object on the left (in this case calling Plus() on Integer), passing in the second integer.
I think if you went ahead and added a few math functions to Integer, that might work nicely for now -- before we get the nicer syntax. And would blend well with the imagined implementation strategy for binary operators in the future. -- DavidOrnstein [18-Jan-2005]
Click to read this topic
6/30/2008 6:39:32 AM - 210.212.95.115
Which are the related Feature Requests
1/24/2008 2:03:32 PM - FLWCOM-jwdavidson
Click to read this topic
6/30/2008 6:39:32 AM - 210.212.95.115
Click to read this topic
6/30/2008 6:39:32 AM - 210.212.95.115
Click to read this topic
6/30/2008 6:39:32 AM - 210.212.95.115
Click to read this topic
6/30/2008 6:39:32 AM - 210.212.95.115
Click to read this topic
6/30/2008 6:39:32 AM - 210.212.95.115
FlexWiki user with experience setting up FlexWiki for project usage on an intranet.
7/19/2006 9:46:41 AM - -140.32.73.93
Syntax for Including one topic within another
11/26/2007 11:17:02 AM - -128.227.97.219
Click to read this topic
6/30/2008 6:39:32 AM - 210.212.95.115
Click to read this topic
6/30/2008 6:39:32 AM - 210.212.95.115
Provides a @Unique@ method for the ArrayType to remove duplicate values.
1/25/2005 7:36:06 AM - DerekLakin-62.189.22.124
Arrays are general-purpose collections that hold any kind of object.
10/27/2004 8:32:57 AM - jonathan_hardwick@hotmail.com-64.122.205.71
Derek Lakin is a C# .NET developer primarily focusing on Windows Forms development and a CoreDeveloper for FlexWiki. Currently employed by "Content Master":http://www.contentmaster.co.uk producing learning material, white papers, and presentations, primarily for "Microsoft":http://www.microsoft.com.
11/20/2007 3:40:12 AM - -90.206.52.15
The software running this site. -> jump to HomePage
10/22/2006 7:52:17 AM - -81.182.199.248
Click to read this topic
6/30/2008 6:39:32 AM - 210.212.95.115
David Ornstein works at Microsoft. He is the primary original author and a key contributor to the software (FlexWiki) that makes this wiki run.
12/30/2005 5:33:26 PM - -208.54.15.129
Adds arithmetic methods to the IntegerType.
9/14/2007 6:39:32 AM - -81.56.224.100
Click to read this topic
6/30/2008 6:39:32 AM - 210.212.95.115
Click to read this topic
6/30/2008 6:39:32 AM - 210.212.95.115
Object is the root type in the WikiTalk language; almost all types inherit from Object
1/24/2008 8:33:34 AM - FLWCOM-jwdavidson
Click to read this topic
6/30/2008 6:40:21 AM - 211.38.131.22
Click to read this topic
6/30/2008 6:39:32 AM - 210.212.95.115
A DateTime object represents a point in time.
1/24/2008 8:36:25 AM - FLWCOM-jwdavidson
Derek Lakin is a C# .NET developer primarily focusing on Windows Forms development and a CoreDeveloper for FlexWiki. Currently employed by "Content Master":http://www.contentmaster.co.uk producing learning material, white papers, and presentations, primarily for "Microsoft":http://www.microsoft.com.
11/20/2007 3:40:12 AM - -90.206.52.15
David Ornstein works at Microsoft. He is the primary original author and a key contributor to the software (FlexWiki) that makes this wiki run.