Change Sort Order of Upload Images "Select an Album" DropDown?
Is there any way to set a sort order for the "select an album" dropdown list on the "Upload Images" form? In particular I am talking about the form that is found through this navigation path:
Dashboard -> Content -> Images -> Upload Images
After selecting an image to upload, the user is allowed to select an album to put the image in. This list seems to be sorted in a random manner. In our CMS instance, we have 250+ image albums, and it makes it extremely difficult to find the correct album when the list isn't sorted alphabetically.
Is there a setting to enable sorting for this dropdown?
Thanks!
Hi Daniel,
That's a tough one- we do not have a direct configuration setting exposed for that, however it's possible to implement a SortExpression and map the template for the UploadDialog. I've attached a modified template to this reply which will sort the Albums alphabetically, however, please feel free to modify the DefaultSortExpression property of the binder on the below template according to the use case scenario:
<%@ Control Language="C#" %>
<%@ Register Assembly="Telerik.Sitefinity" Namespace="Telerik.Sitefinity.Web.UI" TagPrefix="sitefinity" %>
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
<%@ Register Assembly="Telerik.Sitefinity" Namespace="Telerik.Sitefinity.Web.UI.Fields" TagPrefix="sfFields" %>
<%@ Register Assembly="Telerik.Sitefinity" Namespace="Telerik.Sitefinity.Web.UI.ContentUI.Views.Backend.Detail" TagPrefix="sfDetail" %>
<%@ Register Assembly="Telerik.Sitefinity" Namespace="Telerik.Sitefinity.Web.UI.Validation.Definitions" TagPrefix="sfvalidation" %>
<%@ Register Assembly="Telerik.Sitefinity" Namespace="Telerik.Sitefinity.Workflow.UI" TagPrefix="sitefinity" %>
<
sitefinity:ResourceLinks
id
=
"resourcesLinks"
runat
=
"server"
>
<
sitefinity:ResourceFile
Name
=
"Styles/Ajax.css"
/>
</
sitefinity:ResourceLinks
>
<
sitefinity:ClientLabelManager
id
=
"clientLabelManager"
runat
=
"server"
>
<
Labels
>
<
sitefinity:ClientLabel
ClassId
=
"LibrariesResources"
Key
=
"OneItemHasBeenSuccessfullyUploaded"
runat
=
"server"
/>
<
sitefinity:ClientLabel
ClassId
=
"LibrariesResources"
Key
=
"MultipleItemsHaveBeenSuccessfullyUploaded"
runat
=
"server"
/>
<
sitefinity:ClientLabel
ClassId
=
"LibrariesResources"
Key
=
"YouMustSelectLibraryNameInWhichToUploadItemName"
runat
=
"server"
/>
<
sitefinity:ClientLabel
ClassId
=
"LibrariesResources"
Key
=
"WhichItemNameToUpload"
runat
=
"server"
/>
<
sitefinity:ClientLabel
ClassId
=
"LibrariesResources"
Key
=
"Uploading"
runat
=
"server"
/>
<
sitefinity:ClientLabel
ClassId
=
"LibrariesResources"
Key
=
"UploadDone"
runat
=
"server"
/>
<
sitefinity:ClientLabel
ClassId
=
"LibrariesResources"
Key
=
"YouHaveUnsavedChangesWantToLeavePage"
runat
=
"server"
/>
</
Labels
>
</
sitefinity:ClientLabelManager
>
<
fieldset
class
=
"sfNewContentForm"
>
<
asp:LinkButton
ID
=
"backButton"
runat
=
"server"
CssClass
=
"sfBack"
OnClientClick
=
"return false;"
/>
<
h1
id
=
"dialogTitle"
runat
=
"server"
></
h1
>
<
sfFields:FormManager
id
=
"formManager"
runat
=
"server"
/>
<
div
id
=
"mainForm"
runat
=
"server"
>
<
div
class
=
"sfForm sfFirstForm"
>
<
sfFields:FileField
id
=
"fileUpload"
runat
=
"server"
DisplayMode
=
"Write"
CssClass
=
"sfFormIn"
/>
</
div
>
<
sitefinity:PromptDialog
ID
=
"createLibPrompt"
runat
=
"server"
Mode
=
"Input"
ShowOnLoad
=
"false"
Title="<%$Resources:Labels, CreateAParameter %>" TextFieldTitle="<%$Resources:LibrariesResources, LibraryNameText %>"
TextFieldExample="<%$Resources:LibrariesResources, LibraryNameExample %>">
<
CustomTemplate
>
<
sitefinity:TextField
ID
=
"libraryTitle"
runat
=
"server"
DisplayMode
=
"Write"
></
sitefinity:TextField
>
</
CustomTemplate
>
<
Commands
>
<
sitefinity:CommandToolboxItem
Text="<%$ Resources:LibrariesResources, CreateThisLibrary %>" CommandName="createLibrary" CommandType="CreateButton" WrapperTagName="LI"></
sitefinity:CommandToolboxItem
>
<
sitefinity:CommandToolboxItem
Text="<%$ Resources:Labels, Cancel %>" CommandName="cancel" CommandType="CancelButton" WrapperTagName="LI"></
sitefinity:CommandToolboxItem
>
</
Commands
>
</
sitefinity:PromptDialog
>
<
sitefinity:Message
ID
=
"messageControl"
runat
=
"server"
RemoveAfter
=
"-1"
CssClass
=
"sfUploadedImgMsg"
/>
<
div
id
=
"librarySelector"
runat
=
"server"
class
=
"sfForm"
>
<
div
class
=
"sfFormIn"
>
<
asp:Label
ID
=
"librarySelectorTitle"
runat
=
"server"
CssClass
=
"sfTxtLbl"
AssociatedControlID
=
"librariesDropDown"
/>
<
asp:DropDownList
ID
=
"librariesDropDown"
runat
=
"server"
>
</
asp:DropDownList
>
<
sitefinity:GenericCollectionBinder
id
=
"librariesBinder"
runat
=
"server"
TargetId
=
"librariesDropDown"
ServiceUrl
=
"~/Sitefinity/Services/Content/ContentService.svc/"
BindOnLoad
=
"false"
DefaultSortExpression
=
"Title ASC"
>
<
Containers
>
<
sitefinity:BinderContainer
ID
=
"BinderContainer1"
runat
=
"server"
RenderContainer
=
"false"
ContainerTag
=
"OPTION"
TemplateHolderTag
=
"SELECT"
>
<
option
sys:value
=
"Id"
>Title</
option
>
</
sitefinity:BinderContainer
>
</
Containers
>
</
sitefinity:GenericCollectionBinder
>
<
asp:Literal
ID
=
"orLiteral"
runat
=
"server"
Text="<%$Resources:Labels, or %>"></
asp:Literal
>
<
asp:HyperLink
ID
=
"lnkCreateLibrary"
NavigateUrl
=
"javascript:void(0);"
runat
=
"server"
Text="<%$Resources:LibrariesResources, CreateNewLibrary %>"></
asp:HyperLink
>
</
div
>
</
div
>
<
sfDetail:SectionControl
id
=
"taxonomiesSelector"
runat
=
"server"
WrapperTag
=
"FIELDSET"
CssClass
=
"sfForm sfExpandableForm"
Expanded
=
"false"
>
</
sfDetail:SectionControl
>
</
div
>
<
sitefinity:WorkflowMenu
id
=
"workflowMenu"
runat
=
"server"
CssClass
=
"sfButtonArea sfMainFormBtns"
/>
<
sitefinity:CommandBar
id
=
"successCommandBar"
runat
=
"server"
WrapperTag
=
"div"
WrapperCssClass
=
"sfButtonArea sfMainFormBtns"
Displayed
=
"false"
>
<
Commands
>
<
sitefinity:CommandToolboxItem
runat
=
"server"
CommandName
=
"viewAll"
CommandType
=
"NormalButton"
CssClass
=
"sfPrimary"
/>
<%--<
sitefinity:CommandToolboxItem
runat
=
"server"
CommandName
=
"batchEdit"
CommandType
=
"NormalButton"
/>--%>
<
sitefinity:LiteralToolboxItem
runat
=
"server"
>
<
ItemTemplate
>
<
asp:Literal
ID
=
"Literal12"
runat
=
"server"
Text="<%$Resources:Labels, or %>"></
asp:Literal
>
</
ItemTemplate
>
</
sitefinity:LiteralToolboxItem
>
<
sitefinity:CommandToolboxItem
runat
=
"server"
CommandName
=
"uploadOther"
CommandType
=
"CancelButton"
CssClass
=
"sfAddOther"
/>
</
Commands
>
</
sitefinity:CommandBar
>
</
fieldset
>
<
asp:HiddenField
ID
=
"dialogInstanceId"
runat
=
"server"
/>
<
script
type
=
"text/javascript"
>
$("body").addClass("sfFormDialog");
function createDialog(commandName, dataItem, self, dialog, params, key, commandArgument)
$find('<%= dialogInstanceId.Value %>').prepareDialog(commandName, dataItem, self, dialog, params, key, commandArgument);
</
script
>