Welcome, guest ( Login )

» Home (JDC Blog)
» Forums

Page Tags

blog posts

Search Tags:
WikiHome

WikiHome

Version 46, changed by ScottMcmullan. 09/01/2006.   Show version history

JotSpot Developer Connection
Welcome to the JotSpot development community's home on the web.



New JotSpot Help Group Available

By ScottMcmullan 04/09/2007 | 0 Comment(s)

The good news: there's a new JotSpot Help group set up for discussion and Q&A: http://groups.google.com/group/jotspot-help

The bad news: no, JotSpot has not re-launched yet. But as discussed in this thread, please know the Jotspot team is indeed hard at work migrating the product into Google's infrastructure.

Google has acquired JotSpot

By ScottMcmullan 10/31/2006 | 3 Comment(s)


I want to give a little shout out to a post we just made over on the JotSpot company blog: we've been acquired by Google. Yes, it's true, and we're excited as excited can be!

Check out the developer acquisition FAQ we've put together to supplement the general acquisition FAQ.

JotSpot + Google = Developers Win

There are a lot of reasons why JotSpot + Google is a particularly tasty combination. Here are three.

Platform Scale

Here at the JDC we're all about putting the platform side of JotSpot to work. And while I may think Jot is the world's best collaboration platform, deciding on a platform is hard. These decisions can be made even harder when the platform comes from a startup.

In fact my conversation with folks new to JotSpot almost always include some version of the "startup" discussion:

  1. Startups fail all the time -- will you be around next year?
  2. This will be mission critical for us -- do you have the manpower to support your service?
  3. We need fast, reliable, and scalable access -- are you up to snuff?

Needless to say that as part of Google, I don't expect to be having as many of these conversations. :)

Amazing Product Family

From Gmail and Google Calendar to Google Docs & Spreadsheets, Google is pushing the envelope of web apps big time. Joining this product family brings new and exciting opportunities to put JotSpot to work both as a wiki and as a collaboration platform. And if the web is the grandaddy of all platforms, then Google and its products and APIs are the number one son.

By joining Google, we become part of a much larger ecosystem and believe we can bring a lot to the party to boot. We look forward to helping fulfill Google's mission of organizing the world's information and making it universally accessible and useful, and invite you to join us!

technorati tags:

Six Cool and Useful Plugins

By ScottMcmullan 10/27/2006 | 0 Comment(s)

The JotSpot sidebar has evolved over time to include a handy set of navigational tools. As of 2.8 admin can turn these 6 sidebar features on/off using the Sidebar Configuration footer menu:

Six Really Useful Plugins

You can use JotSpot plugins to further customize your sidebar by inserting new content above or below the stock sidebar.

This post collects 6 popular plugins that you can use today to make your wiki more useful. Best of all, you can modify these or use them as templates to create your own plugins.

Here's the six:

  1. Navigation Plugin -- displays your content (text, links -- whever you want) in the sidebar. This is similar to the stock Global Links widget show above.
  2. Incoming Links Plugin -- lists pages that link to the current page (aka Back Links Plugin)
  3. Child Pages Plugin -- lists child pages of the current page
  4. Email Page Change Plugin -- allows users to subscribe to a page and receive email notifications when the page is updated.
  5. Two tagging-related plugins:
    1. Related Pages Plugin -- shows a tag cloud of tags on the current page that dynamically lists similarly tagged pages when clicked
    2. Related Tag Search Plugin -- creates a tag cloud of pages related to your search term

If you're not familiar with JotSpot plugins, they're simply a way to globally "plug" content -- text and/or code -- into a wiki page. You can read up on how they work here and take a quick tutorial here.

1. Navigation Plugin

The navigation plugin simply includes the contents of a page called SideBarContent at the top of your sidebar. It's useful for making global navigation links or other "permanent" content because it is not collapsible.

To create this plugin, follow these steps.

