Wiki

Case Status Kiln
Register Log In

Wiki

 
FogBugz Plugin Interfaces (All…
  • RSS Feed

Last modified on 12/15/2014 3:43 PM by User.

Tags:

FogBugz Plugin Interfaces (All)

Plugin Interfaces > All Interfaces

Adding Pages to FogBugz

IPluginConfigPageDisplay: Add a custom configuration page for your plugin, specified as an HTML string. (Example)

IPluginPageDisplay: Add a custom page to your FogBugz site (specified as a string evaluating to HTML) to be displayed underneath the standard header/main menu, and control which FogBugz users may view it. (Example)

IPluginRawPageDisplay: Add a custom page to your FogBugz site to be displayed in "raw" format (ie, without the standard header/main menu). This functionality can be used to handle incoming AJAX requests. (AJAX Example, "Raw Page" Example)

IPluginBinaryPageDisplay: Add a custom page to your FogBugz site (specified as an array of bytes) that can be used to handle requests for raw bytes of data. (Example)

 

Adding Custom Tables to FogBugz

IPluginDatabase: Add custom tables to the FogBugz database, manage schema versioning, and perform custom actions when any update to the FogBugz database is performed. (Example)

 

Inlcuding Static Files

IPluginJS: Specify Javascript files contained in the plugin's "static" directory, and allow the contained functions and variables to be used in plugin-generated dynamic HTML and Javascript. Also, specify dynamic Javascript to include. (Example)

IPluginStaticCSS: Specify a CSS file contained the plugin's "static" directory, and apply the contained styles to the FogBugz interface. (Example 1 , Example 2)

IPluginStaticFile: Specify a file of any type contained the plugin's "static" directory, and access the file from server-side plugin code. (Example)

 

Enhancing FogBugz Cases

BugField Library: Add custom fields complete with filter option, grid column and search axis. (Article with Example)
 

IPluginBugJoin: Customize the data fields available in an instance of FogCreek.FogBugz.CBug, the class representing a FogBugz case. (Example)

IPluginBugDisplay: Add interactive HTML controls (including custom data fields) to the case view. (Example)

IPluginBugCommit: Perform custom operations when a case is committed to the FogBugz database. (Example)

IPluginGridColumn: Add custom columns to the "grid view" case list by specifying how column data is queried, sorted, and displayed. (Example)

IPluginBugEventDisplay: Add HTML to each BugEvent. 

IPluginBugEventDisplayHeader: Modify the BugEvent header area HTML.

IPluginBugEventDisplayChanges: Modify the BugEvent "changes" field. 

IPluginPseudoBugEvent: Add blocks of HTML with a time-stamp to the case view without creating an actual edit. 

 

 

Projects / Areas

IPluginProjectJoin:  Customize the data fields available in an instance of FogCreek.FogBugz.CProject, the class representing a FogBugz project. (Example)

IPluginProjectDisplay: Add interactive HTML controls to the "Edit Project" page. (Simple Example, Advanced Example)

IPluginProjectCommit: Perform custom operations when a project is committed to the FogBugz database. (Example)

IPluginAreaJoin: Customize the data fields available in an instance of FogCreek.FogBugz.CArea, the class representing a project area. (Example)

IPluginAreaCommit: Perform custom operations when a project area is committed to the FogBugz database. (Example)

 

Customizing FogBugz Search

IPluginSearchAxis: Create a custom search axis by specifying a SELECT query and configuring full-text indexing on the specified axis. (Example)

IPluginSearchToolbar: Add a control to the "Search Tools" menu that appears on the upper right of search results. (Example)

IPluginFullTextIndexBug: Tightly integrate your plugin with FogBugz search by adding custom data (optionally assigned to specific search axes) to a case's full text index. (Example)

IPluginFullTextIndexWikiPage: Tightly integrate your plugin with FogBugz search by adding custom data (optionally assigned to specific search axes) to a wiki page's full text index. (Example)

 

Source Code Integration

IPluginCVSJoin: Customize the data fields available in an instance of FogCreek.FogBugz.CCVS, the class representing a version of a file contained in a source control repository. (Example)

PluginCVSCommit: Perform custom operations when a source-controlled file version is committed to the FogBugz database. (Example)

 

Discussion Groups

IPluginDiscussTopicJoin: Customize the data fields available in an instance of FogCreek.FogBugz.CDiscussTopic, the class representing a discussion groups topic. (Example)

IPluginDiscussTopicDisplay:  Add interactive HTML controls (including custom data fields) to a discussion groups topic. (Example)

IPluginDiscussTopicCommit: Perform custom operations when a discussion groups topic is committed to the FogBugz database. (Example)

 

Customizing Filters

IPluginGridColumn: Add custom columns to the "grid view" case list by specifying how column data is queried, sorted, and displayed. (Example, see also Integrated Example below)

IPluginFilterJoin: Customize the data fields available in an instance of FogCreek.FogBugz.CFilter, the class representing a user's filter configuration. (Integrated Example)

IPluginFilterDisplay: Add interactive HTML controls to the "Current Filter" page (accessible from the "Customize..." option of the "Filters" drop-down menu). (Example, see also Integrated Example below)

IPluginFilterCommit: Perform custom operations when a user's case filter configuration is committed to the FogBugz database. (Integrated Example)

IPluginFilterOptions: Add custom filter criteria the filter configuration menus by specifying a set of headers and interactive HTML controls. (Integrated Example)

IPluginFilterBugEntry: Specify a specific set of case filter parameters in which the "Add Case" control appears (or does not appear) in the "grid view" case list. (Integrated Example)

Integrated example of the above six interfaces: Join a custom table to the Bug table, show grid columns for the new fields, allow filtering on said fields and specify options. (Integrated Example)

IPluginFilterToolbarDeprecated, use IPluginFilterToolbarMenu.

IPluginFilterToolbarMenu: Add a control to the "More" menu on the upper right of the "grid view" case list. (Example)

IPluginFilterView: Add custom presentations of case filters. Add aggregate reports, new kinds of list views, any view you'd like to see based on a FogBugz case filter. (Example)
 
IPluginFilterHtmlOptions: This interface works exactly like IPluginFilterOptions, but takes an additional parameter that tells the plugin whether it is acceptable to return HTML; this allows more flexibility in filter option interaction. (See IPluginFilterOptions in Integrated Example)
 
IPluginFilterViewOptions: Add items to the english-language filter view options and to the far right of the filter toolbar menu. (Example)
 

BugField Library: Add custom fields complete with filter option, grid column and search axis. (Article with Example)

 

Handling Requests

IPluginRequestCleanup: Perform cleanup tasks at the end of every FogBugz request. (Example)

 

Periodic Site Maintenance

IPluginDailyTask: Specify a set of actions to be performed once daily. (Example)

IPluginHeartbeatTask: Specify a set of actions to be performed during asynchronous heartbeat requests. (Example)

 

EBS / Work Tracking

IPluginFixForJoin: Customize the data fields available in an instance of FogCreek.FogBugz.CFixFor, the class representing a project milestone. (Example)

IPluginFixForCommit: Perform custom operations when a project milestone is committed to the FogBugz database. (Example)

IPluginTimeIntervalJoin: Customize the data fields available in an instance of FogCreek.FogBugz.CTimeInterval, the class representing a time interval. (Example)

IPluginTimeIntervalCommit: Perform custom operations when a time interval (the duration that a single developer has worked on a case) is committed to the FogBugz database. (Example)

 

FogBugz Users

IPluginPersonJoin: Customize the data fields available in an instance of FogCreek.FogBugz.CPerson, the class representing user data. (Example)

IPluginPersonDisplay: Add interactive HTML controls to the "User Options" page. (Simple Example Advanced Example)

IPluginPersonCommit: Perform custom operations when user data is committed to the FogBugz database. (Example)

IPluginPersonClone: Make a new person record as a copy of an existing person. (Example)

 

FogBugz Wiki

IPluginWikiJoin: Customize the data fields available in an instance of FogCreek.FogBugz.CWiki, the class representing a wiki. (Example)

IPluginWikiDisplay: Add interactive HTML controls to the "Edit/New Wiki" pages. (Simple Example, Advanced Example)

IPluginWikiCommit: Perform custom operations when a wiki is committed to the FogBugz database. (Example)

IPluginWikiPageJoin: Customize the data fields available in an instance of FogCreek.FogBugz.CWikiPage, the class representing a wiki page. (Example)

IPluginWikiPageDisplay: Modify the display of a wiki page in edit, view, and diff modes. (Simple Example)

IPluginWikiPageCommit: Perform custom operations when a wiki page is committed to the FogBugz database. (Example)

IPluginWikiPageInfoDisplay: Add interactive HTML controls to the "Info" page of a given wiki page. (Simple Example, Advanced Example)

IPluginWysiwygContextMenu: Add a custom option to the wiki editor's context menu. (Example)

IPluginWysiwygInsertMenu: Add a custom option to the wiki editor's "Insert" menu. (Example)

The WikiBlock classes wrap a number of the above interfaces to make it simple to define configurable widgets to be placed in wiki pages. Learn how in How to embed a widget in a wiki page.

 

Site-Wide Menus 

IPluginAdminMenu: Add a custom link to the bottom half of the "Settings" menu (containing administrative options) on the upper right of the FogBugz interface. (Example)

IPluginSettingsMenu: Add a custom link to the bottom half of the "Settings" Menu (containing per-user settings) on the upper right of the FogBugz interface. (Example)

IPluginExtrasMenu: Add a custom link to the "Extras" menu at the top of the FogBugz interface. (Example)