IMPORTANT: This version of Sitefinity CMS is out of support and the respective product documentation is no longer maintained and can be outdated. Use the version selector to view a supported product version.
Feather's sfMediaField directive enables you to select and display a document or a video from the existing libraries in your website. In addition, you can use this directive to upload a document or a video to a library.
sfMediaField
After you select a document or a video, the default template lists information about its base properties such as type, size and upload date. You can select another item or edit the properties of the current item. For more information, see Feather: Document selector and Feather: Video selector.
You can use the directive in the frontend, as well as in the backend. For example, on a page, as well as in a widget designer. For more information, see Feather: Use content selectors outside of widget designer views.
The sfMediaField is a directive with an isolated that is defined in a module with the same name: sfMediaField.
The following image is an example of a media field used for documents:
The sfMediaField directive exposes the following attributes:
sf-model
sf-media
sf-media-type
sf-provider
sf-template-url
sf-template-assembly
sf-auto-open-selector
The following example demonstrates how to add media field directive in a widget designer's view.
To enable AngularJs to link the sfMediaField directive in your custom designer view, you must load the script of the directive and add a dependency to the module:
Feather automatically registers the scripts you need and, if no other designer view with explicitly set priority exists, Feather sets your designer view priority 1. In case you need to have full control over the scripts that are loaded or you want to set custom priority, you can alternatively create your own DesignerView.YourView.json file. If you have a JSON file that matches the convention (even if empty), this automatic scripts registration will not occur. In your DesignerView.YourView.json file, add a components array. If you want to use the media field for documents, add "sf-document-field" to the components array. If you want to use it for videos, add "sf-video-field". As a result, the file content should be similar to the following:
DesignerView.YourView.json
JSON
"sf-document-field"
"sf-video-field"
{
"priority": 1,
"components": ["sf-document-field"]
}
Feather automatically finds all AngularJS modules you rely on and references the widget designer to them. In case you rely on custom AngularJS modules or have logic that needs an AngularJS controller, you can create your own designerview-<yourview>.js file. If you have a .js file that matches the convention (even if empty), this automatic modules referencing will not occur. In your designerview-yourview.js file, right before the definition of your custom view controller, place the following code snippet:
designerview-<yourview>.js
.js
designerview-yourview.js
var
designerModule = angular.module(
'designer'
);
angular.module(
).requires.push(
'sfFields'
'sfSelectors'
In your DesignerView.YourView.cshtml file, place the following tag where you want to render the sfMediaField directive:
DesignerView.YourView.cshtml
<
sf-media-field
=
"documents"
"selectedMediaId"
"selectedMedia"
"mediaProvider"
/>
In your designer's controller, add the following code:
designerModule.controller('YourViewCtrl', ['$scope', function ($scope) {
$scope.selectedMediaId = null;
$scope.selectedMedia = null;
$scope.mediaProvider = null;
}])
Since there is no selected item when the controller is initialized for the first time, the sf-auto-open-selector attribute in the code above opens a document or a video selector depending on sf-media-type value. After you select an item, the item and its ID are stored in their respective scope variables: selectedMedia and selectedMediaId. The mediaProvider variable holds the name of the provider from which to load the document libraries.
selectedMedia
selectedMediaId
mediaProvider
NOTE: The document and the video selector can load documents or videos from different providers.
Back To Top
To submit feedback, please update your cookie settings and allow the usage of Functional cookies.
Your feedback about this content is important