1) Create a new page called SideBarContent and enter your sidebar content.
2) Create a new plugin called Navigation Plugin (see: JotPluginQuickstart)
3) Check the Make this plugin active by default after installation check box at the very bottom of the new plugin page
4) Paste in the following plugin code into the Plugin Contents field

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:jot="http://www.foopee.com/ns/s3/srvtmpl/">
  <jot:extension target="sidebarTop">
    <div class="jot-miniWindow" id="navigation-plugin">
      <h3>Our Navigation</h3>
      <jot:include node="/WikiHome/SideBarContent" />
    </div>
  </jot:extension>
</html>

Note that the content of this plugin is designed to remain open and not collapse like other sidebar plugins. If you want to make it collapsible, modify it to follow the pattern used in this mini-window example.

2. Incoming Links Plugin

The back links plugin displays a list of pages that link to the current page. It's a great way to find related pages and display the emergent structure of a wiki.

You can find the plugin code, which can be copied and pasted into your wiki, on the backlinks plugin download page.

3. Child Pages Plugin

The child pages plugin displays a list of pages that immediate children of the current page. This is another great way to help you nagivate the emergent structure of your wiki as it grows.

To create this plugin, follow these steps.

1) Create a new plugin called ChildPagesPlugin (see: JotPluginQuickstart)
2) Check the Make this plugin active by default after installation check box at the very bottom of the new plugin page
3) Paste in the following plugin code into the Plugin Contents field

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:jot="http://www.foopee.com/ns/s3/srvtmpl/">
   <jot:extension target="sidebarBottom">
    <div class="jot-miniWindow" id="childpages-plugin">
      <h3 onclick="Expander.toggle('childpages-plugin')">Child Pages</h3>
      <div class="jot-content">
        <jot:search forChildren="${page/path}" set="kids" limit="25" />
        <jot:loop over="kids">
          <ul>
            <li><a href="${it/name}">${it/name}</a></li>
          </ul>
        </jot:loop>
      </div>
    </div>
   </jot:extension>
</html>

4. Email Page Change Plugin

The email page change plugin puts a Subscribe link on every page and sends page update notifications to all subscribers via email. Users can subscribe and unsubscribe to the page by clicking the link below each page's title.

You can find the package zip file on the email page change plugin's download page. Download the package's zip file and then install it from the Manage Packages footer menu.

5. Tagging Plugins

Tags are keywords that help identify and categorize pages. Tagging in JotSpot has been a community-driven project led by Phil Kast, and has been blogged about many times here on the JDC.

a) Related Pages Plugin

When you download and install the tagging package, you automatically install the Related Tags Plugin that has three features:

  1. allows you to add and edit tags on each page
  2. displays a clickable tag cloud on each page that let's you dynamically discover similarly tagged pages by clicking one or more tags in the cloud
  3. displays a list users who have tagged each page

b) Related Tag Search Plugin

There's another very useful tagging plugin that you don't get when you download and install the tagging package: Related Tag Search. The Related Tag Search Plugin has three features:

  1. allows you to add and edit tags on each page
  2. lists a page's tags as a set of links that can be clicked to display a tag cloud of related tags
  3. presents a search box to enter arbitrary tags and displays a tag cloud of related tags

Sidebar view:

Related tag cloud view:

To create this plugin, download and install the tagging package and then follow these additional steps.

1) Create a new plugin called RelatedTagSearchPlugin (see: JotPluginQuickstart)
2) Check the Make this plugin active by default after installation check box at the very bottom of the new plugin page
3) Paste in the following plugin code into the Plugin Contents field

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:jot="http://www.foopee.com/ns/s3/srvtmpl/">
   <jot:extension target="sidebarBottom">
      <style>
