Giter Club home page Giter Club logo

pcf-metadata's Introduction

Metadata PCF library

Summary

This is a set of PCF (Power Component Framework) controls to provide user friendly access to Powerplatform metadata allowing you to easily select entities, attributes, lookup values and views and store them in standard PowerApp text fields for use elsewhere.

There were built to improve and remove the complex javascript that we used to need on the administration forms that we use across a number of our solutions and are shared here to ensure other people do not need to waste time rewriting similar logic.

If you do not wish to compile the controls manually you can download an unmanaged solution or managed solution

The controls

The solution contains the following controls:-

Select Entity

A drop down / select list that allows you to select an entity and store it's logical name. Optionally it you can bind a second text field to store the entity's display name.

2 Properties:-
Entity - Required Bound singleline text field
Display Name - Optional Bound singleline text field.

Entity Select Demo!

Select Attribute

A drop down / select list that displays and allows you to select an attribute from the specified entity. The control stores the logical name of the field / attribute and displays it in a user friendly format Display Name (logical name).

2 properties:-
Attribute - Required Bound singleline text field
EntityName - Singleline text field input (usually set to the Select Entity field elsewhere on the form)

Attrbute Select Demo!

Select Lookup

A variation of the Select Attribute control above that only shows and allows you to select lookup fields from the specified entity. The control stores the logical name of the lookup field and displays it in a user friendly format - Display Name (logical name)
2 properties:-
Attribute - Required Bound singleline text field
EntityName - Singleline text field input (usually set to the Select Entity field elsewhere on the form)

Select View

A drop down / select list that displays and allows you to select a view from the specified entity. The control stores the Guid value of the View and displays the views user friendly name.

2 properties:-
Attribute - Required Bound singleline text field
EntityName - Singleline text field input (usually set to the Select Entity field elsewhere on the form)

Select Form

A drop down / select form that displays and allows you to select a form of the specified entity. The control stores the Guid value of the Form and displays the Form's name.

2 properties:-
Form - Required Bound singleline text field
EntityName - Singleline text field input (usually set to the Select Entity field elsewhere on the form)

Multiple Attributes

A drop down / select list that provides a multiselect combo box where you can select multiple attributes from the specified entity. The control stores the logical name of the selected attributes in a comma seperated list and displays them in a user friendly format Display Name (logical name).

2 properties:-
Attribute - Required Bound singleline text field
EntityName - Singleline text field input (usually set to the Select Entity field elsewhere on the form)

Multiple Attribute Select Demo!

Select Related

A variation of the Select Lookup drop down / select list used to select the preferred join between two entities (Form entity and Query entity). The dropdown list shows the joins to the Form entity on the Query entity.

  • Where no relationship exists, an error message is shown.
  • Where a single relationship exists, the control will automatically select it.
  • Where multiple options exist the value will be blank until one is selected.
The control stores the logical name of the lookup field and displays it in a user friendly format - *Display Name (logical name)*

3 properties:-
Attribute - Required Bound singleline text field
FormEntity - Required Singleline Bound text field QueryEntity - Required Singleline Bound text field

Notes

The controls support readonly / disabled mode but do not support Field level security as I cannot think of any use case that would require it.

CSS styling is a variation of Benedikt Bergmann's work see https://benediktbergmann.eu/2020/01/04/pcf-css-for-model-driven-apps-mda/
with additional Javascript to more accurately follow the way right hand arrows work within Microsoft's standard controls see https://powerusers.microsoft.com/t5/Power-Apps-Component-Framework/PCF-Control-hasFocus/m-p/442274#M1544 .

Error handling uses setNotification and clearNotification available within the Utlity feature of PCF framework

(<any>this.context.utils).setNotification("No relationship between selected Query ("+ this.queryEntity +") and Form ("+ this.formEntity +") entities.","123")    

and

     (<any>this.context.utils).clearNotification("123");    

to clear the error

To access the error handling just enable the following in the ControlManifest file

   <feature-usage>    
      <uses-feature name="Utility" required="true" />
    </feature-usage>

pcf-metadata's People

Contributors

bthompson-365 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.