mirror of
https://gitee.com/dotnetchina/OpenAuth.Net.git
synced 2026-08-05 18:32:25 +08:00
删除AceAdmin界面,使用基于bootstrap的B-JUI前端构架
This commit is contained in:
4
OpenAuth.Mvc/BJUI/other/html5shiv.min.js
vendored
Normal file
4
OpenAuth.Mvc/BJUI/other/html5shiv.min.js
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
/**
|
||||
* @preserve HTML5 Shiv 3.7.2 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
|
||||
*/
|
||||
!function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=t.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=t.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),t.elements=c+" "+a,j(b)}function f(a){var b=s[a[q]];return b||(b={},r++,a[q]=r,s[r]=b),b}function g(a,c,d){if(c||(c=b),l)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():p.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||o.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),l)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return t.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(t,b.frag)}function j(a){a||(a=b);var d=f(a);return!t.shivCSS||k||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),l||i(a,d),a}var k,l,m="3.7.2",n=a.html5||{},o=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,p=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,q="_html5shiv",r=0,s={};!function(){try{var a=b.createElement("a");a.innerHTML="<xyz></xyz>",k="hidden"in a,l=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){k=!0,l=!0}}();var t={elements:n.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:m,shivCSS:n.shivCSS!==!1,supportsUnknownElements:l,shivMethods:n.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=t,j(b)}(this,document);
|
||||
247
OpenAuth.Mvc/BJUI/other/jquery.iframe-transport.js
Normal file
247
OpenAuth.Mvc/BJUI/other/jquery.iframe-transport.js
Normal file
@@ -0,0 +1,247 @@
|
||||
// This [jQuery](https://jquery.com/) plugin implements an `<iframe>`
|
||||
// [transport](https://api.jquery.com/jQuery.ajax/#extending-ajax) so that
|
||||
// `$.ajax()` calls support the uploading of files using standard HTML file
|
||||
// input fields. This is done by switching the exchange from `XMLHttpRequest`
|
||||
// to a hidden `iframe` element containing a form that is submitted.
|
||||
|
||||
// The [source for the plugin](https://github.com/cmlenz/jquery-iframe-transport)
|
||||
// is available on [Github](https://github.com/) and licensed under the [MIT
|
||||
// license](https://github.com/cmlenz/jquery-iframe-transport/blob/master/LICENSE).
|
||||
|
||||
// ## Usage
|
||||
|
||||
// To use this plugin, you simply add an `iframe` option with the value `true`
|
||||
// to the Ajax settings an `$.ajax()` call, and specify the file fields to
|
||||
// include in the submssion using the `files` option, which can be a selector,
|
||||
// jQuery object, or a list of DOM elements containing one or more
|
||||
// `<input type="file">` elements:
|
||||
|
||||
// $("#myform").submit(function() {
|
||||
// $.ajax(this.action, {
|
||||
// files: $(":file", this),
|
||||
// iframe: true
|
||||
// }).complete(function(data) {
|
||||
// console.log(data);
|
||||
// });
|
||||
// });
|
||||
|
||||
// The plugin will construct hidden `<iframe>` and `<form>` elements, add the
|
||||
// file field(s) to that form, submit the form, and process the response.
|
||||
|
||||
// If you want to include other form fields in the form submission, include
|
||||
// them in the `data` option, and set the `processData` option to `false`:
|
||||
|
||||
// $("#myform").submit(function() {
|
||||
// $.ajax(this.action, {
|
||||
// data: $(":text", this).serializeArray(),
|
||||
// files: $(":file", this),
|
||||
// iframe: true,
|
||||
// processData: false
|
||||
// }).complete(function(data) {
|
||||
// console.log(data);
|
||||
// });
|
||||
// });
|
||||
|
||||
// ### Response Data Types
|
||||
|
||||
// As the transport does not have access to the HTTP headers of the server
|
||||
// response, it is not as simple to make use of the automatic content type
|
||||
// detection provided by jQuery as with regular XHR. If you can't set the
|
||||
// expected response data type (for example because it may vary depending on
|
||||
// the outcome of processing by the server), you will need to employ a
|
||||
// workaround on the server side: Send back an HTML document containing just a
|
||||
// `<textarea>` element with a `data-type` attribute that specifies the MIME
|
||||
// type, and put the actual payload in the textarea:
|
||||
|
||||
// <textarea data-type="application/json">
|
||||
// {"ok": true, "message": "Thanks so much"}
|
||||
// </textarea>
|
||||
|
||||
// The iframe transport plugin will detect this and pass the value of the
|
||||
// `data-type` attribute on to jQuery as if it was the "Content-Type" response
|
||||
// header, thereby enabling the same kind of conversions that jQuery applies
|
||||
// to regular responses. For the example above you should get a Javascript
|
||||
// object as the `data` parameter of the `complete` callback, with the
|
||||
// properties `ok: true` and `message: "Thanks so much"`.
|
||||
|
||||
// ### Handling Server Errors
|
||||
|
||||
// Another problem with using an `iframe` for file uploads is that it is
|
||||
// impossible for the javascript code to determine the HTTP status code of the
|
||||
// servers response. Effectively, all of the calls you make will look like they
|
||||
// are getting successful responses, and thus invoke the `done()` or
|
||||
// `complete()` callbacks. You can only communicate problems using the content
|
||||
// of the response payload. For example, consider using a JSON response such as
|
||||
// the following to indicate a problem with an uploaded file:
|
||||
|
||||
// <textarea data-type="application/json">
|
||||
// {"ok": false, "message": "Please only upload reasonably sized files."}
|
||||
// </textarea>
|
||||
|
||||
// ### Compatibility
|
||||
|
||||
// This plugin has primarily been tested on Safari 5 (or later), Firefox 4 (or
|
||||
// later), and Internet Explorer (all the way back to version 6). While I
|
||||
// haven't found any issues with it so far, I'm fairly sure it still doesn't
|
||||
// work around all the quirks in all different browsers. But the code is still
|
||||
// pretty simple overall, so you should be able to fix it and contribute a
|
||||
// patch :)
|
||||
|
||||
// ## Annotated Source
|
||||
|
||||
(function($, undefined) {
|
||||
"use strict";
|
||||
|
||||
// Register a prefilter that checks whether the `iframe` option is set, and
|
||||
// switches to the "iframe" data type if it is `true`.
|
||||
$.ajaxPrefilter(function(options, origOptions, jqXHR) {
|
||||
if (options.iframe) {
|
||||
options.originalURL = options.url;
|
||||
return "iframe";
|
||||
}
|
||||
});
|
||||
|
||||
// Register a transport for the "iframe" data type. It will only activate
|
||||
// when the "files" option has been set to a non-empty list of enabled file
|
||||
// inputs.
|
||||
$.ajaxTransport("iframe", function(options, origOptions, jqXHR) {
|
||||
var form = null,
|
||||
iframe = null,
|
||||
name = "iframe-" + $.now(),
|
||||
files = $(options.files).filter(":file:enabled"),
|
||||
markers = null,
|
||||
accepts = null;
|
||||
|
||||
// This function gets called after a successful submission or an abortion
|
||||
// and should revert all changes made to the page to enable the
|
||||
// submission via this transport.
|
||||
function cleanUp() {
|
||||
files.each(function(i, file) {
|
||||
var $file = $(file);
|
||||
$file.data("clone").replaceWith($file);
|
||||
});
|
||||
form.remove();
|
||||
iframe.one("load", function() { iframe.remove(); });
|
||||
iframe.attr("src", "javascript:false;");
|
||||
}
|
||||
|
||||
// Remove "iframe" from the data types list so that further processing is
|
||||
// based on the content type returned by the server, without attempting an
|
||||
// (unsupported) conversion from "iframe" to the actual type.
|
||||
options.dataTypes.shift();
|
||||
|
||||
// Use the data from the original AJAX options, as it doesn't seem to be
|
||||
// copied over since jQuery 1.7.
|
||||
// See https://github.com/cmlenz/jquery-iframe-transport/issues/6
|
||||
options.data = origOptions.data;
|
||||
|
||||
if (files.length) {
|
||||
form = $("<form enctype='multipart/form-data' method='post'></form>").
|
||||
hide().attr({action: options.originalURL, target: name});
|
||||
|
||||
// If there is any additional data specified via the `data` option,
|
||||
// we add it as hidden fields to the form. This (currently) requires
|
||||
// the `processData` option to be set to false so that the data doesn't
|
||||
// get serialized to a string.
|
||||
if (typeof(options.data) === "string" && options.data.length > 0) {
|
||||
$.error("data must not be serialized");
|
||||
}
|
||||
$.each(options.data || {}, function(name, value) {
|
||||
if ($.isPlainObject(value)) {
|
||||
name = value.name;
|
||||
value = value.value;
|
||||
}
|
||||
$("<input type='hidden' />").attr({name: name, value: value}).
|
||||
appendTo(form);
|
||||
});
|
||||
|
||||
// Add a hidden `X-Requested-With` field with the value `IFrame` to the
|
||||
// field, to help server-side code to determine that the upload happened
|
||||
// through this transport.
|
||||
$("<input type='hidden' value='IFrame' name='X-Requested-With' />").
|
||||
appendTo(form);
|
||||
|
||||
// Borrowed straight from the JQuery source.
|
||||
// Provides a way of specifying the accepted data type similar to the
|
||||
// HTTP "Accept" header
|
||||
if (options.dataTypes[0] && options.accepts[options.dataTypes[0]]) {
|
||||
accepts = options.accepts[options.dataTypes[0]] +
|
||||
(options.dataTypes[0] !== "*" ? ", */*; q=0.01" : "");
|
||||
} else {
|
||||
accepts = options.accepts["*"];
|
||||
}
|
||||
$("<input type='hidden' name='X-HTTP-Accept'>").
|
||||
attr("value", accepts).appendTo(form);
|
||||
|
||||
// Move the file fields into the hidden form, but first remember their
|
||||
// original locations in the document by replacing them with disabled
|
||||
// clones. This should also avoid introducing unwanted changes to the
|
||||
// page layout during submission.
|
||||
markers = files.after(function(idx) {
|
||||
var $this = $(this),
|
||||
$clone = $this.clone().prop("disabled", true);
|
||||
$this.data("clone", $clone);
|
||||
return $clone;
|
||||
}).next();
|
||||
files.appendTo(form);
|
||||
|
||||
return {
|
||||
|
||||
// The `send` function is called by jQuery when the request should be
|
||||
// sent.
|
||||
send: function(headers, completeCallback) {
|
||||
iframe = $("<iframe src='javascript:false;' name='" + name +
|
||||
"' id='" + name + "' style='display:none'></iframe>");
|
||||
|
||||
// The first load event gets fired after the iframe has been injected
|
||||
// into the DOM, and is used to prepare the actual submission.
|
||||
iframe.one("load", function() {
|
||||
|
||||
// The second load event gets fired when the response to the form
|
||||
// submission is received. The implementation detects whether the
|
||||
// actual payload is embedded in a `<textarea>` element, and
|
||||
// prepares the required conversions to be made in that case.
|
||||
iframe.one("load", function() {
|
||||
var doc = this.contentWindow ? this.contentWindow.document :
|
||||
(this.contentDocument ? this.contentDocument : this.document),
|
||||
root = doc.documentElement ? doc.documentElement : doc.body,
|
||||
textarea = root.getElementsByTagName("textarea")[0],
|
||||
type = textarea && textarea.getAttribute("data-type") || null,
|
||||
status = textarea && textarea.getAttribute("data-status") || 200,
|
||||
statusText = textarea && textarea.getAttribute("data-statusText") || "OK",
|
||||
content = {
|
||||
html: root.innerHTML,
|
||||
text: type ?
|
||||
textarea.value :
|
||||
root ? (root.textContent || root.innerText) : null
|
||||
};
|
||||
cleanUp();
|
||||
completeCallback(status, statusText, content, type ?
|
||||
("Content-Type: " + type) :
|
||||
null);
|
||||
});
|
||||
|
||||
// Now that the load handler has been set up, submit the form.
|
||||
form[0].submit();
|
||||
});
|
||||
|
||||
// After everything has been set up correctly, the form and iframe
|
||||
// get injected into the DOM so that the submission can be
|
||||
// initiated.
|
||||
$("body").append(form, iframe);
|
||||
},
|
||||
|
||||
// The `abort` function is called by jQuery when the request should be
|
||||
// aborted.
|
||||
abort: function() {
|
||||
if (iframe !== null) {
|
||||
iframe.unbind("load").attr("src", "javascript:false;");
|
||||
cleanUp();
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
})(jQuery);
|
||||
5
OpenAuth.Mvc/BJUI/other/respond.min.js
vendored
Normal file
5
OpenAuth.Mvc/BJUI/other/respond.min.js
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
/*! Respond.js v1.4.2: min/max-width media query polyfill * Copyright 2013 Scott Jehl
|
||||
* Licensed under https://github.com/scottjehl/Respond/blob/master/LICENSE-MIT
|
||||
* */
|
||||
|
||||
!function(a){"use strict";a.matchMedia=a.matchMedia||function(a){var b,c=a.documentElement,d=c.firstElementChild||c.firstChild,e=a.createElement("body"),f=a.createElement("div");return f.id="mq-test-1",f.style.cssText="position:absolute;top:-100em",e.style.background="none",e.appendChild(f),function(a){return f.innerHTML='­<style media="'+a+'"> #mq-test-1 { width: 42px; }</style>',c.insertBefore(e,d),b=42===f.offsetWidth,c.removeChild(e),{matches:b,media:a}}}(a.document)}(this),function(a){"use strict";function b(){u(!0)}var c={};a.respond=c,c.update=function(){};var d=[],e=function(){var b=!1;try{b=new a.XMLHttpRequest}catch(c){b=new a.ActiveXObject("Microsoft.XMLHTTP")}return function(){return b}}(),f=function(a,b){var c=e();c&&(c.open("GET",a,!0),c.onreadystatechange=function(){4!==c.readyState||200!==c.status&&304!==c.status||b(c.responseText)},4!==c.readyState&&c.send(null))};if(c.ajax=f,c.queue=d,c.regex={media:/@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+/gi,keyframes:/@(?:\-(?:o|moz|webkit)\-)?keyframes[^\{]+\{(?:[^\{\}]*\{[^\}\{]*\})+[^\}]*\}/gi,urls:/(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g,findStyles:/@media *([^\{]+)\{([\S\s]+?)$/,only:/(only\s+)?([a-zA-Z]+)\s?/,minw:/\([\s]*min\-width\s*:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/,maxw:/\([\s]*max\-width\s*:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/},c.mediaQueriesSupported=a.matchMedia&&null!==a.matchMedia("only all")&&a.matchMedia("only all").matches,!c.mediaQueriesSupported){var g,h,i,j=a.document,k=j.documentElement,l=[],m=[],n=[],o={},p=30,q=j.getElementsByTagName("head")[0]||k,r=j.getElementsByTagName("base")[0],s=q.getElementsByTagName("link"),t=function(){var a,b=j.createElement("div"),c=j.body,d=k.style.fontSize,e=c&&c.style.fontSize,f=!1;return b.style.cssText="position:absolute;font-size:1em;width:1em",c||(c=f=j.createElement("body"),c.style.background="none"),k.style.fontSize="100%",c.style.fontSize="100%",c.appendChild(b),f&&k.insertBefore(c,k.firstChild),a=b.offsetWidth,f?k.removeChild(c):c.removeChild(b),k.style.fontSize=d,e&&(c.style.fontSize=e),a=i=parseFloat(a)},u=function(b){var c="clientWidth",d=k[c],e="CSS1Compat"===j.compatMode&&d||j.body[c]||d,f={},o=s[s.length-1],r=(new Date).getTime();if(b&&g&&p>r-g)return a.clearTimeout(h),h=a.setTimeout(u,p),void 0;g=r;for(var v in l)if(l.hasOwnProperty(v)){var w=l[v],x=w.minw,y=w.maxw,z=null===x,A=null===y,B="em";x&&(x=parseFloat(x)*(x.indexOf(B)>-1?i||t():1)),y&&(y=parseFloat(y)*(y.indexOf(B)>-1?i||t():1)),w.hasquery&&(z&&A||!(z||e>=x)||!(A||y>=e))||(f[w.media]||(f[w.media]=[]),f[w.media].push(m[w.rules]))}for(var C in n)n.hasOwnProperty(C)&&n[C]&&n[C].parentNode===q&&q.removeChild(n[C]);n.length=0;for(var D in f)if(f.hasOwnProperty(D)){var E=j.createElement("style"),F=f[D].join("\n");E.type="text/css",E.media=D,q.insertBefore(E,o.nextSibling),E.styleSheet?E.styleSheet.cssText=F:E.appendChild(j.createTextNode(F)),n.push(E)}},v=function(a,b,d){var e=a.replace(c.regex.keyframes,"").match(c.regex.media),f=e&&e.length||0;b=b.substring(0,b.lastIndexOf("/"));var g=function(a){return a.replace(c.regex.urls,"$1"+b+"$2$3")},h=!f&&d;b.length&&(b+="/"),h&&(f=1);for(var i=0;f>i;i++){var j,k,n,o;h?(j=d,m.push(g(a))):(j=e[i].match(c.regex.findStyles)&&RegExp.$1,m.push(RegExp.$2&&g(RegExp.$2))),n=j.split(","),o=n.length;for(var p=0;o>p;p++)k=n[p],l.push({media:k.split("(")[0].match(c.regex.only)&&RegExp.$2||"all",rules:m.length-1,hasquery:k.indexOf("(")>-1,minw:k.match(c.regex.minw)&&parseFloat(RegExp.$1)+(RegExp.$2||""),maxw:k.match(c.regex.maxw)&&parseFloat(RegExp.$1)+(RegExp.$2||"")})}u()},w=function(){if(d.length){var b=d.shift();f(b.href,function(c){v(c,b.href,b.media),o[b.href]=!0,a.setTimeout(function(){w()},0)})}},x=function(){for(var b=0;b<s.length;b++){var c=s[b],e=c.href,f=c.media,g=c.rel&&"stylesheet"===c.rel.toLowerCase();e&&g&&!o[e]&&(c.styleSheet&&c.styleSheet.rawCssText?(v(c.styleSheet.rawCssText,e,f),o[e]=!0):(!/^([a-zA-Z:]*\/\/)/.test(e)&&!r||e.replace(RegExp.$1,"").split("/")[0]===a.location.host)&&("//"===e.substring(0,2)&&(e=a.location.protocol+e),d.push({href:e,media:f})))}w()};x(),c.update=x,c.getEmValue=t,a.addEventListener?a.addEventListener("resize",b,!1):a.attachEvent&&a.attachEvent("onresize",b)}}(this);
|
||||
Reference in New Issue
Block a user