Files
2016-11-07 12:56:17 -05:00

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);