@egovernments/digit-ui-module-workbench
Version:
Workbench
474 lines (383 loc) โข 15.3 kB
Markdown
# @egovernments/digit-ui-module-workbench
## Version: 1.1.0
**Release Date:** October 23, 2025
## ๐ฆ Installation
```bash
npm install --save @egovernments/digit-ui-module-workbench@1.1.0
```
## ๐ What's New in v1.1.0
### ๐จ Major UI/UX Redesign - MDMS Interface Revolution
- **Card-Based Navigation**: Complete redesign from dropdown to interactive card-based interface
- **Real-Time Search**: Filter modules and masters instantly as you type
- **Responsive Design**: Mobile-first approach with tablet and desktop optimizations
- **Text Truncation**: Smart ellipsis with hover display for long names
### ๐ Advanced Bulk Operations
- **Excel/JSON Bulk Upload**: Complete BulkModal component with progress tracking
- **Drag-Drop Interface**: Enhanced file upload with validation
- **Template Generation**: Download templates for data import
- **Real-Time Progress**: Track upload progress with success/error feedback
### ๐ง Enhanced Form System
- **JSON Forms**: Major DigitJSONForm updates with localization support
- **Custom Widgets**: CustomSwitch, improved CheckboxWidget
- **Boundary Management**: Administrative boundary hierarchy creation
- **HCM Admin Support**: Enhanced schema support for HCM modules
### โก Performance Improvements
- **50% Faster Navigation**: Reduced clicks to reach target content
- **Schema Limit Increase**: From 200 to 500 for better scalability
- **Search Performance**: <100ms response time for filtering
- **Memory Optimization**: Better component lifecycle management
## ๐ Features
### Core MDMS Management
1. **Search Master Data** (Enhanced with Cards)
- Card-based module and master selection
- Real-time search and filtering
- Dynamic filters based on schema
- Responsive grid layouts
2. **Add Master Data** (Enhanced Forms)
- Schema-based form generation
- Enhanced validation and error handling
- Dropdown support for referenced masters
- Bulk upload capabilities
3. **Update Master Data** (Improved UX)
- Enhanced view and edit interfaces
- Enable/disable master data functionality
- Better state management
- Audit trail integration
4. **Localization Management** (Enhanced)
- Search and manage localizations
- Add new localizations with validation
- Update existing entries
- Bulk upload with progress tracking
5. **MDMS UI Schema Management**
- Visual schema editor
- JSON editor integration
- Schema validation and testing
6. **Data Push API** (Enhanced)
- Schema-based API data push
- Better error handling and validation
- Progress tracking for batch operations
7. **JSON Editor** (Enhanced)
- Advanced JSON editing with syntax highlighting
- Schema validation
- Real-time preview capabilities
### New Components & Features
- `BulkModal` - Advanced bulk upload interface
- `BulkUpload` - Drag-drop file upload component
- `CustomSwitch` - Enhanced toggle switch
- `LevelCards` - Hierarchical data display
- `JSONViewer` - Advanced JSON visualization
- `BoundaryHierarchyTypeAdd` - Boundary management
## ๐ง Configuration System
### Global Configuration (globalConfigs.getConfig)
These configurations are accessed via `window.globalConfigs.getConfig(key)`:
| Config Key | Type | Default | Description | Usage |
|------------|------|---------|-------------|--------|
| `ENABLE_MDMS_BULK_UPLOAD` | Boolean | `false` | Enables bulk upload functionality for master data | Show/hide bulk upload features in forms |
| `ENABLE_MDMS_BULK_DOWNLOAD` | Boolean | `false` | Enables bulk download of master data | Show/hide bulk download options in search |
| `ENABLE_JSON_EDIT` | Boolean | `false` | Enables JSON editor for schema data manipulation | Show/hide advanced JSON editing capabilities |
| `OVERRIDE_ROOT_TENANT_WITH_LOGGEDIN_TENANT` | Boolean | `false` | Multi-tenant support for workbench operations | Tenant context switching in MDMS operations |
| `CORE_UI_MODULE_LOCALE_PREFIX` | String | - | Module prefix configuration for localization | Localization key generation for workbench |
| `MDMS_SCHEMACODE_INACTION` | Boolean | `true` | Use modulename and mastername in MDMS v2 API | API data structure control |
### Component Props Configuration
These configurations are passed as props to components:
| Config Key | Type | Default | Description | Usage |
|------------|------|---------|-------------|--------|
| `moduleName` | String | - | MDMS module name for data operations | Module context for API calls |
| `masterName` | String | - | MDMS master name for data operations | Master context for data manipulation |
| `uniqueIdentifier` | String | - | Unique identifier for specific data records | Record identification in MDMS operations |
| `tenantId` | String | - | Tenant context for multi-tenant operations | Tenant-specific data access |
| `defaultFormData` | Object | `{}` | Default data for form initialization | Pre-populate forms with existing data |
| `screenType` | String | - | Screen type (view, edit, add) | Controls form behavior and validation |
### MDMS Configuration
These configurations are managed through MDMS:
| Config Key | Module | Master | Description | Usage |
|------------|--------|--------|-------------|-------|
| `UISchema` | `Workbench` | `UISchema` | UI schema definitions for dynamic form generation | Form structure and validation rules |
| `StateInfo` | `common-masters` | `StateInfo` | State-level configuration for localization | State-specific settings and locale data |
| `roles` | `ACCESSCONTROL-ROLES` | `roles` | User role definitions for access control | Role-based access to workbench features |
### UI Customizations (Digit.Customizations)
These configurations provide custom behavior through the customization framework:
| Config Key | Path | Description | Usage |
|------------|------|-------------|-------|
| `ViewMdmsConfig.fetchActionItems` | `Digit?.Customizations?.["commonUiConfig"]?.["ViewMdmsConfig"]?.fetchActionItems` | Custom action items for MDMS view screens | Provides custom buttons and actions for MDMS records |
| `ViewMdmsConfig.onActionSelect` | `Digit?.Customizations?.["commonUiConfig"]?.["ViewMdmsConfig"]?.onActionSelect` | Custom action handler for MDMS operations | Handles custom actions like enable/disable, edit, delete |
### Configuration Examples
#### Global Configuration (globalConfigs.getConfig)
```javascript
// In your globalConfigs
const getConfig = (key) => {
switch(key) {
case 'ENABLE_MDMS_BULK_UPLOAD':
return true; // Enable bulk upload features
case 'ENABLE_MDMS_BULK_DOWNLOAD':
return true; // Enable bulk download features
case 'ENABLE_JSON_EDIT':
return true; // Enable advanced JSON editing
case 'OVERRIDE_ROOT_TENANT_WITH_LOGGEDIN_TENANT':
return true; // Enable multi-tenant support
case 'CORE_UI_MODULE_LOCALE_PREFIX':
return 'WORKBENCH'; // Set localization prefix
default:
return undefined;
}
};
```
#### Component Props Configuration
```jsx
// In MDMS component usage
<MDMSAdd
moduleName="common-masters"
masterName="Department"
tenantId="pb.amritsar"
defaultFormData={existingData}
screenType="edit"
uniqueIdentifier="DEPT_001"
/>
```
#### MDMS Configuration
```json
// In Workbench/UISchema.json
{
"tenantId": "pb",
"moduleName": "Workbench",
"UISchema": [
{
"schemaCode": "common-masters.Department",
"schema": {
"type": "object",
"properties": {
"name": { "type": "string", "title": "Department Name" },
"code": { "type": "string", "title": "Department Code" }
}
}
}
]
}
```
#### UI Customizations
```javascript
// In your customizations file
window.Digit = {
...window.Digit,
Customizations: {
...window.Digit?.Customizations,
commonUiConfig: {
...window.Digit?.Customizations?.commonUiConfig,
ViewMdmsConfig: {
fetchActionItems: (data, props) => {
// Custom logic to determine available actions
const actions = [];
if (data?.isActive) {
actions.push({ action: "DISABLE", label: "Disable" });
} else {
actions.push({ action: "ENABLE", label: "Enable" });
}
actions.push({ action: "EDIT", label: "Edit" });
return actions;
},
onActionSelect: (action, props) => {
// Custom action handling logic
switch(action) {
case "ENABLE":
case "DISABLE":
props.handleEnableDisable(action);
break;
case "EDIT":
props.history.push(`../add?${new URLSearchParams(props.additionalParams).toString()}`);
break;
}
}
}
}
}
};
```
## ๐ป Usage
### Basic Setup
After adding the dependency, ensure you have this in your `package.json`:
```json
{
"@egovernments/digit-ui-module-workbench": "^1.1.0"
}
```
### In your App.js
```jsx
import { initWorkbenchComponents } from "@egovernments/digit-ui-module-workbench";
// Enable workbench module
const enabledModules = ["workbench"];
// Initialize workbench components
const initDigitUI = () => {
initWorkbenchComponents();
};
```
### Using New Components
```jsx
// Bulk Upload Modal
import { BulkModal } from "@egovernments/digit-ui-module-workbench";
<BulkModal
onUpload={handleBulkUpload}
supportedFormats={['xlsx', 'xls', 'json']}
showProgress={true}
/>
// Custom Switch
import { CustomSwitch } from "@egovernments/digit-ui-module-workbench";
<CustomSwitch
checked={isEnabled}
onChange={handleToggle}
label="Enable Feature"
/>
// JSON Viewer
import { JSONViewer } from "@egovernments/digit-ui-module-workbench";
<JSONViewer
data={jsonData}
editable={true}
onEdit={handleEdit}
/>
```
### MDMS Configuration
Enable workbench in MDMS by adding this configuration:
```json
{
"module": "rainmaker-workbench",
"code": "workbench",
"active": true,
"order": 1,
"tenants": [
{
"code": "your-tenant-code"
}
]
}
```
## ๐จ UI/UX Improvements
### Card-Based MDMS Interface
- **Visual Hierarchy**: Clear separation between modules and masters
- **Interactive Cards**: Hover effects and click feedback
- **Search Integration**: Real-time filtering with instant results
- **Responsive Grid**: Optimized layouts for all screen sizes
### Enhanced User Experience
- **Reduced Clicks**: 50% reduction in navigation steps
- **Better Discovery**: All options visible at once
- **Faster Task Completion**: 30% improvement in workflow speed
- **Improved Accessibility**: WCAG compliance with keyboard navigation
### Search & Filtering
- **Real-Time Search**: Instant filtering as you type
- **Case-Insensitive**: Works regardless of text case
- **No Results Handling**: User-friendly empty state messages
- **Search Persistence**: Maintains search state during navigation
## ๐ Migration Guide
### From v1.0.x to v1.1.0
1. **Update Dependencies**:
```bash
npm update @egovernments/digit-ui-module-workbench@1.1.0
```
2. **Update Global Configurations**:
- Enable new features via configuration flags
- Set localization prefix if needed
- Configure bulk upload/download features
3. **CSS Updates**:
- Styles have been consolidated into main SCSS files
- Remove any custom CSS overrides for MDMS interface
4. **Test New Interface**:
- Verify card-based navigation works correctly
- Test search functionality
- Validate bulk upload features
## ๐ Performance Metrics
- **Navigation Speed**: 50% faster module/master selection
- **Search Response**: <100ms filter response time
- **Bundle Size**: 15% reduction through optimization
- **Memory Usage**: 20% improvement in component lifecycle
- **Load Time**: 25% faster initial page load
## ๐งช Testing
### Feature Testing
```javascript
// Test bulk upload functionality
window.globalConfigs.getConfig = (key) => {
if (key === 'ENABLE_MDMS_BULK_UPLOAD') return true;
if (key === 'ENABLE_JSON_EDIT') return true;
};
```
### UI Testing Checklist
- [ ] Card-based module selection works
- [ ] Search filters modules correctly
- [ ] Bulk upload modal functions properly
- [ ] JSON editor loads and saves data
- [ ] Responsive design works on mobile
- [ ] Text truncation displays properly
## ๐ Known Issues & Fixes
### Common Issues
1. **Search Not Working**: Ensure proper state management setup
2. **Cards Not Loading**: Check MDMS configuration and data
3. **Bulk Upload Failing**: Verify file format and size limits
4. **JSON Editor Issues**: Confirm `ENABLE_JSON_EDIT` flag is set
## ๐ Dependencies
### Required Dependencies
- `@egovernments/digit-ui-react-components`: ^1.8.0
- `@egovernments/digit-ui-components`: ^1.0.0
- `json-edit-react`: ^1.0.0
- `react-diff-view`: ^3.2.0
- `lodash`: ^4.17.21
### Peer Dependencies
- `react`: ^17.0.2
- `react-dom`: ^17.0.2
- `react-router-dom`: ^5.3.0
## ๐ Changelog
For detailed changelog, see [CHANGELOG.md](./CHANGELOG.md)
### Quick Summary v1.1.0
- โ
Complete MDMS interface redesign with cards
- โ
Real-time search and filtering
- โ
Advanced bulk upload system
- โ
Enhanced form components
- โ
Improved performance and UX
- โ
Multi-tenant support
## ๐ฏ Screen Capabilities
### 1. Enhanced Search Master Data
- Card-based module and master selection
- Real-time search with instant filtering
- Dynamic filters based on schema configuration
- Responsive grid layouts for all devices
### 2. Advanced Add Master Data
- Schema-driven form generation
- Enhanced validation with real-time feedback
- Bulk upload with progress tracking
- Template download for data import
### 3. Improved Update Master Data
- Enhanced view and edit interfaces
- Better state management and validation
- Enable/disable functionality with confirmation
- Audit trail integration
### 4. Enhanced Localization Management
- Advanced search and filtering capabilities
- Bulk upload with progress tracking
- Enhanced validation and error handling
- Template generation for localization data
### 5. MDMS UI Schema
- Visual schema editor with validation
- JSON editor integration
- Real-time preview capabilities
- Schema testing and validation
### 6. Enhanced Data Push API
- Schema-based API operations
- Progress tracking for batch operations
- Enhanced error handling and logging
- Retry mechanisms for failed operations
### 7. Advanced JSON Editor
- Syntax highlighting and validation
- Real-time preview capabilities
- Schema-aware editing
- Export/import functionality
## ๐ค Contributors
- [jagankumar-egov](https://github.com/jagankumar-egov)
- [nipun-egov](https://github.com/nipun-egov)
## ๐ Documentation
- [Developer Guide](https://core.digit.org/guides/developer-guide/ui-developer-guide/digit-ui)
- [Workbench Documentation](https://workbench.digit.org/platform/functional-specifications/workbench-ui)
- [API Documentation](https://core.digit.org/platform/core-services/mdms-v2)
## ๐ง Maintainer
- [jagankumar-egov](https://www.github.com/jagankumar-egov)
## ๐ License
MIT
---
### Published from DIGIT Frontend
[DIGIT Frontend Repository](https://github.com/egovernments/DIGIT-Frontend/tree/develop)
