Show Changes Show Changes
Edit Edit
Print Print
Recent Changes Recent Changes
Subscriptions Subscriptions
Lost and Found Lost and Found
Find References Find References
Rename Rename
Administration Page Administration Page
Search

History

3/3/2008 5:13:51 PM
-66.78.122.16
10/20/2007 6:37:49 PM
JohnDavidson-66.78.127.70
List all versions List all versions

RSS feed for the FlexWiki namespace

File Locking Implementation
.
Summary
Requires
FlexWiki build 2.0.0.159

Individual File Locks now available

This build includes a new administration page, TopicLocks.aspx, that will show the status of all file locks in a Namespace. If the user has the permission HasManageNamespacePermission then the page will also display a button for each topic that will allow the topic to be locked or unlocked as appropriate. See the screenshot below for a sample

The implementation ensures, by additional software validations, that locks cannot be set unless the user has successfully authenticated as a user with the appropriate authorizations. this allows a regular user to view the TopicLocks.aspx without the ability to make any changes (but the user would have to manually enter the link in the browser address bar).

Right Border Links to Administrative Pages

The default _NormalBorders now includes links to the default administration page and to the new Topic Locks page. These links are only available if the user is authorized with HasManageNamespacePermission. The new default right border displays as shown below

The code for the new default right border is included below. This is so that users can upgrade their existing border definitions to take advantage of the new features. The new portion of code starts with namespace.HasManageNamespacePermission.IfTrueIfFalse and continues until ending with the line }, { "" }), just before the section for Recent Topics.

RightBorder:{
aTopic|
  [
  request.IsAuthenticated.IfTrue
  {[
    "||{C2+}",
    "Welcome '''", 
    request.AuthenticatedUserName,
    "'''",
    "||",
    Newline,
    request.CanLogInAndOut.IfTrue
    {[		
      "||",
      with (Presentations)
      {
        Link(federation.LinkMaker.LinkToLogoff(aTopic.Fullname), "Log off", "Log off.")
      },
      "||",
      Newline
    ]}
    IfFalse{""},
  ]}
  IfFalse
  {
    [
      "||{C2+}Not logged in.||", 
      Presentations.Link(federation.LinkMaker.LinkToLogin(aTopic.Fullname), "Log in", "Log in."),
      "||"
    ]
  },
  namespace.Description.IfNull
  { 
    ""
  } 
  Else
  {
    [ Newline, namespace.Description ]
  },
  Newline, "----", Newline, 
  federation.About,
  Newline, "----", Newline,
  federation.Application("AlternateStyles").IfNull
  {
    ""
  }
  Else
  {
    [ 
      "||{T-}'''Change Style'''||",
      Newline,
      "||",
      Presentations.FormStart("", "get","onsubmit='SetActiveStylesheet(this.styles.options[this.styles.selectedIndex].value);return false;'"),
      Presentations.ComboSelectField("styles", ["Choose here."].Append(federation.Application("AlternateStyles")),null,[""].Append(federation.Application("AlternateStyles"))),
      Presentations.ImageButton("goButton", federation.LinkMaker.LinkToImage("images/go-dark.gif"), "Select alternate stylesheet"), 
      Presentations.FormEnd(),
     "||"
    ]
  },
  Newline, "----", Newline,
  namespace.HasManageNamespacePermission.IfTrueIfFalse
  ({
     [
       "*\"\"FlexWiki\"\" Administration*", Newline,
       MenuItem("Show Main FlexWiki Administration Page", "Administration Page", federation.LinkMaker.SimpleLinkTo("admin/default.aspx")),
       MenuItem("Show Topic Lock Management Page", "Topic Locks", federation.LinkMaker.SimpleLinkTo("admin/TopicLocks.aspx")),
       Newline, "----", Newline,
     ]
  }, { "" }),
  "*Recent Topics*",
  Newline,
  request.UniqueVisitorEvents.Snip(15).Collect
  { each |
    [
    Tab, 
    "*",
    Presentations.Link(federation.LinkMaker.LinkToTopic(each.Fullname), each.Name),
    Newline
    ]
  }
  ]
}

Considerations for Use with Builtin Topics or SQL Server

Builtin topics such as NormalBorders or ContentBaseDefinition are lockable, if they have been modified from there default values and exist in the file system store.

Topics stored in Sql Server are not lockable at this time. The Sql Server store would require considerable to modification to allow locking, and will not be tackled at this time. Sql Server topic locks are functional as of build 2.0.0.200

Possibility for Additional Feature

It would be possible to add functionality to the topic locks page so that a Delete Topic button could be implemented as well as potentially a Delete Namespace button.

Permalink, Talkback
Not logged in. Log in

Welcome to the home of FlexWiki, an experimental collaboration tool, based on WikiWiki.

This is FlexWiki, an open source wiki engine.

This site supports the new NoFollow anti-spam initiative.
Change Style

Recent Topics