107 lines
3.7 KiB
JavaScript
107 lines
3.7 KiB
JavaScript
(function ($) {
|
|
|
|
$.fn.UmbQuickSearch = function (url) {
|
|
|
|
var getSearchApp = function () {
|
|
|
|
if (UmbClientMgr.mainWindow().location.hash != "") {
|
|
switch (UmbClientMgr.mainWindow().location.hash.toLowerCase().substring(1).toLowerCase()) {
|
|
case "media":
|
|
return "Media";
|
|
break;
|
|
case "content":
|
|
return "Content";
|
|
break;
|
|
case "member":
|
|
return "Member";
|
|
break;
|
|
default:
|
|
return "Content";
|
|
}
|
|
}
|
|
return "Content";
|
|
|
|
/* return (UmbClientMgr.mainWindow().location.hash != ""
|
|
&& UmbClientMgr.mainWindow().location.hash.toLowerCase().substring(1)) == "media".toLowerCase()
|
|
? "Media"
|
|
: "Content"; */
|
|
};
|
|
|
|
var acOptions = {
|
|
minChars: 2,
|
|
max: 100,
|
|
cacheLength: 1,
|
|
dataType: 'json',
|
|
matchCase: true,
|
|
matchContains: false,
|
|
selectFirst: false, // FR: This enabled the search popup to show, otherwise it selects the first item
|
|
extraParams: {
|
|
//return the current app, if it's not media, then it's Content as this is the only searches that are supported.
|
|
app: function () {
|
|
return getSearchApp();
|
|
},
|
|
rnd: function () {
|
|
return Umbraco.Utils.generateRandom();
|
|
}
|
|
},
|
|
parse: function (data) {
|
|
var parsed = [];
|
|
for (var i = 0; i < data.length; i++) {
|
|
parsed[parsed.length] = {
|
|
data: data[i],
|
|
value: data[i].Id,
|
|
result: data[i].Fields.nodeName
|
|
};
|
|
}
|
|
return parsed;
|
|
},
|
|
formatItem: function (item) {
|
|
return item.Fields.nodeName + " <span class='nodeId'>(" + item.Id + ") </span>";
|
|
},
|
|
focus: function (event, ui) {
|
|
$(ui).attr("title", $(ui).find("span[title]").attr("title"));
|
|
}
|
|
};
|
|
|
|
$(this)
|
|
.autocomplete(url, acOptions)
|
|
.result(function (e, data) {
|
|
|
|
var url = "";
|
|
switch (getSearchApp()) {
|
|
case "Media":
|
|
url = "editMedia.aspx";
|
|
break;
|
|
case "Content":
|
|
url = "editContent.aspx";
|
|
break;
|
|
case "Member":
|
|
url = "members/editMember.aspx";
|
|
break;
|
|
default:
|
|
url = "editContent.aspx";
|
|
}
|
|
UmbClientMgr.contentFrame().location.href = url + "?id=" + data.Id;
|
|
$("#umbSearchField").val(UmbClientMgr.uiKeys()["general_typeToSearch"]);
|
|
right.focus();
|
|
});
|
|
|
|
|
|
$(this).focus(function () {
|
|
$(this).val('');
|
|
});
|
|
|
|
$(this).blur(function () {
|
|
$(this).val(UmbClientMgr.uiKeys()["general_typeToSearch"]);
|
|
});
|
|
|
|
$(this).keyup(function (e) {
|
|
if (e.keyCode == 13) {
|
|
|
|
UmbClientMgr.openModalWindow('dialogs/search.aspx?rndo=' + Umbraco.Utils.generateRandom() + '&search=' + jQuery(this).val() + '&app=' + getSearchApp(), 'Search', true, 620, 470);
|
|
return false;
|
|
}
|
|
});
|
|
}
|
|
|
|
})(jQuery); |