Guest User

Untitled

a guest
Jun 18th, 2018
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.82 KB | None | 0 0
  1. Index: code/ModelAdmin.php
  2. ===================================================================
  3. --- code/ModelAdmin.php (revision 76860)
  4. +++ code/ModelAdmin.php (working copy)
  5. @@ -187,19 +187,25 @@
  6. * @return DataObjectSet of forms
  7. */
  8. protected function getModelForms() {
  9. - $modelClasses = $this->getManagedModels();
  10. + $tabs = $this->getManagedModels();
  11. + $forms = new DataObjectSet();
  12.  
  13. - $forms = new DataObjectSet();
  14. - foreach($modelClasses as $modelClass) {
  15. - $this->$modelClass()->SearchForm();
  16. -
  17. - $forms->push(new ArrayData(array(
  18. - 'SearchForm' => $this->$modelClass()->SearchForm(),
  19. - 'CreateForm' => $this->$modelClass()->CreateForm(),
  20. - 'ImportForm' => $this->$modelClass()->ImportForm(),
  21. - 'Title' => singleton($modelClass)->singular_name(),
  22. - 'ClassName' => $modelClass,
  23. - )));
  24. + foreach($tabs as $title => $source) {
  25. + if(substr($source, 0, 2) == '->') {
  26. + $method = substr($source, 2);
  27. +
  28. + $forms->push(new ArrayData(array (
  29. + 'Title' => $title,
  30. + 'ClassName' => $method,
  31. + 'Content' => $this->$method($title)
  32. + )));
  33. + } else {
  34. + $forms->push(new ArrayData(array (
  35. + 'Title' => (is_string($title) ? $title : singleton($source)->singular_name()),
  36. + 'ClassName' => $source,
  37. + 'Content' => $this->$source()->getModelForm()
  38. + )));
  39. + }
  40. }
  41.  
  42. return $forms;
  43. @@ -244,7 +250,6 @@
  44.  
  45. /**
  46. * Handles a managed model class and provides default collection filtering behavior.
  47. - *
  48. */
  49. class ModelAdmin_CollectionController extends Controller {
  50. public $parentController;
  51. @@ -305,10 +310,19 @@
  52. $class = $this->parentController->stat('record_controller_class');
  53. return new $class($this, $request);
  54. }
  55. -
  56. - /////////////////////////////////////////////////////////////////////////////////////////////////////////
  57. -
  58. +
  59. + // -----------------------------------------------------------------------------------------------------------------
  60. +
  61. /**
  62. + * Get a combination of the Search, Import and Create forms that can be inserted into a {@link ModelAdmin} sidebar.
  63. + *
  64. + * @return string
  65. + */
  66. + public function getModelForm() {
  67. + return $this->renderWith('ModelAdminSidebarForm');
  68. + }
  69. +
  70. + /**
  71. * Get a search form for a single {@link DataObject} subclass.
  72. *
  73. * @return Form
  74. Index: templates/Includes/ModelAdmin_left.ss
  75. ===================================================================
  76. --- templates/Includes/ModelAdmin_left.ss (revision 76860)
  77. +++ templates/Includes/ModelAdmin_left.ss (working copy)
  78. @@ -1,43 +1,31 @@
  79. <% require javascript(jsparty/tabstrip/tabstrip.js) %>
  80. <% require css(jsparty/tabstrip/tabstrip.css) %>
  81. +
  82. <div id="LeftPane">
  83. - <!-- <h2><% _t('SEARCHLISTINGS','Search Listings') %></h2> -->
  84. <div id="SearchForm_holder" class="leftbottom">
  85. - <% if SearchClassSelector = tabs %>
  86. - <ul class="tabstrip">
  87. - <% control ModelForms %>
  88. - <li class="$FirstLast"><a href="#{$Form.Name}_$ClassName">$Title</a></li>
  89. - <% end_control %>
  90. - </ul>
  91. + <% if SearchClassSelector = tabs %>
  92. + <ul class="tabstrip">
  93. + <% control ModelForms %>
  94. + <li class="$FirstLast"><a href="#{$Form.Name}_$ClassName">$Title</a></li>
  95. + <% end_control %>
  96. + </ul>
  97. <% end_if %>
  98.  
  99. <% if SearchClassSelector = dropdown %>
  100. - <p id="ModelClassSelector">
  101. - Search for:
  102. - <select>
  103. - <% control ModelForms %>
  104. - <option value="{$Form.Name}_$ClassName">$Title</option>
  105. - <% end_control %>
  106. - </select>
  107. - </p>
  108. - <% end_if %>
  109. + <p id="ModelClassSelector">
  110. + Search for:
  111. + <select>
  112. + <% control ModelForms %>
  113. + <option value="{$Form.Name}_$ClassName">$Title</option>
  114. + <% end_control %>
  115. + </select>
  116. + </p>
  117. + <% end_if %>
  118.  
  119. <% control ModelForms %>
  120. - <div class="tab" id="{$Form.Name}_$ClassName">
  121. - <% if CreateForm %>
  122. - <h3><% _t('ADDLISTING','Add') %></h3>
  123. - $CreateForm
  124. - <% end_if %>
  125. -
  126. - <h3><% _t('SEARCHLISTINGS','Search') %></h3>
  127. - $SearchForm
  128. -
  129. - <% if ImportForm %>
  130. - <h3><% _t('IMPORT_TAB_HEADER', 'Import') %></h3>
  131. - $ImportForm
  132. - <% end_if %>
  133. -
  134. - </div>
  135. + <div class="tab" id="{$Form.Name}_$ClassName">
  136. + $Content
  137. + </div>
  138. <% end_control %>
  139. </div>
  140. </div>
  141. \ No newline at end of file
  142. Index: templates/ModelAdminSidebarForm.ss
  143. ===================================================================
  144. --- templates/ModelAdminSidebarForm.ss (revision 0)
  145. +++ templates/ModelAdminSidebarForm.ss (revision 0)
  146. @@ -0,0 +1,12 @@
  147. +<% if CreateForm %>
  148. + <h3><% _t('ADDLISTING','Add') %></h3>
  149. + $CreateForm
  150. +<% end_if %>
  151. +
  152. +<h3><% _t('SEARCHLISTINGS','Search') %></h3>
  153. +$SearchForm
  154. +
  155. +<% if ImportForm %>
  156. + <h3><% _t('IMPORT_TAB_HEADER', 'Import') %></h3>
  157. + $ImportForm
  158. +<% end_if %>
  159. \ No newline at end of file
Add Comment
Please, Sign In to add comment