Menu

Solutions to Problems or Custom Needs in a Website

Many solutions we create for one site can be used and appreciated on other sites also.

Have a look at this list of components and solutions we have developed over time and if you could benefit from any of them you are welcome to them.

Please let us know if you would like to discuss the details or would like some help getting one installed.

Move Pop-Up Form title Left of X

Mark Buelsing 0 2348 Article rating: No rating

Action Form, the pop-up form title shows in the wrong place, to the right of the X to close the form. Use this script to move the text to the left. Put it in the initialization Scripts in the form settings.

 

$('.modal-header h4').insertBefore($('.modal-header button'));

Push a Grid Selection to a Form

Mark Buelsing 0 2531 Article rating: No rating

You can pop up a grid that will display records to choose from and then take the values from the chosen row and put them into the fiels on the form. This is a multiple column drop-down list box.

(Something that I have asked for in the past)

Use the following JS to move the field data from the grid to the form

/* Insert the module id of your FORM in the line below */

var module = '#dnn458root';

 

/* Use your form field names on the left side, and values from your grid row on the right */

angular.element($(module)).scope().form.fields.FirstName.value = '[FirstName]';

angular.element($(module)).scope().form.fields.LastName.value = '[LastName]';

angular.element($(module)).scope().form.fields.Email.value = '[Email]';

/* Trigger the form to update by applying the field changes */

angular.element($(module)).scope().$apply();

See a nice video that demonstrates building the popup components here: https://www.youtube.com/watch?v=hw_zY1Vdp14&list=PL67RlTAxc73HwiL13W1nvYZ_Wgb2jhWwd&index=4

 

HasRole SP

Mark Buelsing 0 1518 Article rating: No rating

This script will return true or false after testing that a userid is in a given role or is superuser

 


SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [dbo].[_LIS_HasRole]

    @UserID int 
    ,@RoleName nvarchar(150) 

AS

    DECLARE @CheckUserID int
    DECLARE @HitCount int = 0

    SET @CheckUserID = @UserID
    IF @CheckUserID <> 0 
    BEGIN
    --if user is superuser
    SET @HitCount = (SELECT IsSuperUser FROM Users WHERE UserID = @CheckUserID)

     -- if user is administrator
    SET @HitCount = @HitCount + (
    SELECT COUNT(*)
    FROM UserRoles INNER JOIN
    Roles ON UserRoles.RoleID = Roles.RoleID INNER JOIN
    Users ON UserRoles.UserID = Users.UserID
    WHERE Roles.Rolename = 'Administrators' AND Users.UserID = @CheckUserID)

    --is user in the queried role
    SET @HitCount = @HitCount + (
    SELECT COUNT(*)
    FROM UserRoles INNER JOIN
    Roles ON UserRoles.RoleID = Roles.RoleID INNER JOIN
    Users ON UserRoles.UserID = Users.UserID
    WHERE Roles.Rolename = @RoleName AND Users.UserID = @CheckUserID)

--return the answer

    SELECT CAST(CASE WHEN @HitCount > 0 THEN 'True' ELSE 'False' END AS nvarchar(10)) AS HasRole
END
ELSE
    SELECT 'False' AS HasRole

 

____________________________

 

Or if you need to make this determination without a stored procedure

 

   Two other ways to do this with SQL are in the article read more

Remove blank from Multiple Choice

Mark Buelsing 0 0 Article rating: No rating

Multiple Choice fields have a blank entry in the list. I find that non-entry a confusing thing and don't want it there. It is usually the first item in the select list. You can remove it with code. Put a Static Text field on the form and paste the following JS. Change the ID's

 

<script>
// delete the blank entries in the combos
document.getElementById("dnn2244RTDecision1").options[0].remove();
document.getElementById("dnn2244RTDecision2").options[0].remove();
document.getElementById("dnn2244RTDecision3").options[0].remove();
document.getElementById("dnn2244RTDecision4").options[0].remove();
document.getElementById("dnn2244RTDecision5").options[0].remove();
</script>

 

******

A CSS:3 way to do this is to add the following style:

 option:empty{ display:none;} */Removes empty Multiple choice options /*

 

Set the value of a Multiple Choice in JS

Mark Buelsing 0 2501 Article rating: No rating

When you need to set the value of a Multiple Choice field from some other field's "On Change Click", this syntax works.

Multiple Choice Field Name: EnteringGrade2

Syntax: document.getElementById(form.fields.EnteringGrade2.id).selectedIndex = 0;

 

This syntax avoids using the actual field ID

The value of 0 is the default entry = "Select"

RSS
1234567
RSS
1234