Thursday 11 April 2024

Plugin for Identifying and Bulk Deleting Orphaned Missing Properties in Optimizely

I am aware that the Optimizely World community has extensively discussed this topic, with numerous solutions and code snippets available to help administrators address this issue. Despite this wealth of resources, I've noticed a lack of a dedicated NuGet package specifically aimed at tackling this problem, especially for CMS 12 on the Optimizely NuGet feed. Here's my perspective on the issue and my contribution: an administrative plugin for Optimizely CMS 12.

Tuesday 23 January 2024

Streamlining Content Translation in Optimizely CMS with Google Translate

The A2Z.Episerver.Labs.LanguageManager.GoogleTranslate extension is a valuable resource for Optimizely CMS editors seeking an alternative to the built-in Azure Cognitive Services Translator. Its main purpose is to simplify and enhance the content translation process, making it more efficient and accessible. By integrating with EPiServer.Labs.LanguageManager, it harnesses the capabilities of Google Cloud Translation. This integration is through Google.Cloud.Translation.V2 NuGet package, enables seamless, automated translations directly within the CMS environment, enhancing the efficiency and ease of managing multilingual content.

Friday 19 January 2024

Monday 15 January 2024

Wednesday 3 January 2024

Advanced Task Manager for Optimizely CMS 12 Is Now Available

I am thrilled to announce the release of Advanced Task Manager Version 3 for Optimizely CMS 12, a major upgrade from the previous version designed for CMS 11 and .NET Framework 4.7.1. This release marks a significant step forward, leveraging the power of CMS 12 and .NET Core 6 to provide an enhanced and efficient experience for CMS editors.

Overview

The Advanced Task Manager for Optimizely is a tool designed to empower CMS editors with advanced oversight of administration tasks related to Awaiting Review in Content Approval and Change Approval processes.

What's New

1. Migration to .NET Core 6 and CMS 12

Advanced Task Manager has undergone a complete rewrite from the ground up, embracing the latest technologies. The tool is now compatible with .NET Core 6 and Optimizely CMS 12, ensuring optimal performance and compatibility with the latest platform advancements.

2. New User Interface

The tool features a revamped user interface that not only provides a modern and intuitive experience but also enhances the overall usability of the Advanced Task Manager. Editors will find it easier and more efficient to manage tasks within the CMS.

3. Bug Fixes and Enhancements

Version 3 includes several bug fixes and enhancements based on valuable feedback from users of the previous version. I've addressed issues and fine-tuned the tool to deliver a smoother and more reliable user experience.

4. Optimized for Latest Optimizely API Requirements

The entire codebase of Advanced Task Manager has been refactored to align with the latest Optimizely API requirements. This ensures seamless integration with Optimizely CMS 12, providing editors with a robust and reliable tool for their daily tasks.

Installation and Configuration

Installation

To install Advanced Task Manager version 3, simply add the NuGet package using the Optimizely NuGet package manager:

dotnet add package AdvancedTaskManager

Configuration

Configuration is made easy with the flexibility to adjust settings either in the Startup.cs file or through the appsettings.json file. Here's an example with available configurations:

public void ConfigureServices(IServiceCollection services)
{
    
    services.AddAdvancedTaskManager(o =>
    {
        o.DeleteChangeApprovalTasks = true; //Default true
        o.PageSize = 10; //Default 30
        o.AddContentApprovalDeadlineProperty = true; //Default false
        o.DeleteContentApprovalDeadlineProperty = true; //Default false
        o.WarningDays = 4; //Default 4;
        o.DateTimeFormat = "yyyy-MM-dd HH:mm"; //Default "yyyy-MM-dd HH:mm";
        o.DateTimeFormatUserFriendly = "yyyy-MM-dd HH:mm"; //Default "MMM dd, yyyy, h:mm:ss tt";
    });

    OR

    services.AddAdvancedTaskManager();
    
...
}
OR
"AdvancedTaskManager": {
    "DeleteChangeApprovalTasks":  true, 
    "PageSize": 6,
    "AddContentApprovalDeadlineProperty":  false, 
    "DeleteContentApprovalDeadlineProperty": false,
    "WarningDays":  4, 
    "DateTimeFormat": "yyyy-MM-dd HH:mm",    
    "DateTimeFormatUserFriendly": "MMM dd, yyyy, h:mm:ss tt"
}

The settings specified in the appsettings.json file will take precedence over any configurations defined in the Startup.

Integrating Advanced Task Manager into the CMS

The solution seamlessly integrates with Optimizely CMS, automatically adding administration pages to the CMS Admin menu titled Adv. Task Manager. The implementation of the IMenuProvider ensures the effortless inclusion of the Advanced Task Manager pages in the CMS Admin menu.

Restricting Access to the Admin UI

Access to the Admin UI is, by default, limited to users with the administrator's role. However, for additional flexibility, access to the Adv. Task Manager menu can be granted to specific roles by configuring the authorization policy during registration.

Example:

services.AddAdvancedTaskManager(o => { },
    policy =>
    {
        policy.RequireRole("MyRole");
    });

Overview of Features

1. Approve Entire Approval Sequence (Content Approval Only)

The tool prompts editors to approve the entire Content Approval Sequence for single or multiple contents. A comment in the comment field is mandatory for enhanced communication and is already prefilled to make editors' lives easier.

2. Publish Content After Approval

Editors with publishing rights for content approval can now choose to publish selected content after approval, either in bulk or for individual tasks.

3. Deadline Field for Content Approval Sequence (Optional)

A new deadline field has been introduced for content approval, allowing editors to assign priority to content with a specified deadline. This ensures that approvers are informed about the urgency before approval.

4. User Notifications Linked to the Task

The tool now facilitates reading user notifications linked to the task, providing editors with deeper insights and better control over tasks and notifications.

5. Task Ordering

Editors now have the option to sort through all tasks with the status Awaiting Review in various columns, providing a more organized view of tasks.

6. Information for Change Approval Tasks

Change Approval tasks now display detailed information in an accordion-style table row, offering a clearer view of security setting changes, content movement, language setting changes, and expiration date setting changes.

Conclusion

Advanced Task Manager Version 3 for Optimizely CMS 12 represents a leap forward in providing editors with enhanced oversight and control over Content Approval and Change Approval processes. The new features, improved user interface, and compatibility with the latest technologies make it a valuable tool for optimizing workflows within Optimizely CMS.

The comprehensive documentation is available on the project's GitHub page https://github.com/adnanzameer/optimizely-advancedtaskmanager.

Tuesday 23 February 2021

Monday 15 February 2021

Simple Ways to Improve Episerver Websites Security

In my previous post, Basic Episerver Coding Best Practices I briefly mentioned the website security.  I thought I could go a little bit in details about basic security measure you can take in your ASP.NET website or in particular Episerver website. 

Each project comes with its own set of security requirements but I usually start from the following list to cover the basics. Keep in mind the list below are just suggestions and you can always opt-out or include other measures to quench your thirst for your website security.