.sidebarBox {
  padding: 7px;
  border: 1px solid #8CACBB;
  background-color: #EEE;
}
</style>
      <!-- pull in tagging functions from the tag libraries -->
      <jot:include node="wiki:/TagLib" />
      <div class="jot-miniWindow" id="tagsearch-plugin">
         <h3 onclick="Expander.toggle('tagsearch-plugin')">Tag Search</h3>
         <div class="jot-content" style="padding: 7px">
            <jot:if test="${util:isDefined(page/main/tags)}">
               <jot:then>
                  <div style="margin-bottom: 7px;">
                     <a href="javascript:void()" onClick="swapState('relatedtags-editBox')"
                      style="font-size: smaller;">
                       Edit page's tags
                     </a>:<br />
                  </div>
                  <jot:loop over="${page/main/tags}">
                     <a href="wiki:/RelatedTagSearch?s=${it}">${it}</a>
                  </jot:loop>
               </jot:then>
               <jot:else>
                  None yet -- <a href="javascript:void()"
                               onClick="swapState('relatedtags-editBox')">
                              tag this page
                              </a>
               </jot:else>
            </jot:if>
            <div id="relatedtags-editBox" style="display:none">
               <br />
               <form action="javascript:void()" onSubmit="saveTags(pageTags.value)">
                  <input type="text" name="pageTags"
                   value="${translate(page/main/tags, '[]', '')}" size="30" />
                  <br />
                  <br />
                  <input type="submit" value="Update tags" />
                  <a href="javascript:void()"
                   onClick="swapState('relatedtags-editBox')" style="font-size: smaller">
                    Cancel
                  </a>
               </form>
            </div>
            <div id="related-tagPages" style="display:none; overflow:hidden">
               <!-- Should only appear if loading related pages fails -->
                Oops, something went wrong!
            </div>
            <br />
            <br />Search Tags:<br />
            <form name="tagSearch" method="get" action="wiki:/RelatedTagSearch">
               <input name="s" value="${req/args/tag}" size="12" />
               <input type="submit" value="Go" />
            </form>
         </div>
      </div>
   </jot:extension>
</html>

5) Create a new page called RelatedTagSearch. This will be the "search pivot" page.
6) Edit the new RelatedTagSearch page in XML mode and enter the following code:

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:jot="http://www.foopee.com/ns/s3/srvtmpl/">
<br />
<form name="tagSearch" method="get" action="wiki:/${page/name}">
   <input name="s" value="${req/args/s}" />
   <input type="submit" value="Go" />
</form>
Enter a SINGLE tag (e.g. <i>search</i>) to view a list of pages and cloud of related tags<br />
<jot:if test="${util:isDefined(req/args/s)}">
<jot:then>
   <jot:include node="/TagLib" />
   <jot:search forAll="1" filter="${util:listContains(it/main/tags, req/args/s)}"
    collect="it/main/tags" set="relatedTags" />
   <br />
   <jot:script>
   var relatedTagArray = relatedTags.getItems();
   var searchCloud = new Tag.Cloud(relatedTagArray);
   searchCloud.display({pivot: 'RelatedTagSearch', idPrefix: 'searchCloud',
                        dynamic: 'static', containerClass: 'tagCloud'});
   </jot:script>
   </jot:then>
</jot:if>
</html>
technorati tags:

Microsoft Releasing IE7 this Month -- is Your Custom Theme Ready?

By ScottMcmullan 10/18/2006 | 0 Comment(s)

Just a reminder that Microsoft will be releasing IE7 this month. They are pushing out this update automatically so there's a good chance that if you use IE, you will be running IE7 soon. (Hey wait! Most of us here at Jot use and recommend Firefox, so now's a great time to switch to a better browser if you're not wedded to IE for some reason.)

The good news is we've been testing IE7 on our 2.8 release and have found a few minor cosmetic issues, but nothing is badly broken. Our 2.9 release, due to be completely rolled out by end of Novemeber, will be fully tested against IE7. (Custom themers please note: the next release a our custom theme package won't be released until the 2.9 time frame for this reason.)

