Skip to content

cyco77/pptb-user-settings-utility

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

15 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

User Settings Utility

User Settings Utility Logo

A Power Platform Toolbox (PPTB) plugin for viewing and updating Dynamics 365 / Dataverse user settings. This tool provides an intuitive interface to manage user settings across multiple users simultaneously.

Screenshots

Dark Theme

User Settings Utility - Dark Theme

Features

Core Capabilities

  • πŸ‘₯ User Browser - View all active system users in your Dataverse environment
  • βš™οΈ User Settings Management - View and edit detailed user settings
  • πŸ”„ Bulk Updates - Update settings for multiple users at once
  • πŸ” Advanced Filtering - Filter users by name, email, or business unit
  • πŸ“Š Sortable Data Grid - Sort users by any column with multi-select support
  • πŸ’Ύ Save Changes - Track and save pending changes with visual feedback
  • 🎨 Theme Support - Automatic light/dark theme switching based on PPTB settings

Editable User Settings

The tool supports viewing and editing various user settings including:

  • Localization: UI Language, Help Language, Currency, Timezone, Format (locale)
  • Navigation: Default Homepage Area, Subarea, and Dashboard
  • Display: Paging Limit, Calendar Type, Default Calendar View, Week Numbers
  • Regional Settings: Date/Time formats, Number formats, Currency formats
  • Email & Sync: Email filtering, Sync intervals, Contact sync settings
  • Advanced: Various personalization and feature toggles

Technical Stack

  • βœ… React 18 with TypeScript
  • βœ… Fluent UI React Components for consistent Microsoft design
  • βœ… Vite for fast development and optimized builds
  • βœ… Power Platform Toolbox API integration
  • βœ… Dataverse API for querying and updating user settings

Structure

pptb-user-settings-utility/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ Filter.tsx                 # Business unit and text filtering
β”‚   β”‚   β”œβ”€β”€ Overview.tsx               # Main container component
β”‚   β”‚   β”œβ”€β”€ SystemuserDetails.tsx      # User details and settings editor
β”‚   β”‚   β”œβ”€β”€ SystemuserGrid.tsx         # Data grid for system users
β”‚   β”‚   └── usersettings/              # User settings components
β”‚   β”‚       β”œβ”€β”€ FieldInfoTooltip.tsx   # Tooltip for field info
β”‚   β”‚       β”œβ”€β”€ FieldRenderers.tsx     # Field rendering utilities
β”‚   β”‚       β”œβ”€β”€ SettingsSection.tsx    # Settings section component
β”‚   β”‚       β”œβ”€β”€ UsersettingsTab.tsx    # Main settings tab
β”‚   β”‚       └── ...                    # Additional utilities
β”‚   β”œβ”€β”€ hooks/
β”‚   β”‚   └── useToolboxAPI.ts           # PPTB API hooks
β”‚   β”œβ”€β”€ mappers/
β”‚   β”‚   β”œβ”€β”€ businessunitMapper.ts      # Business unit data mapping
β”‚   β”‚   β”œβ”€β”€ formatMapper.ts            # Format/locale data mapping
β”‚   β”‚   β”œβ”€β”€ languageMapper.ts          # Language data mapping
β”‚   β”‚   β”œβ”€β”€ sitemapMapper.ts           # Sitemap data mapping
β”‚   β”‚   β”œβ”€β”€ systemuserMapper.ts        # System user data mapping
β”‚   β”‚   β”œβ”€β”€ timezoneMapper.ts          # Timezone data mapping
β”‚   β”‚   └── usersettingsMapper.ts      # User settings data mapping
β”‚   β”œβ”€β”€ services/
β”‚   β”‚   └── dataverseService.ts        # Dataverse API queries
β”‚   β”œβ”€β”€ types/
β”‚   β”‚   β”œβ”€β”€ businessunit.ts            # Business unit type definitions
β”‚   β”‚   β”œβ”€β”€ currency.ts                # Currency type definitions
β”‚   β”‚   β”œβ”€β”€ dashboard.ts               # Dashboard type definitions
β”‚   β”‚   β”œβ”€β”€ format.ts                  # Format type definitions
β”‚   β”‚   β”œβ”€β”€ language.ts                # Language type definitions
β”‚   β”‚   β”œβ”€β”€ pendingChanges.ts          # Pending changes type definitions
β”‚   β”‚   β”œβ”€β”€ sitemap.ts                 # Sitemap type definitions
β”‚   β”‚   β”œβ”€β”€ systemuser.ts              # System user type definitions
β”‚   β”‚   β”œβ”€β”€ timezone.ts                # Timezone type definitions
β”‚   β”‚   └── usersettings.ts            # User settings type definitions
β”‚   β”œβ”€β”€ App.tsx                        # Main application component
β”‚   β”œβ”€β”€ main.tsx                       # Entry point
β”‚   └── index.css                      # Global styling
β”œβ”€β”€ dist/                              # Build output
β”œβ”€β”€ icon/                              # Tool icons
β”œβ”€β”€ index.html
β”œβ”€β”€ package.json
β”œβ”€β”€ tsconfig.json
└── vite.config.ts

Installation

Prerequisites

  • Node.js >= 18.0.0
  • npm or yarn
  • Power Platform Toolbox installed

Setup

  1. Clone the repository:
git clone <repository-url>
cd pptb-user-settings-utility
  1. Install dependencies:
npm install

Development

Development Server

Start development server with HMR:

npm run dev

The tool will be available at `http://localhost:5173\`

Watch Mode

Build the tool in watch mode for continuous updates:

npm run watch

Production Build

Build the optimized production version:

npm run build

The output will be in the `dist/` directory.

Preview Build

Preview the production build locally:

npm run preview

Usage

In Power Platform Toolbox

  1. Build the tool:
   npm run build
  1. Package the tool (creates npm-shrinkwrap.json):
   npm run finalize-package
  1. Install in Power Platform Toolbox using the PPTB interface

  2. Connect to a Dataverse environment

  3. Launch the tool to view and manage user settings

User Interface

Filter Section

  • Business Unit Dropdown: Filter users by their business unit
  • Search Box: Real-time search across user name, email, and business unit

User Grid

  • Click column headers to sort
  • Use checkboxes to select one or multiple users
  • Columns: Full Name, Email, Business Unit, System User ID

Settings Panel

  • View and edit settings for selected user(s)
  • When multiple users are selected:
    • Fields with matching values show the common value
    • Fields with different values show "No change" placeholder
  • Pending changes are tracked and displayed
  • Click "Save" to apply changes to all selected users

API Usage

The tool uses the Power Platform Toolbox and Dataverse APIs:

Connection Management

// Get current connection
const connection = await window.toolboxAPI.getConnection();

Data Queries

// Query system users
const users = await window.dataverseAPI.queryData(
  "systemusers?$select=systemuserid,fullname,internalemailaddress"
);

// Query user settings
const settings = await window.dataverseAPI.queryData(
  \`usersettingscollection?$filter=systemuserid eq '\${userId}'\`
);

Notifications

// Show notification
await window.toolboxAPI.utils.showNotification({
  title: "Success",
  body: "Settings updated successfully",
  type: "success",
  duration: 3000,
});

License

MIT License - see LICENSE file for details.

Author

Lars Hildebrandt

About

A Power Platform Tool Box tool to show show and update user settings

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages