The Ur/Web People Organizer
UrWeb Other
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
cached Upgrade external CSS and JS versions and fix a bug in their caching Nov 25, 2015
examples Switch to Bootstrap 4 Jun 11, 2018
.gitignore Displaying header row of a simple MeetingGrid Dec 23, 2014
LICENSE
README.md Library links on GitHub; new option in Explorer.custom Feb 1, 2017
assignTasks.ur
assignTasks.urs AssignTasks: categories of users to assign to Aug 17, 2015
auth.ur Switch to Bootstrap 4 Jun 11, 2018
auth.urs
cache.sh Upgrade external CSS and JS versions and fix a bug in their caching Nov 25, 2015
cached.ur Switch to Bootstrap 4 Jun 11, 2018
cached.urp
cached.urs
calendar.ur Fix Bootstrap classes for navigation tabs in modal Jun 11, 2018
calendar.urs
chooseForeign.ur
chooseForeign.urs
ckeditor.ur Discussion: gray out 'post' button when message is empty Nov 1, 2015
ckeditor.urp Use new jsFile directive Dec 5, 2015
ckeditor.urs Ckeditor working again in both Firefox and Chrome Nov 1, 2015
ckeditorFfi.urs Ckeditor working again in both Firefox and Chrome Nov 1, 2015
ckeditorUrweb.js
clientCert.ur
clientCert.urs ClientCert: allow absence of certificate Dec 27, 2015
closedBallot.ur
closedBallot.urs ClosedBallot Dec 22, 2015
csv.ur Switch to Bootstrap 4 Jun 11, 2018
csv.urs commented header parameter Mar 20, 2017
default.ur Switch to Bootstrap 4 Jun 11, 2018
default.urp
default.urs
discussion.ur
discussion.urs Pass more information to new-message handlers for forums Apr 15, 2018
editGrid.ur
editGrid.urs Adapt EditGrid to Ui Dec 30, 2014
editableTable.ur More Bootstrap 4 fixes Jun 11, 2018
editableTable.urs Allow widgets to compute some configuration on the server Oct 31, 2015
explorer.ur Switch to Bootstrap 4 Jun 11, 2018
explorer.urs Explorer: CSS for images Feb 19, 2017
finalGrades.ur More Bootstrap 4 fixes Jun 11, 2018
finalGrades.urs FinalGrades exports to a list Oct 24, 2015
globalDiscussion.ur More information in discussion callbacks Dec 26, 2015
globalDiscussion.urs
grades.ur
grades.urs
html.ur
html.urs
input.ur
input.urs
inputStrings.ur
inputStrings.urs Change functor 'eq' inputs to be records; port examples Dec 30, 2014
lib.urp Add <meta> viewport tags, following Bootstrap best practices Jul 26, 2018
linearStateMachine.ur Switch to Bootstrap 4 Jun 11, 2018
linearStateMachine.urs Break LinearStateMachine into nested functors, to avoid twisty link c… Nov 28, 2015
meetingGrid.ur Switch to Bootstrap 4 Jun 11, 2018
meetingGrid.urs Who asked to meet with you? Feb 18, 2018
navbar.js Switch to Bootstrap 4 Jun 11, 2018
navbar.urp
news.ur
news.urs
openBallot.ur More Bootstrap 4 fixes Jun 11, 2018
openBallot.urs
paramQuery.ur
paramQuery.urs
paramQuery1.ur Switch to Bootstrap 4 Jun 11, 2018
paramQuery1.urs
pickerGrid.ur Switch to Bootstrap 4 Jun 11, 2018
pickerGrid.urs
record.ur Record.project, Sql.easy_eq, Sql.easy_select, Sql.easy_update''', Sql… Jan 26, 2017
record.urs Record.project, Sql.easy_eq, Sql.easy_select, Sql.easy_update''', Sql… Jan 26, 2017
review.ur Switch to Bootstrap 4 Jun 11, 2018
review.urs Code formatting in htmlboxes; supporting late penalties for grading Feb 4, 2017
rsvp2.ur More Bootstrap 4 fixes Jun 11, 2018
rsvp2.urs Rsvp2: away summaries Jan 29, 2017
simpleQuery.ur Switch to Bootstrap 4 Jun 11, 2018
simpleQuery.urs Use JavaScript to accommodate variable-height navbars; optimize Ui ta… Feb 10, 2015
simpleQuery1.ur
simpleQuery1.urs
sql.ur Sql.viewOf; exposing a MeetingGrid view; changing list-item markdown … Jan 18, 2018
sql.urs Sql.viewOf; exposing a MeetingGrid view; changing list-item markdown … Jan 18, 2018
style.css Auth.inGroupWithMasquerade; MeetinGrid read-only times Jan 18, 2018
submission.ur
submission.urs
tableDiscussion.ur
tableDiscussion.urs
todo.ur More Bootstrap 4 fixes Jun 11, 2018
todo.urs Todo: WithCompletionFlagAndDueDate Mar 16, 2018
toggle.ur Switch to Bootstrap 4 Jun 11, 2018
toggle.urs Toggle Dec 14, 2015
ui.ur
ui.urs
variant.ur Explorer: static tabs before and after the ones we control Jan 28, 2017
variant.urs Explorer: static tabs before and after the ones we control Jan 28, 2017
widget.ur
widget.urs Converting HTML to plain text Jan 8, 2018
withComments.ur Switch to Bootstrap 4 Jun 11, 2018
withComments.urs Callbacks to connect EditableTable and WithComments Feb 9, 2015

README.md

The Ur/Web People Organizer

Here lies a library of Ur/Web code for rapid construction of web applications for organizing people and events in different ways. For a quick sense of what's going on here, see the app showcase site.

No doubt more documentation will materialize here soon. For now, see the Ui module (e.g., in file ui.urs) for definitions of the basic concepts underlying UPO. A quick tour of the big ideas:

  • A value of type Ui.t a is a first-class UI element, ready to drop onto a page without any further fuss. The type parameter a stands for the private state of such a component.
  • A module of type Ui.S or Ui.S0 packages a UI element as a module rather than a value, for cases where that's a more convenient interface.
  • A number of basic combinators are available to compose UI elements. For instance, Ui.seq lays out a number of elements in sequence, and Ui.const produces a (boring) UI element that just displays some fixed HTML.
  • The easiest way to bring a (usually composite) UI element to life is to convert it into a page with Ui.simple, which just takes one UI element as a parameter.
  • Fancier pages include several tabs for selecting different full-page UI elements. The function Ui.tabbed creates such a page out of a tuple of elements, each with an optional title. (Tabs lacking titles are hidden.)
  • Finally, pretty Bootstrap modal dialogs are supported via function Ui.modalButton that creates HTML for the button, given a computation that decides which HTML to display in the dialog when the button is clicked. Function Ui.modal is useful for creating that content.

Those are the basics! The other modules of the library define more complex UI elements, usually parameterized in a variety of ways. See the examples directory, which includes the showcase apps and some simpler demos.

Installation

Two other Ur/Web libraries are required: Bootstrap and AjaxUpload.