What does this mean to you?

While we've been testing IE7 on 2.8, we haven't yet done regression testing on 2.7 or earlier wikis. So:

  1. If you're not running a custom theme, there's nothing for you to think about or do
  2. If you do have a custom theme, please consider regression testing it to be sure IE7 works for you
technorati tags:

2.8 Upgrades Coming This Week and Next

By ScottMcmullan 10/16/2006 | 7 Comment(s)

All wikis will be upgraded to JotSpot service release 2.8 over the next week or so. This upgrade brings new wiki features, some new and updated apps, and two security-related changes that you need to understand if you do any serious JotSpot coding.

What's New?

In the new and improved department we have a bunch of features and fixes (see release notes), including:

  1. the return of WYSIWYG table editing!
  2. search and index pages that support filtering by user, recently changed, and page types
  3. a new slick-as-can-be todo list application
  4. a new email list app so you can centralize email threads in the wiki too

Security Changes You Need To Be Aware Of

The new release has two security-related changes:

  1. changes to prevent cross-site request forgery (XSF) attacks
  2. A new restriction that prevents non-admin users from editing and saving code (e.g. <jot:foo> tags) on a page

The XSF-checking changes might prevent code that used to work from working in 2.8, particularly code that uses HTTP GET to modify pages.

If something stops working post-2.8 upgrade, you may need to update your code. We have a posted a general 2.8 security FAQ as well as a detailed description of XSF-related changes to help you understand how you might be affected and how to modify your code if needed.

If you have any questions or issues about these security changes, please email support@jot.com for assistance.

Upgrade Update: Friday 10/27

Custom Theme Issues:

We've identified a fix to the permissions issue for CustomTheme27 users running on 2.8. (See the 10/23 update below for a description of the problem.)

In the theme's edit.xml there's a <form> tag under <body> that needs the following id added: id="jot-mainForm". (Edit using: /System/Themes/CustomTheme27/edit?edit=1&editStyle=xml, and ignore the fact that you'll see errors when you view the page.)

So the <form> tag should look like:

...
<body class="jot-edit">
  <jot:extension declare="bodyStart" />
  <div id="jot-canvas">
    <jot:include href="top" />
    <form method="post" action="wiki:\\${page/path}" class="editMode" id="jot-mainForm">
...

Upgrade Update: Wednesday 10/25

Custom Theme Issues:

We've identified a couple of fixes for CustomTheme27 users now running on 2.8. These fix the 1. Clicking "Install Package"... and 3. _Admin, AboutJotSpot,... issues identified in my 10/23 update below.

In vars.xml, change the getPageTitle() function to the following. (Edit using: /System/Themes/CustomTheme27/vars?edit=1&editStyle=xml)

 function getPageTitle(page) {
   if (typeof page == "string") {
     page = jot.pages[page];
     if (typeof page == "undefined") {
       return;
     }
   }
   var title = page["blogpost/title"] || page["project/name"] ||
               page["main/title"] || page["title"] || page["name"];
   if (title.indexOf("\\\\${L/") != -1) {
       //strip the xpath stuff to get the translation key, then trim
       var key = title.replace(/\$|{L\/|}/g,"").replace(/^\s+|\s+$/g,"");
       title = jot.lib.locale.getString(key);
   }
   return title;
 }

In header.xml, add this reference at the top (underneath the reference to header-minimal). (Edit using: /System/Themes/CustomTheme27/header?edit=1&editStyle=xml)

<jot:include href="wiki:/Lib/Security" />

Upgrade Update: Monday 10/23

Almost all hosted wikis have been updated to 2.8. Here are the issues we've seen thus far. (To check your wiki's version, see "About this Wiki" in the footer menu, or go to /System/Pages/AboutJotSpot.)

Custom Theme Issues:

