mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-08-05 13:00:12 +03:00
Authentication token modal & licenses
This commit is contained in:
parent
e6018bbbc3
commit
9bf616677d
22
licenses/bootstrap.md
Normal file
22
licenses/bootstrap.md
Normal file
|
@ -0,0 +1,22 @@
|
|||
https://github.com/twbs/bootstrap/
|
||||
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2011-2016 Twitter, Inc.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
22
licenses/jquery.json-view.md
Normal file
22
licenses/jquery.json-view.md
Normal file
|
@ -0,0 +1,22 @@
|
|||
https://github.com/bazh/jquery.json-view/
|
||||
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2014 bazh. (http://github.com/bazh)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
this software and associated documentation files (the "Software"), to deal in
|
||||
the Software without restriction, including without limitation the rights to
|
||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||
the Software, and to permit persons to whom the Software is furnished to do so,
|
||||
subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
11
rest_framework/static/rest_framework/docs/css/jquery.json-view.min.css
vendored
Executable file
11
rest_framework/static/rest_framework/docs/css/jquery.json-view.min.css
vendored
Executable file
|
@ -0,0 +1,11 @@
|
|||
.json-view{position:relative}
|
||||
.json-view .collapser{width:20px;height:18px;display:block;position:absolute;left:-1.7em;top:-.2em;z-index:5;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAD1JREFUeNpiYGBgOADE%2F3Hgw0DM4IRHgSsDFOzFInmMAQnY49ONzZRjDFiADT7dMLALiE8y4AGW6LoBAgwAuIkf%2F%2FB7O9sAAAAASUVORK5CYII%3D);background-repeat:no-repeat;background-position:center center;opacity:.5;cursor:pointer}
|
||||
.json-view .collapsed{-ms-transform:rotate(-90deg);-moz-transform:rotate(-90deg);-khtml-transform:rotate(-90deg);-webkit-transform:rotate(-90deg);-o-transform:rotate(-90deg);transform:rotate(-90deg)}
|
||||
.json-view .bl{display:block;padding-left:20px;margin-left:-20px;position:relative}
|
||||
.json-view{font-family:monospace}
|
||||
.json-view ul{list-style-type:none;padding-left:2em;border-left:1px dotted;margin:.3em}
|
||||
.json-view ul li{position:relative}
|
||||
.json-view .comments,.json-view .dots{display:none;-moz-user-select:none;-ms-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;user-select:none}
|
||||
.json-view .comments{padding-left:.8em;font-style:italic;color:#888}
|
||||
.json-view .bool,.json-view .null,.json-view .num,.json-view .undef{font-weight:700;color:#1A01CC}
|
||||
.json-view .str{color:#800}
|
7
rest_framework/static/rest_framework/docs/js/jquery.json-view.min.js
vendored
Executable file
7
rest_framework/static/rest_framework/docs/js/jquery.json-view.min.js
vendored
Executable file
|
@ -0,0 +1,7 @@
|
|||
/**
|
||||
* jquery.json-view - jQuery collapsible JSON plugin
|
||||
* @version v1.0.0
|
||||
* @link http://github.com/bazh/jquery.json-view
|
||||
* @license MIT
|
||||
*/
|
||||
!function(e){"use strict";var n=function(n){var a=e("<span />",{"class":"collapser",on:{click:function(){var n=e(this);n.toggleClass("collapsed");var a=n.parent().children(".block"),p=a.children("ul");n.hasClass("collapsed")?(p.hide(),a.children(".dots, .comments").show()):(p.show(),a.children(".dots, .comments").hide())}}});return n&&a.addClass("collapsed"),a},a=function(a,p){var t=e.extend({},{nl2br:!0},p),r=function(e){return e.toString()?e.toString().replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">"):""},s=function(n,a){return e("<span />",{"class":a,html:r(n)})},l=function(a,p){switch(e.type(a)){case"object":p||(p=0);var c=e("<span />",{"class":"block"}),d=Object.keys(a).length;if(!d)return c.append(s("{","b")).append(" ").append(s("}","b"));c.append(s("{","b"));var i=e("<ul />",{"class":"obj collapsible level"+p});return e.each(a,function(a,t){d--;var r=e("<li />").append(s('"',"q")).append(a).append(s('"',"q")).append(": ").append(l(t,p+1));-1===["object","array"].indexOf(e.type(t))||e.isEmptyObject(t)||r.prepend(n()),d>0&&r.append(","),i.append(r)}),c.append(i),c.append(s("...","dots")),c.append(s("}","b")),c.append(1===Object.keys(a).length?s("// 1 item","comments"):s("// "+Object.keys(a).length+" items","comments")),c;case"array":p||(p=0);var d=a.length,c=e("<span />",{"class":"block"});if(!d)return c.append(s("[","b")).append(" ").append(s("]","b"));c.append(s("[","b"));var i=e("<ul />",{"class":"obj collapsible level"+p});return e.each(a,function(a,t){d--;var r=e("<li />").append(l(t,p+1));-1===["object","array"].indexOf(e.type(t))||e.isEmptyObject(t)||r.prepend(n()),d>0&&r.append(","),i.append(r)}),c.append(i),c.append(s("...","dots")),c.append(s("]","b")),c.append(1===a.length?s("// 1 item","comments"):s("// "+a.length+" items","comments")),c;case"string":if(a=r(a),/^(http|https|file):\/\/[^\s]+$/i.test(a))return e("<span />").append(s('"',"q")).append(e("<a />",{href:a,text:a})).append(s('"',"q"));if(t.nl2br){var o=/\n/g;o.test(a)&&(a=(a+"").replace(o,"<br />"))}var u=e("<span />",{"class":"str"}).html(a);return e("<span />").append(s('"',"q")).append(u).append(s('"',"q"));case"number":return s(a.toString(),"num");case"undefined":return s("undefined","undef");case"null":return s("null","null");case"boolean":return s(a?"true":"false","bool")}};return l(a)};return e.fn.jsonView=function(n,p){var t=e(this);if(p=e.extend({},{nl2br:!0},p),"string"==typeof n)try{n=JSON.parse(n)}catch(r){}return t.append(e("<div />",{"class":"json-view"}).append(a(n,p))),t}}(jQuery);
|
31
rest_framework/templates/rest_framework/docs/auth/token.html
Normal file
31
rest_framework/templates/rest_framework/docs/auth/token.html
Normal file
|
@ -0,0 +1,31 @@
|
|||
{% load rest_framework %}
|
||||
|
||||
<!-- Modal -->
|
||||
<div class="modal fade auth-modal auth-token" id="auth_token_modal" tabindex="-1" role="dialog" aria-labelledby="token authentication modal">
|
||||
<div class="modal-dialog modal-md" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h3 class="modal-title"><i class="fa fa-key"></i> Authentication Token</h3>
|
||||
</div>
|
||||
|
||||
<form class="form-horizontal authentication-form">
|
||||
<div class="modal-body">
|
||||
<div class="form-group">
|
||||
<label for="authorization" class="col-sm-2 control-label">Authorization:</label>
|
||||
|
||||
<div class="col-sm-10">
|
||||
<input type="text" class="form-control" id="authorization" placeholder="Bearer XXXX-XXXX-XXXX-XXXX" aria-describedby="helpBlock">
|
||||
<span id="helpBlock" class="help-block">The value to include for the <code>Authorization</code> header in outgoing HTTP requests.</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
|
||||
<button type="submit" class="btn btn-primary">Submit</button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
|
@ -12,6 +12,7 @@
|
|||
<link href="{% static 'rest_framework/docs/css/bootstrap-theme.min.css' %}" rel="stylesheet">
|
||||
<link href="{% static 'rest_framework/docs/css/font-awesome-4.0.3.css' %}" rel="stylesheet">
|
||||
<link href="{% static 'rest_framework/docs/css/base.css' %}" rel="stylesheet">
|
||||
<link href="{% static 'rest_framework/docs/css/jquery.json-view.min.css' %}" rel="stylesheet">
|
||||
<style>{{ code_style }}</style>
|
||||
<style>
|
||||
.highlight {background-color: #f7f7f9}
|
||||
|
@ -38,8 +39,11 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
{% include "rest_framework/docs/auth/token.html" %}
|
||||
|
||||
<script src="{% static 'rest_framework/docs/js/jquery-1.10.2.min.js' %}"></script>
|
||||
<script src="{% static 'rest_framework/docs/js/bootstrap.min.js' %}"></script>
|
||||
<script src="{% static 'rest_framework/docs/js/jquery.json-view.min.js' %}"></script>
|
||||
<script>
|
||||
function normalizeHTTPHeader(str) {
|
||||
return (str.charAt(0).toUpperCase() + str.substring(1))
|
||||
|
@ -89,8 +93,7 @@
|
|||
})
|
||||
|
||||
// API Explorer
|
||||
|
||||
$('form').submit(function(event) {
|
||||
$('form.api-interaction').submit(function(event) {
|
||||
event.preventDefault();
|
||||
|
||||
const form = $(this).closest("form");
|
||||
|
@ -175,7 +178,7 @@
|
|||
client.action(doc, key, params).then(function (data) {
|
||||
var response = JSON.stringify(data, null, 2);
|
||||
form.find(".request-awaiting").addClass("hide")
|
||||
form.find(".response-data").text(response)
|
||||
form.find(".response-data").jsonView(response)
|
||||
form.find(".response-data").removeClass("hide")
|
||||
}).catch(function (error) {
|
||||
var response = JSON.stringify(error.content, null, 2);
|
||||
|
@ -196,6 +199,25 @@
|
|||
$(this).closest(".modal-content").find(".response-raw").addClass("hide");
|
||||
}
|
||||
});
|
||||
|
||||
$('form.authentication-form').submit(function(event) {
|
||||
event.preventDefault();
|
||||
const form = $(this).closest("form");
|
||||
const token = window.token = form.find('input').val();
|
||||
$('#auth_token_modal').modal('hide');
|
||||
|
||||
$('#auth-control').children().removeClass('active');
|
||||
|
||||
if (token) {
|
||||
$('#selected-authentication').text('token');
|
||||
$('#auth-control').find("[data-auth='token']").addClass('active');
|
||||
} else {
|
||||
$('#selected-authentication').text('none');
|
||||
$('#auth-control').find("[data-auth='none']").addClass('active');
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
|
||||
</div>
|
||||
|
||||
<form data-key='["{{ section_key }}", "{{ link_key }}"]'>
|
||||
<form data-key='["{{ section_key }}", "{{ link_key }}"]' class="api-interaction">
|
||||
<div class="modal-body">
|
||||
<div class="row">
|
||||
<div class="col-lg-6 request">
|
||||
|
|
|
@ -17,9 +17,14 @@
|
|||
</ul>
|
||||
|
||||
<ul class="menu-list menu-list-bottom">
|
||||
<li>
|
||||
<a><i class="fa fa-user fa-lg"></i> Authentication</a> <span>none</span>
|
||||
<li data-toggle="collapse" data-target="#auth-control" class="collapsed">
|
||||
<a><i class="fa fa-user fa-lg"></i> Authentication</a> <span id="selected-authentication">none</span>
|
||||
</li>
|
||||
<ul class="sub-menu out" id="auth-control">
|
||||
<li data-auth="none" class="active"><a href="#" data-language="none">none</a></li>
|
||||
<li data-auth="token" data-toggle="modal" data-target="#auth_token_modal"><a href="#">token</a></li>
|
||||
</ul>
|
||||
|
||||
<li data-toggle="collapse" data-target="#language-control" class="collapsed">
|
||||
<a><i class="fa fa-code fa-lg"></i> Source Code</a> <span id="selected-language">shell</span>
|
||||
</li>
|
||||
|
|
Loading…
Reference in New Issue
Block a user