删除按钮仅显示用户在fullcalendar.js中的哪个预订事件和管理员

时间:2017-09-21 09:31:30

标签: javascript jquery codeigniter fullcalendar

我使用fullCalendar.js和codeigniter的反手制作事件预订系统,首先有2个角色用户和管理员,用户可以预订事件并删除事件但我想只显示删除按钮Admin和预订活动的用户。所以任何人都可以告诉我这是如何可能的。模式框中的删除按钮和在Calendar.My Html和javascript中的eventClick上显示

<div id="calendarModal" class="modal fade">
<div class="modal-dialog">
<div class="modal-content">
    <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal">&times;</button>
        <h4 class="modal-title">Event Details</h4>
    </div>
    </div>
    <input type="hidden" id="eventID"/>
    <div class="modal-footer">
        <button class="btn" data-dismiss="modal" aria-hidden="true">Cancel</button>
        <button type="submit" class="btn btn-danger" id="deleteButton">Delete</button>
    </div>
</div>

// ----------------------的Javascript ---------------------- ---------

$('#deleteButton').on('click', function(){
       // delete button
       doDelete();
   });
function doDelete(){
        $("#calendarModal").modal('hide');
       var eventID = $('#eventID').val();
       var baseUrl = document.location.origin;
       $.ajax({
           url: baseUrl+'/mrbs/api/post_api',// 
           data: 'action=delete&id='+eventID,
           type: "POST",
       });
     $('#calendar').fullCalendar('refetchEvents');  
   }

提前致谢........:)

1 个答案:

答案 0 :(得分:0)

您应该控制服务器端的删除按钮的显示,而不是客户端的Javascript。这意味着在渲染模态时使用Codeigniter,例如:

<div class="modal-footer">
    <button class="btn" data-dismiss="modal" aria-hidden="true">Cancel</button>
    <?php if ( ... test if user is admin ... ) { ?>
        <button type="submit" class="btn btn-danger" id="deleteButton">Delete</button>
    <?php } ?>
</div>

在实际删除之前,您还应该在控制器方法(/mrbs/api/post_api)中确认用户是管理员。

更新

如果您只想显示当前用户创建的事件,则应在服务器端事件源上处理该事件。您尚未发布Fullcalendar代码,但必须具有以下内容:

$('#calendar').fullCalendar({
    // ... code
    events: "some/path/to/server-side-json",
 });

some/path/to/server-side-json控制器方法中,检查进行此查询的用户的用户ID,并仅返回该用户创建的事件。