Issues seen in 2.8 wikis running 2.7 custom themes. We don't have fixes for these right now, other than 1) reverting to the standard theme (as admin, click "Other Settings" -> "Switch Themes") or 2) working around these issues by overriding a page's theme with the &theme=/System/Themes/Jot/ query string parameter.

1. Clicking "Install Package" from the "Manage Packages" page gives "addXTokenToForm" error (see workaround above)
2. UI to set page permissions doesn't work (see workaround above)
3. _Admin, AboutJotSpot, Index, Recent Changes pages display a line of information used in i18n implementation
4. Index and Recent Changes pages do not contain same user interface as version 2.8. (Some wikis seeing Index pages with "'SharedRoot' is not defined" errors.)
5. Calendar application: month view and upcoming tabs overlap

General Issues:

1. Client-side Javascript code no longer requires two backslashes -- must use one.

Before:

var startCopy = xml.indexOf("id=\\"jot-page\\">") ;

With 2.8:

var startCopy = xml.indexOf("id=\"jot-page\">") ;

2. Installing 2.8 blog app from the gallery into a 2.7 wiki hides posts for blogs that were not under /Blog page. (I.e. all blogs that were created by applying the blog form directly to a page in the wiki.) Please contact support@jot.com for a script to fix this.

technorati tags:

New Jot Developer Video: Introducing the JotSpot Storage Model and API

By ScottMcmullan 10/04/2006 | 6 Comment(s)

I just posted the latest installment in a series of e-Learning tutorials: JotDataModelApiVideoTutorial.

This tutorial is intended for folks with existing development skills who are new to JotSpot, and covers much of the material I typically feature in my Jot Dev 101 webinar.

I think I've improved the format and overall quality from my intial JotSpot Ant Tools tutorial. As always, I welcome (no, need) feedback, either as a comment here, on the video tutorial page, or via email: scott at jot.com.

New Pivot and Filtered Search Tutorial

By ScottMcmullan 09/27/2006 | 0 Comment(s)

It's been a while since I last blogged about creating pivot pages. As a reminder, by pivot I mean an easy way to search for pages by specifying a value for a particular page property. One example is showing all pages that have a particular tag:

Filtered Search (aka multi-property search)

Related to this is filtered or faceted searching, where you pivot on multiple properties. Here's an example where users can search for pages that include specific text and have a specific tag:

There's a new tutorial that covers both pivot and filtered searching: FilteredSearchTutorial. Check it out if you're interested in creating custom search and navigation user interfaces that leverage the structure features in JotSpot.

technorati tags:

Welcome Digital Ignite, Our Newest Partner Program Associate

By ScottMcmullan 09/25/2006 | 0 Comment(s)

I want to give a shout out to Digital Ignite, the newest Associate in JotSpot's Solution Partner team. They're headquarterd in Reston, Virginia and have both Washington DC area and remote teams.

Digital Ignite joins a growing list of JotSpot Solution Partners providing professional services for Jot customers. Drop a line at partners@jot.com if you're interested in learning more.

p.s. Thanks again to John Sun, one of Digital Ignite's developers, for sharing the login statistics code that I blogged about last week.

technorati tags:

John Sun's Solution to Tracking Login Statistics

By ScottMcmullan 09/22/2006 | 0 Comment(s)

Here's a common refrain we hear from wiki gardeners and community managers using JotSpot:

Great stuff is happening in our wiki, but we would like to know who is logging in and how often. Can we view login stats?

Great question. Jot doesn't currently keep login activity statistics, so the answer up to this point has been to point folks in the direction of setting up a web stats plugin using a service like Statcounter.com. But as far as tracking individual logins, they would have to roll their own for now.

Fortunately for us, John Sun of Digital Ignite has put Jot's API to work and whipped up a nice solution, which he has graciously shared here on the JDC. His solution consists of three new wiki pages:

  1. A Logins plugin with some code that tracks new user logins. It does this by checking the session and creating a new "login timestamp" page each time a new login is detected
  2. A LoginStatsDashboard page that searches for these login timestamp pages, does some counting and sorting, and then displays a sorted summary of login stats
  3. A LoginReport page that allows you to drill down to a specific user's day/week/month/lifetome login stats

