Monday, April 04, 2011 at 1:08 AM.

radio2Suite.viewHistory

on viewHistory (adruser, adrfeed, idHistoryHIghlight=0) {
	<<Changes
		<<3/16/11; 1:11:26 PM by DW
			<<Confirmation dialog for deleting posts.
		<<3/15/11; 6:35:30 PM by DW
			<<Call radio2Suite.viewPost to get the text of main column.
		<<3/12/11; 11:03:57 PM by DW
			<<New optional parameter, idHistoryHIghlight, the id of the post that is highlighted. Default value is 0, which means nothing is highlighted.
		<<3/12/11; 9:25:18 AM by DW
			<<If an item has an enclosure, link to it from an icon in the right margin.
		<<3/6/11; 6:20:52 PM by DW
			<<Links to delete items were broken, fixed.
		<<3/5/11; 9:35:17 AM by DW
			<<Factored from of river2suite.main.
	local (historytext = "", indentlevel = 0, ctitems = 0, maxitems = 25);
	local (imgXmlMini, imgEdit, imgDelete, imgEnclosure, now = clock.now ());
	bundle { //set images html
		imgXmlMini = string (radio2Suite.data.html.xml);
		imgEdit = string (radio2Suite.data.html.editIcon);
		imgDelete = string (radio2Suite.data.html.deleteIcon);
		imgEnclosure = string (radio2Suite.data.html.podcastIcon)};
	on add (s) {
		historytext = historytext + string.filledstring ("\t", indentlevel) + s + "\r"};
	on visit (adritem) {
		local (class = "history");
		if idHistoryHIghlight > 0 { //3/12/11 by DW
			if number (nameof (adritem^)) == idHistoryHIghlight {
				class = "historyHighlighted"}};
		add ("<tr>"); indentlevel++;
		add ("<td class=\"" + class + "\" align=\"right\" valign=\"top\">" + ++ctitems + ". </td>");
		bundle { //add the main text column
			<<local (title = string.trimwhitespace (adritem^.title), s = "")
			<<local (link = string.trimwhitespace (adritem^.link))
			<<local (description = string.trimwhitespace (adritem^.description))
			<<if sizeof (title) > 0
				<<if sizeof (link) > 0
					<<s = "<a href=\"" + link + "\">" + title + "</a>"
				<<else
					<<s = title
				<<if sizeof (description) > 0
					<<s = s + ". " + description
			<<else //title is empty
				<<if sizeof (description) > 0
					<<if sizeof (link) > 0
						<<s = "<a href=\"" + link + "\">" + description + "</a>"
						<<s = twitter.hotUpText (description) + " <a href=\"" + link + "\">#</a>"
					<<else
						<<s = description
				<<else //title and description are empty
					<<if sizeof (link) > 0 //just plop down the link
						<<s = "<a href=\"" + link + "\">" + link + "</a>"
			<<add ("<td class=\"" + class + "\" valign=\"top\">" + s + "</td>")
			add ("<td class=\"" + class + "\" valign=\"top\">" + radio2Suite.viewPost (adritem) + "</td>")};
		bundle { //add the short code, 2/22/11 by DW
			local (shortcode = " ");
			if defined (adritem^.linkShortened) {
				local (shortlink = adritem^.linkShortened);
				shortCode = "<a href=\"" + shortlink + "\">" + string.lastfield (shortlink, "/") + "</a>"};
			add ("<td class=\"" + class + "\" align=\"right\" valign=\"top\" nowrap>" + shortcode + "</td>")};
		bundle { //add the read count
			local (readcount = " ");
			if defined (adritem^.stats.ctReads) {
				readcount = adritem^.stats.ctReads};
			add ("<td class=\"" + class + "\" align=\"right\" valign=\"top\" nowrap>" + readcount + "</td>")};
		bundle { //add the post time/date
			add ("<td class=\"" + class + "\" align=\"right\" valign=\"top\" nowrap>" + date.viewDate (adritem^.when) + "</td>")};
		bundle { //add the Edit & Delete links
			local (url = "?idPost=" + number (nameof (adritem^)) + "&feed=" + nameof (adrfeed^));
			local (editlink = "<a href=\"index" + url + "\">" + imgEdit + "</a>");
			local (confirmation = "Are you sure you want to delete the post? (There is no undo.)");
			local (deletelink = "<a href=\"delete" + url + "\" onclick=\"return confirm('" + confirmation + "')\">" + imgDelete + "</a>", enclosurelink);
			bundle { //set enclosurelink, 3/12/11 by DW
				if defined (adritem^.enclosure) {
					enclosurelink = " <a href=\"" + adritem^.enclosure + "\">" + imgEnclosure + "</a>"}
				else {
					enclosurelink = ""}};
			add ("<td valign=\"top\" nowrap>" + editlink + " " + deletelink + enclosurelink + "</td>")};
		add ("</tr>"); indentlevel--;
		return (ctitems < maxitems)};
	add ("<table width=\"650\" cellspacing=\"2\" cellpadding=\"5\" border=\"0\">"); indentlevel++;
	mainresponder.calendar.visitReverseChronologic (@adrfeed^.calendar, @visit);
	add ("</table>"); indentlevel--;
	return (historytext)};
bundle { //test code
	viewHistory (@config.radio2.users.dave, @config.radio2.users.dave.feeds.["linkblog.xml"])}



This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.