Deprecated: Assigning the return value of new by reference is deprecated in /home/bluestat/public_html/source/index.php on line 477
Kalens - Blob - ViewGit - Blue Static
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">

	<head>
		<title>Kalens ToDo List</title>
		<style type="text/css" media="screen"><!--
body {
	font-size: 11px;
	font-family: verdana;
	background-color: #ececec; }
.considered {
	color: #00008e; }
.done {
	color: #006d00;
	text-decoration: line-through; }
.removed {
	color:           #a10000;
	text-decoration: line-through; }
--></style>
	</head>

	<body>
		<p><strong>This is the todo list for the existing calendar system (ProCal) as it transitions into Kalens. This feature list includes items for verison 1.0 and the future 1.1 version.</strong></p>
		<p>SVN: $Id$</p>
		<p><em>Legend:</em></p>
		<ul>
			<li><em>Normal todo item</em></li>
			<li class="done"><em>Completed item</em></li>
			<li class="considered"><em>Item under consideration</em></li>
			<li class="removed"><em>No longer considered</em></li>
		</ul>
		<p></p>
		<h2>Kalens 1.0</h2>
		<p>Calendar <em>(Alpha 2)</em></p>
		<ul>
			<li>Make non-javascript event creation/editing system</li>
			<li>Popup date calendar</li>
			<li>Weekly view (revise) and daily view (new) should show start and end times like most calendars</li>
			<li>Event notifications/reminders</li>
			<li>Event labels</li>
			<li>For multi-day events, show the events spanning multiple days (monthly view)</li>
			<li>Clicking on an event's link takes you to a details page (showevent.php) and from there you can edit the event</li>
			<li>Delete or edit one instance of a recurring event</li>
			<li>i/v/eCal export</li>
			<li>Save calendar as web page (not linked to any external stylesheet or images)</li>
			<li>Event search engine</li>
			<li>Selectable start day of the week</li>
		</ul>
		<p>Email [IMAP only] <em>(Alpha 5)</em></p>
		<ul>
			<li class="removed">Optional true web client --&gt; check for messages whenever browsing the system; download the messages from the POP server and store them in MySQL followed by their removal from the server</li>
			<li>Address book that had pop-up chooser for creating a new message and selecting recipient</li>
			<li>Tri-pane view (MS Outlook esque)</li>
			<li>Flag and label messages</li>
			<li>Optional message grouping by date</li>
			<li class="removed">MBox import (probably doable; will have to look at how to split messages as they're all in one big file, but it's stored as the message source)</li>
			<li class="removed">MBox export (very doable; just run a loop and save the message source to a file; need to check message spacing so that it works right, but that shouldn't be hard)</li>
			<li>Have a server connection class that can use either the imap_x or socket_x functions; use auto-detect and then set that in the admin cp during install</li>
		</ul>
		<p>Tasks <em>(Alpha 4)</em></p>
		<ul>
			<li>Link a task to a certain day, note, or email</li>
			<li>Label tasks</li>
			<li>OPTIONAL start/stop/assign/due date</li>
			<li>Show completed tasks for X days/auto delete/hide</li>
			<li>Show tasks on calendar (weekly and daily view only?)</li>
			<li>Prioritize tasks</li>
			<li>Task reminders (via email and calendar(?))</li>
			<li>Printable to-do lists with checkboxes</li>
		</ul>
		<p>Note Pad <em>(Alpha 3)</em></p>
		<ul>
			<li>Link a note to a task, event, or email</li>
			<li>Label notes</li>
			<li>BBCode/strict HTML rules based formatting</li>
			<li>Send note as email</li>
			<li>Save note as RTF/DOC (<a href="http://www.phpbuilder.com/columns/nair20020523.php3?page=1">http://www.phpbuilder.com/columns/nair20020523.php3?page=1</a>)</li>
		</ul>
		<p>System/Core Changes <em>(Alpha 1)</em></p>
		<ul>
			<li>Support true language independence
				<ul>
					<li>Style variables for align left and right for RTL languages</li>
					<li>Multi-language support</li>
					<li>Admin CP can be one language while calendar be another</li>
				</ul>
			</li>
			<li>Clean up setting import/export and support language independence</li>
			<li>Advanced user-based permissions system --&gt; allow users to create their own user groups (independent of the system ones) that can view calendars/tasks/notes and edit, create, etc. them</li>
			<li class="done">Handle magic quotes differently: create addslashes_like that will strip slashes on a per-variable level, rather than globally (thus saving resources)</li>
			<li class="done">Change login system to set cookies that have no value in terms of the password</li>
			<li class="removed">Make styles have inheritance past the master style</li>
			<li class="done">Revamp ACP style</li>
			<li>Change CSS_GLOBAL template to be colour-picker based (or at least more friendly!)</li>
			<li>Change StyleVars and CSS to not be in the templates, but rather be in a separate table that will be easier to support inheritance</li>
			<li class="done">Move inc/* to includes/ and inc/admin/* to inc/</li>
			<li class="done">Change Admin CP object $admin to be $print (purely aesthetical)</li>
			<li class="removed">Support multiple admin CP styles</li>
			<li>Change images/ folder organization</li>
			<li>Security measures to force the user to enter his or her password after X days or hours as well as a &quot;remember me&quot; checkbox</li>
			<li>System-wide search (search results would be from emails, notes, tasks, and events)</li>
			<li>Style permissions and display orders</li>
			<li>Admin user group creation and management so certain users can do certain things (like set the permissions for others to view their calendars)</li>
			<li class="considered">For simple admin widgets (phrases, etc.) have Admin::SimpleFile(DB TABLE, array(FIELD =&gt; array(TYPE, DESCRIPTION)) allowing creation of entire files with a single action</li>
			<li>Change XML parsing to just take the name of $_FILES['x'] and it will control file_get_contents() of the XML data</li>
			<li class="done">Change Admin CP nav to be a large array array(MENU GROUP =&gt; array(DISPLAY NAME, array(LINK NAME =&gt; LINK))) and then just do a quick processing of that (hopefully remove Admin_Nav::* class)</li>
			<li class="removed">Somehow protect the install/upgrade system</li>
			<li>Clean up the installer; MyWishlist's installer system is pretty nice, we could use version detect and just that instead of the user select; it's probably cleaner than our current system</li>
			<li class="done">Make print_standard_redirect() and print_standard_error() use just phrase names instead of $language['x']</li>
			<li class="done">Change sanitize() to not slash strings automatically, just have them cleaned for XSS</li>
			<li>Remove inc/defined.php and find ways to work without its definitions</li>
			<li class="done">Rename pc_* and pc* functions to be *like (eg. setcookielike, addslasheslike, randlike)</li>
			<li class="done">Change pc_rand_char to use the engine that is in the bug tracker</li>
			<li class="done">Change construct_phrase to call sprintf() instead of using str_replace() for variable substitution</li>
			<li class="done">Make in-phrase variables use %1$s-like variables, rather than just %1</li>
			<li class="done">Put locations in construct_time_zone_select() in phrases</li>
			<li class="done">In construct_style_select() make the styles array a static variable so we have them cached</li>
			<li class="done">Make the devdebug() functions only store data if debug mode is on</li>
			<li>In inc/init.php only send no-cache headers if the admin has specified to do so</li>
			<li>Create a pagination system</li>
			<li>Rename _SELECTED and _CHECKED constants to HTML_* and move them to a file other than inc/event.php</li>
			<li>Move XML parser into a class and make it more universal</li>
			<li>unlink() all fcached CSS files so they don't build up after a while</li>
			<li class="considered">Make Admin_Print::* functions &quot;smart&quot; so they know when to open/close elements, inherit colspans, and all follow the same argument order</li>
			<li class="done">Change $xss object to $sanitize (purely aesthetical)</li>
			<li class="done">Make yesno pcoptions store boolean values, not string &quot;yes&quot; or &quot;no&quot;</li>
			<li class="done">Remove defined cookie names in place of cookie prefixes</li>
			<li class="done">Allow for table prefixes (find a unique way to do this so we don't have to break the string to insert a constant every time</li>
			<li class="done">Use dynamic-length salts instead of the fixed characters</li>
			<li>Use datamanagers to handle DB writes (an object that has all the fields defined and has an insert(), update(), and delete() method that controls all DB-write interaction)</li>
		</ul>
		<p>New Style <em>(Beta 1)</em></p>
		<ul>
			<li class="removed">Change event add/edit to be less javascript-intensive</li>
			<li>Frame-less side panel that has links to the global sections</li>
			<li>Calendar is one big view, with overlay-able &quot;sets&quot; (our existing calendar model)</li>
			<li>Advanced AJAX javascript for event creation</li>
			<li>No support for non-JS/AJAX browsers</li>
			<li class="removed">New blue/orange style sheet (sudo-WinXP like)</li>
			<li class="removed">Better support for older browsers and javascript disabled ones</li>
		</ul>
		<h2>Kalens 1.1+</h2>
		Calendar
		<ul>
			<li>Advanced recursion patterns (every Tuesday every other month)</li>
		</ul>
		<p>Email</p>
		<ul>
			<li>Built in spam-filtering that works off of occurrence-based logic patterns</li>
			<li>RTF and HTML email sending (depends on Safari 2.0 support of WYSIWYG)</li>
			<li>Inherit SpamAssassin (et al) spam tags</li>
			<li>White/black listing for servers, IP's, and addresses (on the user and system level)</li>
		</ul>
	</body>

</html>