The complete code for each of these 3 pages is listed here, but here are a couple screenshots to give you a sense of what this looks like. The presentation is simple and functional.

The LoginStatsDashboard page displays a simple sorted table of login activity:

Clicking history next to a user displays a bit more information for that user:

Thanks for sharing John! If folks make improvements to this, please share them back and link them off the TrackLoginStats page.

JotSpot Swag on Zazzle

By ScottMcmullan 09/22/2006 | 0 Comment(s)

Thanks to the good folks at Zazzle, we're finally getting our Swag on. Pop on over if you want to pick up a sweet JotSpot Tee or mug.

technorati tags:
Older | Newer

Recent Comments
(More comments...)

Tags used in this blog

» 2.8
» CSS
» REST
» XML_mode
» about
» affiliate
» agileplanner
» ajax
» alphas
» ant
» appearance
» appexchange
» apprequest
» apps
» backlinks
» blog
» branding
» browser
» bug
» bulk
» charts
» chat
» chrome
» cloud
» collect
» column
» community
» concepts
» configurator
» console
» consulting
» css
» csv
» customization
» customize
» data
» database
» db
» debug
» debugging
» describe
» design
» dhtml
» diy
» doc
» docs
» documentation
» dojo
» ebay
» eclipse
» editStyle
» editing
» elearning
» email
» error
» eval
» events
» example-jots
» examples
» excel
» experiment
» extension
» faq
» feed
» feedback
» filter
» forDescendants
» forlink
» form
» forms
» forum
» forum-posts
» fyi
» google
» group
» guest-author
» hackathon
» hide
» hook
» how-do-I
» how-do-i
» ide
» ie
» include
» incoming-links
» interview
» intro
» irc
» ja_shared
» javascript
» join
» jot-jobs
» jotspot
» lastmile
» list
» live
» login
» logins
» lookandfeel
» mail
» mailHandler
» make-money
» mashupcamp
» mashups
» meetup
» memberblog
» metrics
» navigation
» notifications
» onsave
» opendata
» package
» page
» pageType
» pageflow
» pagetype
» pagetypes
» partners
» pattern
» permission
» permissions
» pivot
» plugin
» plugin_code
» poll
» postSave
» preSave
» properties
» property
» proserv
» rdbms
» realtime
» redirect
» registration
» relational
» releasenotes
» report
» row
» rss
» screencast
» search
» security
» select
» services
» sharedev
» sheet
» showAttachments
» sidebar
» signup
» skin
» solutionpartner
» spreadsheet
» sql
» ssjs
» statistics
» stats
» style
» sub-pages
» svg
» swag
» tag
» taglib
» tags
» tee
» template
» theme
» toolbar
» tools
» tracker
» tree
» tshirt
» tutorial
» tutorials
» ui
» upgrade
» upgradesafe
» upload
» users
» version
» video
» webinar
» webservices
» whats-going-on-here
» where
» whuffie
» wiki
» workflow
» wuffie
» xls
» xml
» zazzle
» zip


Authors

» ScottMcmullan


Search "JotSpot Developer Connection"


Archives

» December 2005 (26)
» July 2005 (2)
» June 2005 (7)
» May 2005 (2)
» November 2005 (152)
» October 2005 (20)
» September 2005 (4)
» April 2006 (16)
» August 2006 (6)
» February 2006 (25)
» January 2006 (33)
» July 2006 (6)
» June 2006 (12)
» March 2006 (16)
» May 2006 (15)
» October 2006 (10)
» September 2006 (14)
» April 2007 (1)
» December 2007 (1)
» January 2008 (1)
» July 2008 (2)


Links
No links created.


Feeds

Posts
Comments