.gitignore is now working
This commit is contained in:
1 parent
f78eb4db49
commit
4d5a3ffd0f
26 files changed
-7027
No files matched your search
@@ -1,17 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<projectDescription>
|
|
||||||
<name>leanote-public</name>
|
|
||||||
<comment>leanote, your own cloud note!</comment>
|
|
||||||
<projects>
|
|
||||||
</projects>
|
|
||||||
<buildSpec>
|
|
||||||
<buildCommand>
|
|
||||||
<name>com.googlecode.goclipse.goBuilder</name>
|
|
||||||
<arguments>
|
|
||||||
</arguments>
|
|
||||||
</buildCommand>
|
|
||||||
</buildSpec>
|
|
||||||
<natures>
|
|
||||||
<nature>goclipse.goNature</nature>
|
|
||||||
</natures>
|
|
||||||
</projectDescription>
|
|
||||||
@@ -1,545 +0,0 @@
|
|||||||
3dm=x-world/x-3dmf
|
|
||||||
3dmf=x-world/x-3dmf
|
|
||||||
7z=application/x-7z-compressed
|
|
||||||
a=application/octet-stream
|
|
||||||
aab=application/x-authorware-bin
|
|
||||||
aam=application/x-authorware-map
|
|
||||||
aas=application/x-authorware-seg
|
|
||||||
abc=text/vndabc
|
|
||||||
ace=application/x-ace-compressed
|
|
||||||
acgi=text/html
|
|
||||||
afl=video/animaflex
|
|
||||||
ai=application/postscript
|
|
||||||
aif=audio/aiff
|
|
||||||
aifc=audio/aiff
|
|
||||||
aiff=audio/aiff
|
|
||||||
aim=application/x-aim
|
|
||||||
aip=text/x-audiosoft-intra
|
|
||||||
alz=application/x-alz-compressed
|
|
||||||
ani=application/x-navi-animation
|
|
||||||
aos=application/x-nokia-9000-communicator-add-on-software
|
|
||||||
aps=application/mime
|
|
||||||
arc=application/x-arc-compressed
|
|
||||||
arj=application/arj
|
|
||||||
art=image/x-jg
|
|
||||||
asf=video/x-ms-asf
|
|
||||||
asm=text/x-asm
|
|
||||||
asp=text/asp
|
|
||||||
asx=application/x-mplayer2
|
|
||||||
au=audio/basic
|
|
||||||
avi=video/x-msvideo
|
|
||||||
avs=video/avs-video
|
|
||||||
bcpio=application/x-bcpio
|
|
||||||
bin=application/mac-binary
|
|
||||||
bmp=image/bmp
|
|
||||||
boo=application/book
|
|
||||||
book=application/book
|
|
||||||
boz=application/x-bzip2
|
|
||||||
bsh=application/x-bsh
|
|
||||||
bz2=application/x-bzip2
|
|
||||||
bz=application/x-bzip
|
|
||||||
c++=text/plain
|
|
||||||
c=text/x-c
|
|
||||||
cab=application/vnd.ms-cab-compressed
|
|
||||||
cat=application/vndms-pkiseccat
|
|
||||||
cc=text/x-c
|
|
||||||
ccad=application/clariscad
|
|
||||||
cco=application/x-cocoa
|
|
||||||
cdf=application/cdf
|
|
||||||
cer=application/pkix-cert
|
|
||||||
cha=application/x-chat
|
|
||||||
chat=application/x-chat
|
|
||||||
chrt=application/vnd.kde.kchart
|
|
||||||
class=application/java
|
|
||||||
# ? class=application/java-vm
|
|
||||||
com=text/plain
|
|
||||||
conf=text/plain
|
|
||||||
cpio=application/x-cpio
|
|
||||||
cpp=text/x-c
|
|
||||||
cpt=application/mac-compactpro
|
|
||||||
crl=application/pkcs-crl
|
|
||||||
crt=application/pkix-cert
|
|
||||||
crx=application/x-chrome-extension
|
|
||||||
csh=text/x-scriptcsh
|
|
||||||
css=text/css
|
|
||||||
csv=text/csv
|
|
||||||
cxx=text/plain
|
|
||||||
dar=application/x-dar
|
|
||||||
dcr=application/x-director
|
|
||||||
deb=application/x-debian-package
|
|
||||||
deepv=application/x-deepv
|
|
||||||
def=text/plain
|
|
||||||
der=application/x-x509-ca-cert
|
|
||||||
dif=video/x-dv
|
|
||||||
dir=application/x-director
|
|
||||||
divx=video/divx
|
|
||||||
dl=video/dl
|
|
||||||
dmg=application/x-apple-diskimage
|
|
||||||
doc=application/msword
|
|
||||||
dot=application/msword
|
|
||||||
dp=application/commonground
|
|
||||||
drw=application/drafting
|
|
||||||
dump=application/octet-stream
|
|
||||||
dv=video/x-dv
|
|
||||||
dvi=application/x-dvi
|
|
||||||
dwf=drawing/x-dwf=(old)
|
|
||||||
dwg=application/acad
|
|
||||||
dxf=application/dxf
|
|
||||||
dxr=application/x-director
|
|
||||||
el=text/x-scriptelisp
|
|
||||||
elc=application/x-bytecodeelisp=(compiled=elisp)
|
|
||||||
eml=message/rfc822
|
|
||||||
env=application/x-envoy
|
|
||||||
eps=application/postscript
|
|
||||||
es=application/x-esrehber
|
|
||||||
etx=text/x-setext
|
|
||||||
evy=application/envoy
|
|
||||||
exe=application/octet-stream
|
|
||||||
f77=text/x-fortran
|
|
||||||
f90=text/x-fortran
|
|
||||||
f=text/x-fortran
|
|
||||||
fdf=application/vndfdf
|
|
||||||
fif=application/fractals
|
|
||||||
fli=video/fli
|
|
||||||
flo=image/florian
|
|
||||||
flv=video/x-flv
|
|
||||||
flx=text/vndfmiflexstor
|
|
||||||
fmf=video/x-atomic3d-feature
|
|
||||||
for=text/x-fortran
|
|
||||||
fpx=image/vndfpx
|
|
||||||
frl=application/freeloader
|
|
||||||
funk=audio/make
|
|
||||||
g3=image/g3fax
|
|
||||||
g=text/plain
|
|
||||||
gif=image/gif
|
|
||||||
gl=video/gl
|
|
||||||
gsd=audio/x-gsm
|
|
||||||
gsm=audio/x-gsm
|
|
||||||
gsp=application/x-gsp
|
|
||||||
gss=application/x-gss
|
|
||||||
gtar=application/x-gtar
|
|
||||||
gz=application/x-compressed
|
|
||||||
gzip=application/x-gzip
|
|
||||||
h=text/x-h
|
|
||||||
hdf=application/x-hdf
|
|
||||||
help=application/x-helpfile
|
|
||||||
hgl=application/vndhp-hpgl
|
|
||||||
hh=text/x-h
|
|
||||||
hlb=text/x-script
|
|
||||||
hlp=application/hlp
|
|
||||||
hpg=application/vndhp-hpgl
|
|
||||||
hpgl=application/vndhp-hpgl
|
|
||||||
hqx=application/binhex
|
|
||||||
hta=application/hta
|
|
||||||
htc=text/x-component
|
|
||||||
htm=text/html
|
|
||||||
html=text/html
|
|
||||||
htmls=text/html
|
|
||||||
htt=text/webviewhtml
|
|
||||||
htx=text/html
|
|
||||||
ice=x-conference/x-cooltalk
|
|
||||||
ico=image/x-icon
|
|
||||||
ics=text/calendar
|
|
||||||
icz=text/calendar
|
|
||||||
idc=text/plain
|
|
||||||
ief=image/ief
|
|
||||||
iefs=image/ief
|
|
||||||
iges=application/iges
|
|
||||||
igs=application/iges
|
|
||||||
ima=application/x-ima
|
|
||||||
imap=application/x-httpd-imap
|
|
||||||
inf=application/inf
|
|
||||||
ins=application/x-internett-signup
|
|
||||||
ip=application/x-ip2
|
|
||||||
isu=video/x-isvideo
|
|
||||||
it=audio/it
|
|
||||||
iv=application/x-inventor
|
|
||||||
ivr=i-world/i-vrml
|
|
||||||
ivy=application/x-livescreen
|
|
||||||
jam=audio/x-jam
|
|
||||||
jav=text/x-java-source
|
|
||||||
java=text/x-java-source
|
|
||||||
jcm=application/x-java-commerce
|
|
||||||
jfif-tbnl=image/jpeg
|
|
||||||
jfif=image/jpeg
|
|
||||||
jnlp=application/x-java-jnlp-file
|
|
||||||
jpe=image/jpeg
|
|
||||||
jpeg=image/jpeg
|
|
||||||
jpg=image/jpeg
|
|
||||||
jps=image/x-jps
|
|
||||||
js=application/javascript
|
|
||||||
json=application/json
|
|
||||||
jut=image/jutvision
|
|
||||||
kar=audio/midi
|
|
||||||
karbon=application/vnd.kde.karbon
|
|
||||||
kfo=application/vnd.kde.kformula
|
|
||||||
flw=application/vnd.kde.kivio
|
|
||||||
kml=application/vnd.google-earth.kml+xml
|
|
||||||
kmz=application/vnd.google-earth.kmz
|
|
||||||
kon=application/vnd.kde.kontour
|
|
||||||
kpr=application/vnd.kde.kpresenter
|
|
||||||
kpt=application/vnd.kde.kpresenter
|
|
||||||
ksp=application/vnd.kde.kspread
|
|
||||||
kwd=application/vnd.kde.kword
|
|
||||||
kwt=application/vnd.kde.kword
|
|
||||||
ksh=text/x-scriptksh
|
|
||||||
la=audio/nspaudio
|
|
||||||
lam=audio/x-liveaudio
|
|
||||||
latex=application/x-latex
|
|
||||||
lha=application/lha
|
|
||||||
lhx=application/octet-stream
|
|
||||||
list=text/plain
|
|
||||||
lma=audio/nspaudio
|
|
||||||
log=text/plain
|
|
||||||
lsp=text/x-scriptlisp
|
|
||||||
lst=text/plain
|
|
||||||
lsx=text/x-la-asf
|
|
||||||
ltx=application/x-latex
|
|
||||||
lzh=application/octet-stream
|
|
||||||
lzx=application/lzx
|
|
||||||
m1v=video/mpeg
|
|
||||||
m2a=audio/mpeg
|
|
||||||
m2v=video/mpeg
|
|
||||||
m3u=audio/x-mpegurl
|
|
||||||
m=text/x-m
|
|
||||||
man=application/x-troff-man
|
|
||||||
manifest=text/cache-manifest
|
|
||||||
map=application/x-navimap
|
|
||||||
mar=text/plain
|
|
||||||
mbd=application/mbedlet
|
|
||||||
mc$=application/x-magic-cap-package-10
|
|
||||||
mcd=application/mcad
|
|
||||||
mcf=text/mcf
|
|
||||||
mcp=application/netmc
|
|
||||||
me=application/x-troff-me
|
|
||||||
mht=message/rfc822
|
|
||||||
mhtml=message/rfc822
|
|
||||||
mid=application/x-midi
|
|
||||||
midi=application/x-midi
|
|
||||||
mif=application/x-frame
|
|
||||||
mime=message/rfc822
|
|
||||||
mjf=audio/x-vndaudioexplosionmjuicemediafile
|
|
||||||
mjpg=video/x-motion-jpeg
|
|
||||||
mm=application/base64
|
|
||||||
mme=application/base64
|
|
||||||
mod=audio/mod
|
|
||||||
moov=video/quicktime
|
|
||||||
mov=video/quicktime
|
|
||||||
movie=video/x-sgi-movie
|
|
||||||
mp2=audio/mpeg
|
|
||||||
mp3=audio/mpeg3
|
|
||||||
mp4=video/mp4
|
|
||||||
mpa=audio/mpeg
|
|
||||||
mpc=application/x-project
|
|
||||||
mpe=video/mpeg
|
|
||||||
mpeg=video/mpeg
|
|
||||||
mpg=video/mpeg
|
|
||||||
mpga=audio/mpeg
|
|
||||||
mpp=application/vndms-project
|
|
||||||
mpt=application/x-project
|
|
||||||
mpv=application/x-project
|
|
||||||
mpx=application/x-project
|
|
||||||
mrc=application/marc
|
|
||||||
ms=application/x-troff-ms
|
|
||||||
mv=video/x-sgi-movie
|
|
||||||
my=audio/make
|
|
||||||
mzz=application/x-vndaudioexplosionmzz
|
|
||||||
nap=image/naplps
|
|
||||||
naplps=image/naplps
|
|
||||||
nc=application/x-netcdf
|
|
||||||
ncm=application/vndnokiaconfiguration-message
|
|
||||||
nif=image/x-niff
|
|
||||||
niff=image/x-niff
|
|
||||||
nix=application/x-mix-transfer
|
|
||||||
nsc=application/x-conference
|
|
||||||
nvd=application/x-navidoc
|
|
||||||
o=application/octet-stream
|
|
||||||
oda=application/oda
|
|
||||||
odb=application/vnd.oasis.opendocument.database
|
|
||||||
odc=application/vnd.oasis.opendocument.chart
|
|
||||||
odf=application/vnd.oasis.opendocument.formula
|
|
||||||
odg=application/vnd.oasis.opendocument.graphics
|
|
||||||
odi=application/vnd.oasis.opendocument.image
|
|
||||||
odm=application/vnd.oasis.opendocument.text-master
|
|
||||||
odp=application/vnd.oasis.opendocument.presentation
|
|
||||||
ods=application/vnd.oasis.opendocument.spreadsheet
|
|
||||||
odt=application/vnd.oasis.opendocument.text
|
|
||||||
oga=audio/ogg
|
|
||||||
ogg=audio/ogg
|
|
||||||
ogv=video/ogg
|
|
||||||
omc=application/x-omc
|
|
||||||
omcd=application/x-omcdatamaker
|
|
||||||
omcr=application/x-omcregerator
|
|
||||||
otc=application/vnd.oasis.opendocument.chart-template
|
|
||||||
otf=application/vnd.oasis.opendocument.formula-template
|
|
||||||
otg=application/vnd.oasis.opendocument.graphics-template
|
|
||||||
oth=application/vnd.oasis.opendocument.text-web
|
|
||||||
oti=application/vnd.oasis.opendocument.image-template
|
|
||||||
otm=application/vnd.oasis.opendocument.text-master
|
|
||||||
otp=application/vnd.oasis.opendocument.presentation-template
|
|
||||||
ots=application/vnd.oasis.opendocument.spreadsheet-template
|
|
||||||
ott=application/vnd.oasis.opendocument.text-template
|
|
||||||
p10=application/pkcs10
|
|
||||||
p12=application/pkcs-12
|
|
||||||
p7a=application/x-pkcs7-signature
|
|
||||||
p7c=application/pkcs7-mime
|
|
||||||
p7m=application/pkcs7-mime
|
|
||||||
p7r=application/x-pkcs7-certreqresp
|
|
||||||
p7s=application/pkcs7-signature
|
|
||||||
p=text/x-pascal
|
|
||||||
part=application/pro_eng
|
|
||||||
pas=text/pascal
|
|
||||||
pbm=image/x-portable-bitmap
|
|
||||||
pcl=application/vndhp-pcl
|
|
||||||
pct=image/x-pict
|
|
||||||
pcx=image/x-pcx
|
|
||||||
pdb=chemical/x-pdb
|
|
||||||
pdf=application/pdf
|
|
||||||
pfunk=audio/make
|
|
||||||
pgm=image/x-portable-graymap
|
|
||||||
pic=image/pict
|
|
||||||
pict=image/pict
|
|
||||||
pkg=application/x-newton-compatible-pkg
|
|
||||||
pko=application/vndms-pkipko
|
|
||||||
pl=text/x-scriptperl
|
|
||||||
plx=application/x-pixclscript
|
|
||||||
pm4=application/x-pagemaker
|
|
||||||
pm5=application/x-pagemaker
|
|
||||||
pm=text/x-scriptperl-module
|
|
||||||
png=image/png
|
|
||||||
pnm=application/x-portable-anymap
|
|
||||||
pot=application/mspowerpoint
|
|
||||||
pov=model/x-pov
|
|
||||||
ppa=application/vndms-powerpoint
|
|
||||||
ppm=image/x-portable-pixmap
|
|
||||||
pps=application/mspowerpoint
|
|
||||||
ppt=application/mspowerpoint
|
|
||||||
ppz=application/mspowerpoint
|
|
||||||
pre=application/x-freelance
|
|
||||||
prt=application/pro_eng
|
|
||||||
ps=application/postscript
|
|
||||||
psd=application/octet-stream
|
|
||||||
pvu=paleovu/x-pv
|
|
||||||
pwz=application/vndms-powerpoint
|
|
||||||
py=text/x-scriptphyton
|
|
||||||
pyc=applicaiton/x-bytecodepython
|
|
||||||
qcp=audio/vndqcelp
|
|
||||||
qd3=x-world/x-3dmf
|
|
||||||
qd3d=x-world/x-3dmf
|
|
||||||
qif=image/x-quicktime
|
|
||||||
qt=video/quicktime
|
|
||||||
qtc=video/x-qtc
|
|
||||||
qti=image/x-quicktime
|
|
||||||
qtif=image/x-quicktime
|
|
||||||
ra=audio/x-pn-realaudio
|
|
||||||
ram=audio/x-pn-realaudio
|
|
||||||
rar=application/x-rar-compressed
|
|
||||||
ras=application/x-cmu-raster
|
|
||||||
rast=image/cmu-raster
|
|
||||||
rexx=text/x-scriptrexx
|
|
||||||
rf=image/vndrn-realflash
|
|
||||||
rgb=image/x-rgb
|
|
||||||
rm=application/vndrn-realmedia
|
|
||||||
rmi=audio/mid
|
|
||||||
rmm=audio/x-pn-realaudio
|
|
||||||
rmp=audio/x-pn-realaudio
|
|
||||||
rng=application/ringing-tones
|
|
||||||
rnx=application/vndrn-realplayer
|
|
||||||
roff=application/x-troff
|
|
||||||
rp=image/vndrn-realpix
|
|
||||||
rpm=audio/x-pn-realaudio-plugin
|
|
||||||
rt=text/vndrn-realtext
|
|
||||||
rtf=text/richtext
|
|
||||||
rtx=text/richtext
|
|
||||||
rv=video/vndrn-realvideo
|
|
||||||
s=text/x-asm
|
|
||||||
s3m=audio/s3m
|
|
||||||
s7z=application/x-7z-compressed
|
|
||||||
saveme=application/octet-stream
|
|
||||||
sbk=application/x-tbook
|
|
||||||
scm=text/x-scriptscheme
|
|
||||||
sdml=text/plain
|
|
||||||
sdp=application/sdp
|
|
||||||
sdr=application/sounder
|
|
||||||
sea=application/sea
|
|
||||||
set=application/set
|
|
||||||
sgm=text/x-sgml
|
|
||||||
sgml=text/x-sgml
|
|
||||||
sh=text/x-scriptsh
|
|
||||||
shar=application/x-bsh
|
|
||||||
shtml=text/x-server-parsed-html
|
|
||||||
sid=audio/x-psid
|
|
||||||
skd=application/x-koan
|
|
||||||
skm=application/x-koan
|
|
||||||
skp=application/x-koan
|
|
||||||
skt=application/x-koan
|
|
||||||
sit=application/x-stuffit
|
|
||||||
sitx=application/x-stuffitx
|
|
||||||
sl=application/x-seelogo
|
|
||||||
smi=application/smil
|
|
||||||
smil=application/smil
|
|
||||||
snd=audio/basic
|
|
||||||
sol=application/solids
|
|
||||||
spc=text/x-speech
|
|
||||||
spl=application/futuresplash
|
|
||||||
spr=application/x-sprite
|
|
||||||
sprite=application/x-sprite
|
|
||||||
spx=audio/ogg
|
|
||||||
src=application/x-wais-source
|
|
||||||
ssi=text/x-server-parsed-html
|
|
||||||
ssm=application/streamingmedia
|
|
||||||
sst=application/vndms-pkicertstore
|
|
||||||
step=application/step
|
|
||||||
stl=application/sla
|
|
||||||
stp=application/step
|
|
||||||
sv4cpio=application/x-sv4cpio
|
|
||||||
sv4crc=application/x-sv4crc
|
|
||||||
svf=image/vnddwg
|
|
||||||
svg=image/svg+xml
|
|
||||||
svr=application/x-world
|
|
||||||
swf=application/x-shockwave-flash
|
|
||||||
t=application/x-troff
|
|
||||||
talk=text/x-speech
|
|
||||||
tar=application/x-tar
|
|
||||||
tbk=application/toolbook
|
|
||||||
tcl=text/x-scripttcl
|
|
||||||
tcsh=text/x-scripttcsh
|
|
||||||
tex=application/x-tex
|
|
||||||
texi=application/x-texinfo
|
|
||||||
texinfo=application/x-texinfo
|
|
||||||
text=text/plain
|
|
||||||
tgz=application/gnutar
|
|
||||||
tif=image/tiff
|
|
||||||
tiff=image/tiff
|
|
||||||
tr=application/x-troff
|
|
||||||
tsi=audio/tsp-audio
|
|
||||||
tsp=application/dsptype
|
|
||||||
tsv=text/tab-separated-values
|
|
||||||
turbot=image/florian
|
|
||||||
txt=text/plain
|
|
||||||
uil=text/x-uil
|
|
||||||
uni=text/uri-list
|
|
||||||
unis=text/uri-list
|
|
||||||
unv=application/i-deas
|
|
||||||
uri=text/uri-list
|
|
||||||
uris=text/uri-list
|
|
||||||
ustar=application/x-ustar
|
|
||||||
uu=text/x-uuencode
|
|
||||||
uue=text/x-uuencode
|
|
||||||
vcd=application/x-cdlink
|
|
||||||
vcf=text/x-vcard
|
|
||||||
vcard=text/x-vcard
|
|
||||||
vcs=text/x-vcalendar
|
|
||||||
vda=application/vda
|
|
||||||
vdo=video/vdo
|
|
||||||
vew=application/groupwise
|
|
||||||
viv=video/vivo
|
|
||||||
vivo=video/vivo
|
|
||||||
vmd=application/vocaltec-media-desc
|
|
||||||
vmf=application/vocaltec-media-file
|
|
||||||
voc=audio/voc
|
|
||||||
vos=video/vosaic
|
|
||||||
vox=audio/voxware
|
|
||||||
vqe=audio/x-twinvq-plugin
|
|
||||||
vqf=audio/x-twinvq
|
|
||||||
vql=audio/x-twinvq-plugin
|
|
||||||
vrml=application/x-vrml
|
|
||||||
vrt=x-world/x-vrt
|
|
||||||
vsd=application/x-visio
|
|
||||||
vst=application/x-visio
|
|
||||||
vsw=application/x-visio
|
|
||||||
w60=application/wordperfect60
|
|
||||||
w61=application/wordperfect61
|
|
||||||
w6w=application/msword
|
|
||||||
wav=audio/wav
|
|
||||||
wb1=application/x-qpro
|
|
||||||
wbmp=image/vnd.wap.wbmp
|
|
||||||
web=application/vndxara
|
|
||||||
wiz=application/msword
|
|
||||||
wk1=application/x-123
|
|
||||||
wmf=windows/metafile
|
|
||||||
wml=text/vnd.wap.wml
|
|
||||||
wmlc=application/vnd.wap.wmlc
|
|
||||||
wmls=text/vnd.wap.wmlscript
|
|
||||||
wmlsc=application/vnd.wap.wmlscriptc
|
|
||||||
word=application/msword
|
|
||||||
wp5=application/wordperfect
|
|
||||||
wp6=application/wordperfect
|
|
||||||
wp=application/wordperfect
|
|
||||||
wpd=application/wordperfect
|
|
||||||
wq1=application/x-lotus
|
|
||||||
wri=application/mswrite
|
|
||||||
wrl=application/x-world
|
|
||||||
wrz=model/vrml
|
|
||||||
wsc=text/scriplet
|
|
||||||
wsrc=application/x-wais-source
|
|
||||||
wtk=application/x-wintalk
|
|
||||||
x-png=image/png
|
|
||||||
xbm=image/x-xbitmap
|
|
||||||
xdr=video/x-amt-demorun
|
|
||||||
xgz=xgl/drawing
|
|
||||||
xif=image/vndxiff
|
|
||||||
xl=application/excel
|
|
||||||
xla=application/excel
|
|
||||||
xlb=application/excel
|
|
||||||
xlc=application/excel
|
|
||||||
xld=application/excel
|
|
||||||
xlk=application/excel
|
|
||||||
xll=application/excel
|
|
||||||
xlm=application/excel
|
|
||||||
xls=application/excel
|
|
||||||
xlt=application/excel
|
|
||||||
xlv=application/excel
|
|
||||||
xlw=application/excel
|
|
||||||
xm=audio/xm
|
|
||||||
xml=text/xml
|
|
||||||
xmz=xgl/movie
|
|
||||||
xpix=application/x-vndls-xpix
|
|
||||||
xpm=image/x-xpixmap
|
|
||||||
xsr=video/x-amt-showrun
|
|
||||||
xwd=image/x-xwd
|
|
||||||
xyz=chemical/x-pdb
|
|
||||||
z=application/x-compress
|
|
||||||
zip=application/zip
|
|
||||||
zoo=application/octet-stream
|
|
||||||
zsh=text/x-scriptzsh
|
|
||||||
# Office 2007 mess - http://wdg.uncc.edu/Microsoft_Office_2007_MIME_Types_for_Apache_and_IIS
|
|
||||||
docx=application/vnd.openxmlformats-officedocument.wordprocessingml.document
|
|
||||||
docm=application/vnd.ms-word.document.macroEnabled.12
|
|
||||||
dotx=application/vnd.openxmlformats-officedocument.wordprocessingml.template
|
|
||||||
dotm=application/vnd.ms-word.template.macroEnabled.12
|
|
||||||
xlsx=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
|
|
||||||
xlsm=application/vnd.ms-excel.sheet.macroEnabled.12
|
|
||||||
xltx=application/vnd.openxmlformats-officedocument.spreadsheetml.template
|
|
||||||
xltm=application/vnd.ms-excel.template.macroEnabled.12
|
|
||||||
xlsb=application/vnd.ms-excel.sheet.binary.macroEnabled.12
|
|
||||||
xlam=application/vnd.ms-excel.addin.macroEnabled.12
|
|
||||||
pptx=application/vnd.openxmlformats-officedocument.presentationml.presentation
|
|
||||||
pptm=application/vnd.ms-powerpoint.presentation.macroEnabled.12
|
|
||||||
ppsx=application/vnd.openxmlformats-officedocument.presentationml.slideshow
|
|
||||||
ppsm=application/vnd.ms-powerpoint.slideshow.macroEnabled.12
|
|
||||||
potx=application/vnd.openxmlformats-officedocument.presentationml.template
|
|
||||||
potm=application/vnd.ms-powerpoint.template.macroEnabled.12
|
|
||||||
ppam=application/vnd.ms-powerpoint.addin.macroEnabled.12
|
|
||||||
sldx=application/vnd.openxmlformats-officedocument.presentationml.slide
|
|
||||||
sldm=application/vnd.ms-powerpoint.slide.macroEnabled.12
|
|
||||||
thmx=application/vnd.ms-officetheme
|
|
||||||
onetoc=application/onenote
|
|
||||||
onetoc2=application/onenote
|
|
||||||
onetmp=application/onenote
|
|
||||||
onepkg=application/onenote
|
|
||||||
# koffice
|
|
||||||
|
|
||||||
# iWork
|
|
||||||
key=application/x-iwork-keynote-sffkey
|
|
||||||
kth=application/x-iwork-keynote-sffkth
|
|
||||||
nmbtemplate=application/x-iwork-numbers-sfftemplate
|
|
||||||
numbers=application/x-iwork-numbers-sffnumbers
|
|
||||||
pages=application/x-iwork-pages-sffpages
|
|
||||||
template=application/x-iwork-pages-sfftemplate
|
|
||||||
|
|
||||||
# Extensions for Mozilla apps (Firefox and friends)
|
|
||||||
xpi=application/x-xpinstall
|
|
||||||
|
|
||||||
# Opera extensions
|
|
||||||
oex=application/x-opera-extension
|
|
||||||
@@ -1,100 +0,0 @@
|
|||||||
package controllers
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/revel/revel"
|
|
||||||
"os"
|
|
||||||
fpath "path/filepath"
|
|
||||||
"strings"
|
|
||||||
"syscall"
|
|
||||||
)
|
|
||||||
|
|
||||||
type Static struct {
|
|
||||||
*revel.Controller
|
|
||||||
}
|
|
||||||
|
|
||||||
// This method handles requests for files. The supplied prefix may be absolute
|
|
||||||
// or relative. If the prefix is relative it is assumed to be relative to the
|
|
||||||
// application directory. The filepath may either be just a file or an
|
|
||||||
// additional filepath to search for the given file. This response may return
|
|
||||||
// the following responses in the event of an error or invalid request;
|
|
||||||
// 403(Forbidden): If the prefix filepath combination results in a directory.
|
|
||||||
// 404(Not found): If the prefix and filepath combination results in a non-existent file.
|
|
||||||
// 500(Internal Server Error): There are a few edge cases that would likely indicate some configuration error outside of revel.
|
|
||||||
//
|
|
||||||
// Note that when defining routes in routes/conf the parameters must not have
|
|
||||||
// spaces around the comma.
|
|
||||||
// Bad: Static.Serve("public/img", "favicon.png")
|
|
||||||
// Good: Static.Serve("public/img","favicon.png")
|
|
||||||
//
|
|
||||||
// Examples:
|
|
||||||
// Serving a directory
|
|
||||||
// Route (conf/routes):
|
|
||||||
// GET /public/{<.*>filepath} Static.Serve("public")
|
|
||||||
// Request:
|
|
||||||
// public/js/sessvars.js
|
|
||||||
// Calls
|
|
||||||
// Static.Serve("public","js/sessvars.js")
|
|
||||||
//
|
|
||||||
// Serving a file
|
|
||||||
// Route (conf/routes):
|
|
||||||
// GET /favicon.ico Static.Serve("public/img","favicon.png")
|
|
||||||
// Request:
|
|
||||||
// favicon.ico
|
|
||||||
// Calls:
|
|
||||||
// Static.Serve("public/img", "favicon.png")
|
|
||||||
func (c Static) Serve(prefix, filepath string) revel.Result {
|
|
||||||
var basePath string
|
|
||||||
|
|
||||||
if !fpath.IsAbs(prefix) {
|
|
||||||
basePath = revel.BasePath
|
|
||||||
}
|
|
||||||
|
|
||||||
basePathPrefix := fpath.Join(basePath, fpath.FromSlash(prefix))
|
|
||||||
fname := fpath.Join(basePathPrefix, fpath.FromSlash(filepath))
|
|
||||||
if !strings.HasPrefix(fname, basePathPrefix) {
|
|
||||||
revel.WARN.Printf("Attempted to read file outside of base path: %s", fname)
|
|
||||||
return c.NotFound("")
|
|
||||||
}
|
|
||||||
|
|
||||||
finfo, err := os.Stat(fname)
|
|
||||||
if err != nil {
|
|
||||||
if os.IsNotExist(err) || err.(*os.PathError).Err == syscall.ENOTDIR {
|
|
||||||
revel.WARN.Printf("File not found (%s): %s ", fname, err)
|
|
||||||
return c.NotFound("File not found")
|
|
||||||
}
|
|
||||||
revel.ERROR.Printf("Error trying to get fileinfo for '%s': %s", fname, err)
|
|
||||||
return c.RenderError(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
if finfo.Mode().IsDir() {
|
|
||||||
revel.WARN.Printf("Attempted directory listing of %s", fname)
|
|
||||||
return c.Forbidden("Directory listing not allowed")
|
|
||||||
}
|
|
||||||
|
|
||||||
file, err := os.Open(fname)
|
|
||||||
if err != nil {
|
|
||||||
if os.IsNotExist(err) {
|
|
||||||
revel.WARN.Printf("File not found (%s): %s ", fname, err)
|
|
||||||
return c.NotFound("File not found")
|
|
||||||
}
|
|
||||||
revel.ERROR.Printf("Error opening '%s': %s", fname, err)
|
|
||||||
return c.RenderError(err)
|
|
||||||
}
|
|
||||||
return c.RenderFile(file, revel.Inline)
|
|
||||||
}
|
|
||||||
|
|
||||||
// This method allows modules to serve binary files. The parameters are the same
|
|
||||||
// as Static.Serve with the additional module name pre-pended to the list of
|
|
||||||
// arguments.
|
|
||||||
func (c Static) ServeModule(moduleName, prefix, filepath string) revel.Result {
|
|
||||||
var basePath string
|
|
||||||
for _, module := range revel.Modules {
|
|
||||||
if module.Name == moduleName {
|
|
||||||
basePath = module.Path
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
absPath := fpath.Join(basePath, fpath.FromSlash(prefix))
|
|
||||||
|
|
||||||
return c.Serve(absPath, filepath)
|
|
||||||
}
|
|
||||||
@@ -1,152 +0,0 @@
|
|||||||
package controllers
|
|
||||||
|
|
||||||
import (
|
|
||||||
"bytes"
|
|
||||||
"fmt"
|
|
||||||
"github.com/revel/revel"
|
|
||||||
"html"
|
|
||||||
"html/template"
|
|
||||||
"reflect"
|
|
||||||
"strings"
|
|
||||||
)
|
|
||||||
|
|
||||||
type TestRunner struct {
|
|
||||||
*revel.Controller
|
|
||||||
}
|
|
||||||
|
|
||||||
type TestSuiteDesc struct {
|
|
||||||
Name string
|
|
||||||
Tests []TestDesc
|
|
||||||
}
|
|
||||||
|
|
||||||
type TestDesc struct {
|
|
||||||
Name string
|
|
||||||
}
|
|
||||||
|
|
||||||
type TestSuiteResult struct {
|
|
||||||
Name string
|
|
||||||
Passed bool
|
|
||||||
Results []TestResult
|
|
||||||
}
|
|
||||||
|
|
||||||
type TestResult struct {
|
|
||||||
Name string
|
|
||||||
Passed bool
|
|
||||||
ErrorHtml template.HTML
|
|
||||||
ErrorSummary string
|
|
||||||
}
|
|
||||||
|
|
||||||
var NONE = []reflect.Value{}
|
|
||||||
|
|
||||||
func (c TestRunner) Index() revel.Result {
|
|
||||||
var testSuites []TestSuiteDesc
|
|
||||||
for _, testSuite := range revel.TestSuites {
|
|
||||||
testSuites = append(testSuites, DescribeSuite(testSuite))
|
|
||||||
}
|
|
||||||
return c.Render(testSuites)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Run runs a single test, given by the argument.
|
|
||||||
func (c TestRunner) Run(suite, test string) revel.Result {
|
|
||||||
result := TestResult{Name: test}
|
|
||||||
for _, testSuite := range revel.TestSuites {
|
|
||||||
t := reflect.TypeOf(testSuite).Elem()
|
|
||||||
if t.Name() != suite {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
// Found the suite, create a new instance and run the named method.
|
|
||||||
v := reflect.New(t)
|
|
||||||
func() {
|
|
||||||
defer func() {
|
|
||||||
if err := recover(); err != nil {
|
|
||||||
error := revel.NewErrorFromPanic(err)
|
|
||||||
if error == nil {
|
|
||||||
result.ErrorHtml = template.HTML(html.EscapeString(fmt.Sprint(err)))
|
|
||||||
} else {
|
|
||||||
var buffer bytes.Buffer
|
|
||||||
tmpl, _ := revel.MainTemplateLoader.Template("TestRunner/FailureDetail.html")
|
|
||||||
tmpl.Render(&buffer, error)
|
|
||||||
result.ErrorSummary = errorSummary(error)
|
|
||||||
result.ErrorHtml = template.HTML(buffer.String())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}()
|
|
||||||
|
|
||||||
// Initialize the test suite with a NewTestSuite()
|
|
||||||
testSuiteInstance := v.Elem().FieldByName("TestSuite")
|
|
||||||
testSuiteInstance.Set(reflect.ValueOf(revel.NewTestSuite()))
|
|
||||||
|
|
||||||
// Call Before(), call the test, and call After().
|
|
||||||
if m := v.MethodByName("Before"); m.IsValid() {
|
|
||||||
m.Call(NONE)
|
|
||||||
}
|
|
||||||
|
|
||||||
if m := v.MethodByName("After"); m.IsValid() {
|
|
||||||
defer m.Call(NONE)
|
|
||||||
}
|
|
||||||
|
|
||||||
v.MethodByName(test).Call(NONE)
|
|
||||||
|
|
||||||
// No panic means success.
|
|
||||||
result.Passed = true
|
|
||||||
}()
|
|
||||||
break
|
|
||||||
}
|
|
||||||
return c.RenderJson(result)
|
|
||||||
}
|
|
||||||
|
|
||||||
// List returns a JSON list of test suites and tests.
|
|
||||||
// Used by the "test" command line tool.
|
|
||||||
func (c TestRunner) List() revel.Result {
|
|
||||||
var testSuites []TestSuiteDesc
|
|
||||||
for _, testSuite := range revel.TestSuites {
|
|
||||||
testSuites = append(testSuites, DescribeSuite(testSuite))
|
|
||||||
}
|
|
||||||
return c.RenderJson(testSuites)
|
|
||||||
}
|
|
||||||
|
|
||||||
func DescribeSuite(testSuite interface{}) TestSuiteDesc {
|
|
||||||
t := reflect.TypeOf(testSuite)
|
|
||||||
|
|
||||||
// Get a list of methods of the embedded test type.
|
|
||||||
super := t.Elem().Field(0).Type
|
|
||||||
superMethodNameSet := map[string]struct{}{}
|
|
||||||
for i := 0; i < super.NumMethod(); i++ {
|
|
||||||
superMethodNameSet[super.Method(i).Name] = struct{}{}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get a list of methods on the test suite that take no parameters, return
|
|
||||||
// no results, and were not part of the embedded type's method set.
|
|
||||||
var tests []TestDesc
|
|
||||||
for i := 0; i < t.NumMethod(); i++ {
|
|
||||||
m := t.Method(i)
|
|
||||||
mt := m.Type
|
|
||||||
_, isSuperMethod := superMethodNameSet[m.Name]
|
|
||||||
if mt.NumIn() == 1 &&
|
|
||||||
mt.NumOut() == 0 &&
|
|
||||||
mt.In(0) == t &&
|
|
||||||
!isSuperMethod &&
|
|
||||||
strings.HasPrefix(m.Name, "Test") {
|
|
||||||
tests = append(tests, TestDesc{m.Name})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return TestSuiteDesc{
|
|
||||||
Name: t.Elem().Name(),
|
|
||||||
Tests: tests,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func errorSummary(error *revel.Error) string {
|
|
||||||
var message = fmt.Sprintf("%4sStatus: %s\n%4sIn %s", "", error.Description, "", error.Path)
|
|
||||||
if error.Line != 0 {
|
|
||||||
message += fmt.Sprintf(" (around line %d): ", error.Line)
|
|
||||||
for _, line := range error.ContextSource() {
|
|
||||||
if line.IsError {
|
|
||||||
message += line.Source
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return message
|
|
||||||
}
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
package app
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
"github.com/revel/revel"
|
|
||||||
)
|
|
||||||
|
|
||||||
func init() {
|
|
||||||
revel.OnAppStart(func() {
|
|
||||||
fmt.Println("Go to /@tests to run the tests.")
|
|
||||||
})
|
|
||||||
}
|
|
||||||
-9
@@ -1,9 +0,0 @@
|
|||||||
<b>{{.Description}}</b><br>
|
|
||||||
In {{.Path}}
|
|
||||||
{{if .Line}}
|
|
||||||
(around {{if .Line}}line {{.Line}}{{end}}{{if .Column}} column {{.Column}}{{end}})
|
|
||||||
{{end}}:
|
|
||||||
{{range .ContextSource}}{{if .IsError}}<code>{{.Source}}</code>{{end}}{{end}}<br>
|
|
||||||
<a style="cursor:pointer;"
|
|
||||||
onclick="x=this.nextSibling.style;if(!x.display)x.display='none';else x.display=''">
|
|
||||||
Show Stack</a><pre style="display:none;">{{.Stack}}</pre>
|
|
||||||
@@ -1,84 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title>Revel Test Runner</title>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
|
||||||
<link href="/@tests/public/css/bootstrap.css" type="text/css" rel="stylesheet"></link>
|
|
||||||
<script src="/@tests/public/js/jquery-1.9.1.min.js" type="text/javascript"></script>
|
|
||||||
<style>
|
|
||||||
header { padding:20px 0; background-color:#ADD8E6 }
|
|
||||||
.passed td { background-color: #90EE90 !important; }
|
|
||||||
.failed td { background-color: #FFB6C1 !important; }
|
|
||||||
.tests td.name, .tests td.result { padding-top: 13px; }
|
|
||||||
pre { font-size:10px; white-space: pre; }
|
|
||||||
</style>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<header>
|
|
||||||
<div class="container">
|
|
||||||
<table><tr><td>
|
|
||||||
<h1>Test Runner</h1>
|
|
||||||
<p class="lead">Run all of your application's tests from here.</p>
|
|
||||||
</td><td style="padding-left:150px;">
|
|
||||||
<button class="btn btn-large" all-tests="">Run All Tests</button>
|
|
||||||
</td></tr></table>
|
|
||||||
</div>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<div class="container">
|
|
||||||
{{range .testSuites}}
|
|
||||||
<p class="lead" style="margin-top:20px;">{{.Name}}</p>
|
|
||||||
<table class="table table-striped tests" suite="{{.Name}}">
|
|
||||||
{{range .Tests}}
|
|
||||||
<tr>
|
|
||||||
<td class="name">{{.Name}}</td>
|
|
||||||
<td class="result">
|
|
||||||
</td>
|
|
||||||
<td><button test="{{.Name}}" class="btn">Run</button></td>
|
|
||||||
</tr>
|
|
||||||
{{end}}
|
|
||||||
</table>
|
|
||||||
{{end}}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
var running = 0;
|
|
||||||
|
|
||||||
$("button[test]").click(function() {
|
|
||||||
var button = $(this).addClass("disabled").text("Running");
|
|
||||||
running += 1;
|
|
||||||
runTest(button);
|
|
||||||
});
|
|
||||||
|
|
||||||
$("button[all-tests]").click(function() {
|
|
||||||
var button = $(this).addClass("disabled").text("Running");
|
|
||||||
$("button[test]").click();
|
|
||||||
});
|
|
||||||
|
|
||||||
function runTest(button) {
|
|
||||||
var suite = button.parents("table").attr("suite");
|
|
||||||
var test = button.attr("test");
|
|
||||||
var row = button.parents("tr");
|
|
||||||
var resultCell = row.children(".result");
|
|
||||||
$.ajax({
|
|
||||||
dataType: "json",
|
|
||||||
url: "/@tests/"+suite+"/"+test,
|
|
||||||
async: false,
|
|
||||||
success: function(result) {
|
|
||||||
row.attr("class", result.Passed ? "passed" : "failed");
|
|
||||||
if (result.Passed) {
|
|
||||||
resultCell.html("");
|
|
||||||
} else {
|
|
||||||
resultCell.html(result.ErrorHtml);
|
|
||||||
}
|
|
||||||
button.removeClass("disabled").text("Run");
|
|
||||||
running -= 1;
|
|
||||||
if (running == 0) {
|
|
||||||
$("button[all-tests]").removeClass("disabled").text("Run All Tests");
|
|
||||||
}
|
|
||||||
}});
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
-47
@@ -1,47 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title>Revel Test Runner</title>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
|
||||||
|
|
||||||
<style>
|
|
||||||
body {
|
|
||||||
margin: 0;
|
|
||||||
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
|
||||||
font-size: 14px;
|
|
||||||
line-height: 20px;
|
|
||||||
color: #333333;
|
|
||||||
background-color: #ffffff;
|
|
||||||
}
|
|
||||||
header { padding:20px 0; }
|
|
||||||
header.passed { background-color: #90EE90 !important; }
|
|
||||||
header.failed { background-color: #FFB6C1 !important; }
|
|
||||||
table { margin-top: 20px; padding: 8px; line-height: 20px; }
|
|
||||||
td { vertical-align: top; padding-right:20px; }
|
|
||||||
a { color: #0088cc; }
|
|
||||||
.container { margin-left: auto; margin-right: auto; width: 940px; }
|
|
||||||
.result.failed b { font-weight:bold; color: #C00; font-size: 14px; }
|
|
||||||
.result.failed span { color: #C00; font-size: 14px; }
|
|
||||||
</style>
|
|
||||||
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<header class="{{if .Passed}}passed{{else}}failed{{end}}">
|
|
||||||
<div class="container">
|
|
||||||
<h1>{{.Name}}</h1>
|
|
||||||
<p>{{if .Passed}}PASSED{{else}}FAILED{{end}}</p>
|
|
||||||
</div>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<div class="container">
|
|
||||||
<table>
|
|
||||||
{{range .Results}}
|
|
||||||
<tr class="result {{if .Passed}}passed{{else}}failed{{end}}">
|
|
||||||
<td><span>{{.Name}}</span></td>
|
|
||||||
<td>{{if .ErrorHtml}}{{.ErrorHtml}}{{else}}PASSED{{end}}</td>
|
|
||||||
</tr>
|
|
||||||
{{end}}
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
GET /@tests TestRunner.Index
|
|
||||||
GET /@tests.list TestRunner.List
|
|
||||||
GET /@tests/public/*filepath Static.ServeModule(testrunner,public)
|
|
||||||
GET /@tests/:suite/:test TestRunner.Run
|
|
||||||
File diff suppressed because it is too large.
Load diff
Binary file not shown.
|
Before Width: | Height: | Size: 5.5 KiB |
-5
@@ -1,5 +0,0 @@
|
|||||||
/*! jQuery v1.9.1 | (c) 2005, 2012 jQuery Foundation, Inc. | jquery.org/license
|
|
||||||
//@ sourceMappingURL=jquery.min.map
|
|
||||||
*/(function(e,t){var n,r,i=typeof t,o=e.document,a=e.location,s=e.jQuery,u=e.$,l={},c=[],p="1.9.1",f=c.concat,d=c.push,h=c.slice,g=c.indexOf,m=l.toString,y=l.hasOwnProperty,v=p.trim,b=function(e,t){return new b.fn.init(e,t,r)},x=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,w=/\S+/g,T=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,N=/^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,k=/^[\],:{}\s]*$/,E=/(?:^|:|,)(?:\s*\[)+/g,S=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,A=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,j=/^-ms-/,D=/-([\da-z])/gi,L=function(e,t){return t.toUpperCase()},H=function(e){(o.addEventListener||"load"===e.type||"complete"===o.readyState)&&(q(),b.ready())},q=function(){o.addEventListener?(o.removeEventListener("DOMContentLoaded",H,!1),e.removeEventListener("load",H,!1)):(o.detachEvent("onreadystatechange",H),e.detachEvent("onload",H))};b.fn=b.prototype={jquery:p,constructor:b,init:function(e,n,r){var i,a;if(!e)return this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:N.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof b?n[0]:n,b.merge(this,b.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:o,!0)),C.test(i[1])&&b.isPlainObject(n))for(i in n)b.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(a=o.getElementById(i[2]),a&&a.parentNode){if(a.id!==i[2])return r.find(e);this.length=1,this[0]=a}return this.context=o,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):b.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),b.makeArray(e,this))},selector:"",length:0,size:function(){return this.length},toArray:function(){return h.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=b.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return b.each(this,e,t)},ready:function(e){return b.ready.promise().done(e),this},slice:function(){return this.pushStack(h.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(b.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:d,sort:[].sort,splice:[].splice},b.fn.init.prototype=b.fn,b.extend=b.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},u=1,l=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},u=2),"object"==typeof s||b.isFunction(s)||(s={}),l===u&&(s=this,--u);l>u;u++)if(null!=(o=arguments[u]))for(i in o)e=s[i],r=o[i],s!==r&&(c&&r&&(b.isPlainObject(r)||(n=b.isArray(r)))?(n?(n=!1,a=e&&b.isArray(e)?e:[]):a=e&&b.isPlainObject(e)?e:{},s[i]=b.extend(c,a,r)):r!==t&&(s[i]=r));return s},b.extend({noConflict:function(t){return e.$===b&&(e.$=u),t&&e.jQuery===b&&(e.jQuery=s),b},isReady:!1,readyWait:1,holdReady:function(e){e?b.readyWait++:b.ready(!0)},ready:function(e){if(e===!0?!--b.readyWait:!b.isReady){if(!o.body)return setTimeout(b.ready);b.isReady=!0,e!==!0&&--b.readyWait>0||(n.resolveWith(o,[b]),b.fn.trigger&&b(o).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===b.type(e)},isArray:Array.isArray||function(e){return"array"===b.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[m.call(e)]||"object":typeof e},isPlainObject:function(e){if(!e||"object"!==b.type(e)||e.nodeType||b.isWindow(e))return!1;try{if(e.constructor&&!y.call(e,"constructor")&&!y.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}var r;for(r in e);return r===t||y.call(e,r)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||o;var r=C.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=b.buildFragment([e],t,i),i&&b(i).remove(),b.merge([],r.childNodes))},parseJSON:function(n){return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=b.trim(n),n&&k.test(n.replace(S,"@").replace(A,"]").replace(E,"")))?Function("return "+n)():(b.error("Invalid JSON: "+n),t)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||b.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&b.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(j,"ms-").replace(D,L)},nodeName:function(Line truncated
|
|
||||||
return(!i||i!==r&&!b.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),b.support.submitBubbles||(b.event.special.submit={setup:function(){return b.nodeName(this,"form")?!1:(b.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=b.nodeName(n,"input")||b.nodeName(n,"button")?n.form:t;r&&!b._data(r,"submitBubbles")&&(b.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),b._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&b.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return b.nodeName(this,"form")?!1:(b.event.remove(this,"._submit"),t)}}),b.support.changeBubbles||(b.event.special.change={setup:function(){return Z.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(b.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),b.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),b.event.simulate("change",this,e,!0)})),!1):(b.event.add(this,"beforeactivate._change",function(e){var t=e.target;Z.test(t.nodeName)&&!b._data(t,"changeBubbles")&&(b.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||b.event.simulate("change",this.parentNode,e,!0)}),b._data(t,"changeBubbles",!0))}),t)},handle:function(e){var n=e.target;return this!==n||e.isSimulated||e.isTrigger||"radio"!==n.type&&"checkbox"!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return b.event.remove(this,"._change"),!Z.test(this.nodeName)}}),b.support.focusinBubbles||b.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){b.event.simulate(t,e.target,b.event.fix(e),!0)};b.event.special[t]={setup:function(){0===n++&&o.addEventListener(e,r,!0)},teardown:function(){0===--n&&o.removeEventListener(e,r,!0)}}}),b.fn.extend({on:function(e,n,r,i,o){var a,s;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(a in e)this.on(a,n,r,e[a],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=ot;else if(!i)return this;return 1===o&&(s=i,i=function(e){return b().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=b.guid++)),this.each(function(){b.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,b(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=ot),this.each(function(){b.event.remove(this,e,r,n)})},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},trigger:function(e,t){return this.each(function(){b.event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return r?b.event.trigger(e,n,r,!0):t}}),function(e,t){var n,r,i,o,a,s,u,l,c,p,f,d,h,g,m,y,v,x="sizzle"+-new Date,w=e.document,T={},N=0,C=0,k=it(),E=it(),S=it(),A=typeof t,j=1<<31,D=[],L=D.pop,H=D.push,q=D.slice,M=D.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},_="[\\x20\\t\\r\\n\\f]",F="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=F.replace("w","w#"),B="([*^$|!~]?=)",P="\\["+_+"*("+F+")"+_+"*(?:"+B+_+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+O+")|)|)"+_+"*\\]",R=":("+F+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+P.replace(3,8)+")*)|.*)\\)|)",W=RegExp("^"+_+"+|((?:^|[^\\\\])(?:\\\\.)*)"+_+"+$","g"),$=RegExp("^"+_+"*,"+_+"*"),I=RegExp("^"+_+"*([\\x20\\t\\r\\n\\f>+~])"+_+"*"),z=RegExp(R),X=RegExp("^"+O+"$"),U={ID:RegExp("^#("+F+")"),CLASS:RegExp("^\\.("+F+")"),NAME:RegExp("^\\[name=['\"]?("+F+")['\"]?\\]"),TAG:RegExp("^("+F.replace("w","w*")+")"),ATTR:RegExp("^"+P),PSEUDO:RegExp("^"+R),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+_+"*(even|odd|(([+-]|)(\\d*)n|)"+_+"*(?:([+-]|)"+_+"*(\\d+)|))"+_+"*\\)|)","i"),needsContext:RegExp("^"+_+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+_+"*((?:-\\d)?\\d*)"+_+"*\\)|)(?=[^-]|$)","i")},V=/[\x20\t\r\n\f]*[+~]/,Y=/^[^{]+\{\s*\[native code/,J=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,G=/^(?:input|select|textarea|button)$/i,Q=/^h\d$/i,K=/'|\\/g,Z=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,et=/\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g,tt=function(e,t){var n="0x"+t-65536;return n!==n?t:0>n?String.fromCharCode(n+65536):String.fromCharCode(55296|n>>10,56320|1023&n)};try{q.call(w.documentElement.childNodes,0)[0].nodeType}catch(nt){q=function(e){var t,n=[];while(t=this[e++])n.push(t);return n}}function rt(e){return Y.test(e+"")}function it(){var e,t=[];return e=function(n,r){return t.push(n+Line truncated
|
|
||||||
}b.merge(d,s.childNodes),s.textContent="";while(s.firstChild)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(o));s&&f.removeChild(s),b.support.appendChecked||b.grep(Ot(d,"input"),Bt),h=0;while(o=d[h++])if((!r||-1===b.inArray(o,r))&&(a=b.contains(o.ownerDocument,o),s=Ot(f.appendChild(o),"script"),a&&Mt(s),n)){i=0;while(o=s[i++])kt.test(o.type||"")&&n.push(o)}return s=null,f},cleanData:function(e,t){var n,r,o,a,s=0,u=b.expando,l=b.cache,p=b.support.deleteExpando,f=b.event.special;for(;null!=(n=e[s]);s++)if((t||b.acceptData(n))&&(o=n[u],a=o&&l[o])){if(a.events)for(r in a.events)f[r]?b.event.remove(n,r):b.removeEvent(n,r,a.handle);l[o]&&(delete l[o],p?delete n[u]:typeof n.removeAttribute!==i?n.removeAttribute(u):n[u]=null,c.push(o))}}});var Pt,Rt,Wt,$t=/alpha\([^)]*\)/i,It=/opacity\s*=\s*([^)]*)/,zt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Ut=/^margin/,Vt=RegExp("^("+x+")(.*)$","i"),Yt=RegExp("^("+x+")(?!px)[a-z%]+$","i"),Jt=RegExp("^([+-])=("+x+")","i"),Gt={BODY:"block"},Qt={position:"absolute",visibility:"hidden",display:"block"},Kt={letterSpacing:0,fontWeight:400},Zt=["Top","Right","Bottom","Left"],en=["Webkit","O","Moz","ms"];function tn(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=en.length;while(i--)if(t=en[i]+n,t in e)return t;return r}function nn(e,t){return e=t||e,"none"===b.css(e,"display")||!b.contains(e.ownerDocument,e)}function rn(e,t){var n,r,i,o=[],a=0,s=e.length;for(;s>a;a++)r=e[a],r.style&&(o[a]=b._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&nn(r)&&(o[a]=b._data(r,"olddisplay",un(r.nodeName)))):o[a]||(i=nn(r),(n&&"none"!==n||!i)&&b._data(r,"olddisplay",i?n:b.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}b.fn.extend({css:function(e,n){return b.access(this,function(e,n,r){var i,o,a={},s=0;if(b.isArray(n)){for(o=Rt(e),i=n.length;i>s;s++)a[n[s]]=b.css(e,n[s],!1,o);return a}return r!==t?b.style(e,n,r):b.css(e,n)},e,n,arguments.length>1)},show:function(){return rn(this,!0)},hide:function(){return rn(this)},toggle:function(e){var t="boolean"==typeof e;return this.each(function(){(t?e:nn(this))?b(this).show():b(this).hide()})}}),b.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Wt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":b.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,u=b.camelCase(n),l=e.style;if(n=b.cssProps[u]||(b.cssProps[u]=tn(l,u)),s=b.cssHooks[n]||b.cssHooks[u],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:l[n];if(a=typeof r,"string"===a&&(o=Jt.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(b.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||b.cssNumber[u]||(r+="px"),b.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(l[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{l[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,u=b.camelCase(n);return n=b.cssProps[u]||(b.cssProps[u]=tn(e.style,u)),s=b.cssHooks[n]||b.cssHooks[u],s&&"get"in s&&(a=s.get(e,!0,r)),a===t&&(a=Wt(e,n,i)),"normal"===a&&n in Kt&&(a=Kt[n]),""===r||r?(o=parseFloat(a),r===!0||b.isNumeric(o)?o||0:a):a},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),e.getComputedStyle?(Rt=function(t){return e.getComputedStyle(t,null)},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),u=s?s.getPropertyValue(n)||s[n]:t,l=e.style;return s&&(""!==u||b.contains(e.ownerDocument,e)||(u=b.style(e,n)),Yt.test(u)&&Ut.test(n)&&(i=l.width,o=l.minWidth,a=l.maxWidth,l.minWidth=l.maxWidth=l.width=u,u=s.width,l.width=i,l.minWidth=o,l.maxWidth=a)),u}):o.documentElement.currentStyle&&(Rt=function(e){return e.currentStyle},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),u=s?s[n]:t,l=e.style;return null==u&&l&&l[n]&&(u=l[n]),Yt.test(u)&&!zt.test(n)&&(i=l.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),l.left="fontSize"===n?"1em":u,u=l.pixelLeft+"px",l.left=i,a&&(o.left=a)),""===u?"auto":u});function on(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function an(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;for(;4>o;o+=2)"margin"===n&&(a+=b.css(e,n+Zt[o],!0,i)),r?("content"===n&&(a-=b.css(e,"padding"+Zt[o],!0,i)),"margin"!==n&&(a-=b.css(e,"border"+Zt[o]+"Width",!0,i))):(a+=b.css(e,"padding"+Zt[o],!0,i),"padding"!==n&&(a+=b.css(e,"border"+Zt[o]+"Width",!0,i)));return a}function sn(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Rt(e),a=b.support.boxSizing&&"border-box"===b.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=Wt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Yt.test(i))return i;r=a&&(b.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}reLine truncated
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<title>Forbidden</title>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
{{with .Error}}
|
|
||||||
<h1>
|
|
||||||
{{.Title}}
|
|
||||||
</h1>
|
|
||||||
<p>
|
|
||||||
{{.Description}}
|
|
||||||
</p>
|
|
||||||
{{end}}
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
{
|
|
||||||
"title": "{{js .Error.Title}}",
|
|
||||||
"description": "{{js .Error.Description}}"
|
|
||||||
}
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
{{.Error.Title}}
|
|
||||||
|
|
||||||
{{.Error.Description}}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
<forbidden>{{.Error.Description}}</forbidden>
|
|
||||||
@@ -1,63 +0,0 @@
|
|||||||
<style type="text/css">
|
|
||||||
html, body {
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
font-family: Helvetica, Arial, Sans;
|
|
||||||
background: #EEEEEE;
|
|
||||||
}
|
|
||||||
.block {
|
|
||||||
padding: 20px;
|
|
||||||
border-bottom: 1px solid #aaa;
|
|
||||||
}
|
|
||||||
#header h1 {
|
|
||||||
font-weight: normal;
|
|
||||||
font-size: 28px;
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
#more {
|
|
||||||
color: #666;
|
|
||||||
font-size: 80%;
|
|
||||||
border: none;
|
|
||||||
}
|
|
||||||
#header {
|
|
||||||
background: #FFFFCC;
|
|
||||||
}
|
|
||||||
#header p {
|
|
||||||
color: #333;
|
|
||||||
}
|
|
||||||
#routes {
|
|
||||||
background: #f6f6f6;
|
|
||||||
}
|
|
||||||
#routes h2 {
|
|
||||||
font-weight: normal;
|
|
||||||
font-size: 18px;
|
|
||||||
margin: 0 0 10px 0;
|
|
||||||
}
|
|
||||||
#routes ol {
|
|
||||||
|
|
||||||
}
|
|
||||||
#routes li {
|
|
||||||
font-size: 14px;
|
|
||||||
font-family: monospace;
|
|
||||||
color: #333;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<div id="header" class="block">
|
|
||||||
{{with .Error}}
|
|
||||||
<h1>
|
|
||||||
{{.Title}}
|
|
||||||
</h1>
|
|
||||||
<p>
|
|
||||||
{{.Description}}
|
|
||||||
</p>
|
|
||||||
{{end}}
|
|
||||||
</div>
|
|
||||||
<div id="routes" class="block">
|
|
||||||
<h2>These routes have been tried, in this order :</h2>
|
|
||||||
<ol>
|
|
||||||
{{range .Router.Routes}}
|
|
||||||
<li>{{pad .Method 10}}{{pad .Path 50}}{{.Action}}</li>
|
|
||||||
{{end}}
|
|
||||||
</ol>
|
|
||||||
</div>
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<title>Not found</title>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
|
|
||||||
{{if .DevMode}}
|
|
||||||
|
|
||||||
{{template "errors/404-dev.html" .}}
|
|
||||||
|
|
||||||
{{else}}
|
|
||||||
|
|
||||||
{{with .Error}}
|
|
||||||
<h1>
|
|
||||||
{{.Title}}
|
|
||||||
</h1>
|
|
||||||
<p>
|
|
||||||
{{.Description}}
|
|
||||||
</p>
|
|
||||||
{{end}}
|
|
||||||
|
|
||||||
{{end}}
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
{
|
|
||||||
"title": "{{js .Error.Title}}",
|
|
||||||
"description": "{{js .Error.Description}}"
|
|
||||||
}
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
{{.Error.Title}}
|
|
||||||
|
|
||||||
{{.Error.Description}}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
<notfound>{{.Error.Description}}</notfound>
|
|
||||||
@@ -1,118 +0,0 @@
|
|||||||
<style type="text/css">
|
|
||||||
html, body {
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
font-family: Helvetica, Arial, Sans;
|
|
||||||
background: #EEEEEE;
|
|
||||||
}
|
|
||||||
.block {
|
|
||||||
padding: 20px;
|
|
||||||
border-bottom: 1px solid #aaa;
|
|
||||||
}
|
|
||||||
#header h1 {
|
|
||||||
font-weight: normal;
|
|
||||||
font-size: 28px;
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
#more {
|
|
||||||
color: #666;
|
|
||||||
font-size: 80%;
|
|
||||||
border: none;
|
|
||||||
}
|
|
||||||
#header {
|
|
||||||
background: #fcd2da;
|
|
||||||
}
|
|
||||||
#header p {
|
|
||||||
color: #333;
|
|
||||||
}
|
|
||||||
#source {
|
|
||||||
background: #f6f6f6;
|
|
||||||
}
|
|
||||||
#source h2 {
|
|
||||||
font-weight: normal;
|
|
||||||
font-size: 18px;
|
|
||||||
margin: 0 0 10px 0;
|
|
||||||
}
|
|
||||||
#source .lineNumber {
|
|
||||||
float: left;
|
|
||||||
display: block;
|
|
||||||
width: 40px;
|
|
||||||
text-align: right;
|
|
||||||
margin-right: 10px;
|
|
||||||
font-size: 14px;
|
|
||||||
font-family: monospace;
|
|
||||||
background: #333;
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
#source .line {
|
|
||||||
clear: both;
|
|
||||||
color: #333;
|
|
||||||
margin-bottom: 1px;
|
|
||||||
}
|
|
||||||
#source pre {
|
|
||||||
font-size: 14px;
|
|
||||||
margin: 0;
|
|
||||||
overflow-x: hidden;
|
|
||||||
}
|
|
||||||
#source .error {
|
|
||||||
color: #c00 !important;
|
|
||||||
}
|
|
||||||
#source .error .lineNumber {
|
|
||||||
background: #c00;
|
|
||||||
}
|
|
||||||
#source a {
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
#source a:hover * {
|
|
||||||
cursor: pointer !important;
|
|
||||||
}
|
|
||||||
#source a:hover pre {
|
|
||||||
background: #FAFFCF !important;
|
|
||||||
}
|
|
||||||
#source em {
|
|
||||||
font-style: normal;
|
|
||||||
text-decoration: underline;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
#source strong {
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
{{with .Error}}
|
|
||||||
<div id="header" class="block">
|
|
||||||
<h1>
|
|
||||||
{{.Title}}
|
|
||||||
</h1>
|
|
||||||
<p>
|
|
||||||
{{if .SourceType}}
|
|
||||||
The {{.SourceType}} <strong>{{.Path}}</strong> does not compile: <strong>{{.Description}}</strong>
|
|
||||||
{{else}}
|
|
||||||
{{.Description}}
|
|
||||||
{{end}}
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
{{if .Path}}
|
|
||||||
<div id="source" class="block">
|
|
||||||
<h2>In {{.Path}}
|
|
||||||
{{if .Line}}
|
|
||||||
(around {{if .Line}}line {{.Line}}{{end}}{{if .Column}} column {{.Column}}{{end}})
|
|
||||||
{{end}}
|
|
||||||
</h2>
|
|
||||||
{{range .ContextSource}}
|
|
||||||
<div class="line {{if .IsError}}error{{end}}">
|
|
||||||
<span class="lineNumber">{{.Line}}:</span>
|
|
||||||
<pre>{{.Source}}</pre>
|
|
||||||
</div>
|
|
||||||
{{end}}
|
|
||||||
</div>
|
|
||||||
{{end}}
|
|
||||||
{{if .MetaError}}
|
|
||||||
<div id="source" class="block">
|
|
||||||
<h2>Additionally, an error occurred while handling this error.</h2>
|
|
||||||
<div class="line error">
|
|
||||||
{{.MetaError}}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{{end}}
|
|
||||||
{{end}}
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title>Application error</title>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
{{if .DevMode}}
|
|
||||||
{{template "errors/500-dev.html" .}}
|
|
||||||
{{else}}
|
|
||||||
<h1>Oops, an error occured</h1>
|
|
||||||
<p>
|
|
||||||
This exception has been logged.
|
|
||||||
</p>
|
|
||||||
{{end}}
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
{
|
|
||||||
"title": "{{js .Error.Title}}",
|
|
||||||
"description": "{{js .Error.Description}}"
|
|
||||||
}
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
{{.Error.Title}}
|
|
||||||
{{.Error.Description}}
|
|
||||||
|
|
||||||
{{if eq .RunMode "dev"}}
|
|
||||||
{{with .Error}}
|
|
||||||
{{if .Path}}
|
|
||||||
----------
|
|
||||||
In {{.Path}} {{if .Line}}(around line {{.Line}}){{end}}
|
|
||||||
|
|
||||||
{{range .ContextSource}}
|
|
||||||
{{if .IsError}}>{{else}} {{end}} {{.Line}}: {{.Source}}{{end}}
|
|
||||||
|
|
||||||
{{end}}
|
|
||||||
{{end}}
|
|
||||||
{{end}}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
<error>
|
|
||||||
<title>{{.Error.Title}}</title>
|
|
||||||
<description>{{.Error.Description}}</description>
|
|
||||||
</error>
|
|
||||||
Reference in new issue
Block a user