Можете ли вы удалить ссылки «Просмотр / Редактирование / Удаление» в форме Lift CRUDify? - PullRequest
2 голосов
/ 16 ноября 2011

Я собираю быстрое приложение CRUDify с Lift, и мне нужен доступ только для чтения для одной из таблиц базы данных.

Я исследовал, как удалить опцию «Создать» этой таблицы из меню навигации, установив calcCreateItem в Empty в объекте отображения.

Однако, чтобы сделать его доступным только для чтения, мне также необходимо удалить ссылки «Редактировать» и «Удалить» в каждой строке формы CRUDify этой таблицы. Я хотел бы пойти дальше и удалить ссылку «Просмотр», пока я в ней (все поля таблицы уже отображаются в форме списка) ... но я могу жить со ссылками «Просмотр», если мне нужно .

Кто-нибудь знает, как сделать так, чтобы записи в форме CRUDify "List" не содержали ссылки "View" / "Edit" / "Delete" в крайнем правом углу каждой строки?

Ответы [ 2 ]

3 голосов
/ 05 января 2012

Решение Ким IfValue, вероятно, является наиболее кратким, хотя, возможно, не самым простым для понимания новичку. Вы также можете просто override def _showAllTemplate на вашей сущности. Это определено ниже в черте Crudify, так что вы можете просто удалить ссылки TD. Обратите внимание, что даже если ссылки не отображаются в шаблоне, они все равно будут доступны, поэтому вам необходимо заблокировать их в SiteMenu. Для этого лучше просто переопределить расположение меню, а не методы calcCreateItem.

override def createMenuLoc: Box[Menu] = Empty
override def editMenuLoc: Box[Menu] = Empty
override def viewMenuLoc: Box[Menu] = Empty

def _showAllTemplate =
<lift:crud.all>
<table id={showAllId} class={showAllClass}>
  <thead>
    <tr>
      <crud:header_item><th><crud:name/></th></crud:header_item>
      <th>&nbsp;</th>
      <th>&nbsp;</th>
      <th>&nbsp;</th>
    </tr>
  </thead>
  <tbody>
    <crud:row>
      <tr>
        <crud:row_item><td><crud:value/></td></crud:row_item>
        <td><a crud:view_href="">{S.??("View")}</a></td>
        <td><a crud:edit_href="">{S.??("Edit")}</a></td>
        <td><a crud:delete_href="">{S.??("Delete")}</a></td>
      </tr>
    </crud:row>
  </tbody>
  <tfoot>
    <tr>
      <td colspan="3"><crud:prev>{previousWord}</crud:prev></td>
      <td colspan="3"><crud:next>{nextWord}</crud:next></td>
    </tr>
  </tfoot>
</table>

0 голосов
/ 17 ноября 2011

Вы можете переопределить editMenuLocParams и deleteMenuLocParams, чтобы удалить ссылки редактирования и удаления. Вот пример из моего проекта:

override def editMenuLocParams = 
  new Loc.IfValue[Exercise](deleteEditAllowed, errorAndRedirect _) :: 
    super.editMenuLocParams

См. Также scaladoc для Loc.IfValue . deleteEditAllowed - это функция, которая принимает Box класса mapper и возвращает логическое значение, указывающее, разрешено ли редактирование. errorAndRedirect имеет тип () ⇒ LiftResponse. Он отображает ошибку и перенаправляет.

...