Re-deletes files that should not be committed! Seriously WHY DOES THIS KEEP HAPPENING??! Have updated the ignore to try and stop this
4
.gitignore
vendored
@@ -95,3 +95,7 @@ NDependOut/*
|
||||
*.ndproj
|
||||
QueryResult.htm
|
||||
*.ndproj
|
||||
src/Umbraco.Web.UI/umbraco/assets/*
|
||||
src/Umbraco.Web.UI/umbraco/lib/*
|
||||
src/Umbraco.Web.UI/umbraco/Views/**/*.html
|
||||
src/Umbraco.Web.UI/umbraco/Views/**/*.js
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
<form ng-controller="Umbraco.DashboardController" class="umb-dashboard">
|
||||
<umb-panel val-show-validation>
|
||||
<umb-header tabs="dashboard.tabs">
|
||||
<div class="umb-headline-editor-wrapper span12">
|
||||
<h1 class="headline">{{dashboard.name}}</h1>
|
||||
</div>
|
||||
</umb-header>
|
||||
<umb-tab-view>
|
||||
<umb-tab id="tab{{tab.id}}" rel="{{tab.id}}" ng-repeat="tab in dashboard.tabs">
|
||||
<div class="umb-pane">
|
||||
<div ng-repeat="property in tab.properties" ng-switch on="property.serverSide">
|
||||
|
||||
<div class="span12 umb-dashboard-control clearfix"
|
||||
ng-switch-when="false">
|
||||
<h3 ng-show="property.caption">{{property.caption}}</h3>
|
||||
<div ng-include="property.path"></div>
|
||||
</div>
|
||||
|
||||
<div class="span12 umb-dashboard-control clearfix"
|
||||
ng-switch-when="true">
|
||||
<h3 ng-show="property.caption">{{property.caption}}</h3>
|
||||
<iframe style="min-height: 200px; max-height: 90%;" resize-to-content ng-src="dashboard/usercontrolproxy.aspx?ctrl={{ property.path}}"></iframe>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</umb-tab>
|
||||
</umb-tab-view>
|
||||
</umb-panel>
|
||||
</form>
|
||||
@@ -1,12 +0,0 @@
|
||||
<div class="umb-panel-header">
|
||||
<div class="row-fluid">
|
||||
|
||||
<div ng-transclude></div>
|
||||
|
||||
<ul ng-show="showTabs" class="nav nav-tabs umb-nav-tabs span12">
|
||||
<li ng-class="{active: $first, error: tabHasError}" ng-repeat="tab in collectedTabs" val-tab>
|
||||
<a href="#tab{{tab.id}}" data-toggle="tab">{{ tab.label }}</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1,3 +0,0 @@
|
||||
<div class="umb-panel tabbable" ng-transclude>
|
||||
|
||||
</div>
|
||||
@@ -1,5 +0,0 @@
|
||||
<div class="umb-panel-body umb-scrollable row-fluid" auto-scale="1">
|
||||
<div class="tab-content form-horizontal" ng-transclude>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
Before Width: | Height: | Size: 4.1 KiB |
|
Before Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 4.9 KiB |
|
Before Width: | Height: | Size: 1.4 KiB |
@@ -1,20 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
width="32px" height="32px" viewBox="0 0 32 32" enable-background="new 0 0 32 32" xml:space="preserve">
|
||||
<g>
|
||||
<path fill="#B7B7B7" d="M28.246,13.454l-2.38-0.847c-0.14-0.404-0.304-0.8-0.491-1.184l1.084-2.281
|
||||
c0.182-0.382,0.104-0.837-0.195-1.136l-2.269-2.269c-0.298-0.299-0.754-0.379-1.138-0.196l-2.28,1.085
|
||||
c-0.384-0.188-0.78-0.352-1.185-0.491l-0.848-2.38c-0.143-0.399-0.521-0.665-0.941-0.665h-3.208c-0.423,0-0.801,0.267-0.942,0.665
|
||||
l-0.846,2.38c-0.404,0.139-0.801,0.303-1.185,0.491l-2.28-1.085C8.759,5.358,8.303,5.438,8.005,5.737L5.737,8.006
|
||||
C5.438,8.305,5.359,8.76,5.541,9.142l1.085,2.281c-0.188,0.385-0.353,0.78-0.491,1.185l-2.38,0.846
|
||||
c-0.398,0.142-0.665,0.52-0.665,0.942v3.208c0,0.424,0.266,0.802,0.665,0.942l2.379,0.847c0.139,0.403,0.303,0.799,0.491,1.186
|
||||
L5.54,22.859c-0.182,0.382-0.103,0.836,0.196,1.136l2.268,2.269c0.298,0.299,0.754,0.375,1.136,0.195l2.281-1.085
|
||||
c0.385,0.188,0.781,0.353,1.185,0.492l0.846,2.379c0.142,0.399,0.519,0.665,0.942,0.665h3.208c0.424,0,0.801-0.266,0.942-0.665
|
||||
l0.847-2.379c0.404-0.14,0.801-0.304,1.186-0.492l2.279,1.085c0.383,0.182,0.838,0.104,1.138-0.195l2.269-2.269
|
||||
c0.299-0.3,0.379-0.754,0.195-1.136l-1.084-2.281c0.188-0.385,0.354-0.781,0.49-1.186l2.38-0.847
|
||||
c0.397-0.144,0.665-0.521,0.665-0.94v-3.208C28.91,13.974,28.645,13.596,28.246,13.454z M16,20.657
|
||||
c-2.571,0-4.657-2.084-4.657-4.657s2.085-4.657,4.657-4.657c2.572,0,4.657,2.084,4.657,4.657S18.57,20.657,16,20.657z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.8 KiB |
@@ -1,12 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
width="32px" height="32px" viewBox="0 0 32 32" enable-background="new 0 0 32 32" xml:space="preserve">
|
||||
<g>
|
||||
<path fill="#B7B7B7" d="M25.654,9.275l-5.831-5.832c-0.47-0.469-1.104-0.732-1.769-0.732H8.113c-1.381,0-2.5,1.119-2.5,2.5v21.578
|
||||
c0,1.381,1.119,2.5,2.5,2.5h15.774c1.381,0,2.5-1.119,2.5-2.5V11.043C26.387,10.38,26.124,9.744,25.654,9.275z M8.113,26.789V5.211
|
||||
h9.444l0.004,0.012c0.004,0.019,0.539,1.955-0.384,5.504c-0.049,0.187,0.015,0.385,0.159,0.51c0.146,0.126,0.352,0.157,0.527,0.081
|
||||
c3.908-1.674,5.92,0.21,6.021,0.311V26.79L8.113,26.789L8.113,26.789z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 951 B |
@@ -1,16 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
width="32px" height="32px" viewBox="0 0 32 32" enable-background="new 0 0 32 32" xml:space="preserve">
|
||||
<g>
|
||||
<path fill="#B7B7B7" d="M28.191,4.536H3.809c-0.67,0-1.214,0.543-1.214,1.214v20.5c0,0.67,0.543,1.214,1.214,1.214h24.382
|
||||
c0.67,0,1.215-0.543,1.215-1.214V5.75C29.404,5.08,28.861,4.536,28.191,4.536z M26.979,25.036H5.022V6.964h21.955v18.072H26.979z"
|
||||
/>
|
||||
<path fill="#B7B7B7" d="M7.639,22.881h16.722c0.383,0,0.718-0.256,0.815-0.625c0.103-0.369-0.059-0.759-0.389-0.951l-6.97-4.086
|
||||
c-0.312-0.183-0.703-0.148-0.979,0.09l-1.704,1.469l-3.296-2.833c-0.184-0.158-0.426-0.226-0.666-0.197
|
||||
c-0.24,0.033-0.454,0.167-0.589,0.368l-3.65,5.446c-0.174,0.262-0.191,0.596-0.043,0.871C7.039,22.708,7.326,22.881,7.639,22.881z"
|
||||
/>
|
||||
<circle fill="#B7B7B7" cx="22.578" cy="12.391" r="2.566"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.1 KiB |
@@ -1,14 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
width="32px" height="32px" viewBox="0 0 32 32" enable-background="new 0 0 32 32" xml:space="preserve">
|
||||
<g>
|
||||
<path fill="#B7B7B7" d="M11.52,15.212c1.446,2.662,3.229,3.222,4.47,3.222c1.238,0,3.021-0.559,4.48-3.215l0.096-0.176
|
||||
c0.783-1.42,1.3-2.358,1.3-4.567c0-3.476-0.698-7.028-5.876-7.028c-5.842,0-5.842,4.747-5.842,7.028
|
||||
c0,2.211,0.511,3.152,1.284,4.575L11.52,15.212z"/>
|
||||
<path fill="#B7B7B7" d="M28.271,23.137l-6.514-2.917c-0.189-0.084-0.404-0.087-0.598-0.007l-3.371,1.418h-3.572l-3.372-1.408
|
||||
c-0.19-0.08-0.405-0.076-0.595,0.008l-6.521,2.91c-0.271,0.12-0.444,0.39-0.444,0.686v3.977c0,0.414,0.336,0.75,0.75,0.75h23.928
|
||||
c0.414,0,0.75-0.336,0.75-0.75V23.82C28.714,23.525,28.54,23.258,28.271,23.137z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.1 KiB |
@@ -1,14 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
width="32px" height="32px" viewBox="0 0 32 32" enable-background="new 0 0 32 32" xml:space="preserve">
|
||||
<g>
|
||||
<path fill="#B7B7B7" d="M27.539,21.979c-0.012-0.011-11.828-10.46-11.828-10.46c0.193-0.611,0.295-1.255,0.295-1.915
|
||||
c0-1.691-0.658-3.281-1.854-4.477c-1.196-1.196-2.785-1.854-4.477-1.854c-0.795,0-1.566,0.151-2.285,0.43l3.428,3.429v3.616H7.203
|
||||
L3.777,7.319c-0.873,2.266-0.402,4.936,1.422,6.76c1.195,1.195,2.785,1.854,4.477,1.854c0.582,0,1.15-0.083,1.695-0.234
|
||||
c0,0,10.42,11.812,10.467,11.859c0.754,0.754,1.756,1.17,2.822,1.17c1.068,0,2.07-0.416,2.824-1.17
|
||||
C29.02,26.023,29.033,23.541,27.539,21.979z M24.676,26.352c-0.893,0-1.615-0.725-1.615-1.617c0-0.892,0.725-1.614,1.615-1.614
|
||||
s1.615,0.724,1.615,1.614C26.291,25.627,25.566,26.352,24.676,26.352z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.1 KiB |
@@ -1,19 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
width="32px" height="32px" viewBox="0 0 32 32" enable-background="new 0 0 32 32" xml:space="preserve">
|
||||
<g>
|
||||
<path fill="#B7B7B7" d="M28.449,5.465H3.551c-0.69,0-1.25,0.56-1.25,1.25v18.57c0,0.689,0.56,1.25,1.25,1.25h24.898
|
||||
c0.689,0,1.25-0.561,1.25-1.25V6.715C29.699,6.024,29.141,5.465,28.449,5.465z M27.199,24.035H4.801V7.965h3.383v2.437h4V7.965
|
||||
h7.632v2.437h4V7.965H27.2L27.199,24.035L27.199,24.035z"/>
|
||||
<path fill="#B7B7B7" d="M9.519,16.697c0.474,0.871,1.075,1.054,1.495,1.054c0.419,0,1.02-0.183,1.498-1.051l0.029-0.054
|
||||
c0.237-0.431,0.408-0.74,0.408-1.443c0-0.622,0-2.274-1.934-2.274c-1.924,0-1.924,1.594-1.924,2.274
|
||||
c0,0.705,0.169,1.016,0.404,1.447L9.519,16.697z"/>
|
||||
<path fill="#B7B7B7" d="M14.681,18.852l-1.923-0.86c-0.082-0.037-0.174-0.039-0.256-0.005l-0.977,0.412h-1.014L9.534,17.99
|
||||
c-0.082-0.035-0.174-0.033-0.254,0.003l-1.925,0.858c-0.116,0.053-0.19,0.168-0.19,0.293v1.174c0,0.177,0.144,0.32,0.321,0.32
|
||||
h7.063c0.177,0,0.321-0.145,0.321-0.32v-1.176C14.871,19.018,14.796,18.902,14.681,18.852z"/>
|
||||
<rect x="17.734" y="13.498" fill="#B7B7B7" width="7.102" height="1.966"/>
|
||||
<rect x="17.734" y="18.03" fill="#B7B7B7" width="7.102" height="1.966"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.5 KiB |
@@ -1,20 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
width="32px" height="32px" viewBox="0 0 32 32" enable-background="new 0 0 32 32" xml:space="preserve">
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#B7B7B7" d="M27.795,13.455H4.205c-0.69,0-1.25-0.56-1.25-1.25V4.056c0-0.69,0.56-1.25,1.25-1.25h23.59
|
||||
c0.689,0,1.25,0.56,1.25,1.25v8.149C29.045,12.896,28.484,13.455,27.795,13.455z M5.455,10.955h21.09V5.306H5.455V10.955z"/>
|
||||
</g>
|
||||
<path fill="#B7B7B7" d="M17.049,24.436c0-0.428,0.044-0.844,0.121-1.25H5.455v-5.647h21.09v0.78c0.982,0.447,1.839,1.123,2.5,1.959
|
||||
v-3.989c0-0.69-0.561-1.25-1.25-1.25H4.205c-0.69,0-1.25,0.56-1.25,1.25v8.147c0,0.69,0.56,1.25,1.25,1.25H17.17
|
||||
C17.093,25.28,17.049,24.864,17.049,24.436z"/>
|
||||
<path fill="#B7B7B7" d="M23.771,19.678c-2.623,0-4.758,2.135-4.758,4.758s2.135,4.758,4.758,4.758s4.758-2.135,4.758-4.758
|
||||
S26.395,19.678,23.771,19.678z M26.646,24.707c0,0.252-0.203,0.456-0.455,0.456h-1.692v1.692c0,0.252-0.204,0.457-0.456,0.457H23.5
|
||||
c-0.252,0-0.456-0.205-0.456-0.457v-1.692h-1.692c-0.252,0-0.455-0.204-0.455-0.456v-0.542c0-0.252,0.203-0.456,0.455-0.456h1.692
|
||||
v-1.693c0-0.252,0.204-0.455,0.456-0.455h0.543c0.252,0,0.456,0.203,0.456,0.455v1.693h1.692c0.252,0,0.455,0.204,0.455,0.456
|
||||
V24.707z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.5 KiB |
@@ -1,14 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
width="32px" height="32px" viewBox="0 0 32 32" enable-background="new 0 0 32 32" xml:space="preserve">
|
||||
<g>
|
||||
<path fill="#B7B7B7" d="M16.001,3.081c-7.322,0-13.257,5.935-13.257,13.256c0,5.021,2.791,9.388,6.906,11.638v-2.977
|
||||
c-2.666-1.959-4.406-5.107-4.406-8.661c0-5.931,4.825-10.756,10.757-10.756c5.931,0,10.755,4.825,10.755,10.756
|
||||
c0,3.556-1.74,6.703-4.406,8.662v2.976c4.115-2.25,6.906-6.617,6.906-11.638C29.256,9.016,23.322,3.081,16.001,3.081z"/>
|
||||
<path fill="#B7B7B7" d="M16.371,11.254c-0.095-0.104-0.229-0.163-0.369-0.163s-0.274,0.059-0.369,0.163l-5.143,5.633
|
||||
c-0.134,0.146-0.168,0.357-0.088,0.539c0.079,0.182,0.259,0.299,0.457,0.299h2.168v10.694c0,0.276,0.224,0.5,0.5,0.5h4.946
|
||||
c0.276,0,0.5-0.224,0.5-0.5V17.725h2.168c0.197,0,0.377-0.117,0.457-0.298c0.079-0.181,0.045-0.392-0.089-0.538L16.371,11.254z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.3 KiB |
@@ -1,22 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Help_alt" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
width="435.621px" height="435.035px" viewBox="0 0 435.621 435.035" enable-background="new 0 0 435.621 435.035"
|
||||
xml:space="preserve">
|
||||
<g>
|
||||
<path fill="#4C4C4C" d="M217.81,0c120.295,0,217.811,97.519,217.811,217.809c0,120.296-97.516,217.815-217.811,217.815
|
||||
C97.517,435.625,0,338.105,0,217.809C0,97.519,97.517,0,217.81,0 M217.81,37.558c-99.393,0-180.253,80.86-180.253,180.251
|
||||
c0,99.396,80.86,180.257,180.253,180.257c99.391,0,180.251-80.861,180.251-180.257C398.061,118.418,317.201,37.558,217.81,37.558
|
||||
L217.81,37.558z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#4C4C4C" d="M160.712,95.697c14.748-9.496,32.873-14.247,54.371-14.247c28.244,0,51.714,6.748,70.399,20.25
|
||||
c18.686,13.497,28.029,33.496,28.029,59.995c0,16.246-4.051,29.933-12.153,41.058c-4.739,6.751-13.837,15.375-27.301,25.87
|
||||
l-13.272,10.312c-7.23,5.627-12.032,12.188-14.396,19.688c-1.497,4.748-2.311,12.123-2.435,22.121h-50.806
|
||||
c0.745-21.123,2.741-35.718,5.979-43.779c3.24-8.062,11.591-17.34,25.048-27.839l13.648-10.686
|
||||
c4.484-3.373,8.1-7.062,10.843-11.062c4.982-6.876,7.478-14.438,7.478-22.688c0-9.499-2.774-18.154-8.324-25.966
|
||||
c-5.547-7.811-15.68-11.718-30.395-11.718c-14.465,0-24.725,4.812-30.77,14.437c-6.048,9.627-9.069,19.622-9.069,29.999h-54.185
|
||||
C124.903,135.823,137.34,110.573,160.712,95.697z M191.836,306.43h56.057v54.184h-56.057V306.43z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.7 KiB |
@@ -1,87 +0,0 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
width="204.126px" height="26.628px" viewBox="0 0 204.126 26.628" style="enable-background:new 0 0 204.126 26.628;"
|
||||
xml:space="preserve">
|
||||
<g>
|
||||
<path style="fill:#FFFFFF;" d="M25.156,10.364l-2.38-0.847c-0.14-0.404-0.304-0.8-0.491-1.184l1.084-2.281
|
||||
c0.182-0.382,0.104-0.837-0.195-1.136l-2.269-2.269c-0.298-0.299-0.754-0.379-1.138-0.196l-2.28,1.085
|
||||
c-0.384-0.188-0.78-0.352-1.185-0.491l-0.847-2.38C15.314,0.266,14.936,0,14.514,0h-3.208c-0.423,0-0.801,0.267-0.942,0.665
|
||||
l-0.846,2.38C9.114,3.184,8.717,3.348,8.333,3.536L6.052,2.451C5.669,2.268,5.213,2.348,4.915,2.647L2.647,4.916
|
||||
C2.348,5.215,2.269,5.67,2.451,6.052l1.085,2.281c-0.188,0.385-0.353,0.78-0.491,1.185l-2.38,0.846C0.267,10.506,0,10.884,0,11.306
|
||||
v3.208c0,0.424,0.266,0.801,0.665,0.942l2.379,0.847c0.139,0.403,0.303,0.799,0.491,1.185L2.45,19.77
|
||||
c-0.182,0.382-0.103,0.836,0.196,1.136l2.268,2.269c0.298,0.299,0.754,0.375,1.136,0.195l2.281-1.085
|
||||
c0.385,0.188,0.781,0.353,1.185,0.492l0.846,2.379c0.142,0.399,0.519,0.665,0.942,0.665h3.208c0.424,0,0.801-0.266,0.942-0.665
|
||||
l0.847-2.379c0.404-0.14,0.801-0.304,1.185-0.492l2.28,1.085c0.383,0.182,0.838,0.104,1.137-0.195l2.268-2.269
|
||||
c0.299-0.3,0.379-0.754,0.196-1.136l-1.084-2.281c0.188-0.385,0.353-0.781,0.491-1.186l2.379-0.846
|
||||
c0.398-0.143,0.665-0.52,0.665-0.941v-3.208C25.82,10.884,25.555,10.506,25.156,10.364z M12.91,17.567
|
||||
c-2.571,0-4.657-2.084-4.657-4.657s2.085-4.657,4.657-4.657c2.572,0,4.657,2.084,4.657,4.657S15.48,17.567,12.91,17.567z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path style="fill:#FFFFFF;" d="M45.859,6.185l-5.831-5.832c-0.47-0.469-1.104-0.732-1.769-0.732h-9.942c-1.381,0-2.5,1.119-2.5,2.5
|
||||
v21.578c0,1.381,1.119,2.5,2.5,2.5h15.774c1.381,0,2.5-1.119,2.5-2.5V7.953C46.591,7.29,46.329,6.654,45.859,6.185z M28.317,23.699
|
||||
V2.121h9.444l0.004,0.012c0.004,0.019,0.539,1.955-0.384,5.504c-0.049,0.187,0.015,0.385,0.159,0.51
|
||||
c0.146,0.126,0.352,0.157,0.527,0.081c3.908-1.674,5.92,0.21,6.021,0.311V23.7L28.317,23.699L28.317,23.699z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path style="fill:#FFFFFF;" d="M72.188,0H47.805c-0.67,0-1.214,0.543-1.214,1.214v20.5c0,0.67,0.543,1.214,1.214,1.214h24.382
|
||||
c0.67,0,1.215-0.543,1.215-1.214v-20.5C73.4,0.544,72.857,0,72.188,0z M70.975,20.5H49.018V2.428h21.955V20.5H70.975z"/>
|
||||
<path style="fill:#FFFFFF;" d="M51.635,18.345h16.722c0.383,0,0.718-0.256,0.816-0.625c0.102-0.369-0.059-0.759-0.389-0.951
|
||||
l-6.969-4.086c-0.312-0.183-0.704-0.148-0.979,0.09l-1.704,1.469l-3.296-2.833c-0.184-0.158-0.426-0.226-0.666-0.197
|
||||
c-0.24,0.033-0.454,0.167-0.589,0.368l-3.65,5.447c-0.174,0.261-0.191,0.595-0.043,0.871
|
||||
C51.035,18.172,51.322,18.345,51.635,18.345z"/>
|
||||
<circle style="fill:#FFFFFF;" cx="66.574" cy="7.855" r="2.566"/>
|
||||
</g>
|
||||
<g>
|
||||
<path style="fill:#FFFFFF;" d="M81.636,11.764c1.446,2.662,3.229,3.222,4.47,3.222c1.238,0,3.021-0.559,4.48-3.215l0.096-0.176
|
||||
c0.783-1.42,1.3-2.358,1.3-4.567C91.982,3.552,91.284,0,86.106,0c-5.842,0-5.842,4.747-5.842,7.028
|
||||
c0,2.211,0.511,3.152,1.284,4.575L81.636,11.764z"/>
|
||||
<path style="fill:#FFFFFF;" d="M98.388,19.688l-6.513-2.917c-0.19-0.084-0.405-0.087-0.598-0.007l-3.371,1.418h-3.572l-3.372-1.408
|
||||
c-0.19-0.08-0.405-0.076-0.595,0.008l-6.521,2.91c-0.271,0.12-0.444,0.389-0.444,0.685v3.977c0,0.414,0.336,0.75,0.75,0.75H98.08
|
||||
c0.414,0,0.75-0.336,0.75-0.75v-3.981C98.83,20.077,98.656,19.81,98.388,19.688z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path style="fill:#FFFFFF;" d="M123.017,18.889c-0.012-0.011-11.828-10.461-11.828-10.461c0.193-0.611,0.295-1.255,0.295-1.915
|
||||
c0-1.691-0.658-3.281-1.854-4.477c-1.196-1.196-2.785-1.854-4.477-1.854c-0.795,0-1.566,0.151-2.285,0.43l3.428,3.429v3.616h-3.615
|
||||
l-3.426-3.427c-0.873,2.266-0.402,4.936,1.422,6.76c1.195,1.195,2.785,1.854,4.477,1.854c0.582,0,1.15-0.083,1.695-0.234
|
||||
c0,0,10.42,11.812,10.467,11.859c0.754,0.754,1.756,1.17,2.822,1.17c1.068,0,2.07-0.416,2.824-1.17
|
||||
C124.498,22.934,124.511,20.451,123.017,18.889z M120.154,23.262c-0.893,0-1.615-0.725-1.615-1.617
|
||||
c0-0.892,0.724-1.615,1.615-1.615c0.891,0,1.615,0.724,1.615,1.615C121.769,22.537,121.044,23.262,120.154,23.262z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path style="fill:#FFFFFF;" d="M150.274-0.114h-24.898c-0.69,0-1.25,0.56-1.25,1.25v18.57c0,0.689,0.56,1.25,1.25,1.25h24.898
|
||||
c0.689,0,1.25-0.561,1.25-1.25V1.136C151.524,0.445,150.966-0.114,150.274-0.114z M149.024,18.456h-22.398V2.386h3.383v2.437h4
|
||||
V2.386h7.632v2.437h4V2.386h3.384L149.024,18.456L149.024,18.456z"/>
|
||||
<path style="fill:#FFFFFF;" d="M131.344,11.118c0.474,0.871,1.075,1.054,1.495,1.054c0.419,0,1.02-0.183,1.498-1.051l0.029-0.054
|
||||
c0.237-0.43,0.408-0.74,0.408-1.443c0-0.622,0-2.274-1.934-2.274c-1.924,0-1.924,1.594-1.924,2.274
|
||||
c0,0.705,0.169,1.016,0.404,1.447L131.344,11.118z"/>
|
||||
<path style="fill:#FFFFFF;" d="M136.506,13.272l-1.923-0.861c-0.082-0.037-0.174-0.039-0.256-0.004l-0.977,0.412h-1.014
|
||||
l-0.977-0.408c-0.082-0.035-0.174-0.033-0.254,0.003l-1.925,0.858c-0.116,0.053-0.19,0.168-0.19,0.293v1.174
|
||||
c0,0.177,0.144,0.32,0.321,0.32h7.063c0.177,0,0.321-0.144,0.321-0.32v-1.176C136.696,13.438,136.621,13.323,136.506,13.272z"/>
|
||||
<rect x="139.56" y="7.919" style="fill:#FFFFFF;" width="7.102" height="1.966"/>
|
||||
<rect x="139.56" y="12.451" style="fill:#FFFFFF;" width="7.102" height="1.966"/>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<path style="fill:#FFFFFF;" d="M176.364,10.89h-23.59c-0.69,0-1.25-0.56-1.25-1.25V1.491c0-0.69,0.56-1.25,1.25-1.25h23.59
|
||||
c0.689,0,1.25,0.56,1.25,1.25V9.64C177.614,10.331,177.054,10.89,176.364,10.89z M154.024,8.39h21.09V2.741h-21.09V8.39z"/>
|
||||
</g>
|
||||
<path style="fill:#FFFFFF;" d="M165.618,21.87c0-0.428,0.044-0.844,0.121-1.25h-11.715v-5.648h21.09v0.781
|
||||
c0.982,0.447,1.839,1.123,2.5,1.959v-3.99c0-0.69-0.561-1.25-1.25-1.25h-23.59c-0.69,0-1.25,0.56-1.25,1.25v8.148
|
||||
c0,0.69,0.56,1.25,1.25,1.25h12.965C165.662,22.715,165.618,22.299,165.618,21.87z"/>
|
||||
<path style="fill:#FFFFFF;" d="M172.341,17.112c-2.623,0-4.758,2.135-4.758,4.758s2.135,4.758,4.758,4.758s4.758-2.135,4.758-4.758
|
||||
S174.964,17.112,172.341,17.112z M175.216,22.142c0,0.252-0.203,0.456-0.455,0.456h-1.692v1.692c0,0.252-0.204,0.457-0.456,0.457
|
||||
h-0.543c-0.252,0-0.456-0.205-0.456-0.457v-1.692h-1.692c-0.252,0-0.455-0.204-0.455-0.456V21.6c0-0.252,0.203-0.456,0.455-0.456
|
||||
h1.692V19.45c0-0.252,0.204-0.455,0.456-0.455h0.543c0.252,0,0.456,0.203,0.456,0.455v1.693h1.692c0.252,0,0.455,0.204,0.455,0.456
|
||||
V22.142z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path style="fill:#FFFFFF;" d="M190.871-0.447c-7.322,0-13.257,5.935-13.257,13.256c0,5.021,2.791,9.388,6.906,11.638V21.47
|
||||
c-2.666-1.959-4.406-5.107-4.406-8.661c0-5.931,4.825-10.756,10.757-10.756c5.931,0,10.755,4.825,10.755,10.756
|
||||
c0,3.556-1.74,6.703-4.406,8.662v2.976c4.115-2.25,6.906-6.617,6.906-11.638C204.126,5.488,198.192-0.447,190.871-0.447z"/>
|
||||
<path style="fill:#FFFFFF;" d="M191.241,7.726c-0.095-0.104-0.229-0.163-0.369-0.163s-0.274,0.059-0.369,0.163l-5.143,5.633
|
||||
c-0.134,0.146-0.168,0.357-0.088,0.539c0.079,0.182,0.259,0.299,0.457,0.299h2.168v10.694c0,0.276,0.224,0.5,0.5,0.5h4.946
|
||||
c0.276,0,0.5-0.224,0.5-0.5V14.196h2.168c0.197,0,0.377-0.117,0.457-0.298c0.079-0.181,0.045-0.392-0.089-0.538L191.241,7.726z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 7.2 KiB |
|
Before Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 4.1 KiB |
|
Before Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 23 KiB |
@@ -1,17 +0,0 @@
|
||||
var app = angular.module('umbraco', [
|
||||
'umbraco.filters',
|
||||
'umbraco.directives',
|
||||
'umbraco.resources',
|
||||
'umbraco.services',
|
||||
'umbraco.httpbackend',
|
||||
'ngCookies',
|
||||
'ngMobile',
|
||||
'ui.sortable',
|
||||
'blueimp.fileupload'
|
||||
]);
|
||||
|
||||
/* For Angular 1.2: we need to load in Route, animate and touch seperately
|
||||
'ngRoute',
|
||||
'ngAnimate',
|
||||
'ngTouch'
|
||||
*/
|
||||
@@ -1,8 +0,0 @@
|
||||
var app = angular.module('umbraco', [
|
||||
'umbraco.filters',
|
||||
'umbraco.directives',
|
||||
'umbraco.resources',
|
||||
'umbraco.services',
|
||||
'umbraco.httpbackend',
|
||||
'umbraco.security'
|
||||
]);
|
||||
@@ -1,65 +0,0 @@
|
||||
yepnope({
|
||||
|
||||
load: [
|
||||
'lib/jquery/jquery-2.0.3.min.js',
|
||||
|
||||
/* the jquery ui elements we need */
|
||||
/* NOTE: I've opted not to use the full lib, just the parts we need to save on DL */
|
||||
'lib/jquery/jquery.ui.core.min.js',
|
||||
'lib/jquery/jquery.ui.widget.min.js',
|
||||
'lib/jquery/jquery.ui.mouse.min.js',
|
||||
'lib/jquery/jquery.ui.sortable.min.js',
|
||||
'lib/jquery/jquery.ui.effect.min.js',
|
||||
'lib/jquery/jquery.ui.effect-highlight.min.js',
|
||||
'lib/jquery/jquery.ui.draggable.js',
|
||||
|
||||
/* 1.1.5 */
|
||||
'lib/angular/1.1.5/angular.min.js',
|
||||
'lib/angular/1.1.5/angular-cookies.min.js',
|
||||
'lib/angular/1.1.5/angular-mobile.min.js',
|
||||
'lib/angular/1.1.5/angular-mocks.js',
|
||||
|
||||
/* 1.2 RC1
|
||||
'lib/angular/1.2/angular.min.js',
|
||||
'lib/angular/1.2/angular-route.min.js',
|
||||
'lib/angular/1.2/angular-touch.min.js',
|
||||
'lib/angular/1.2/angular-cookies.min.js',
|
||||
'lib/angular/1.2/angular-animate.min.js',
|
||||
'lib/angular/1.2/angular-mocks.js',
|
||||
*/
|
||||
|
||||
/* temporary sorter lib, should be updated */
|
||||
'lib/angular/angular-ui-sortable.js',
|
||||
|
||||
/* App-wide file-upload helper */
|
||||
'lib/jquery/jquery.upload/js/jquery.fileupload.js',
|
||||
'lib/jquery/jquery.upload/js/jquery.fileupload-process.js',
|
||||
'lib/jquery/jquery.upload/js/jquery.fileupload-angular.js',
|
||||
|
||||
|
||||
'lib/bootstrap/js/bootstrap.js',
|
||||
'lib/underscore/underscore.js',
|
||||
'lib/umbraco/Extensions.js',
|
||||
'lib/umbraco/NamespaceManager.js',
|
||||
|
||||
'js/umbraco.servervariables.js',
|
||||
'js/app.dev.js',
|
||||
'js/umbraco.httpbackend.js',
|
||||
'js/umbraco.testing.js',
|
||||
|
||||
'js/umbraco.directives.js',
|
||||
'js/umbraco.filters.js',
|
||||
'js/umbraco.resources.js',
|
||||
'js/umbraco.services.js',
|
||||
'js/umbraco.security.js',
|
||||
'js/umbraco.controllers.js',
|
||||
'js/routes.js'
|
||||
],
|
||||
|
||||
complete: function () {
|
||||
jQuery(document).ready(function () {
|
||||
angular.bootstrap(document, ['umbraco']);
|
||||
});
|
||||
|
||||
}
|
||||
});
|
||||
@@ -1,17 +0,0 @@
|
||||
if (typeof Umbraco == 'undefined') var Umbraco = {};
|
||||
if (!Umbraco.Sys) Umbraco.Sys = {};
|
||||
|
||||
Umbraco.Sys.registerNamespace = function(namespace) {
|
||||
/// <summary>
|
||||
/// Used to easily register namespaces for classes without doing the syntax listed on line 1/2 for each class.
|
||||
/// Pretty much the same as ASP.NET's Type.registerNamespace, except in order to use it, you must register
|
||||
/// all of your scripts with ScriptManager, this class doesn't require this.
|
||||
/// </summary>
|
||||
namespace = namespace.split('.');
|
||||
if (!window[namespace[0]]) window[namespace[0]] = {};
|
||||
var strFullNamespace = namespace[0];
|
||||
for (var i = 1; i < namespace.length; i++) {
|
||||
strFullNamespace += "." + namespace[i];
|
||||
eval("if(!window." + strFullNamespace + ")window." + strFullNamespace + "={};");
|
||||
}
|
||||
};
|
||||
@@ -1,112 +0,0 @@
|
||||
'use strict';
|
||||
//From:
|
||||
|
||||
angular.module("stateManager", [])
|
||||
.factory("stateManager", ["$rootScope", "$location", function factory(rootScope, location) {
|
||||
//define the StateManager object
|
||||
function StateManager() {
|
||||
var initialiserStack = new Array();
|
||||
|
||||
//register handler to detect when URL changes. try to use onpopstate, and fallback to onhashchange
|
||||
if (history && history.pushState) {
|
||||
window.onpopstate = function (event) {
|
||||
respondToStateChange(event);
|
||||
}
|
||||
}
|
||||
else {
|
||||
window.onhashchange = function (event) {
|
||||
respondToStateChange(event);
|
||||
}
|
||||
}
|
||||
|
||||
this.registerInitialiser = function (initialiser) {
|
||||
//initialise the controller by calling its constructor, because the controller was just loaded
|
||||
initialiser(getProperPathComponents());
|
||||
|
||||
//add it to the stack so it can be reinitialised in case the state changes in the future due to onhashchange
|
||||
initialiserStack.push(initialiser);
|
||||
|
||||
//return a function to the controller that it should execute immediately; it will make that controller report back to the statemanager when its destroyed so that we can free up memory
|
||||
return function (ctrlScope) {
|
||||
ctrlScope.$on("$destroy", function () {
|
||||
var index = initialiserStack.indexOf(initialiser);
|
||||
if (index != -1) {
|
||||
initialiserStack.splice(index, 1);
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
this.replaceState = function (modifiedPathComponents) {
|
||||
var newPath = "/" + mergePathComponents(modifiedPathComponents).join("/");
|
||||
location.path(newPath).replace();
|
||||
}
|
||||
|
||||
this.pushState = function (modifiedPathComponents) {
|
||||
var newPath = "/" + mergePathComponents(modifiedPathComponents).join("/");
|
||||
location.path(newPath);
|
||||
}
|
||||
|
||||
/* utils */
|
||||
function respondToStateChange(event) {
|
||||
//freeze stack
|
||||
var frozenStack = new Array();
|
||||
for (var i in initialiserStack) {
|
||||
frozenStack[i] = initialiserStack[i];
|
||||
}
|
||||
|
||||
//initialise the stack discrepancy as the length of the array, we should stop there anyway and we need a way to detect when it trickles down
|
||||
var stackDiscrepancyIndex = initialiserStack.length;
|
||||
|
||||
//run each initialiser, but break out when the stack changes
|
||||
for (var i in initialiserStack) {
|
||||
//detect if the initialiser that is about the be executed has been replaced, in which case we can assume the controller stack from this point on is fresh and has already been initialised so we don't need to continue
|
||||
var newStackDiscrepancyIndex = detectStackDiscrepancy(frozenStack, initialiserStack);
|
||||
if (newStackDiscrepancyIndex != -1) {//-1 signifies no discrepancy
|
||||
var stackDiscrepancyIndex = newStackDiscrepancyIndex < stackDiscrepancyIndex ? newStackDiscrepancyIndex : stackDiscrepancyIndex;
|
||||
if (i >= stackDiscrepancyIndex) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
//run initialiser
|
||||
initialiserStack[i](getProperPathComponents());
|
||||
rootScope.$apply();
|
||||
}
|
||||
}
|
||||
|
||||
function detectStackDiscrepancy(stackA, stackB) {
|
||||
var stackDiscrepancyIndex = -1;
|
||||
for (var i in stackB) {
|
||||
if (stackA[i] != stackB[i]) {
|
||||
stackDiscrepancyIndex = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return stackDiscrepancyIndex;
|
||||
}
|
||||
|
||||
function mergePathComponents(modifiedPathComponents) {
|
||||
//merge the changes into a new array
|
||||
var currentPathComponents = getProperPathComponents();
|
||||
var newPathComponents = new Array();
|
||||
for (var i in modifiedPathComponents) {
|
||||
if (modifiedPathComponents[i]) {
|
||||
newPathComponents[i] = modifiedPathComponents[i];
|
||||
} else {
|
||||
newPathComponents[i] = currentPathComponents[i];
|
||||
}
|
||||
}
|
||||
|
||||
return newPathComponents;
|
||||
}
|
||||
|
||||
function getProperPathComponents() {
|
||||
return location.path().substring(1).split("/");
|
||||
}
|
||||
}
|
||||
|
||||
//return a new instance of the StateManager
|
||||
return new StateManager();
|
||||
}])
|
||||
|
Before Width: | Height: | Size: 8.6 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 14 KiB |
@@ -1,7 +0,0 @@
|
||||
.CodeMirror
|
||||
{
|
||||
background: #fff;
|
||||
font-size:12px;
|
||||
font-family:monospace;
|
||||
line-height:16px;
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
(function($) {
|
||||
$.fn.VerticalAlign = function(opts) {
|
||||
return this.each(function() {
|
||||
var top = (($(this).parent().height() - $(this).height()) / 2);
|
||||
$(this).css('margin-top', top);
|
||||
});
|
||||
};
|
||||
})(jQuery);
|
||||
9440
src/Umbraco.Web.UI/umbraco/lib/jquery/jquery-1.8.2.js
vendored
@@ -1,83 +0,0 @@
|
||||
//
|
||||
// jQuery plugin: fieldSelection - v0.1.0 - last change: 2006-12-16
|
||||
// (c) 2006 Alex Brem <alex@0xab.cd> - http://blog.0xab.cd
|
||||
//
|
||||
|
||||
(function() {
|
||||
|
||||
var fieldSelection = {
|
||||
|
||||
getSelection: function() {
|
||||
|
||||
var e = this.jquery ? this[0] : this;
|
||||
|
||||
return (
|
||||
|
||||
// mozilla or dom 3.0
|
||||
('selectionStart' in e && function() {
|
||||
var l = e.selectionEnd - e.selectionStart;
|
||||
return { start: e.selectionStart, end: e.selectionEnd, length: l, text: e.value.substr(e.selectionStart, l) };
|
||||
}) ||
|
||||
|
||||
// exploder
|
||||
(document.selection && function() {
|
||||
|
||||
e.focus();
|
||||
|
||||
var r = document.selection.createRange();
|
||||
if (r == null) {
|
||||
return { start: 0, end: e.value.length, length: 0 }
|
||||
}
|
||||
|
||||
var re = e.createTextRange();
|
||||
var rc = re.duplicate();
|
||||
re.moveToBookmark(r.getBookmark());
|
||||
rc.setEndPoint('EndToStart', re);
|
||||
|
||||
return { start: rc.text.length, end: rc.text.length + r.text.length, length: r.text.length, text: r.text };
|
||||
}) ||
|
||||
|
||||
// browser not supported
|
||||
function() {
|
||||
return { start: 0, end: e.value.length, length: 0 };
|
||||
}
|
||||
|
||||
)();
|
||||
|
||||
},
|
||||
|
||||
replaceSelection: function() {
|
||||
|
||||
var e = this.jquery ? this[0] : this;
|
||||
var text = arguments[0] || '';
|
||||
|
||||
return (
|
||||
|
||||
// mozilla or dom 3.0
|
||||
('selectionStart' in e && function() {
|
||||
e.value = e.value.substr(0, e.selectionStart) + text + e.value.substr(e.selectionEnd, e.value.length);
|
||||
return this;
|
||||
}) ||
|
||||
|
||||
// exploder
|
||||
(document.selection && function() {
|
||||
e.focus();
|
||||
document.selection.createRange().text = text;
|
||||
return this;
|
||||
}) ||
|
||||
|
||||
// browser not supported
|
||||
function() {
|
||||
e.value += text;
|
||||
return this;
|
||||
}
|
||||
|
||||
)();
|
||||
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
jQuery.each(fieldSelection, function(i) { jQuery.fn[i] = this; });
|
||||
|
||||
})();
|
||||
@@ -1,809 +0,0 @@
|
||||
/*
|
||||
* jQuery Autocomplete plugin 1.1
|
||||
*
|
||||
* Copyright (c) 2009 Jörn Zaefferer
|
||||
*
|
||||
* Dual licensed under the MIT and GPL licenses:
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
* http://www.gnu.org/licenses/gpl.html
|
||||
*
|
||||
* Revision: $Id: jquery.autocomplete.js 15 2009-08-22 10:30:27Z joern.zaefferer $
|
||||
*/
|
||||
|
||||
; (function($) {
|
||||
|
||||
$.fn.extend({
|
||||
autocomplete: function(urlOrData, options) {
|
||||
var isUrl = typeof urlOrData == "string";
|
||||
options = $.extend({}, $.Autocompleter.defaults, {
|
||||
url: isUrl ? urlOrData : null,
|
||||
data: isUrl ? null : urlOrData,
|
||||
delay: isUrl ? $.Autocompleter.defaults.delay : 10,
|
||||
max: options && !options.scroll ? 10 : 150
|
||||
}, options);
|
||||
|
||||
// if highlight is set to false, replace it with a do-nothing function
|
||||
options.highlight = options.highlight || function(value) { return value; };
|
||||
|
||||
// if the formatMatch option is not specified, then use formatItem for backwards compatibility
|
||||
options.formatMatch = options.formatMatch || options.formatItem;
|
||||
|
||||
return this.each(function() {
|
||||
new $.Autocompleter(this, options);
|
||||
});
|
||||
},
|
||||
result: function(handler) {
|
||||
return this.bind("result", handler);
|
||||
},
|
||||
search: function(handler) {
|
||||
return this.trigger("search", [handler]);
|
||||
},
|
||||
flushCache: function() {
|
||||
return this.trigger("flushCache");
|
||||
},
|
||||
setOptions: function(options) {
|
||||
return this.trigger("setOptions", [options]);
|
||||
},
|
||||
unautocomplete: function() {
|
||||
return this.trigger("unautocomplete");
|
||||
}
|
||||
});
|
||||
|
||||
$.Autocompleter = function(input, options) {
|
||||
|
||||
var KEY = {
|
||||
UP: 38,
|
||||
DOWN: 40,
|
||||
DEL: 46,
|
||||
TAB: 9,
|
||||
RETURN: 13,
|
||||
ESC: 27,
|
||||
COMMA: 188,
|
||||
PAGEUP: 33,
|
||||
PAGEDOWN: 34,
|
||||
BACKSPACE: 8
|
||||
};
|
||||
|
||||
// Create $ object for input element
|
||||
var $input = $(input).attr("autocomplete", "off").addClass(options.inputClass);
|
||||
|
||||
var timeout;
|
||||
var previousValue = "";
|
||||
var cache = $.Autocompleter.Cache(options);
|
||||
var hasFocus = 0;
|
||||
var lastKeyPressCode;
|
||||
var config = {
|
||||
mouseDownOnSelect: false
|
||||
};
|
||||
var select = $.Autocompleter.Select(options, input, selectCurrent, config);
|
||||
|
||||
var blockSubmit;
|
||||
|
||||
// prevent form submit in opera when selecting with return key
|
||||
$.browser.opera && $(input.form).bind("submit.autocomplete", function() {
|
||||
if (blockSubmit) {
|
||||
blockSubmit = false;
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
// only opera doesn't trigger keydown multiple times while pressed, others don't work with keypress at all
|
||||
$input.bind(($.browser.opera ? "keypress" : "keydown") + ".autocomplete", function(event) {
|
||||
// a keypress means the input has focus
|
||||
// avoids issue where input had focus before the autocomplete was applied
|
||||
hasFocus = 1;
|
||||
// track last key pressed
|
||||
lastKeyPressCode = event.keyCode;
|
||||
switch (event.keyCode) {
|
||||
|
||||
case KEY.UP:
|
||||
event.preventDefault();
|
||||
if (select.visible()) {
|
||||
select.prev();
|
||||
} else {
|
||||
onChange(0, true);
|
||||
}
|
||||
break;
|
||||
|
||||
case KEY.DOWN:
|
||||
event.preventDefault();
|
||||
if (select.visible()) {
|
||||
select.next();
|
||||
} else {
|
||||
onChange(0, true);
|
||||
}
|
||||
break;
|
||||
|
||||
case KEY.PAGEUP:
|
||||
event.preventDefault();
|
||||
if (select.visible()) {
|
||||
select.pageUp();
|
||||
} else {
|
||||
onChange(0, true);
|
||||
}
|
||||
break;
|
||||
|
||||
case KEY.PAGEDOWN:
|
||||
event.preventDefault();
|
||||
if (select.visible()) {
|
||||
select.pageDown();
|
||||
} else {
|
||||
onChange(0, true);
|
||||
}
|
||||
break;
|
||||
|
||||
// matches also semicolon
|
||||
case options.multiple && $.trim(options.multipleSeparator) == "," && KEY.COMMA:
|
||||
case KEY.TAB:
|
||||
case KEY.RETURN:
|
||||
if (selectCurrent()) {
|
||||
// stop default to prevent a form submit, Opera needs special handling
|
||||
event.preventDefault();
|
||||
blockSubmit = true;
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
|
||||
case KEY.ESC:
|
||||
select.hide();
|
||||
break;
|
||||
|
||||
default:
|
||||
clearTimeout(timeout);
|
||||
timeout = setTimeout(onChange, options.delay);
|
||||
break;
|
||||
}
|
||||
}).focus(function() {
|
||||
// track whether the field has focus, we shouldn't process any
|
||||
// results if the field no longer has focus
|
||||
hasFocus++;
|
||||
}).blur(function() {
|
||||
hasFocus = 0;
|
||||
if (!config.mouseDownOnSelect) {
|
||||
hideResults();
|
||||
}
|
||||
}).click(function() {
|
||||
// show select when clicking in a focused field
|
||||
if (hasFocus++ > 1 && !select.visible()) {
|
||||
onChange(0, true);
|
||||
}
|
||||
}).bind("search", function() {
|
||||
// TODO why not just specifying both arguments?
|
||||
var fn = (arguments.length > 1) ? arguments[1] : null;
|
||||
function findValueCallback(q, data) {
|
||||
var result;
|
||||
if (data && data.length) {
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
if (data[i].result.toLowerCase() == q.toLowerCase()) {
|
||||
result = data[i];
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (typeof fn == "function") fn(result);
|
||||
else $input.trigger("result", result && [result.data, result.value]);
|
||||
}
|
||||
$.each(trimWords($input.val()), function(i, value) {
|
||||
request(value, findValueCallback, findValueCallback);
|
||||
});
|
||||
}).bind("flushCache", function() {
|
||||
cache.flush();
|
||||
}).bind("setOptions", function() {
|
||||
$.extend(options, arguments[1]);
|
||||
// if we've updated the data, repopulate
|
||||
if ("data" in arguments[1])
|
||||
cache.populate();
|
||||
}).bind("unautocomplete", function() {
|
||||
select.unbind();
|
||||
$input.unbind();
|
||||
$(input.form).unbind(".autocomplete");
|
||||
});
|
||||
|
||||
|
||||
function selectCurrent() {
|
||||
var selected = select.selected();
|
||||
if (!selected)
|
||||
return false;
|
||||
|
||||
var v = selected.result;
|
||||
previousValue = v;
|
||||
|
||||
if (options.multiple) {
|
||||
var words = trimWords($input.val());
|
||||
if (words.length > 1) {
|
||||
var seperator = options.multipleSeparator.length;
|
||||
var cursorAt = $(input).selection().start;
|
||||
var wordAt, progress = 0;
|
||||
$.each(words, function(i, word) {
|
||||
progress += word.length;
|
||||
if (cursorAt <= progress) {
|
||||
wordAt = i;
|
||||
return false;
|
||||
}
|
||||
progress += seperator;
|
||||
});
|
||||
words[wordAt] = v;
|
||||
// TODO this should set the cursor to the right position, but it gets overriden somewhere
|
||||
//$.Autocompleter.Selection(input, progress + seperator, progress + seperator);
|
||||
v = words.join(options.multipleSeparator);
|
||||
}
|
||||
v += options.multipleSeparator;
|
||||
}
|
||||
|
||||
$input.val(v);
|
||||
hideResultsNow();
|
||||
$input.trigger("result", [selected.data, selected.value]);
|
||||
return true;
|
||||
}
|
||||
|
||||
function onChange(crap, skipPrevCheck) {
|
||||
if (lastKeyPressCode == KEY.DEL) {
|
||||
select.hide();
|
||||
return;
|
||||
}
|
||||
|
||||
var currentValue = $input.val();
|
||||
|
||||
if (!skipPrevCheck && currentValue == previousValue)
|
||||
return;
|
||||
|
||||
previousValue = currentValue;
|
||||
|
||||
currentValue = lastWord(currentValue);
|
||||
if (currentValue.length >= options.minChars) {
|
||||
$input.addClass(options.loadingClass);
|
||||
if (!options.matchCase)
|
||||
currentValue = currentValue.toLowerCase();
|
||||
request(currentValue, receiveData, hideResultsNow);
|
||||
} else {
|
||||
stopLoading();
|
||||
select.hide();
|
||||
}
|
||||
};
|
||||
|
||||
function trimWords(value) {
|
||||
if (!value)
|
||||
return [""];
|
||||
if (!options.multiple)
|
||||
return [$.trim(value)];
|
||||
return $.map(value.split(options.multipleSeparator), function(word) {
|
||||
return $.trim(value).length ? $.trim(word) : null;
|
||||
});
|
||||
}
|
||||
|
||||
function lastWord(value) {
|
||||
if (!options.multiple)
|
||||
return value;
|
||||
var words = trimWords(value);
|
||||
if (words.length == 1)
|
||||
return words[0];
|
||||
var cursorAt = $(input).selection().start;
|
||||
if (cursorAt == value.length) {
|
||||
words = trimWords(value)
|
||||
} else {
|
||||
words = trimWords(value.replace(value.substring(cursorAt), ""));
|
||||
}
|
||||
return words[words.length - 1];
|
||||
}
|
||||
|
||||
// fills in the input box w/the first match (assumed to be the best match)
|
||||
// q: the term entered
|
||||
// sValue: the first matching result
|
||||
function autoFill(q, sValue) {
|
||||
// autofill in the complete box w/the first match as long as the user hasn't entered in more data
|
||||
// if the last user key pressed was backspace, don't autofill
|
||||
if (options.autoFill && (lastWord($input.val()).toLowerCase() == q.toLowerCase()) && lastKeyPressCode != KEY.BACKSPACE) {
|
||||
// fill in the value (keep the case the user has typed)
|
||||
$input.val($input.val() + sValue.substring(lastWord(previousValue).length));
|
||||
// select the portion of the value not typed by the user (so the next character will erase)
|
||||
$(input).selection(previousValue.length, previousValue.length + sValue.length);
|
||||
}
|
||||
};
|
||||
|
||||
function hideResults() {
|
||||
clearTimeout(timeout);
|
||||
timeout = setTimeout(hideResultsNow, 200);
|
||||
};
|
||||
|
||||
function hideResultsNow() {
|
||||
var wasVisible = select.visible();
|
||||
select.hide();
|
||||
clearTimeout(timeout);
|
||||
stopLoading();
|
||||
if (options.mustMatch) {
|
||||
// call search and run callback
|
||||
$input.search(
|
||||
function(result) {
|
||||
// if no value found, clear the input box
|
||||
if (!result) {
|
||||
if (options.multiple) {
|
||||
var words = trimWords($input.val()).slice(0, -1);
|
||||
$input.val(words.join(options.multipleSeparator) + (words.length ? options.multipleSeparator : ""));
|
||||
}
|
||||
else {
|
||||
$input.val("");
|
||||
$input.trigger("result", null);
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
function receiveData(q, data) {
|
||||
if (data && data.length && hasFocus) {
|
||||
stopLoading();
|
||||
select.display(data, q);
|
||||
autoFill(q, data[0].value);
|
||||
select.show();
|
||||
} else {
|
||||
hideResultsNow();
|
||||
}
|
||||
};
|
||||
|
||||
function request(term, success, failure) {
|
||||
if (!options.matchCase)
|
||||
term = term.toLowerCase();
|
||||
var data = cache.load(term);
|
||||
// recieve the cached data
|
||||
if (data && data.length) {
|
||||
success(term, data);
|
||||
// if an AJAX url has been supplied, try loading the data now
|
||||
} else if ((typeof options.url == "string") && (options.url.length > 0)) {
|
||||
|
||||
var extraParams = {
|
||||
timestamp: +new Date()
|
||||
};
|
||||
$.each(options.extraParams, function(key, param) {
|
||||
extraParams[key] = typeof param == "function" ? param() : param;
|
||||
});
|
||||
|
||||
$.ajax({
|
||||
// try to leverage ajaxQueue plugin to abort previous requests
|
||||
mode: "abort",
|
||||
// limit abortion to this input
|
||||
port: "autocomplete" + input.name,
|
||||
dataType: options.dataType,
|
||||
url: options.url,
|
||||
data: $.extend({
|
||||
q: lastWord(term),
|
||||
limit: options.max
|
||||
}, extraParams),
|
||||
success: function(data) {
|
||||
var parsed = options.parse && options.parse(data) || parse(data);
|
||||
cache.add(term, parsed);
|
||||
success(term, parsed);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
// if we have a failure, we need to empty the list -- this prevents the the [TAB] key from selecting the last successful match
|
||||
select.emptyList();
|
||||
failure(term);
|
||||
}
|
||||
};
|
||||
|
||||
function parse(data) {
|
||||
var parsed = [];
|
||||
var rows = data.split("\n");
|
||||
for (var i = 0; i < rows.length; i++) {
|
||||
var row = $.trim(rows[i]);
|
||||
if (row) {
|
||||
row = row.split("|");
|
||||
parsed[parsed.length] = {
|
||||
data: row,
|
||||
value: row[0],
|
||||
result: options.formatResult && options.formatResult(row, row[0]) || row[0]
|
||||
};
|
||||
}
|
||||
}
|
||||
return parsed;
|
||||
};
|
||||
|
||||
function stopLoading() {
|
||||
$input.removeClass(options.loadingClass);
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
$.Autocompleter.defaults = {
|
||||
inputClass: "ac_input",
|
||||
resultsClass: "ac_results",
|
||||
loadingClass: "ac_loading",
|
||||
minChars: 1,
|
||||
delay: 400,
|
||||
matchCase: false,
|
||||
matchSubset: true,
|
||||
matchContains: false,
|
||||
cacheLength: 10,
|
||||
max: 100,
|
||||
mustMatch: false,
|
||||
extraParams: {},
|
||||
selectFirst: true,
|
||||
formatItem: function(row) { return row[0]; },
|
||||
formatMatch: null,
|
||||
autoFill: false,
|
||||
width: 0,
|
||||
multiple: false,
|
||||
multipleSeparator: ", ",
|
||||
highlight: function(value, term) {
|
||||
return value.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)(" + term.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi, "\\$1") + ")(?![^<>]*>)(?![^&;]+;)", "gi"), "<strong>$1</strong>");
|
||||
},
|
||||
scroll: true,
|
||||
scrollHeight: 180
|
||||
};
|
||||
|
||||
$.Autocompleter.Cache = function(options) {
|
||||
|
||||
var data = {};
|
||||
var length = 0;
|
||||
|
||||
function matchSubset(s, sub) {
|
||||
s = s.toString(); // FR: This forces the value to be a string, otherwise the indexOf() method fails on anything other but a string
|
||||
if (!options.matchCase)
|
||||
s = s.toLowerCase();
|
||||
var i = s.indexOf(sub);
|
||||
if (options.matchContains == "word") {
|
||||
i = s.toLowerCase().search("\\b" + sub.toLowerCase());
|
||||
}
|
||||
if (i == -1) return false;
|
||||
return i == 0 || options.matchContains;
|
||||
};
|
||||
|
||||
function add(q, value) {
|
||||
if (length > options.cacheLength) {
|
||||
flush();
|
||||
}
|
||||
if (!data[q]) {
|
||||
length++;
|
||||
}
|
||||
data[q] = value;
|
||||
}
|
||||
|
||||
function populate() {
|
||||
if (!options.data) return false;
|
||||
// track the matches
|
||||
var stMatchSets = {},
|
||||
nullData = 0;
|
||||
|
||||
// no url was specified, we need to adjust the cache length to make sure it fits the local data store
|
||||
if (!options.url) options.cacheLength = 1;
|
||||
|
||||
// track all options for minChars = 0
|
||||
stMatchSets[""] = [];
|
||||
|
||||
// loop through the array and create a lookup structure
|
||||
for (var i = 0, ol = options.data.length; i < ol; i++) {
|
||||
var rawValue = options.data[i];
|
||||
// if rawValue is a string, make an array otherwise just reference the array
|
||||
rawValue = (typeof rawValue == "string") ? [rawValue] : rawValue;
|
||||
|
||||
var value = options.formatMatch(rawValue, i + 1, options.data.length);
|
||||
if (value === false)
|
||||
continue;
|
||||
|
||||
var firstChar = value.charAt(0).toLowerCase();
|
||||
// if no lookup array for this character exists, look it up now
|
||||
if (!stMatchSets[firstChar])
|
||||
stMatchSets[firstChar] = [];
|
||||
|
||||
// if the match is a string
|
||||
var row = {
|
||||
value: value,
|
||||
data: rawValue,
|
||||
result: options.formatResult && options.formatResult(rawValue) || value
|
||||
};
|
||||
|
||||
// push the current match into the set list
|
||||
stMatchSets[firstChar].push(row);
|
||||
|
||||
// keep track of minChars zero items
|
||||
if (nullData++ < options.max) {
|
||||
stMatchSets[""].push(row);
|
||||
}
|
||||
};
|
||||
|
||||
// add the data items to the cache
|
||||
$.each(stMatchSets, function(i, value) {
|
||||
// increase the cache size
|
||||
options.cacheLength++;
|
||||
// add to the cache
|
||||
add(i, value);
|
||||
});
|
||||
}
|
||||
|
||||
// populate any existing data
|
||||
setTimeout(populate, 25);
|
||||
|
||||
function flush() {
|
||||
data = {};
|
||||
length = 0;
|
||||
}
|
||||
|
||||
return {
|
||||
flush: flush,
|
||||
add: add,
|
||||
populate: populate,
|
||||
load: function(q) {
|
||||
if (!options.cacheLength || !length)
|
||||
return null;
|
||||
/*
|
||||
* if dealing w/local data and matchContains than we must make sure
|
||||
* to loop through all the data collections looking for matches
|
||||
*/
|
||||
if (!options.url && options.matchContains) {
|
||||
// track all matches
|
||||
var csub = [];
|
||||
// loop through all the data grids for matches
|
||||
for (var k in data) {
|
||||
// don't search through the stMatchSets[""] (minChars: 0) cache
|
||||
// this prevents duplicates
|
||||
if (k.length > 0) {
|
||||
var c = data[k];
|
||||
$.each(c, function(i, x) {
|
||||
// if we've got a match, add it to the array
|
||||
if (matchSubset(x.value, q)) {
|
||||
csub.push(x);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
return csub;
|
||||
} else
|
||||
// if the exact item exists, use it
|
||||
if (data[q]) {
|
||||
return data[q];
|
||||
} else
|
||||
if (options.matchSubset) {
|
||||
for (var i = q.length - 1; i >= options.minChars; i--) {
|
||||
var c = data[q.substr(0, i)];
|
||||
if (c) {
|
||||
var csub = [];
|
||||
$.each(c, function(i, x) {
|
||||
if (matchSubset(x.value, q)) {
|
||||
csub[csub.length] = x;
|
||||
}
|
||||
});
|
||||
return csub;
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
$.Autocompleter.Select = function(options, input, select, config) {
|
||||
var CLASSES = {
|
||||
ACTIVE: "ac_over"
|
||||
};
|
||||
|
||||
var listItems,
|
||||
active = -1,
|
||||
data,
|
||||
term = "",
|
||||
needsInit = true,
|
||||
element,
|
||||
list;
|
||||
|
||||
// Create results
|
||||
function init() {
|
||||
if (!needsInit)
|
||||
return;
|
||||
element = $("<div/>")
|
||||
.hide()
|
||||
.addClass(options.resultsClass)
|
||||
.css("position", "absolute")
|
||||
.appendTo(document.body);
|
||||
|
||||
list = $("<ul/>").appendTo(element).mouseover(function(event) {
|
||||
if (target(event).nodeName && target(event).nodeName.toUpperCase() == 'LI') {
|
||||
active = $("li", list).removeClass(CLASSES.ACTIVE).index(target(event));
|
||||
$(target(event)).addClass(CLASSES.ACTIVE);
|
||||
}
|
||||
}).click(function(event) {
|
||||
$(target(event)).addClass(CLASSES.ACTIVE);
|
||||
select();
|
||||
// TODO provide option to avoid setting focus again after selection? useful for cleanup-on-focus
|
||||
input.focus();
|
||||
return false;
|
||||
}).mousedown(function() {
|
||||
config.mouseDownOnSelect = true;
|
||||
}).mouseup(function() {
|
||||
config.mouseDownOnSelect = false;
|
||||
});
|
||||
|
||||
if (options.width > 0)
|
||||
element.css("width", options.width);
|
||||
|
||||
needsInit = false;
|
||||
}
|
||||
|
||||
function target(event) {
|
||||
var element = event.target;
|
||||
while (element && element.tagName != "LI")
|
||||
element = element.parentNode;
|
||||
// more fun with IE, sometimes event.target is empty, just ignore it then
|
||||
if (!element)
|
||||
return [];
|
||||
return element;
|
||||
}
|
||||
|
||||
function moveSelect(step) {
|
||||
listItems.slice(active, active + 1).removeClass(CLASSES.ACTIVE);
|
||||
movePosition(step);
|
||||
var activeItem = listItems.slice(active, active + 1).addClass(CLASSES.ACTIVE);
|
||||
if (options.scroll) {
|
||||
var offset = 0;
|
||||
listItems.slice(0, active).each(function() {
|
||||
offset += this.offsetHeight;
|
||||
});
|
||||
if ((offset + activeItem[0].offsetHeight - list.scrollTop()) > list[0].clientHeight) {
|
||||
list.scrollTop(offset + activeItem[0].offsetHeight - list.innerHeight());
|
||||
} else if (offset < list.scrollTop()) {
|
||||
list.scrollTop(offset);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
function movePosition(step) {
|
||||
active += step;
|
||||
if (active < 0) {
|
||||
active = listItems.size() - 1;
|
||||
} else if (active >= listItems.size()) {
|
||||
active = 0;
|
||||
}
|
||||
}
|
||||
|
||||
function limitNumberOfItems(available) {
|
||||
return options.max && options.max < available
|
||||
? options.max
|
||||
: available;
|
||||
}
|
||||
|
||||
function fillList() {
|
||||
list.empty();
|
||||
var max = limitNumberOfItems(data.length);
|
||||
for (var i = 0; i < max; i++) {
|
||||
if (!data[i])
|
||||
continue;
|
||||
var formatted = options.formatItem(data[i].data, i + 1, max, data[i].value, term);
|
||||
if (formatted === false)
|
||||
continue;
|
||||
var li = $("<li/>").html(options.highlight(formatted, term)).addClass(i % 2 == 0 ? "ac_even" : "ac_odd").appendTo(list)[0];
|
||||
$.data(li, "ac_data", data[i]);
|
||||
}
|
||||
listItems = list.find("li");
|
||||
if (options.selectFirst) {
|
||||
listItems.slice(0, 1).addClass(CLASSES.ACTIVE);
|
||||
active = 0;
|
||||
}
|
||||
// apply bgiframe if available
|
||||
if ($.fn.bgiframe)
|
||||
list.bgiframe();
|
||||
}
|
||||
|
||||
return {
|
||||
display: function(d, q) {
|
||||
init();
|
||||
data = d;
|
||||
term = q;
|
||||
fillList();
|
||||
},
|
||||
next: function() {
|
||||
moveSelect(1);
|
||||
},
|
||||
prev: function() {
|
||||
moveSelect(-1);
|
||||
},
|
||||
pageUp: function() {
|
||||
if (active != 0 && active - 8 < 0) {
|
||||
moveSelect(-active);
|
||||
} else {
|
||||
moveSelect(-8);
|
||||
}
|
||||
},
|
||||
pageDown: function() {
|
||||
if (active != listItems.size() - 1 && active + 8 > listItems.size()) {
|
||||
moveSelect(listItems.size() - 1 - active);
|
||||
} else {
|
||||
moveSelect(8);
|
||||
}
|
||||
},
|
||||
hide: function() {
|
||||
element && element.hide();
|
||||
listItems && listItems.removeClass(CLASSES.ACTIVE);
|
||||
active = -1;
|
||||
},
|
||||
visible: function() {
|
||||
return element && element.is(":visible");
|
||||
},
|
||||
current: function() {
|
||||
return this.visible() && (listItems.filter("." + CLASSES.ACTIVE)[0] || options.selectFirst && listItems[0]);
|
||||
},
|
||||
show: function() {
|
||||
var offset = $(input).offset();
|
||||
element.css({
|
||||
width: typeof options.width == "string" || options.width > 0 ? options.width : $(input).width(),
|
||||
top: offset.top + input.offsetHeight,
|
||||
left: offset.left
|
||||
}).show();
|
||||
if (options.scroll) {
|
||||
list.scrollTop(0);
|
||||
list.css({
|
||||
maxHeight: options.scrollHeight,
|
||||
overflow: 'auto'
|
||||
});
|
||||
|
||||
if ($.browser.msie && typeof document.body.style.maxHeight === "undefined") {
|
||||
var listHeight = 0;
|
||||
listItems.each(function() {
|
||||
listHeight += this.offsetHeight;
|
||||
});
|
||||
var scrollbarsVisible = listHeight > options.scrollHeight;
|
||||
list.css('height', scrollbarsVisible ? options.scrollHeight : listHeight);
|
||||
if (!scrollbarsVisible) {
|
||||
// IE doesn't recalculate width when scrollbar disappears
|
||||
listItems.width(list.width() - parseInt(listItems.css("padding-left")) - parseInt(listItems.css("padding-right")));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
},
|
||||
selected: function() {
|
||||
var selected = listItems && listItems.filter("." + CLASSES.ACTIVE).removeClass(CLASSES.ACTIVE);
|
||||
return selected && selected.length && $.data(selected[0], "ac_data");
|
||||
},
|
||||
emptyList: function() {
|
||||
list && list.empty();
|
||||
},
|
||||
unbind: function() {
|
||||
element && element.remove();
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
$.fn.selection = function(start, end) {
|
||||
if (start !== undefined) {
|
||||
return this.each(function() {
|
||||
if (this.createTextRange) {
|
||||
var selRange = this.createTextRange();
|
||||
if (end === undefined || start == end) {
|
||||
selRange.move("character", start);
|
||||
selRange.select();
|
||||
} else {
|
||||
selRange.collapse(true);
|
||||
selRange.moveStart("character", start);
|
||||
selRange.moveEnd("character", end);
|
||||
selRange.select();
|
||||
}
|
||||
} else if (this.setSelectionRange) {
|
||||
this.setSelectionRange(start, end);
|
||||
} else if (this.selectionStart) {
|
||||
this.selectionStart = start;
|
||||
this.selectionEnd = end;
|
||||
}
|
||||
});
|
||||
}
|
||||
var field = this[0];
|
||||
if (field.createTextRange) {
|
||||
var range = document.selection.createRange(),
|
||||
orig = field.value,
|
||||
teststring = "<->",
|
||||
textLength = range.text.length;
|
||||
range.text = teststring;
|
||||
var caretAt = field.value.indexOf(teststring);
|
||||
field.value = orig;
|
||||
this.selection(caretAt, caretAt + textLength);
|
||||
return {
|
||||
start: caretAt,
|
||||
end: caretAt + textLength
|
||||
}
|
||||
} else if (field.selectionStart !== undefined) {
|
||||
return {
|
||||
start: field.selectionStart,
|
||||
end: field.selectionEnd
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
})(jQuery);
|
||||
@@ -1,18 +0,0 @@
|
||||
/*
|
||||
* jQuery BBQ: Back Button & Query Library - v1.3pre - 8/26/2010
|
||||
* http://benalman.com/projects/jquery-bbq-plugin/
|
||||
*
|
||||
* Copyright (c) 2010 "Cowboy" Ben Alman
|
||||
* Dual licensed under the MIT and GPL licenses.
|
||||
* http://benalman.com/about/license/
|
||||
*/
|
||||
(function ($, r) { var h, n = Array.prototype.slice, t = decodeURIComponent, a = $.param, j, c, m, y, b = $.bbq = $.bbq || {}, s, x, k, e = $.event.special, d = "hashchange", B = "querystring", F = "fragment", z = "elemUrlAttr", l = "href", w = "src", p = /^.*\?|#.*$/g, u, H, g, i, C, E = {}; function G(I) { return typeof I === "string" } function D(J) { var I = n.call(arguments, 1); return function () { return J.apply(this, I.concat(n.call(arguments))) } } function o(I) { return I.replace(H, "$2") } function q(I) { return I.replace(/(?:^[^?#]*\?([^#]*).*$)?.*/, "$1") } function f(K, P, I, L, J) { var R, O, N, Q, M; if (L !== h) { N = I.match(K ? H : /^([^#?]*)\??([^#]*)(#?.*)/); M = N[3] || ""; if (J === 2 && G(L)) { O = L.replace(K ? u : p, "") } else { Q = m(N[2]); L = G(L) ? m[K ? F : B](L) : L; O = J === 2 ? L : J === 1 ? $.extend({}, L, Q) : $.extend({}, Q, L); O = j(O); if (K) { O = O.replace(g, t) } } R = N[1] + (K ? C : O || !N[1] ? "?" : "") + O + M } else { R = P(I !== h ? I : location.href) } return R } a[B] = D(f, 0, q); a[F] = c = D(f, 1, o); a.sorted = j = function (J, K) { var I = [], L = {}; $.each(a(J, K).split("&"), function (P, M) { var O = M.replace(/(?:%5B|=).*$/, ""), N = L[O]; if (!N) { N = L[O] = []; I.push(O) } N.push(M) }); return $.map(I.sort(), function (M) { return L[M] }).join("&") }; c.noEscape = function (J) { J = J || ""; var I = $.map(J.split(""), encodeURIComponent); g = new RegExp(I.join("|"), "g") }; c.noEscape(",/"); c.ajaxCrawlable = function (I) { if (I !== h) { if (I) { u = /^.*(?:#!|#)/; H = /^([^#]*)(?:#!|#)?(.*)$/; C = "#!" } else { u = /^.*#/; H = /^([^#]*)#?(.*)$/; C = "#" } i = !!I } return i }; c.ajaxCrawlable(0); $.deparam = m = function (L, I) { var K = {}, J = { "true": !0, "false": !1, "null": null }; $.each(L.replace(/\+/g, " ").split("&"), function (O, T) { var N = T.split("="), S = t(N[0]), M, R = K, P = 0, U = S.split("]["), Q = U.length - 1; if (/\[/.test(U[0]) && /\]$/.test(U[Q])) { U[Q] = U[Q].replace(/\]$/, ""); U = U.shift().split("[").concat(U); Q = U.length - 1 } else { Q = 0 } if (N.length === 2) { M = t(N[1]); if (I) { M = M && !isNaN(M) ? +M : M === "undefined" ? h : J[M] !== h ? J[M] : M } if (Q) { for (; P <= Q; P++) { S = U[P] === "" ? R.length : U[P]; R = R[S] = P < Q ? R[S] || (U[P + 1] && isNaN(U[P + 1]) ? {} : []) : M } } else { if ($.isArray(K[S])) { K[S].push(M) } else { if (K[S] !== h) { K[S] = [K[S], M] } else { K[S] = M } } } } else { if (S) { K[S] = I ? h : "" } } }); return K }; function A(K, I, J) { if (I === h || typeof I === "boolean") { J = I; I = a[K ? F : B]() } else { I = G(I) ? I.replace(K ? u : p, "") : I } return m(I, J) } m[B] = D(A, 0); m[F] = y = D(A, 1); $[z] || ($[z] = function (I) { return $.extend(E, I) })({ a: l, base: l, iframe: w, img: w, input: w, form: "action", link: l, script: w }); k = $[z]; function v(L, J, K, I) { if (!G(K) && typeof K !== "object") { I = K; K = J; J = h } return this.each(function () { var O = $(this), M = J || k()[(this.nodeName || "").toLowerCase()] || "", N = M && O.attr(M) || ""; O.attr(M, a[L](N, K, I)) }) } $.fn[B] = D(v, B); $.fn[F] = D(v, F); b.pushState = s = function (L, I) { if (G(L) && /^#/.test(L) && I === h) { I = 2 } var K = L !== h, J = c(location.href, K ? L : {}, K ? I : 2); location.href = J }; b.getState = x = function (I, J) { return I === h || typeof I === "boolean" ? y(I) : y(J)[I] }; b.removeState = function (I) { var J = {}; if (I !== h) { J = x(); $.each($.isArray(I) ? I : arguments, function (L, K) { delete J[K] }) } s(J, 2) }; e[d] = $.extend(e[d], { add: function (I) { var K; function J(M) { var L = M[F] = c(); M.getState = function (N, O) { return N === h || typeof N === "boolean" ? m(L, N) : m(L, O)[N] }; K.apply(this, arguments) } if ($.isFunction(I)) { K = I; return J } else { K = I.handler; I.handler = J } } }) })(jQuery, this);
|
||||
/*
|
||||
* jQuery hashchange event - v1.3 - 7/21/2010
|
||||
* http://benalman.com/projects/jquery-hashchange-plugin/
|
||||
*
|
||||
* Copyright (c) 2010 "Cowboy" Ben Alman
|
||||
* Dual licensed under the MIT and GPL licenses.
|
||||
* http://benalman.com/about/license/
|
||||
*/
|
||||
(function ($, e, b) { var c = "hashchange", h = document, f, g = $.event.special, i = h.documentMode, d = "on" + c in e && (i === b || i > 7); function a(j) { j = j || location.href; return "#" + j.replace(/^[^#]*#?(.*)$/, "$1") } $.fn[c] = function (j) { return j ? this.bind(c, j) : this.trigger(c) }; $.fn[c].delay = 50; g[c] = $.extend(g[c], { setup: function () { if (d) { return false } $(f.start) }, teardown: function () { if (d) { return false } $(f.stop) } }); f = (function () { var j = {}, p, m = a(), k = function (q) { return q }, l = k, o = k; j.start = function () { p || n() }; j.stop = function () { p && clearTimeout(p); p = b }; function n() { var r = a(), q = o(m); if (r !== m) { l(m = r, q); $(e).trigger(c) } else { if (q !== m) { location.href = location.href.replace(/#.*/, "") + q } } p = setTimeout(n, $.fn[c].delay) } $.browser.msie && !d && (function () { var q, r; j.start = function () { if (!q) { r = $.fn[c].src; r = r && r + a(); q = $('<iframe tabindex="-1" title="empty"/>').hide().one("load", function () { r || l(a()); n() }).attr("src", r || "javascript:0").insertAfter("body")[0].contentWindow; h.onpropertychange = function () { try { if (event.propertyName === "title") { q.document.title = h.title } } catch (s) { } } } }; j.stop = k; o = function () { return a(q.location.href) }; l = function (v, s) { var u = q.document, t = $.fn[c].domain; if (v !== s) { u.title = h.title; u.open(); t && u.write('<script>document.domain="' + t + '"<\/script>'); u.close(); q.location.hash = v } } })(); return j })() })(jQuery, this);
|
||||
@@ -1,96 +0,0 @@
|
||||
/**
|
||||
* Cookie plugin
|
||||
*
|
||||
* Copyright (c) 2006 Klaus Hartl (stilbuero.de)
|
||||
* Dual licensed under the MIT and GPL licenses:
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
* http://www.gnu.org/licenses/gpl.html
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* Create a cookie with the given name and value and other optional parameters.
|
||||
*
|
||||
* @example $.cookie('the_cookie', 'the_value');
|
||||
* @desc Set the value of a cookie.
|
||||
* @example $.cookie('the_cookie', 'the_value', { expires: 7, path: '/', domain: 'jquery.com', secure: true });
|
||||
* @desc Create a cookie with all available options.
|
||||
* @example $.cookie('the_cookie', 'the_value');
|
||||
* @desc Create a session cookie.
|
||||
* @example $.cookie('the_cookie', null);
|
||||
* @desc Delete a cookie by passing null as value. Keep in mind that you have to use the same path and domain
|
||||
* used when the cookie was set.
|
||||
*
|
||||
* @param String name The name of the cookie.
|
||||
* @param String value The value of the cookie.
|
||||
* @param Object options An object literal containing key/value pairs to provide optional cookie attributes.
|
||||
* @option Number|Date expires Either an integer specifying the expiration date from now on in days or a Date object.
|
||||
* If a negative value is specified (e.g. a date in the past), the cookie will be deleted.
|
||||
* If set to null or omitted, the cookie will be a session cookie and will not be retained
|
||||
* when the the browser exits.
|
||||
* @option String path The value of the path atribute of the cookie (default: path of page that created the cookie).
|
||||
* @option String domain The value of the domain attribute of the cookie (default: domain of page that created the cookie).
|
||||
* @option Boolean secure If true, the secure attribute of the cookie will be set and the cookie transmission will
|
||||
* require a secure protocol (like HTTPS).
|
||||
* @type undefined
|
||||
*
|
||||
* @name $.cookie
|
||||
* @cat Plugins/Cookie
|
||||
* @author Klaus Hartl/klaus.hartl@stilbuero.de
|
||||
*/
|
||||
|
||||
/**
|
||||
* Get the value of a cookie with the given name.
|
||||
*
|
||||
* @example $.cookie('the_cookie');
|
||||
* @desc Get the value of a cookie.
|
||||
*
|
||||
* @param String name The name of the cookie.
|
||||
* @return The value of the cookie.
|
||||
* @type String
|
||||
*
|
||||
* @name $.cookie
|
||||
* @cat Plugins/Cookie
|
||||
* @author Klaus Hartl/klaus.hartl@stilbuero.de
|
||||
*/
|
||||
jQuery.cookie = function(name, value, options) {
|
||||
if (typeof value != 'undefined') { // name and value given, set cookie
|
||||
options = options || {};
|
||||
if (value === null) {
|
||||
value = '';
|
||||
options.expires = -1;
|
||||
}
|
||||
var expires = '';
|
||||
if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
|
||||
var date;
|
||||
if (typeof options.expires == 'number') {
|
||||
date = new Date();
|
||||
date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
|
||||
} else {
|
||||
date = options.expires;
|
||||
}
|
||||
expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
|
||||
}
|
||||
// CAUTION: Needed to parenthesize options.path and options.domain
|
||||
// in the following expressions, otherwise they evaluate to undefined
|
||||
// in the packed version for some reason...
|
||||
var path = options.path ? '; path=' + (options.path) : '';
|
||||
var domain = options.domain ? '; domain=' + (options.domain) : '';
|
||||
var secure = options.secure ? '; secure' : '';
|
||||
document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
|
||||
} else { // only name given, get cookie
|
||||
var cookieValue = null;
|
||||
if (document.cookie && document.cookie != '') {
|
||||
var cookies = document.cookie.split(';');
|
||||
for (var i = 0; i < cookies.length; i++) {
|
||||
var cookie = jQuery.trim(cookies[i]);
|
||||
// Does this cookie string begin with the name we want?
|
||||
if (cookie.substring(0, name.length + 1) == (name + '=')) {
|
||||
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return cookieValue;
|
||||
}
|
||||
};
|
||||
@@ -1,99 +0,0 @@
|
||||
/*
|
||||
* jQuery Hotkeys Plugin
|
||||
* Copyright 2010, John Resig
|
||||
* Dual licensed under the MIT or GPL Version 2 licenses.
|
||||
*
|
||||
* Based upon the plugin by Tzury Bar Yochay:
|
||||
* http://github.com/tzuryby/hotkeys
|
||||
*
|
||||
* Original idea by:
|
||||
* Binny V A, http://www.openjs.com/scripts/events/keyboard_shortcuts/
|
||||
*/
|
||||
|
||||
(function(jQuery){
|
||||
|
||||
jQuery.hotkeys = {
|
||||
version: "0.8",
|
||||
|
||||
specialKeys: {
|
||||
8: "backspace", 9: "tab", 13: "return", 16: "shift", 17: "ctrl", 18: "alt", 19: "pause",
|
||||
20: "capslock", 27: "esc", 32: "space", 33: "pageup", 34: "pagedown", 35: "end", 36: "home",
|
||||
37: "left", 38: "up", 39: "right", 40: "down", 45: "insert", 46: "del",
|
||||
96: "0", 97: "1", 98: "2", 99: "3", 100: "4", 101: "5", 102: "6", 103: "7",
|
||||
104: "8", 105: "9", 106: "*", 107: "+", 109: "-", 110: ".", 111 : "/",
|
||||
112: "f1", 113: "f2", 114: "f3", 115: "f4", 116: "f5", 117: "f6", 118: "f7", 119: "f8",
|
||||
120: "f9", 121: "f10", 122: "f11", 123: "f12", 144: "numlock", 145: "scroll", 191: "/", 224: "meta"
|
||||
},
|
||||
|
||||
shiftNums: {
|
||||
"`": "~", "1": "!", "2": "@", "3": "#", "4": "$", "5": "%", "6": "^", "7": "&",
|
||||
"8": "*", "9": "(", "0": ")", "-": "_", "=": "+", ";": ": ", "'": "\"", ",": "<",
|
||||
".": ">", "/": "?", "\\": "|"
|
||||
}
|
||||
};
|
||||
|
||||
function keyHandler( handleObj ) {
|
||||
// Only care when a possible input has been specified
|
||||
if ( typeof handleObj.data !== "string" ) {
|
||||
return;
|
||||
}
|
||||
|
||||
var origHandler = handleObj.handler,
|
||||
keys = handleObj.data.toLowerCase().split(" ");
|
||||
|
||||
handleObj.handler = function( event ) {
|
||||
// Don't fire in text-accepting inputs that we didn't directly bind to
|
||||
if ( this !== event.target && (/textarea|select/i.test( event.target.nodeName ) ||
|
||||
event.target.type === "text") ) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Keypress represents characters, not special keys
|
||||
var special = event.type !== "keypress" && jQuery.hotkeys.specialKeys[ event.which ],
|
||||
character = String.fromCharCode( event.which ).toLowerCase(),
|
||||
key, modif = "", possible = {};
|
||||
|
||||
// check combinations (alt|ctrl|shift+anything)
|
||||
if ( event.altKey && special !== "alt" ) {
|
||||
modif += "alt+";
|
||||
}
|
||||
|
||||
if ( event.ctrlKey && special !== "ctrl" ) {
|
||||
modif += "ctrl+";
|
||||
}
|
||||
|
||||
// TODO: Need to make sure this works consistently across platforms
|
||||
if ( event.metaKey && !event.ctrlKey && special !== "meta" ) {
|
||||
modif += "meta+";
|
||||
}
|
||||
|
||||
if ( event.shiftKey && special !== "shift" ) {
|
||||
modif += "shift+";
|
||||
}
|
||||
|
||||
if ( special ) {
|
||||
possible[ modif + special ] = true;
|
||||
|
||||
} else {
|
||||
possible[ modif + character ] = true;
|
||||
possible[ modif + jQuery.hotkeys.shiftNums[ character ] ] = true;
|
||||
|
||||
// "$" can be triggered as "Shift+4" or "Shift+$" or just "$"
|
||||
if ( modif === "shift+" ) {
|
||||
possible[ jQuery.hotkeys.shiftNums[ character ] ] = true;
|
||||
}
|
||||
}
|
||||
|
||||
for ( var i = 0, l = keys.length; i < l; i++ ) {
|
||||
if ( possible[ keys[i] ] ) {
|
||||
return origHandler.apply( this, arguments );
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
jQuery.each([ "keydown", "keyup", "keypress" ], function() {
|
||||
jQuery.event.special[ this ] = { add: keyHandler };
|
||||
});
|
||||
|
||||
})( jQuery );
|
||||
@@ -1,232 +0,0 @@
|
||||
/*!
|
||||
* jQuery idleTimer plugin
|
||||
* version 0.9.100511
|
||||
* by Paul Irish.
|
||||
* http://github.com/paulirish/yui-misc/tree/
|
||||
* MIT license
|
||||
|
||||
* adapted from YUI idle timer by nzakas:
|
||||
* http://github.com/nzakas/yui-misc/
|
||||
*/
|
||||
/*
|
||||
* Copyright (c) 2009 Nicholas C. Zakas
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
|
||||
// API available in <= v0.8
|
||||
/*******************************
|
||||
|
||||
// idleTimer() takes an optional argument that defines the idle timeout
|
||||
// timeout is in milliseconds; defaults to 30000
|
||||
$.idleTimer(10000);
|
||||
|
||||
|
||||
$(document).bind("idle.idleTimer", function(){
|
||||
// function you want to fire when the user goes idle
|
||||
});
|
||||
|
||||
|
||||
$(document).bind("active.idleTimer", function(){
|
||||
// function you want to fire when the user becomes active again
|
||||
});
|
||||
|
||||
// pass the string 'destroy' to stop the timer
|
||||
$.idleTimer('destroy');
|
||||
|
||||
// you can query if the user is idle or not with data()
|
||||
$.data(document,'idleTimer'); // 'idle' or 'active'
|
||||
|
||||
// you can get time elapsed since user when idle/active
|
||||
$.idleTimer('getElapsedTime'); // time since state change in ms
|
||||
|
||||
********/
|
||||
|
||||
|
||||
|
||||
// API available in >= v0.9
|
||||
/*************************
|
||||
|
||||
// bind to specific elements, allows for multiple timer instances
|
||||
$(elem).idleTimer(timeout|'destroy'|'getElapsedTime');
|
||||
$.data(elem,'idleTimer'); // 'idle' or 'active'
|
||||
|
||||
// if you're using the old $.idleTimer api, you should not do $(document).idleTimer(...)
|
||||
|
||||
// element bound timers will only watch for events inside of them.
|
||||
// you may just want page-level activity, in which case you may set up
|
||||
// your timers on document, document.documentElement, and document.body
|
||||
|
||||
|
||||
********/
|
||||
|
||||
(function ($) {
|
||||
|
||||
$.idleTimer = function (newTimeout, elem) {
|
||||
|
||||
// defaults that are to be stored as instance props on the elem
|
||||
|
||||
var idle = false, //indicates if the user is idle
|
||||
enabled = true, //indicates if the idle timer is enabled
|
||||
timeout = 30000, //the amount of time (ms) before the user is considered idle
|
||||
events = 'mousemove keydown DOMMouseScroll mousewheel mousedown'; // activity is one of these events
|
||||
|
||||
|
||||
elem = elem || document;
|
||||
|
||||
|
||||
|
||||
/* (intentionally not documented)
|
||||
* Toggles the idle state and fires an appropriate event.
|
||||
* @return {void}
|
||||
*/
|
||||
var toggleIdleState = function (myelem) {
|
||||
|
||||
// curse you, mozilla setTimeout lateness bug!
|
||||
if (typeof myelem == 'number') myelem = undefined;
|
||||
|
||||
var obj = $.data(myelem || elem, 'idleTimerObj');
|
||||
|
||||
//toggle the state
|
||||
obj.idle = !obj.idle;
|
||||
|
||||
// reset timeout counter
|
||||
obj.olddate = +new Date;
|
||||
|
||||
//fire appropriate event
|
||||
|
||||
// create a custom event, but first, store the new state on the element
|
||||
// and then append that string to a namespace
|
||||
var event = jQuery.Event($.data(elem, 'idleTimer', obj.idle ? "idle" : "active") + '.idleTimer');
|
||||
|
||||
// we dont want this to bubble
|
||||
event.stopPropagation();
|
||||
$(elem).trigger(event);
|
||||
},
|
||||
|
||||
/**
|
||||
* Stops the idle timer. This removes appropriate event handlers
|
||||
* and cancels any pending timeouts.
|
||||
* @return {void}
|
||||
* @method stop
|
||||
* @static
|
||||
*/
|
||||
stop = function (elem) {
|
||||
|
||||
var obj = $.data(elem, 'idleTimerObj');
|
||||
|
||||
//set to disabled
|
||||
obj.enabled = false;
|
||||
|
||||
//clear any pending timeouts
|
||||
clearTimeout(obj.tId);
|
||||
|
||||
//detach the event handlers
|
||||
$(elem).unbind('.idleTimer');
|
||||
},
|
||||
|
||||
|
||||
/* (intentionally not documented)
|
||||
* Handles a user event indicating that the user isn't idle.
|
||||
* @param {Event} event A DOM2-normalized event object.
|
||||
* @return {void}
|
||||
*/
|
||||
handleUserEvent = function () {
|
||||
|
||||
var obj = $.data(this, 'idleTimerObj');
|
||||
|
||||
//clear any existing timeout
|
||||
clearTimeout(obj.tId);
|
||||
|
||||
|
||||
|
||||
//if the idle timer is enabled
|
||||
if (obj.enabled) {
|
||||
|
||||
|
||||
//if it's idle, that means the user is no longer idle
|
||||
if (obj.idle) {
|
||||
toggleIdleState(this);
|
||||
}
|
||||
|
||||
//set a new timeout
|
||||
obj.tId = setTimeout(toggleIdleState, obj.timeout);
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Starts the idle timer. This adds appropriate event handlers
|
||||
* and starts the first timeout.
|
||||
* @param {int} newTimeout (Optional) A new value for the timeout period in ms.
|
||||
* @return {void}
|
||||
* @method $.idleTimer
|
||||
* @static
|
||||
*/
|
||||
|
||||
|
||||
var obj = $.data(elem, 'idleTimerObj') || new function () { };
|
||||
|
||||
obj.olddate = obj.olddate || +new Date;
|
||||
|
||||
//assign a new timeout if necessary
|
||||
if (typeof newTimeout == "number") {
|
||||
timeout = newTimeout;
|
||||
} else if (newTimeout === 'destroy') {
|
||||
stop(elem);
|
||||
return this;
|
||||
} else if (newTimeout === 'getElapsedTime') {
|
||||
return (+new Date) - obj.olddate;
|
||||
}
|
||||
|
||||
//assign appropriate event handlers
|
||||
$(elem).bind($.trim((events + ' ').split(' ').join('.idleTimer ')), handleUserEvent);
|
||||
|
||||
|
||||
obj.idle = idle;
|
||||
obj.enabled = enabled;
|
||||
obj.timeout = timeout;
|
||||
|
||||
|
||||
//set a timeout to toggle state
|
||||
obj.tId = setTimeout(toggleIdleState, obj.timeout);
|
||||
|
||||
// assume the user is active for the first x seconds.
|
||||
$.data(elem, 'idleTimer', "active");
|
||||
|
||||
// store our instance on the object
|
||||
$.data(elem, 'idleTimerObj', obj);
|
||||
|
||||
|
||||
|
||||
}; // end of $.idleTimer()
|
||||
|
||||
|
||||
// v0.9 API for defining multiple timers.
|
||||
$.fn.idleTimer = function (newTimeout) {
|
||||
|
||||
this[0] && $.idleTimer(newTimeout, this[0]);
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
})(jQuery);
|
||||
@@ -1,3 +0,0 @@
|
||||
//used for live editing to invoke no conflict after jquery has loaded with lazy loading
|
||||
//alert("jquery.noConflict: " + jQuery.noConflict);
|
||||
jQuery.noConflict();
|
||||
@@ -1,42 +0,0 @@
|
||||
/** @license
|
||||
* RequireJS plugin for async dependency load like JSONP and Google Maps
|
||||
* Author: Miller Medeiros
|
||||
* Version: 0.1.1 (2011/11/17)
|
||||
* Released under the MIT license
|
||||
*/
|
||||
define(function(){
|
||||
|
||||
var DEFAULT_PARAM_NAME = 'callback',
|
||||
_uid = 0;
|
||||
|
||||
function injectScript(src){
|
||||
var s, t;
|
||||
s = document.createElement('script'); s.type = 'text/javascript'; s.async = true; s.src = src;
|
||||
t = document.getElementsByTagName('script')[0]; t.parentNode.insertBefore(s,t);
|
||||
}
|
||||
|
||||
function formatUrl(name, id){
|
||||
var paramRegex = /!(.+)/,
|
||||
url = name.replace(paramRegex, ''),
|
||||
param = (paramRegex.test(name))? name.replace(/.+!/, '') : DEFAULT_PARAM_NAME;
|
||||
url += (url.indexOf('?') < 0)? '?' : '&';
|
||||
return url + param +'='+ id;
|
||||
}
|
||||
|
||||
function uid() {
|
||||
_uid += 1;
|
||||
return '__async_req_'+ _uid +'__';
|
||||
}
|
||||
|
||||
return{
|
||||
load : function(name, req, onLoad, config){
|
||||
if(config.isBuild){
|
||||
onLoad(null); //avoid errors on the optimizer
|
||||
}else{
|
||||
var id = uid();
|
||||
window[id] = onLoad; //create a global variable that stores onLoad so callback function can define new module after async load
|
||||
injectScript(formatUrl(name, id));
|
||||
}
|
||||
}
|
||||
};
|
||||
});
|
||||
@@ -1 +0,0 @@
|
||||
(function(){"use strict";var a=document,b=a.getElementsByTagName("head")[0],c=30,d={version:"0.1.0",maxAttempts:10,_jsEscape:function(a){return a.replace(/(['\\])/g,"\\$1").replace(/[\f]/g,"\\f").replace(/[\b]/g,"\\b").replace(/[\n]/g,"\\n").replace(/[\t]/g,"\\t").replace(/[\r]/g,"\\r").replace(/[\u2028]/g,"\\u2028").replace(/[\u2029]/g,"\\u2029")},_getIEVersion:function(){var a=-1;if(navigator.appName==="Microsoft Internet Explorer"){var b=navigator.userAgent,c=new RegExp("MSIE ([0-9]{1,}[\\.0-9]{0,})");c.exec(b)!==null&&(a=parseFloat(RegExp.$1))}return a},_checkIeLimitWorkaround:function(b,d){var e=!1,f=this._getIEVersion(),g=f!==-1&&f<=9?!0:!1;try{if(a.createStyleSheet&&a.styleSheets&&a.styleSheets.length>c){var h=a.styleSheets[a.styleSheets.length-1];h.addImport(b,a.styleSheets.length-1),e=!0,d()}}catch(i){this._onerror(d,i),e=!1}return e},_getUniqueId:function(){return"cssPreloader_"+Math.round(Math.random()*9999999999)},_createLink:function(b){var c=a.createElement("link");return c.rel="stylesheet",c.type="text/css",c.id=this._getUniqueId(),c.href=b,c},_isEventSupported:function(a,b){var c=document.createElement(a);b="on"+b;var d=b in c;return d||(c.setAttribute(b,"return;"),d=typeof c[b]=="function",c=null),d},_loadNative:function(a,c){var d=this._createLink(a);d.onload=function(){c()};var e=this;d.onerror=function(){e._onerror(c)},b.appendChild(d)},_onerror:function(a,b){if(Object.prototype.toString.call(a.error)==="[object Function]"){var c={message:"Failed to load stylesheet",innerException:b};a.error(c)}},_loadWhenNotSupported:function(a,c){var d=function(a,b,c){try{if(!(c<this.maxAttempts)){this._onerror(b);return}var e=document.styleSheets;for(var f=0;f<e.length;f++){var g=e[f],h=g.ownerNode?g.ownerNode:g.owningElement;if(h&&h.id===a.id){var i=!0,j=null;try{g.cssRules?j=g.cssRules:g.rules?j=g.rules:i=!1}catch(k){i=!1}if(i){if(j&&j.length&&j.length>0){b();return}this._onerror(b);return}b()}}var l=this;setTimeout(function(){d.call(l,a,b,++c)},100)}catch(k){this._onerror(b,k);return}},e=this._createLink(a);b.appendChild(e);var f=this,g=0;setTimeout(function(){d.call(f,e,c,g)},100)},loadStylesheet:function(a,b){var c=this._checkIeLimitWorkaround(a,b);c||(this._isEventSupported("link","load")?this._loadNative(a,b):this._loadWhenNotSupported(a,b))},load:function(a,b,c,d,e){try{var f=b.toUrl(a.search(/\.(css)$/i)===-1?a+".css":a);this.loadStylesheet(f,c)}catch(g){c()}}};typeof define=="function"?define(["module"],function(){return d}):window.css=d})();
|
||||
@@ -1 +0,0 @@
|
||||
This is where language files should be placed.
|
||||
@@ -1 +0,0 @@
|
||||
tinymce.PluginManager.add("advlist",function(e){function t(e,t){var n=[];return tinymce.each(t.split(/[ ,]/),function(e){n.push({text:e.replace(/\-/g," ").replace(/\b\w/g,function(e){return e.toUpperCase()}),data:"default"==e?"":e})}),n}function n(t,n){var r,i=e.dom,o=e.selection;r=i.getParent(o.getNode(),"ol,ul"),r&&r.nodeName==t&&n!==!1||e.execCommand("UL"==t?"InsertUnorderedList":"InsertOrderedList"),n=n===!1?a[t]:n,a[t]=n,r=i.getParent(o.getNode(),"ol,ul"),r&&(i.setStyle(r,"listStyleType",n),r.removeAttribute("data-mce-style")),e.focus()}function r(t){var n=e.dom.getStyle(e.dom.getParent(e.selection.getNode(),"ol,ul"),"listStyleType")||"";t.control.items().each(function(e){e.active(e.settings.data===n)})}var i,o,a={};i=t("OL",e.getParam("advlist_number_styles","default,lower-alpha,lower-greek,lower-roman,upper-alpha,upper-roman")),o=t("UL",e.getParam("advlist_bullet_styles","default,circle,disc,square")),e.addButton("numlist",{type:"splitbutton",tooltip:"Numbered list",menu:i,onshow:r,onselect:function(e){n("OL",e.control.settings.data)},onclick:function(){n("OL",!1)}}),e.addButton("bullist",{type:"splitbutton",tooltip:"Bullet list",menu:o,onshow:r,onselect:function(e){n("UL",e.control.settings.data)},onclick:function(){n("UL",!1)}})});
|
||||
@@ -1 +0,0 @@
|
||||
tinymce.PluginManager.add("anchor",function(e){function t(){e.windowManager.open({title:"Anchor",body:{type:"textbox",name:"name",size:40,label:"Name",value:e.selection.getNode().id},onsubmit:function(t){e.execCommand("mceInsertContent",!1,e.dom.createHTML("a",{id:t.data.name}))}})}e.addButton("anchor",{icon:"anchor",tooltip:"Anchor",onclick:t,stateSelector:"a:not([href])"}),e.addMenuItem("anchor",{icon:"anchor",text:"Anchor",context:"insert",onclick:t})});
|
||||
@@ -1 +0,0 @@
|
||||
tinymce.PluginManager.add("autolink",function(e){function t(e){i(e,-1,"(",!0)}function n(e){i(e,0,"",!0)}function r(e){i(e,-1,"",!1)}function i(e,t,n){var r,i,o,a,s,l,c,u,d;if(r=e.selection.getRng(!0).cloneRange(),5>r.startOffset){if(u=r.endContainer.previousSibling,!u){if(!r.endContainer.firstChild||!r.endContainer.firstChild.nextSibling)return;u=r.endContainer.firstChild.nextSibling}if(d=u.length,r.setStart(u,d),r.setEnd(u,d),5>r.endOffset)return;i=r.endOffset,a=u}else{if(a=r.endContainer,3!=a.nodeType&&a.firstChild){for(;3!=a.nodeType&&a.firstChild;)a=a.firstChild;3==a.nodeType&&(r.setStart(a,0),r.setEnd(a,a.nodeValue.length))}i=1==r.endOffset?2:r.endOffset-1-t}o=i;do r.setStart(a,i>=2?i-2:0),r.setEnd(a,i>=1?i-1:0),i-=1;while(" "!=""+r&&""!=""+r&&160!=(""+r).charCodeAt(0)&&i-2>=0&&""+r!=n);if(""+r==n||160==(""+r).charCodeAt(0)?(r.setStart(a,i),r.setEnd(a,o),i+=1):0===r.startOffset?(r.setStart(a,0),r.setEnd(a,o)):(r.setStart(a,i),r.setEnd(a,o)),l=""+r,"."==l.charAt(l.length-1)&&r.setEnd(a,o-1),l=""+r,c=l.match(/^(https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.|(?:mailto:)?[A-Z0-9._%+\-]+@)(.+)$/i),c&&("www."==c[1]?c[1]="http://www.":/@$/.test(c[1])&&!/^mailto:/.test(c[1])&&(c[1]="mailto:"+c[1]),s=e.selection.getBookmark(),e.selection.setRng(r),e.execCommand("createlink",!1,c[1]+c[2]),e.selection.moveToBookmark(s),e.nodeChanged(),tinymce.Env.webkit)){e.selection.collapse(!1);var f=Math.min(a.length,o+1);r.setStart(a,f),r.setEnd(a,f),e.selection.setRng(r)}}e.on("keydown",function(t){return 13==t.keyCode?r(e):void 0}),tinymce.Env.ie||(e.on("keypress",function(n){return 41==n.which?t(e):void 0}),e.on("keyup",function(t){return 32==t.keyCode?n(e):void 0}))});
|
||||
@@ -1 +0,0 @@
|
||||
tinymce.PluginManager.add("autoresize",function(e){function t(i){var o,a,s=e.getDoc(),l=s.body,c=s.documentElement,u=tinymce.DOM,d=n.autoresize_min_height;"setcontent"==i.type&&i.initial||e.plugins.fullscreen&&e.plugins.fullscreen.isFullscreen()||(a=tinymce.Env.ie?l.scrollHeight:tinymce.Env.webkit&&0===l.clientHeight?0:l.offsetHeight,a>n.autoresize_min_height&&(d=a),n.autoresize_max_height&&a>n.autoresize_max_height?(d=n.autoresize_max_height,l.style.overflowY="auto",c.style.overflowY="auto"):(l.style.overflowY="hidden",c.style.overflowY="hidden",l.scrollTop=0),d!==r&&(o=d-r,u.setStyle(u.get(e.id+"_ifr"),"height",d+"px"),r=d,tinymce.isWebKit&&0>o&&t(i)))}var n=e.settings,r=0;n.autoresize_min_height=parseInt(e.getParam("autoresize_min_height",e.getElement().offsetHeight),10),n.autoresize_max_height=parseInt(e.getParam("autoresize_max_height",0),10),e.on("init",function(){e.dom.setStyle(e.getBody(),"paddingBottom",e.getParam("autoresize_bottom_margin",50)+"px")}),e.on("change setcontent paste keyup",t),e.getParam("autoresize_on_init",!0)&&e.on("load",t),e.addCommand("mceAutoResize",t)});
|
||||
@@ -1 +0,0 @@
|
||||
tinymce.PluginManager.add("autosave",function(e){function t(e,t){var n={s:1e3,m:6e4};return e=/^(\d+)([ms]?)$/.exec(""+(e||t)),(e[2]?n[e[2]]:1)*parseInt(e,10)}function n(){var e=parseInt(f.getItem(p+"autosave.time"),10)||0;return(new Date).getTime()-e>d.autosave_retention?(r(),!1):!0}function r(){f.removeItem(p+"autosave.draft"),f.removeItem(p+"autosave.time")}function i(){u&&e.isDirty()&&(f.setItem(p+"autosave.draft",e.getContent({format:"raw",no_events:!0})),f.setItem(p+"autosave.time",(new Date).getTime()),e.fire("StoreDraft"))}function o(){n()&&(e.setContent(f.getItem(p+"autosave.draft"),{format:"raw"}),r(),e.fire("RestoreDraft"))}function a(){u||(setInterval(function(){e.removed||i()},d.autosave_interval),u=!0)}function s(){var t=this;t.disabled(!n()),e.on("StoreDraft RestoreDraft",function(){t.disabled(!n())}),a()}function l(){e.undoManager.beforeChange(),o(),e.undoManager.add()}function c(){var e;return tinymce.each(tinymce.editors,function(t){t.plugins.autosave&&t.plugins.autosave.storeDraft(),!e&&t.isDirty()&&t.getParam("autosave_ask_before_unload",!0)&&(e=t.translate("You have unsaved changes are you sure you want to navigate away?"))}),e}var u,d=e.settings,f=tinymce.util.LocalStorage,p=e.id;d.autosave_interval=t(d.autosave_interval,"30s"),d.autosave_retention=t(d.autosave_retention,"20m"),e.addButton("restoredraft",{title:"Restore last draft",onclick:l,onPostRender:s}),e.addMenuItem("restoredraft",{text:"Restore last draft",onclick:l,onPostRender:s,context:"file"}),this.storeDraft=i,window.onbeforeunload=c});
|
||||
@@ -1 +0,0 @@
|
||||
(function(){tinymce.create("tinymce.plugins.BBCodePlugin",{init:function(e){var t=this,n=e.getParam("bbcode_dialect","punbb").toLowerCase();e.on("beforeSetContent",function(e){e.content=t["_"+n+"_bbcode2html"](e.content)}),e.on("postProcess",function(e){e.set&&(e.content=t["_"+n+"_bbcode2html"](e.content)),e.get&&(e.content=t["_"+n+"_html2bbcode"](e.content))})},getInfo:function(){return{longname:"BBCode Plugin",author:"Moxiecode Systems AB",authorurl:"http://www.tinymce.com",infourl:"http://www.tinymce.com/wiki.php/Plugin:bbcode"}},_punbb_html2bbcode:function(e){function t(t,n){e=e.replace(t,n)}return e=tinymce.trim(e),t(/<a.*?href=\"(.*?)\".*?>(.*?)<\/a>/gi,"[url=$1]$2[/url]"),t(/<font.*?color=\"(.*?)\".*?class=\"codeStyle\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]"),t(/<font.*?color=\"(.*?)\".*?class=\"quoteStyle\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]"),t(/<font.*?class=\"codeStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]"),t(/<font.*?class=\"quoteStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]"),t(/<span style=\"color: ?(.*?);\">(.*?)<\/span>/gi,"[color=$1]$2[/color]"),t(/<font.*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[color=$1]$2[/color]"),t(/<span style=\"font-size:(.*?);\">(.*?)<\/span>/gi,"[size=$1]$2[/size]"),t(/<font>(.*?)<\/font>/gi,"$1"),t(/<img.*?src=\"(.*?)\".*?\/>/gi,"[img]$1[/img]"),t(/<span class=\"codeStyle\">(.*?)<\/span>/gi,"[code]$1[/code]"),t(/<span class=\"quoteStyle\">(.*?)<\/span>/gi,"[quote]$1[/quote]"),t(/<strong class=\"codeStyle\">(.*?)<\/strong>/gi,"[code][b]$1[/b][/code]"),t(/<strong class=\"quoteStyle\">(.*?)<\/strong>/gi,"[quote][b]$1[/b][/quote]"),t(/<em class=\"codeStyle\">(.*?)<\/em>/gi,"[code][i]$1[/i][/code]"),t(/<em class=\"quoteStyle\">(.*?)<\/em>/gi,"[quote][i]$1[/i][/quote]"),t(/<u class=\"codeStyle\">(.*?)<\/u>/gi,"[code][u]$1[/u][/code]"),t(/<u class=\"quoteStyle\">(.*?)<\/u>/gi,"[quote][u]$1[/u][/quote]"),t(/<\/(strong|b)>/gi,"[/b]"),t(/<(strong|b)>/gi,"[b]"),t(/<\/(em|i)>/gi,"[/i]"),t(/<(em|i)>/gi,"[i]"),t(/<\/u>/gi,"[/u]"),t(/<span style=\"text-decoration: ?underline;\">(.*?)<\/span>/gi,"[u]$1[/u]"),t(/<u>/gi,"[u]"),t(/<blockquote[^>]*>/gi,"[quote]"),t(/<\/blockquote>/gi,"[/quote]"),t(/<br \/>/gi,"\n"),t(/<br\/>/gi,"\n"),t(/<br>/gi,"\n"),t(/<p>/gi,""),t(/<\/p>/gi,"\n"),t(/ |\u00a0/gi," "),t(/"/gi,'"'),t(/</gi,"<"),t(/>/gi,">"),t(/&/gi,"&"),e},_punbb_bbcode2html:function(e){function t(t,n){e=e.replace(t,n)}return e=tinymce.trim(e),t(/\n/gi,"<br />"),t(/\[b\]/gi,"<strong>"),t(/\[\/b\]/gi,"</strong>"),t(/\[i\]/gi,"<em>"),t(/\[\/i\]/gi,"</em>"),t(/\[u\]/gi,"<u>"),t(/\[\/u\]/gi,"</u>"),t(/\[url=([^\]]+)\](.*?)\[\/url\]/gi,'<a href="$1">$2</a>'),t(/\[url\](.*?)\[\/url\]/gi,'<a href="$1">$1</a>'),t(/\[img\](.*?)\[\/img\]/gi,'<img src="$1" />'),t(/\[color=(.*?)\](.*?)\[\/color\]/gi,'<font color="$1">$2</font>'),t(/\[code\](.*?)\[\/code\]/gi,'<span class="codeStyle">$1</span> '),t(/\[quote.*?\](.*?)\[\/quote\]/gi,'<span class="quoteStyle">$1</span> '),e}}),tinymce.PluginManager.add("bbcode",tinymce.plugins.BBCodePlugin)})();
|
||||
@@ -1 +0,0 @@
|
||||
tinymce.PluginManager.add("code",function(e){function t(){e.windowManager.open({title:"Source code",body:{type:"textbox",name:"code",multiline:!0,minWidth:600,minHeight:500,value:e.getContent(),spellcheck:!1},onSubmit:function(t){e.setContent(t.data.code)}})}e.addButton("code",{icon:"code",tooltip:"Source code",onclick:t}),e.addMenuItem("code",{icon:"code",text:"Source code",context:"tools",onclick:t})});
|
||||
@@ -1 +0,0 @@
|
||||
tinymce.PluginManager.add("contextmenu",function(e){var t;e.on("contextmenu",function(n){var r;if(n.preventDefault(),r=e.settings.contextmenu||"link image inserttable | cell row column deletetable",t)t.show();else{var i=[];tinymce.each(r.split(/[ ,]/),function(t){var n=e.menuItems[t];"|"==t&&(n={text:t}),n&&(n.shortcut="",i.push(n))});for(var o=0;i.length>o;o++)"|"==i[o].text&&(0===o||o==i.length-1)&&i.splice(o,1);t=new tinymce.ui.Menu({items:i,context:"contextmenu"}),t.renderTo(document.body)}var a=tinymce.DOM.getPos(e.getContentAreaContainer());a.x+=n.clientX,a.y+=n.clientY,t.moveTo(a.x,a.y),e.on("remove",function(){t.remove(),t=null})})});
|
||||
@@ -1 +0,0 @@
|
||||
tinymce.PluginManager.add("directionality",function(e){function t(t){var n,r=e.dom,i=e.selection.getSelectedBlocks();i.length&&(n=r.getAttrib(i[0],"dir"),tinymce.each(i,function(e){r.getParent(e.parentNode,"*[dir='"+t+"']",r.getRoot())||(n!=t?r.setAttrib(e,"dir",t):r.setAttrib(e,"dir",null))}),e.nodeChanged())}function n(e){var t=[];return tinymce.each("h1 h2 h3 h4 h5 h6 div p".split(" "),function(n){t.push(n+"[dir="+e+"]")}),t.join(",")}e.addCommand("mceDirectionLTR",function(){t("ltr")}),e.addCommand("mceDirectionRTL",function(){t("rtl")}),e.addButton("ltr",{title:"Left to right",cmd:"mceDirectionLTR",stateSelector:n("ltr")}),e.addButton("rtl",{title:"Right to left",cmd:"mceDirectionRTL",stateSelector:n("rtl")})});
|
||||
|
Before Width: | Height: | Size: 354 B |
|
Before Width: | Height: | Size: 329 B |
|
Before Width: | Height: | Size: 331 B |
|
Before Width: | Height: | Size: 342 B |
|
Before Width: | Height: | Size: 340 B |
|
Before Width: | Height: | Size: 336 B |
|
Before Width: | Height: | Size: 338 B |
|
Before Width: | Height: | Size: 343 B |
|
Before Width: | Height: | Size: 321 B |
|
Before Width: | Height: | Size: 323 B |
|
Before Width: | Height: | Size: 344 B |
|
Before Width: | Height: | Size: 338 B |
|
Before Width: | Height: | Size: 328 B |
|
Before Width: | Height: | Size: 337 B |
|
Before Width: | Height: | Size: 350 B |
|
Before Width: | Height: | Size: 336 B |
@@ -1 +0,0 @@
|
||||
tinymce.PluginManager.add("emoticons",function(e,t){function n(){var e;return e='<table role="presentation" class="mce-grid">',tinymce.each(r,function(n){e+="<tr>",tinymce.each(n,function(n){var r=t+"/img/smiley-"+n+".gif";e+='<td><a href="#" data-mce-url="'+r+'" tabindex="-1"><img src="'+r+'" style="width: 18px; height: 18px"></a></td>'}),e+="</tr>"}),e+="</table>"}var r=[["cool","cry","embarassed","foot-in-mouth"],["frown","innocent","kiss","laughing"],["money-mouth","sealed","smile","surprised"],["tongue-out","undecided","wink","yell"]];e.addButton("emoticons",{type:"panelbutton",popoverAlign:"bc-tl",panel:{autohide:!0,html:n,onclick:function(t){var n=e.dom.getParent(t.target,"a");n&&(e.insertContent('<img src="'+n.getAttribute("data-mce-url")+'" />'),this.hide())}},tooltip:"Emoticons"})});
|
||||
@@ -1 +0,0 @@
|
||||
tinymce.PluginManager.add("example",function(){});
|
||||
@@ -1 +0,0 @@
|
||||
tinymce.PluginManager.add("example_dependency",function(){},["example"]);
|
||||