bonethug 0.0.16 → 0.0.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -219,16 +219,49 @@ module Bonethug
219
219
  gemfile_path = target + '/Gemfile'
220
220
  if File.exist? gemfile_path
221
221
 
222
+ # extract the contents
222
223
  gemfile_contents = File.read(gemfile_path)
223
224
 
224
- unless /gem ["']bonethug["']/ =~ File.read(gemfile_path)
225
- puts "Couldn't find bonethug in gem file adding..."
226
- File.open(gemfile_path,'w') { |file| file.puts gemfile_contents + "\n" + 'gem "bonethug"' }
227
- else
228
- puts 'Found bonethug in gem file'
225
+ # identify what we are looking for
226
+ required_gems = {
227
+ 'mina' => 'nadarei/mina',
228
+ 'astrails-safe' => 'astrails/safe',
229
+ 'whenever' => 'javan/whenever',
230
+ 'bonethug' => nil
231
+ }
232
+
233
+ # look at each requirement and identify if we need things
234
+ required_gems.each do |gem_name, github|
235
+
236
+ add_gem = false;
237
+ gem_reg = Regexp.new('gem ["\']'+gem_name+'["\']')
238
+ git_reg = Regexp.new('gem[^"\']+["\']'+gem_name+'["\'],[^,]+github: ["\']'+github+'["\'],') if github
239
+
240
+ if gem_reg =~ gemfile_contents
241
+ if !github
242
+ puts 'Found '+gem_name+' in gem file'
243
+ else
244
+ puts 'Requires github version, checking...'
245
+ unless git_reg =~ gemfile_contents
246
+ puts 'Couldn\'t find '+gem_name+' in gem file adding...'
247
+ gemfile_contents.gsub(gem_reg,'')
248
+ add_gem = true;
249
+ end
250
+ end
251
+ else
252
+ puts "Couldn't find "+gem_name+" in gem file adding..."
253
+ add_gem = true;
254
+ end
255
+
256
+ if add_gem
257
+ gemfile_contents += "\n" + 'gem "'+gem_name+'"'+(github ? ', github: "'+github+'"' : '')
258
+ File.open(gemfile_path,'w') { |file| file.puts gemfile_contents }
259
+ end
260
+
229
261
  end
230
262
 
231
263
  else
264
+ puts 'No Gemfile found, creating one...'
232
265
  FileUtils.cp @@skel_dir + '/base/Gemfile', gemfile_path
233
266
  end
234
267
 
@@ -1,3 +1,3 @@
1
1
  module Bonethug
2
- VERSION = "0.0.16"
2
+ VERSION = "0.0.17"
3
3
  end
data/skel/base/Gemfile CHANGED
@@ -1,3 +1,6 @@
1
1
  source "https://rubygems.org"
2
2
 
3
+ gem 'mina', github: 'nadarei/mina'
4
+ gem 'astrails-safe', github: 'astrails/safe'
5
+ gem 'whenever', github: 'javan/whenever'
3
6
  gem 'bonethug'
@@ -7,16 +7,16 @@
7
7
  /db_dumps
8
8
  /tmp/*
9
9
  /composer.phar
10
+ !.gitkeep
10
11
 
11
12
  # components tracked by composer
12
- public/silverstripe-cache
13
- public/themes/simple
14
- public/vendor
15
- public/assets/*
16
- public/bootstrap_forms
17
- public/cms
18
- public/framework
19
- public/html5
20
- public/widgets
21
- public/compass
22
- composer.phar
13
+ /public/silverstripe-cache/*
14
+ /public/themes/simple
15
+ /public/vendor
16
+ /public/assets/*
17
+ /public/bootstrap_forms
18
+ /public/cms
19
+ /public/framework
20
+ /public/html5
21
+ /public/widgets
22
+ /public/compass
@@ -7,8 +7,7 @@
7
7
  "silverstripe-themes/simple" : "dev-master",
8
8
  "silverstripe/installer" : "3.1.*@dev",
9
9
  "silverstripe/bootstrap-forms" : "dev-master",
10
- "silverstripe/html5" : "dev-master",
11
- "silverstripe/widgets" : "dev-master"
10
+ "silverstripe/html5" : "dev-master"
12
11
  },
13
12
  "extra": {
14
13
  "installer-paths": {
@@ -24,8 +23,7 @@
24
23
  "silverstripe/framework",
25
24
  "silverstripe/cms",
26
25
  "silverstripe/bootstrap-forms",
27
- "silverstripe/html5",
28
- "silverstripe/widgets",
26
+ "silverstripe/html5"
29
27
  ]
30
28
  }
31
29
  }
@@ -1,10 +1,13 @@
1
1
  <?php
2
2
 
3
3
  // Define path constant
4
- define('ADD_PATH', str_replace(str_replace('\\','/',$_SERVER['DOCUMENT_ROOT']).'/', "", str_replace('\\','/',__DIR__)) );
4
+ $path = str_replace('\\', '/', __DIR__);
5
+ $path_fragments = explode('/', $path);
6
+ $dir_name = $path_fragments[count($path_fragments) - 1];
7
+ define('ABC_PATH', $dir_name);
5
8
 
6
9
  // fallback image
7
- AbcImage::$fallback_image = ADD_PATH.'/images/no-image.jpg';
10
+ AbcImage::$fallback_image = ABC_PATH.'/images/no-image.jpg';
8
11
 
9
12
  // Extensions
10
13
  Object::add_extension('AddGridFieldDetailForm_ItemRequest', 'GridFieldDetailForm_VersionedDataObject_Actions');
@@ -13,50 +16,51 @@ Security::add_extension('AbcSecurityExtension');
13
16
 
14
17
  // Requirements
15
18
  Requirements::block(THIRDPARTY_DIR."/jquery/jquery.js");
16
- Requirements::javascript(ADD_PATH."/javascript/library/jQuery/jquery-1.10.2.min.js");
19
+ Requirements::javascript(ABC_PATH."/javascript/library/jQuery/jquery-1.10.2.min.js");
17
20
  LeftAndMainHelper::require_unblock(THIRDPARTY_DIR."/jquery/jquery.js");
18
- LeftAndMainHelper::require_block(ADD_PATH."/javascript/library/jQuery/jquery-1.10.2.min.js");
21
+ LeftAndMainHelper::require_block(ABC_PATH."/javascript/library/jQuery/jquery-1.10.2.min.js");
22
+ Requirements::javascript(ABC_PATH."/javascript/library/modernizr-2.6.2.min.js");
19
23
 
20
24
  // DatePicker config
21
25
  Object::useCustomClass('DateField_View_JQuery', 'jQueryUIDateField_View');
22
26
 
23
- // jQuery extensions
24
- Requirements::javascript(ADD_PATH.'/javascript/library/jQuery/jquery.parseParams.js');
25
- Requirements::javascript(ADD_PATH.'/javascript/library/jQuery/ui/js/jquery-ui-1.8.23.custom.min.js');
26
- Requirements::javascript(ADD_PATH.'/javascript/library/jQuery/jquery.ui.touch-punch.min.js');
27
- Requirements::javascript(ADD_PATH.'/javascript/library/jQuery/jquery.animate.color.js');
28
- Requirements::javascript(ADD_PATH.'/javascript/library/jQuery/custom-scrollbar/jquery.mousewheel.min.js');
29
- Requirements::javascript(ADD_PATH.'/javascript/library/jQuery/custom-scrollbar/jquery.mCustomScrollbar.js');
30
- Requirements::javascript(ADD_PATH.'/javascript/library/jQuery/mobile/jquery.mobile.custom.js');
31
- Requirements::javascript(ADD_PATH.'/javascript/library/jQuery/event.drag/jquery.event.drag.js');
32
- Requirements::javascript(ADD_PATH.'/javascript/library/jQuery/event.drag/jquery.event.drag.live.js');
33
- Requirements::javascript(ADD_PATH.'/javascript/library/jquery.drag.touch.js');
34
- Requirements::javascript(ADD_PATH.'/javascript/library/spin.min.js');
35
-
36
- LeftAndMainHelper::require_block(ADD_PATH.'/javascript/library/jQuery/jquery.parseParams.js');
37
- LeftAndMainHelper::require_block(ADD_PATH.'/javascript/library/jQuery/ui/js/jquery-ui-1.8.23.custom.min.js');
38
- LeftAndMainHelper::require_block(ADD_PATH.'/javascript/library/jQuery/jquery.ui.touch-punch.min.js');
39
- LeftAndMainHelper::require_block(ADD_PATH.'/javascript/library/jQuery/jquery.animate.color.js');
40
- LeftAndMainHelper::require_block(ADD_PATH.'/javascript/library/jQuery/custom-scrollbar/jquery.mousewheel.min.js');
41
- LeftAndMainHelper::require_block(ADD_PATH.'/javascript/library/jQuery/custom-scrollbar/jquery.mCustomScrollbar.js');
42
- LeftAndMainHelper::require_block(ADD_PATH.'/javascript/library/jQuery/mobile/jquery.mobile.custom.js');
43
- LeftAndMainHelper::require_block(ADD_PATH.'/javascript/library/jQuery/event.drag/jquery.event.drag.js');
44
- LeftAndMainHelper::require_block(ADD_PATH.'/javascript/library/jQuery/event.drag/jquery.event.drag.live.js');
45
- LeftAndMainHelper::require_block(ADD_PATH.'/javascript/library/jquery.drag.touch.js');
46
- LeftAndMainHelper::require_block(ADD_PATH.'/javascript/library/spin.min.js');
47
-
48
- // CSS
49
- Requirements::css(ADD_PATH.'/javascript/library/jQuery/ui/css/Aristo/Aristo.css');
50
- Requirements::css(ADD_PATH.'/javascript/library/jQuery/custom-scrollbar/jquery.mCustomScrollbar.css');
51
- LeftAndMainHelper::require_block(ADD_PATH.'/javascript/library/jQuery/ui/css/Aristo/Aristo.css');
27
+ // // jQuery extensions
28
+ // Requirements::javascript(ABC_PATH.'/javascript/library/jQuery/jquery.parseParams.js');
29
+ // Requirements::javascript(ABC_PATH.'/javascript/library/jQuery/ui/js/jquery-ui-1.8.23.custom.min.js');
30
+ // Requirements::javascript(ABC_PATH.'/javascript/library/jQuery/jquery.ui.touch-punch.min.js');
31
+ // Requirements::javascript(ABC_PATH.'/javascript/library/jQuery/jquery.animate.color.js');
32
+ // Requirements::javascript(ABC_PATH.'/javascript/library/jQuery/custom-scrollbar/jquery.mousewheel.min.js');
33
+ // Requirements::javascript(ABC_PATH.'/javascript/library/jQuery/custom-scrollbar/jquery.mCustomScrollbar.js');
34
+ // Requirements::javascript(ABC_PATH.'/javascript/library/jQuery/mobile/jquery.mobile.custom.js');
35
+ Requirements::javascript(ABC_PATH.'/javascript/library/jQuery/event.drag/jquery.event.drag.js');
36
+ Requirements::javascript(ABC_PATH.'/javascript/library/jQuery/event.drag/jquery.event.drag.live.js');
37
+ Requirements::javascript(ABC_PATH.'/javascript/library/jquery.drag.touch.js');
38
+ // Requirements::javascript(ABC_PATH.'/javascript/library/spin.min.js');
39
+
40
+ // LeftAndMainHelper::require_block(ABC_PATH.'/javascript/library/jQuery/jquery.parseParams.js');
41
+ // LeftAndMainHelper::require_block(ABC_PATH.'/javascript/library/jQuery/ui/js/jquery-ui-1.8.23.custom.min.js');
42
+ // LeftAndMainHelper::require_block(ABC_PATH.'/javascript/library/jQuery/jquery.ui.touch-punch.min.js');
43
+ // LeftAndMainHelper::require_block(ABC_PATH.'/javascript/library/jQuery/jquery.animate.color.js');
44
+ // LeftAndMainHelper::require_block(ABC_PATH.'/javascript/library/jQuery/custom-scrollbar/jquery.mousewheel.min.js');
45
+ // LeftAndMainHelper::require_block(ABC_PATH.'/javascript/library/jQuery/custom-scrollbar/jquery.mCustomScrollbar.js');
46
+ // LeftAndMainHelper::require_block(ABC_PATH.'/javascript/library/jQuery/mobile/jquery.mobile.custom.js');
47
+ // LeftAndMainHelper::require_block(ABC_PATH.'/javascript/library/jQuery/event.drag/jquery.event.drag.js');
48
+ // LeftAndMainHelper::require_block(ABC_PATH.'/javascript/library/jQuery/event.drag/jquery.event.drag.live.js');
49
+ // LeftAndMainHelper::require_block(ABC_PATH.'/javascript/library/jquery.drag.touch.js');
50
+ // LeftAndMainHelper::require_block(ABC_PATH.'/javascript/library/spin.min.js');
51
+
52
+ // // CSS
53
+ // Requirements::css(ABC_PATH.'/javascript/library/jQuery/ui/css/Aristo/Aristo.css');
54
+ // Requirements::css(ABC_PATH.'/javascript/library/jQuery/custom-scrollbar/jquery.mCustomScrollbar.css');
55
+ // LeftAndMainHelper::require_block(ABC_PATH.'/javascript/library/jQuery/ui/css/Aristo/Aristo.css');
52
56
 
53
57
  // CMS customisations
54
58
 
55
59
  //LeftAndMain::require_javascript(THIRDPARTY_DIR."/jquery/jquery.js");
56
- //LeftAndMain::require_css(ADD_PATH.'/css/cms.css');
57
- //LeftAndMain::require_javascript(ADD_PATH.'/javascript/jquery.cms.js');
60
+ //LeftAndMain::require_css(ABC_PATH.'/css/cms.css');
61
+ //LeftAndMain::require_javascript(ABC_PATH.'/javascript/jquery.cms.js');
58
62
 
59
63
  //$server = ( !empty($_SERVER['HTTPS']) || !empty($_SERVER['HTTP_HTTPS']) || (!empty($_SERVER['REQUEST_SCHEME']) && $_SERVER['REQUEST_SCHEME'] == 'https') ? 'https' : 'http').'://'.$_SERVER['HTTP_HOST'];
60
64
  //Requirements::customScript("
61
- // !window.jQuery && document.write(unescape('%3Cscript src=\"".$server.'/'.ADD_PATH.'/javascript/library/jQuery/jquery-1.8.0.min.js'."\"%3E%3C/script%3E'));
65
+ // !window.jQuery && document.write(unescape('%3Cscript src=\"".$server.'/'.ABC_PATH.'/javascript/library/jQuery/jquery-1.8.0.min.js'."\"%3E%3C/script%3E'));
62
66
  //");
@@ -27,7 +27,7 @@ class AbcPaginator extends ViewableData{
27
27
  public function __construct($initHitsPerPage = null, $pageVar = null, $hitsVar = null){
28
28
 
29
29
  // requirements
30
- Requirements::javascript(ADD_PATH.'/javascript/pagination.js');
30
+ Requirements::javascript(ABC_PATH.'/javascript/pagination.js');
31
31
 
32
32
  // Set up environment
33
33
  $this->pageVar = $pageVar ? $pageVar : self::$defaultPageVar ;
@@ -50,12 +50,12 @@ class AbcPaginator extends ViewableData{
50
50
  $dropdownOptions = array();
51
51
  if ( $options && count($options) ){
52
52
  foreach($options as $option){
53
- $dropdownOptions[AddURL::get($baseURL)->q(array( $this->hitsVar => $option, $this->pageVar => 1))->URL] = $option;
53
+ $dropdownOptions[AbcURL::get($baseURL)->q(array( $this->hitsVar => $option, $this->pageVar => 1))->URL] = $option;
54
54
  }
55
55
  }else{
56
56
  $default = array(12,24,36,48,60);
57
57
  foreach($default as $dindex){
58
- $dropdownOptions[AddURL::get($baseURL)->q(array( $this->hitsVar => $dindex, $this->pageVar => 1))->URL] = $dindex;
58
+ $dropdownOptions[AbcURL::get($baseURL)->q(array( $this->hitsVar => $dindex, $this->pageVar => 1))->URL] = $dindex;
59
59
  }
60
60
  }
61
61
 
@@ -63,7 +63,7 @@ class AbcPaginator extends ViewableData{
63
63
  $name = 'Hits',
64
64
  $title = ' ',
65
65
  $source = $dropdownOptions,
66
- $value = AddURL::get($baseURL)->q(array( $this->hitsVar => $this->limit, $this->pageVar => 1))->URL
66
+ $value = AbcURL::get($baseURL)->q(array( $this->hitsVar => $this->limit, $this->pageVar => 1))->URL
67
67
  );
68
68
  }
69
69
 
@@ -115,8 +115,16 @@ class AbcPaginator extends ViewableData{
115
115
 
116
116
  // Add caller class filter if its on a shared table
117
117
  if ($callerClass != $oTable){
118
- $wSQL.= $wSQL ? " AND " : " WHERE " ;
119
- $wSQL.= "(".$table.".ClassName='".$callerClass."')";
118
+ $wSQL.= $wSQL ? " AND " : " WHERE " ;
119
+ $wSQL.= "(".$table.".ClassName='".$callerClass."'";
120
+
121
+ if ($subclasses = DataObjectHelper::getSubclassesOf($callerClass)) {
122
+ foreach($subclasses as $subclass) {
123
+ $wSQL.= " OR ".$table.".ClassName='".$subclass."'";
124
+ }
125
+ }
126
+
127
+ $wSQL.= ")";
120
128
  }
121
129
 
122
130
  // Filter
@@ -132,7 +140,7 @@ class AbcPaginator extends ViewableData{
132
140
  }
133
141
 
134
142
  public static function getUnlimitedRowCountForSQL($sql){
135
- $r = AddDB::getInstance()->query($sql);
143
+ $r = AbcDB::getInstance()->query($sql);
136
144
  if ( $r ) return $r->fetch(PDO::FETCH_OBJ)->total;
137
145
 
138
146
  return false;
@@ -160,10 +168,10 @@ class AbcPaginator extends ViewableData{
160
168
  $pageLinks->Total = $totalPages;
161
169
 
162
170
  // Prep page links
163
- if ($this->currentPage > 1+$pageDisplayRange) $pageLinks->FirstPage = AddURL::get($baseURL)->q(array('hits'=>$this->limit,'page'=>1))->URL;
164
- if ($this->currentPage < $totalPages-$pageDisplayRange) $pageLinks->LastPage = AddURL::get($baseURL)->q(array('hits'=>$this->limit,'page'=>$totalPages))->URL;
165
- if ($this->currentPage != 1) $pageLinks->PreviousPage = AddURL::get($baseURL)->q(array('hits'=>$this->limit,'page'=>($this->currentPage - 1)))->URL;
166
- if ($this->currentPage != $totalPages) $pageLinks->NextPage = AddURL::get($baseURL)->q(array('hits'=>$this->limit,'page'=>($this->currentPage + 1)))->URL;
171
+ if ($this->currentPage > 1+$pageDisplayRange) $pageLinks->FirstPage = AbcURL::get($baseURL)->q(array('hits'=>$this->limit,'page'=>1))->URL;
172
+ if ($this->currentPage < $totalPages-$pageDisplayRange) $pageLinks->LastPage = AbcURL::get($baseURL)->q(array('hits'=>$this->limit,'page'=>$totalPages))->URL;
173
+ if ($this->currentPage != 1) $pageLinks->PreviousPage = AbcURL::get($baseURL)->q(array('hits'=>$this->limit,'page'=>($this->currentPage - 1)))->URL;
174
+ if ($this->currentPage != $totalPages) $pageLinks->NextPage = AbcURL::get($baseURL)->q(array('hits'=>$this->limit,'page'=>($this->currentPage + 1)))->URL;
167
175
 
168
176
  // page quick links
169
177
  $pageLinks->QuickLinks = new ArrayList;
@@ -177,11 +185,13 @@ class AbcPaginator extends ViewableData{
177
185
  // make links
178
186
  for($i = $minShow; $i <= $maxShow; $i++){
179
187
  $link = new DataObject;
180
- $link->PageLink = $i == $this->currentPage ? null : AddURL::get($baseURL)->q(array('hits'=>$this->limit,'page'=>$i))->URL ;
188
+ $link->PageLink = $i == $this->currentPage ? null : AbcURL::get($baseURL)->q(array('hits'=>$this->limit,'page'=>$i))->URL ;
181
189
  $link->PageNum = $i;
182
190
  $pageLinks->QuickLinks->push($link);
183
191
  }
184
192
 
193
+ // die($totalHits .' vs '. $this->limit);
194
+
185
195
  // Prep return data
186
196
  $return->HitsSelector = $this->HitsSelector($baseURL,$hitsSelectorOptions);
187
197
  $return->TotalHits = strval($totalHits);
@@ -170,12 +170,16 @@ class DataObjectHelper{
170
170
  /*
171
171
  * Gets sub classes of the provided class - possibly should work off the manifest rather than get declared classes
172
172
  */
173
- public function getSubclassesOf($parent) {
174
- $result = array();
175
- foreach (get_declared_classes() as $class) {
176
- if (is_subclass_of($class, $parent))
177
- $result[] = $class;
178
- }
173
+ public static function getSubclassesOf($parent) {
174
+
175
+ return ClassInfo::subclassesFor($parent);
176
+
177
+ // $result = array();
178
+ // foreach (get_declared_classes() as $class) {
179
+ // if (is_subclass_of($class, $parent))
180
+ // $result[] = $class;
181
+ // }
182
+
179
183
  }
180
184
 
181
185
  protected static function getFieldsForObj($obj) {
@@ -18,9 +18,9 @@ class ColourPickerField extends TextField {
18
18
 
19
19
  public function __construct($name, $title = null, $value = '', $maxLength = null, $form = null) {
20
20
  parent::__construct($name, $title, $value, $maxLength, $form);
21
- Requirements::javascript(ADD_PATH.'/javascript/library/jQuery/colorpicker/js/colorpicker.js');
22
- Requirements::customScript(file_get_contents($_SERVER['DOCUMENT_ROOT'].'/'.ADD_PATH.'/javascript/ColourPickerField.js'));
23
- Requirements::css(ADD_PATH.'/javascript/library/jQuery/colorpicker/css/colorpicker.css');
21
+ Requirements::javascript(ABC_PATH.'/javascript/library/jQuery/colorpicker/js/colorpicker.js');
22
+ Requirements::customScript(file_get_contents($_SERVER['DOCUMENT_ROOT'].'/'.ABC_PATH.'/javascript/ColourPickerField.js'));
23
+ Requirements::css(ABC_PATH.'/javascript/library/jQuery/colorpicker/css/colorpicker.css');
24
24
  $this->addExtraClass('text');
25
25
  }
26
26
 
@@ -26,7 +26,8 @@
26
26
  classNameSpace : "slidatron",
27
27
  holdTime : 9000,
28
28
  transitionTime : 1500,
29
- onAfterInit : null
29
+ onAfterInit : null,
30
+ onAfterMove : null
30
31
  };
31
32
 
32
33
  // The actual plugin constructor
@@ -280,6 +281,13 @@
280
281
  var ids = _this.generateIndentifiers(index);
281
282
  $('.slidatron-ctrl-wrapper a').removeClass('current');
282
283
  $('#'+ids.ctrlId).addClass('current');
284
+
285
+ // add the curret class to the current slide
286
+ $('.slidatron-slide').removeClass('current');
287
+ $('.slidatron-slide-'+index).addClass('current');
288
+
289
+ // run the post
290
+ if (typeof _this.options.onAfterMove == 'function') _this.options.onAfterMove();
283
291
 
284
292
  });
285
293
 
@@ -0,0 +1,4 @@
1
+ /* Modernizr 2.6.2 (Custom Build) | MIT & BSD
2
+ * Build: http://modernizr.com/download/#-fontface-backgroundsize-borderimage-borderradius-boxshadow-flexbox-hsla-multiplebgs-opacity-rgba-textshadow-cssanimations-csscolumns-generatedcontent-cssgradients-cssreflections-csstransforms-csstransforms3d-csstransitions-applicationcache-canvas-canvastext-draganddrop-hashchange-history-audio-video-indexeddb-input-inputtypes-localstorage-postmessage-sessionstorage-websockets-websqldatabase-webworkers-geolocation-inlinesvg-smil-svg-svgclippaths-touch-webgl-shiv-mq-cssclasses-addtest-prefixed-teststyles-testprop-testallprops-hasevent-prefixes-domprefixes-load
3
+ */
4
+ ;window.Modernizr=function(a,b,c){function D(a){j.cssText=a}function E(a,b){return D(n.join(a+";")+(b||""))}function F(a,b){return typeof a===b}function G(a,b){return!!~(""+a).indexOf(b)}function H(a,b){for(var d in a){var e=a[d];if(!G(e,"-")&&j[e]!==c)return b=="pfx"?e:!0}return!1}function I(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:F(f,"function")?f.bind(d||b):f}return!1}function J(a,b,c){var d=a.charAt(0).toUpperCase()+a.slice(1),e=(a+" "+p.join(d+" ")+d).split(" ");return F(b,"string")||F(b,"undefined")?H(e,b):(e=(a+" "+q.join(d+" ")+d).split(" "),I(e,b,c))}function K(){e.input=function(c){for(var d=0,e=c.length;d<e;d++)u[c[d]]=c[d]in k;return u.list&&(u.list=!!b.createElement("datalist")&&!!a.HTMLDataListElement),u}("autocomplete autofocus list placeholder max min multiple pattern required step".split(" ")),e.inputtypes=function(a){for(var d=0,e,f,h,i=a.length;d<i;d++)k.setAttribute("type",f=a[d]),e=k.type!=="text",e&&(k.value=l,k.style.cssText="position:absolute;visibility:hidden;",/^range$/.test(f)&&k.style.WebkitAppearance!==c?(g.appendChild(k),h=b.defaultView,e=h.getComputedStyle&&h.getComputedStyle(k,null).WebkitAppearance!=="textfield"&&k.offsetHeight!==0,g.removeChild(k)):/^(search|tel)$/.test(f)||(/^(url|email)$/.test(f)?e=k.checkValidity&&k.checkValidity()===!1:e=k.value!=l)),t[a[d]]=!!e;return t}("search tel url email datetime date month week time datetime-local number range color".split(" "))}var d="2.6.2",e={},f=!0,g=b.documentElement,h="modernizr",i=b.createElement(h),j=i.style,k=b.createElement("input"),l=":)",m={}.toString,n=" -webkit- -moz- -o- -ms- ".split(" "),o="Webkit Moz O ms",p=o.split(" "),q=o.toLowerCase().split(" "),r={svg:"http://www.w3.org/2000/svg"},s={},t={},u={},v=[],w=v.slice,x,y=function(a,c,d,e){var f,i,j,k,l=b.createElement("div"),m=b.body,n=m||b.createElement("body");if(parseInt(d,10))while(d--)j=b.createElement("div"),j.id=e?e[d]:h+(d+1),l.appendChild(j);return f=["&#173;",'<style id="s',h,'">',a,"</style>"].join(""),l.id=h,(m?l:n).innerHTML+=f,n.appendChild(l),m||(n.style.background="",n.style.overflow="hidden",k=g.style.overflow,g.style.overflow="hidden",g.appendChild(n)),i=c(l,a),m?l.parentNode.removeChild(l):(n.parentNode.removeChild(n),g.style.overflow=k),!!i},z=function(b){var c=a.matchMedia||a.msMatchMedia;if(c)return c(b).matches;var d;return y("@media "+b+" { #"+h+" { position: absolute; } }",function(b){d=(a.getComputedStyle?getComputedStyle(b,null):b.currentStyle)["position"]=="absolute"}),d},A=function(){function d(d,e){e=e||b.createElement(a[d]||"div"),d="on"+d;var f=d in e;return f||(e.setAttribute||(e=b.createElement("div")),e.setAttribute&&e.removeAttribute&&(e.setAttribute(d,""),f=F(e[d],"function"),F(e[d],"undefined")||(e[d]=c),e.removeAttribute(d))),e=null,f}var a={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return d}(),B={}.hasOwnProperty,C;!F(B,"undefined")&&!F(B.call,"undefined")?C=function(a,b){return B.call(a,b)}:C=function(a,b){return b in a&&F(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=w.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(w.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(w.call(arguments)))};return e}),s.flexbox=function(){return J("flexWrap")},s.canvas=function(){var a=b.createElement("canvas");return!!a.getContext&&!!a.getContext("2d")},s.canvastext=function(){return!!e.canvas&&!!F(b.createElement("canvas").getContext("2d").fillText,"function")},s.webgl=function(){return!!a.WebGLRenderingContext},s.touch=function(){var c;return"ontouchstart"in a||a.DocumentTouch&&b instanceof DocumentTouch?c=!0:y(["@media (",n.join("touch-enabled),("),h,")","{#modernizr{top:9px;position:absolute}}"].join(""),function(a){c=a.offsetTop===9}),c},s.geolocation=function(){return"geolocation"in navigator},s.postmessage=function(){return!!a.postMessage},s.websqldatabase=function(){return!!a.openDatabase},s.indexedDB=function(){return!!J("indexedDB",a)},s.hashchange=function(){return A("hashchange",a)&&(b.documentMode===c||b.documentMode>7)},s.history=function(){return!!a.history&&!!history.pushState},s.draganddrop=function(){var a=b.createElement("div");return"draggable"in a||"ondragstart"in a&&"ondrop"in a},s.websockets=function(){return"WebSocket"in a||"MozWebSocket"in a},s.rgba=function(){return D("background-color:rgba(150,255,150,.5)"),G(j.backgroundColor,"rgba")},s.hsla=function(){return D("background-color:hsla(120,40%,100%,.5)"),G(j.backgroundColor,"rgba")||G(j.backgroundColor,"hsla")},s.multiplebgs=function(){return D("background:url(https://),url(https://),red url(https://)"),/(url\s*\(.*?){3}/.test(j.background)},s.backgroundsize=function(){return J("backgroundSize")},s.borderimage=function(){return J("borderImage")},s.borderradius=function(){return J("borderRadius")},s.boxshadow=function(){return J("boxShadow")},s.textshadow=function(){return b.createElement("div").style.textShadow===""},s.opacity=function(){return E("opacity:.55"),/^0.55$/.test(j.opacity)},s.cssanimations=function(){return J("animationName")},s.csscolumns=function(){return J("columnCount")},s.cssgradients=function(){var a="background-image:",b="gradient(linear,left top,right bottom,from(#9f9),to(white));",c="linear-gradient(left top,#9f9, white);";return D((a+"-webkit- ".split(" ").join(b+a)+n.join(c+a)).slice(0,-a.length)),G(j.backgroundImage,"gradient")},s.cssreflections=function(){return J("boxReflect")},s.csstransforms=function(){return!!J("transform")},s.csstransforms3d=function(){var a=!!J("perspective");return a&&"webkitPerspective"in g.style&&y("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}",function(b,c){a=b.offsetLeft===9&&b.offsetHeight===3}),a},s.csstransitions=function(){return J("transition")},s.fontface=function(){var a;return y('@font-face {font-family:"font";src:url("https://")}',function(c,d){var e=b.getElementById("smodernizr"),f=e.sheet||e.styleSheet,g=f?f.cssRules&&f.cssRules[0]?f.cssRules[0].cssText:f.cssText||"":"";a=/src/i.test(g)&&g.indexOf(d.split(" ")[0])===0}),a},s.generatedcontent=function(){var a;return y(["#",h,"{font:0/0 a}#",h,':after{content:"',l,'";visibility:hidden;font:3px/1 a}'].join(""),function(b){a=b.offsetHeight>=3}),a},s.video=function(){var a=b.createElement("video"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('video/ogg; codecs="theora"').replace(/^no$/,""),c.h264=a.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/,""),c.webm=a.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,"")}catch(d){}return c},s.audio=function(){var a=b.createElement("audio"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),c.mp3=a.canPlayType("audio/mpeg;").replace(/^no$/,""),c.wav=a.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),c.m4a=(a.canPlayType("audio/x-m4a;")||a.canPlayType("audio/aac;")).replace(/^no$/,"")}catch(d){}return c},s.localstorage=function(){try{return localStorage.setItem(h,h),localStorage.removeItem(h),!0}catch(a){return!1}},s.sessionstorage=function(){try{return sessionStorage.setItem(h,h),sessionStorage.removeItem(h),!0}catch(a){return!1}},s.webworkers=function(){return!!a.Worker},s.applicationcache=function(){return!!a.applicationCache},s.svg=function(){return!!b.createElementNS&&!!b.createElementNS(r.svg,"svg").createSVGRect},s.inlinesvg=function(){var a=b.createElement("div");return a.innerHTML="<svg/>",(a.firstChild&&a.firstChild.namespaceURI)==r.svg},s.smil=function(){return!!b.createElementNS&&/SVGAnimate/.test(m.call(b.createElementNS(r.svg,"animate")))},s.svgclippaths=function(){return!!b.createElementNS&&/SVGClipPath/.test(m.call(b.createElementNS(r.svg,"clipPath")))};for(var L in s)C(s,L)&&(x=L.toLowerCase(),e[x]=s[L](),v.push((e[x]?"":"no-")+x));return e.input||K(),e.addTest=function(a,b){if(typeof a=="object")for(var d in a)C(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,typeof f!="undefined"&&f&&(g.className+=" "+(b?"":"no-")+a),e[a]=b}return e},D(""),i=k=null,function(a,b){function k(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function l(){var a=r.elements;return typeof a=="string"?a.split(" "):a}function m(a){var b=i[a[g]];return b||(b={},h++,a[g]=h,i[h]=b),b}function n(a,c,f){c||(c=b);if(j)return c.createElement(a);f||(f=m(c));var g;return f.cache[a]?g=f.cache[a].cloneNode():e.test(a)?g=(f.cache[a]=f.createElem(a)).cloneNode():g=f.createElem(a),g.canHaveChildren&&!d.test(a)?f.frag.appendChild(g):g}function o(a,c){a||(a=b);if(j)return a.createDocumentFragment();c=c||m(a);var d=c.frag.cloneNode(),e=0,f=l(),g=f.length;for(;e<g;e++)d.createElement(f[e]);return d}function p(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return r.shivMethods?n(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+l().join().replace(/\w+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(r,b.frag)}function q(a){a||(a=b);var c=m(a);return r.shivCSS&&!f&&!c.hasCSS&&(c.hasCSS=!!k(a,"article,aside,figcaption,figure,footer,header,hgroup,nav,section{display:block}mark{background:#FF0;color:#000}")),j||p(a,c),a}var c=a.html5||{},d=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,e=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,f,g="_html5shiv",h=0,i={},j;(function(){try{var a=b.createElement("a");a.innerHTML="<xyz></xyz>",f="hidden"in a,j=a.childNodes.length==1||function(){b.createElement("a");var a=b.createDocumentFragment();return typeof a.cloneNode=="undefined"||typeof a.createDocumentFragment=="undefined"||typeof a.createElement=="undefined"}()}catch(c){f=!0,j=!0}})();var r={elements:c.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",shivCSS:c.shivCSS!==!1,supportsUnknownElements:j,shivMethods:c.shivMethods!==!1,type:"default",shivDocument:q,createElement:n,createDocumentFragment:o};a.html5=r,q(b)}(this,b),e._version=d,e._prefixes=n,e._domPrefixes=q,e._cssomPrefixes=p,e.mq=z,e.hasEvent=A,e.testProp=function(a){return H([a])},e.testAllProps=J,e.testStyles=y,e.prefixed=function(a,b,c){return b?J(a,b,c):J(a,"pfx")},g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+v.join(" "):""),e}(this,this.document),function(a,b,c){function d(a){return"[object Function]"==o.call(a)}function e(a){return"string"==typeof a}function f(){}function g(a){return!a||"loaded"==a||"complete"==a||"uninitialized"==a}function h(){var a=p.shift();q=1,a?a.t?m(function(){("c"==a.t?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){"img"!=a&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l=b.createElement(a),o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};1===y[c]&&(r=1,y[c]=[]),"object"==a?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),"img"!=a&&(r||2===y[c]?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i("c"==b?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),1==p.length&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&"[object Opera]"==o.call(a.opera),l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return"[object Array]"==o.call(a)},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},A,B;B=function(a){function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;f<d;f++)g=a[f].split("="),(e=z[g.shift()])&&(c=e(c,g));for(f=0;f<b;f++)c=x[f](c);return c}function g(a,e,f,g,h){var i=b(a),j=i.autoCallback;i.url.split(".").pop().split("?").shift(),i.bypass||(e&&(e=d(e)?e:e[a]||e[g]||e[a.split("/").pop().split("?")[0]]),i.instead?i.instead(a,e,f,g,h):(y[i.url]?i.noexec=!0:y[i.url]=1,f.load(i.url,i.forceCSS||!i.forceJS&&"css"==i.url.split(".").pop().split("?").shift()?"c":c,i.noexec,i.attrs,i.timeout),(d(e)||d(j))&&f.load(function(){k(),e&&e(i.origUrl,h,g),j&&j(i.origUrl,h,g),y[i.url]=2})))}function h(a,b){function c(a,c){if(a){if(e(a))c||(j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}),g(a,j,b,0,h);else if(Object(a)===a)for(n in m=function(){var b=0,c;for(c in a)a.hasOwnProperty(c)&&b++;return b}(),a)a.hasOwnProperty(n)&&(!c&&!--m&&(d(j)?j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}:j[n]=function(a){return function(){var b=[].slice.call(arguments);a&&a.apply(this,b),l()}}(k[n])),g(a[n],j,b,n,h))}else!c&&l()}var h=!!a.test,i=a.load||a.both,j=a.callback||f,k=j,l=a.complete||f,m,n;c(h?a.yep:a.nope,!!i),i&&c(i)}var i,j,l=this.yepnope.loader;if(e(a))g(a,0,l,0);else if(w(a))for(i=0;i<a.length;i++)j=a[i],e(j)?g(j,0,l,0):w(j)?B(j):Object(j)===j&&h(j,l);else Object(a)===a&&h(a,l)},B.addPrefix=function(a,b){z[a]=b},B.addFilter=function(a){x.push(a)},B.errorTimeout=1e4,null==b.readyState&&b.addEventListener&&(b.readyState="loading",b.addEventListener("DOMContentLoaded",A=function(){b.removeEventListener("DOMContentLoaded",A,0),b.readyState="complete"},0)),a.yepnope=k(),a.yepnope.executeStack=h,a.yepnope.injectJs=function(a,c,d,e,i,j){var k=b.createElement("script"),l,o,e=e||B.errorTimeout;k.src=a;for(o in d)k.setAttribute(o,d[o]);c=j?h:c||f,k.onreadystatechange=k.onload=function(){!l&&g(k.readyState)&&(l=1,c(),k.onload=k.onreadystatechange=null)},m(function(){l||(l=1,c(1))},e),i?k.onload():n.parentNode.insertBefore(k,n)},a.yepnope.injectCss=function(a,c,d,e,g,i){var e=b.createElement("link"),j,c=i?h:c||f;e.href=a,e.rel="stylesheet",e.type="text/css";for(j in d)e.setAttribute(j,d[j]);g||(n.parentNode.insertBefore(e,n),m(c,0))}}(this,document),Modernizr.load=function(){yepnope.apply(window,[].slice.call(arguments,0))};
@@ -5,7 +5,7 @@
5
5
 
6
6
  |
7
7
 
8
- <% control Paginator.PageLinks %>
8
+ <% with Paginator.PageLinks %>
9
9
 
10
10
  <% if PreviousPage %><a href="$PreviousPage" title="Previous" class="terminator">Prev</a><% end_if %>
11
11
  <% if FirstPage %>
@@ -13,13 +13,13 @@
13
13
  ...
14
14
  <% end_if %>
15
15
 
16
- <% control QuickLinks %>
16
+ <% loop QuickLinks %>
17
17
  <% if PageLink %>
18
18
  <a href="$PageLink">$PageNum</a>
19
19
  <% else %>
20
20
  <span class="selected">$PageNum</span>
21
21
  <% end_if %>
22
- <% end_control %>
22
+ <% end_loop %>
23
23
 
24
24
  <% if LastPage %>
25
25
  ...
@@ -27,6 +27,6 @@
27
27
  <% end_if %>
28
28
  <% if NextPage %><a href="$NextPage" title="Next" class="terminator">Next</a><% end_if %>
29
29
 
30
- <% end_control %>
30
+ <% end_with %>
31
31
  </div>
32
32
  <% end_if %>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bonethug
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.16
4
+ version: 0.0.17
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -1056,6 +1056,7 @@ files:
1056
1056
  - skel/project_types/silverstripe3/public/abc/javascript/library/jQuery/ui/index.html
1057
1057
  - skel/project_types/silverstripe3/public/abc/javascript/library/jQuery/ui/js/jquery-1.8.0.min.js
1058
1058
  - skel/project_types/silverstripe3/public/abc/javascript/library/jQuery/ui/js/jquery-ui-1.8.23.custom.min.js
1059
+ - skel/project_types/silverstripe3/public/abc/javascript/library/modernizr-2.6.2.min.js
1059
1060
  - skel/project_types/silverstripe3/public/abc/javascript/library/spin.min.js
1060
1061
  - skel/project_types/silverstripe3/public/abc/javascript/pagination.js
1061
1062
  - skel/project_types/silverstripe3/public/abc/lib/bootstrap/css/bootstrap.css