forked from HerbertBodner/webapp-core
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
add jquery.unobtrusive-ajax; configure startup services
- Loading branch information
1 parent
0c52b1e
commit 2142cdb
Showing
10 changed files
with
323 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
using System; | ||
using System.Collections.Generic; | ||
using System.Linq; | ||
using System.Threading.Tasks; | ||
using Microsoft.Data.Entity; | ||
using WaCore.Contracts.Data.Repositories.Base; | ||
using Microsoft.Data.Entity; | ||
|
||
namespace Example.Data | ||
{ | ||
public class ExampleContextFactory : IDbContextFactory | ||
{ | ||
public IDbContext GetContext() | ||
{ | ||
var optionsBuilder = new DbContextOptionsBuilder(); | ||
optionsBuilder.UseSqlServer("Server=(localdb)\\MSSQLLocalDB;Database=WaCoreExample;Trusted_Connection=True;"); | ||
return new ExampleDbContext(optionsBuilder.Options); | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,7 @@ | ||
| ||
//function RefreshPageUrl(data, status, xhr, abc) { | ||
// debugger; | ||
|
||
// if (history.pushState) { | ||
// history.pushState(null, "selle", "/User/Index?SearchConfig.Search=a&__RequestVerificationToken=CfDJ8HYT9lfm8ARJjuHKk1f_KwnFvUMSAFDM-PlwcE7Ngf6GKj823-HYxcV_a23PRv9f1Ly2HriSMbbnTu638h4CqrQbh448RDUUyk97CFRSIs_zg6yU9xaUoqesOACBbbPtGDyAECu5tCl6HjRVv27xtY4&X-R"); | ||
// } | ||
//} |
42 changes: 42 additions & 0 deletions
42
src/Example.Web/wwwroot/lib/jquery-ajax-unobtrusive/.bower.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
{ | ||
"name": "jquery-ajax-unobtrusive", | ||
"version": "3.2.3", | ||
"homepage": "https://github.com/aspnet/jquery-ajax-unobtrusive", | ||
"description": "Add-on to jQuery Ajax to enable unobtrusive options in data-* attributes", | ||
"main": [ | ||
"jquery.unobtrusive-ajax.js" | ||
], | ||
"ignore": [ | ||
"**/.*", | ||
"*.json", | ||
"*.md", | ||
"*.txt" | ||
], | ||
"keywords": [ | ||
"jquery", | ||
"asp.net", | ||
"mvc", | ||
"ajax", | ||
"unobtrusive" | ||
], | ||
"authors": [ | ||
"Microsoft" | ||
], | ||
"license": "http://www.microsoft.com/web/webpi/eula/net_library_eula_enu.htm", | ||
"repository": { | ||
"type": "git", | ||
"url": "git://github.com/aspnet/jquery-ajax-unobtrusive.git" | ||
}, | ||
"dependencies": { | ||
"jquery": ">=1.8" | ||
}, | ||
"_release": "3.2.3", | ||
"_resolution": { | ||
"type": "version", | ||
"tag": "v3.2.3", | ||
"commit": "ff31f3542e75b57ed354e6ddc79d134ab2e00b78" | ||
}, | ||
"_source": "git://github.com/aspnet/jquery-ajax-unobtrusive.git", | ||
"_target": "*", | ||
"_originalSource": "jquery-ajax-unobtrusive" | ||
} |
33 changes: 33 additions & 0 deletions
33
src/Example.Web/wwwroot/lib/jquery-ajax-unobtrusive/bower.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
{ | ||
"name": "jquery-ajax-unobtrusive", | ||
"version": "3.2.3", | ||
"homepage": "https://github.com/aspnet/jquery-ajax-unobtrusive", | ||
"description": "Add-on to jQuery Ajax to enable unobtrusive options in data-* attributes", | ||
"main": [ | ||
"jquery.unobtrusive-ajax.js" | ||
], | ||
"ignore": [ | ||
"**/.*", | ||
"*.json", | ||
"*.md", | ||
"*.txt" | ||
], | ||
"keywords": [ | ||
"jquery", | ||
"asp.net", | ||
"mvc", | ||
"ajax", | ||
"unobtrusive" | ||
], | ||
"authors": [ | ||
"Microsoft" | ||
], | ||
"license": "http://www.microsoft.com/web/webpi/eula/net_library_eula_enu.htm", | ||
"repository": { | ||
"type": "git", | ||
"url": "git://github.com/aspnet/jquery-ajax-unobtrusive.git" | ||
}, | ||
"dependencies": { | ||
"jquery": ">=1.8" | ||
} | ||
} |
186 changes: 186 additions & 0 deletions
186
src/Example.Web/wwwroot/lib/jquery-ajax-unobtrusive/jquery.unobtrusive-ajax.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,186 @@ | ||
/* | ||
* Microsoft grants you the right to use these script files for the sole | ||
* purpose of either: (i) interacting through your browser with the Microsoft | ||
* website or online service, subject to the applicable licensing or use | ||
* terms; or (ii) using the files as included with a Microsoft product subject | ||
* to that product's license terms. Microsoft reserves all other rights to the | ||
* files not expressly granted by Microsoft, whether by implication, estoppel | ||
* or otherwise. Insofar as a script file is dual licensed under GPL, | ||
* Microsoft neither took the code under GPL nor distributes it thereunder but | ||
* under the terms set out in this paragraph. All notices and licenses | ||
* below are for informational purposes only. | ||
/*! | ||
** Unobtrusive Ajax support library for jQuery | ||
** Copyright (C) Microsoft Corporation. All rights reserved. | ||
*/ | ||
|
||
/*jslint white: true, browser: true, onevar: true, undef: true, nomen: true, eqeqeq: true, plusplus: true, bitwise: true, regexp: true, newcap: true, immed: true, strict: false */ | ||
/*global window: false, jQuery: false */ | ||
|
||
(function ($) { | ||
var data_click = "unobtrusiveAjaxClick", | ||
data_target = "unobtrusiveAjaxClickTarget", | ||
data_validation = "unobtrusiveValidation"; | ||
|
||
function getFunction(code, argNames) { | ||
var fn = window, parts = (code || "").split("."); | ||
while (fn && parts.length) { | ||
fn = fn[parts.shift()]; | ||
} | ||
if (typeof (fn) === "function") { | ||
return fn; | ||
} | ||
argNames.push(code); | ||
return Function.constructor.apply(null, argNames); | ||
} | ||
|
||
function isMethodProxySafe(method) { | ||
return method === "GET" || method === "POST"; | ||
} | ||
|
||
function asyncOnBeforeSend(xhr, method) { | ||
if (!isMethodProxySafe(method)) { | ||
xhr.setRequestHeader("X-HTTP-Method-Override", method); | ||
} | ||
} | ||
|
||
function asyncOnSuccess(element, data, contentType) { | ||
var mode; | ||
|
||
if (contentType.indexOf("application/x-javascript") !== -1) { // jQuery already executes JavaScript for us | ||
return; | ||
} | ||
|
||
mode = (element.getAttribute("data-ajax-mode") || "").toUpperCase(); | ||
$(element.getAttribute("data-ajax-update")).each(function (i, update) { | ||
var top; | ||
|
||
switch (mode) { | ||
case "BEFORE": | ||
top = update.firstChild; | ||
$("<div />").html(data).contents().each(function () { | ||
update.insertBefore(this, top); | ||
}); | ||
break; | ||
case "AFTER": | ||
$("<div />").html(data).contents().each(function () { | ||
update.appendChild(this); | ||
}); | ||
break; | ||
case "REPLACE-WITH": | ||
$(update).replaceWith(data); | ||
break; | ||
default: | ||
$(update).html(data); | ||
break; | ||
} | ||
}); | ||
} | ||
|
||
function asyncRequest(element, options) { | ||
var confirm, loading, method, duration; | ||
|
||
confirm = element.getAttribute("data-ajax-confirm"); | ||
if (confirm && !window.confirm(confirm)) { | ||
return; | ||
} | ||
|
||
loading = $(element.getAttribute("data-ajax-loading")); | ||
duration = parseInt(element.getAttribute("data-ajax-loading-duration"), 10) || 0; | ||
|
||
$.extend(options, { | ||
type: element.getAttribute("data-ajax-method") || undefined, | ||
url: element.getAttribute("data-ajax-url") || undefined, | ||
cache: !!element.getAttribute("data-ajax-cache"), | ||
beforeSend: function (xhr) { | ||
var result; | ||
asyncOnBeforeSend(xhr, method); | ||
result = getFunction(element.getAttribute("data-ajax-begin"), ["xhr"]).apply(element, arguments); | ||
if (result !== false) { | ||
loading.show(duration); | ||
} | ||
return result; | ||
}, | ||
complete: function () { | ||
loading.hide(duration); | ||
getFunction(element.getAttribute("data-ajax-complete"), ["xhr", "status"]).apply(element, arguments); | ||
}, | ||
success: function (data, status, xhr) { | ||
asyncOnSuccess(element, data, xhr.getResponseHeader("Content-Type") || "text/html"); | ||
getFunction(element.getAttribute("data-ajax-success"), ["data", "status", "xhr"]).apply(element, arguments); | ||
}, | ||
error: function () { | ||
getFunction(element.getAttribute("data-ajax-failure"), ["xhr", "status", "error"]).apply(element, arguments); | ||
} | ||
}); | ||
|
||
options.data.push({ name: "X-Requested-With", value: "XMLHttpRequest" }); | ||
|
||
method = options.type.toUpperCase(); | ||
if (!isMethodProxySafe(method)) { | ||
options.type = "POST"; | ||
options.data.push({ name: "X-HTTP-Method-Override", value: method }); | ||
} | ||
|
||
$.ajax(options); | ||
} | ||
|
||
function validate(form) { | ||
var validationInfo = $(form).data(data_validation); | ||
return !validationInfo || !validationInfo.validate || validationInfo.validate(); | ||
} | ||
|
||
$(document).on("click", "a[data-ajax=true]", function (evt) { | ||
evt.preventDefault(); | ||
asyncRequest(this, { | ||
url: this.href, | ||
type: "GET", | ||
data: [] | ||
}); | ||
}); | ||
|
||
$(document).on("click", "form[data-ajax=true] input[type=image]", function (evt) { | ||
var name = evt.target.name, | ||
target = $(evt.target), | ||
form = $(target.parents("form")[0]), | ||
offset = target.offset(); | ||
|
||
form.data(data_click, [ | ||
{ name: name + ".x", value: Math.round(evt.pageX - offset.left) }, | ||
{ name: name + ".y", value: Math.round(evt.pageY - offset.top) } | ||
]); | ||
|
||
setTimeout(function () { | ||
form.removeData(data_click); | ||
}, 0); | ||
}); | ||
|
||
$(document).on("click", "form[data-ajax=true] :submit", function (evt) { | ||
var name = evt.currentTarget.name, | ||
target = $(evt.target), | ||
form = $(target.parents("form")[0]); | ||
|
||
form.data(data_click, name ? [{ name: name, value: evt.currentTarget.value }] : []); | ||
form.data(data_target, target); | ||
|
||
setTimeout(function () { | ||
form.removeData(data_click); | ||
form.removeData(data_target); | ||
}, 0); | ||
}); | ||
|
||
$(document).on("submit", "form[data-ajax=true]", function (evt) { | ||
var clickInfo = $(this).data(data_click) || [], | ||
clickTarget = $(this).data(data_target), | ||
isCancel = clickTarget && clickTarget.hasClass("cancel"); | ||
evt.preventDefault(); | ||
if (!isCancel && !validate(this)) { | ||
return; | ||
} | ||
asyncRequest(this, { | ||
url: this.action, | ||
type: this.method || "GET", | ||
data: clickInfo.concat($(this).serializeArray()) | ||
}); | ||
}); | ||
}(jQuery)); |
19 changes: 19 additions & 0 deletions
19
src/Example.Web/wwwroot/lib/jquery-ajax-unobtrusive/jquery.unobtrusive-ajax.min.js
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.