Browse the documentation

Standard Plugins

Plugin Settings

Plugins that come with Project Notes

Project Notes installs a small set of JavaScript plugins. They add menus to records and to the Plugins group of the app menu, and each one with options has its own tab under Settings.

Plugin What it does Platforms
Base Plugins Copy a contact's email or a file's path to the clipboard; open your script editor. See Editor. All
My Shortcuts Menus that open web pages filled in from the record you right-click. See My Shortcuts. All
Team Member Quick Add Add a new contact to a project's team in one step. See Team Member Quick Add. All
Archive Mail Archive project email into project folders. See Archive Mail. All (Outlook classic archiving on Windows)
MS Office Templates Documents and schedules from the Word, Excel, PowerPoint and MS Project templates you configure, filled in from the record you right-click; Open MS Project; close stranded Excel and Word processes. See Office Document Templates. Windows

The IFS Cloud plugin is installed separately. See IFS Cloud Integration.

Email, meeting invitations and the project reports are built into Project Notes, not plugins. See Email and Meeting Setup, Reports and Email and Scheduling Meetings. File Finder, Office 365 Integration and contact synchronization are application services with their own Settings pages too.

Managing plugins

Open Settings > Plugins to see every plugin, turn one on or off, install a .pnplugin package, or open your plugins folder. Plugins that come with Project Notes are on from the start. A plugin you install stays off until you review what it asks to do (read or change certain records, reach certain web sites, automate Office, and so on) and approve it. If a later version asks for more, you review it again.

Your own plugins live in the plugins folder in the application's data folder, never in the application's install folder, so upgrades leave them alone. Open Plugins Folder shows where it is. See JavaScript Plugins to write one.

Settings saved by the Python plugins of earlier releases carry over: each plugin copies its old settings the first time it starts. Python plugins themselves no longer run.

Backing up and moving plugin settings

Plugin settings belong to one computer. File > Export Settings… saves them together with the application settings (see Backing Up Settings). For plugins alone, scroll to the bottom of Settings > Plugins, below the plugin list, to the Back Up Plugin Settings section. It lists each installed plugin that has saved settings. Tick the ones you want and click Export Settings… to save them in a JSON file. On the other computer, or after a reinstall, click Import Settings… and pick the file. Imported values replace the same settings on that computer. Settings the file doesn't mention stay as they are.

Passwords are never written to the file. They stay in the operating system's credential store, so enter them again after an import.

Files saved by the Settings Migrator of the old Python plugins import the same way. Each old settings group goes to the plugin that replaced it, so a My Shortcuts or IFS Cloud backup from an earlier release still works. A group whose plugin isn't installed yet is kept, and the plugin picks it up when you install it.

Where settings are kept

Settings in Project Notes are stored in two places depending on what they control.

Settings stored in your operating system profile

Plugin settings, UI state, and connection details are stored in your operating system's user profile. They belong to this computer and user account and do not sync. Passwords and sign-in tokens go to the operating system's credential store instead.

Category Examples
Local application and plugin configuration MS Office Templates settings, My Shortcuts, Archive Mail options, IFS Cloud addresses, File Finder search locations and classifications, email templates
Cloud sync connection Sync enabled flag and Project Notes Pro account
Window position and size Restored on the next launch
UI zoom level Set with Ctrl +/-/0 or the zoom row of the Application Menu's View group. See UI Zoom.
Spell check dictionary Selected dictionary and personal word list
Platform Location
Windows Registry under HKEY_CURRENT_USER\Software\ProjectNotes
macOS ~/Library/Preferences/com.projectnotes.*.plist
Linux ~/.config/ProjectNotes/

When using the --developer-profile option, the profile name is appended to the organization key so each profile has its own isolated settings.

Settings stored in the database

Preferences and view state that should be the same for anyone using the same database are stored in the application_settings table inside ProjectNotes.db. They are included in cloud sync and move with the database when it is copied or shared.

Setting Key in database
Project Manager (Preferences) Preferences:ProjectManager
Managing Company (Preferences) Preferences:ManagingCompany
Show Resolved Tracker/Action Items (View menu) ViewFilter:ShowResolvedTrackerItems
Show Closed Projects (View menu) UserFilter:ShowClosedProjects
Show Internal Items (View menu) UserFilter:ShowInternalItems
Active project filter (Filter Tool) UserFilter:ProjectFilter
Meeting types (Settings > Meeting Templates) Meeting/v1/Templates

Saved report and meeting audiences also live in the database, in the project_email_audiences table, so they travel with the project.

Placeholders

Email templates, meeting templates, My Shortcuts and Office document templates all fill in values the same way. A placeholder is a dotted name between double braces, such as {{ project.name }}. Spaces inside the braces are optional. To write the braces themselves, put a backslash in front: \{{.

Email and meeting templates have a fixed list of names, shown in the template editor: project.number, project.name, company.name, preferences.managerName, preferences.managingCompanyName, current.date and a few more for each kind of email. Office templates read the record you right-click the same way My Shortcuts does, below, and add a few names of their own, such as input.name and repeating table rows. See Office Document Templates.

My Shortcuts also reads the record you right-click. A name there has the form entity.column:

  • entity is the kind of record, such as projects or contacts (see Data Types);
  • column is a field of that record.

To reach a row of a related list, put the row number between them: {{ project_team.2.role }} is the role of the second team member.

To get a column from every row, use * as the row: {{ project_team.*.email }} joins the email address of each team member with a comma and a space, skipping empty ones. Without a row number, a related list gives its first row.

Placeholder Becomes
{{ projects.project_number }} The project number
{{ projects.project_name }} The project name
{{ contacts.name }} The contact's name
{{ contacts.email }} The contact's email address
{{ project_notes.note_title }} A meeting's title

A shortcut such as

https://outlook.office365.com/mail/?folderid=Inbox&searchText={{ projects.project_number }} {{ projects.project_name }}

opens https://outlook.office365.com/mail/?folderid=Inbox&searchText=P-002 Website Redesign for project P-002. Export a record to XML to see every column you can use.

Older shortcuts and templates written as [$projects.project_number.1] or <PROJECTNAME> keep working. My Shortcuts rewrites its saved shortcuts to the new form the next time it starts.

Starting with 6.4.0, opening a database retires the old Widgets page-state and XML filter settings. Retired database settings are marked deleted so the cleanup syncs. Current QML filters, sort orders, project folders, templates, and shared preferences are preserved. The obsolete project_risks table, including any historical rows, is removed; current risks are stored in item_tracker. Desktop startup also removes the old Widgets window geometry, table layouts, and local XML filter settings while preserving current view options and plugin settings.

Suggest an edit on GitLab