Advertisement
Guest User

Untitled

a guest
Apr 22nd, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 22.56 KB | None | 0 0
  1. @using SiffPortal.CMS.Models;
  2. @using SiffPortal.CMS.Extensions;
  3. @using SiffPortal.Lib.Models;
  4. @model CreateModifyAgendaEventModel
  5.  
  6. @{
  7.     ViewBag.Title = ViewBag.ModuleDisplayName;
  8. }
  9.  
  10. <div class="container-fluid">
  11.     @Html.Partial("_ModuleTabsPartial")
  12.     @Html.ValidationSummary(true, "", new { @class = "text-danger" })
  13.  
  14.     <br />
  15.  
  16.     <div class="table-responsive">
  17.         <table class="table table-striped table-hover table-bordered">
  18.             <thead>
  19.                 <tr>
  20.                     <th width="3%">#</th>
  21.                     <th>Titel</th>
  22.                     <th width="14%">Begindatum</th>
  23.                     <th width="14%">Einddatum</th>
  24.                     <th width="8%" class="text-right">
  25.                         <a class="btn btn-success btn-sm addNewAgendaEvent">
  26.                             <span class="glyphicon glyphicon-plus" aria-hidden="true"></span>
  27.                         </a>
  28.                     </th>
  29.                 </tr>
  30.             </thead>
  31.  
  32.             <tbody>
  33.                 @foreach (ModAgendaEvent agendaEvent in ViewBag.AgendaEvents)
  34.                 {
  35.                     <tr>
  36.                         <td>@agendaEvent.Id</td>
  37.                         <td>@agendaEvent.Title</td>
  38.                         <td class="startDate" data-startdate="@agendaEvent.StartDate.ConvertToTimestamp()"></td>
  39.                         <td class="endDate" data-enddate="@agendaEvent.EndDate.ConvertToTimestamp()"></td>
  40.                         <td style="text-align: right">
  41.                             <a class="btn btn-danger btn-sm deleteAgendaEvent" data-eventid="@agendaEvent.Id">
  42.                                 <span class="glyphicon glyphicon-trash" aria-hidden="true"></span>
  43.                             </a>
  44.  
  45.                             <a class="btn btn-primary btn-sm editAgendaEvent" data-eventid="@agendaEvent.Id"
  46.                                data-title="@agendaEvent.Title" data-startdate="@agendaEvent.StartDate.ConvertToTimestamp()"
  47.                                data-enddate="@agendaEvent.EndDate.ConvertToTimestamp()" data-description="@agendaEvent.Description"
  48.                                data-location="@agendaEvent.Location" data-imagename="@agendaEvent.ImageFileName">
  49.                                 <span class="glyphicon glyphicon-edit" aria-hidden="true"></span>
  50.                             </a>
  51.                         </td>
  52.                     </tr>
  53.                 }
  54.             </tbody>
  55.         </table>
  56.     </div>
  57.  
  58.     <div class="modal fade" id="modal_edit_agenda_event" role="dialog">
  59.         <div class="modal-dialog modal-lg">
  60.             <div class="modal-content">
  61.                 <div class="modal-header">
  62.                     <button type="button" class="close" data-dismiss="modal">&times;</button>
  63.                     <h4 class="modal-title">Evenement aanpassen</h4>
  64.                 </div>
  65.                 @using (Ajax.BeginForm("Agenda", "CMS", null, new AjaxOptions { HttpMethod = "post", OnSuccess = "onChangeSuccess" }, null))
  66.                 {
  67.                     @Html.AntiForgeryToken()
  68.                     @Html.HiddenFor(m => m.CompanyId)
  69.  
  70.                     <input id="editEventId" type="hidden" name="EventId" />
  71.                     <input id="editStartDate" type="hidden" name="StartDate" />
  72.                     <input id="editEndDate" type="hidden" name="EndDate" />
  73.                     <input name="ActionType" type="hidden" value="edit" />
  74.  
  75.                     <div class="modal-body">
  76.                         <div class="container-fluid">
  77.                             <div class="row">
  78.                                 <div class="form-group col-lg-12">
  79.                                     <div class="col-lg-12">
  80.                                         @Html.SiffLabelFor(m => m.Title, new { })
  81.                                         @Html.ValidationMessageFor(m => m.Title, "", new { @class = "text-danger" })
  82.                                         @Html.TextBoxFor(m => m.Title, new { id = "edit_title", @class = "form-control", autocomplete = "off" })
  83.                                     </div>
  84.                                 </div>
  85.                             </div>
  86.  
  87.                             <br />
  88.  
  89.                             <div class="row">
  90.                                 <div class="form-group col-lg-12">
  91.                                     <div class="col-lg-6">
  92.                                         @Html.SiffLabelFor(m => m.StartDate, new { })
  93.                                         @Html.ValidationMessageFor(m => m.StartDate, "", new { @class = "text-danger" })
  94.                                         <input type='text' class="form-control" id='edit_start_dtp' />
  95.  
  96.                                         @*<div class='input-group date' id='edit_start_dtp'>
  97.                                             <input type='text' class="form-control" />
  98.                                             <span class="input-group-addon">
  99.                                                 <span class="glyphicon glyphicon-calendar"></span>
  100.                                             </span>
  101.                                         </div>*@
  102.                                     </div>
  103.                                     <div class="col-lg-6">
  104.                                         @Html.SiffLabelFor(m => m.EndDate, new { })
  105.                                         @Html.ValidationMessageFor(m => m.EndDate, "", new { @class = "text-danger" })
  106.                                         <input type='text' class="form-control" id='edit_end_dtp' />
  107.                                         @*<div class='input-group date' id='edit_end_dtp'>
  108.                                             <input type='text' class="form-control" />
  109.                                             <span class="input-group-addon">
  110.                                                 <span class="glyphicon glyphicon-calendar"></span>
  111.                                             </span>
  112.                                         </div>*@
  113.                                     </div>
  114.                                 </div>
  115.                             </div>
  116.  
  117.                             <br />
  118.  
  119.                             <div class="row">
  120.                                 <div class="form-group col-lg-12">
  121.                                     <div class="col-lg-12">
  122.                                         @Html.SiffLabelFor(m => m.Location, new { })
  123.                                         @Html.ValidationMessageFor(m => m.Location, "", new { @class = "text-danger" })
  124.                                         @Html.TextBoxFor(m => m.Location, new { id = "edit_location", @class = "form-control", autocomplete = "off" })
  125.                                     </div>
  126.                                 </div>
  127.                             </div>
  128.  
  129.                             <br />
  130.  
  131.                             <div class="row">
  132.                                 <div class="form-group col-lg-12">
  133.                                     <div class="form-group col-lg-12">
  134.                                         @Html.SiffLabelFor(m => m.Image, new { })
  135.                                         @Html.ValidationMessageFor(m => m.Image, "", new { @class = "text-danger" })
  136.                                         <input type="file" name="Image" id="input_agenda_event_edit" />
  137.                                         <br />
  138.                                         <img id="agenda_event_image_edit" class="img-responsive col-lg-3">
  139.                                     </div>
  140.                                 </div>
  141.                             </div>
  142.  
  143.                             <br />
  144.  
  145.                             <div class="row">
  146.                                 <div class="form-group col-lg-12">
  147.                                     <div class="col-lg-12">
  148.                                         @Html.SiffLabelFor(m => m.Description, new { })
  149.                                         @Html.ValidationMessageFor(m => m.Description, "", new { @class = "text-danger" })
  150.                                         @Html.TextAreaFor(m => m.Description, new { id = "edit_description", @class = "form-control", autocomplete = "off", rows = 16 })
  151.                                     </div>
  152.                                 </div>
  153.                             </div>
  154.                         </div>
  155.                     </div>
  156.  
  157.                     <div class="modal-footer">
  158.                         <div class="row">
  159.                             <div class="form-group col-lg-12">
  160.                                 <button type="submit" class="btn btn-primary col-sm-12 btn-lg">
  161.                                     <span class="glyphicon glyphicon-save" aria-hidden="true"></span> Evenement opslaan
  162.                                 </button>
  163.                             </div>
  164.                         </div>
  165.                     </div>
  166.                 }
  167.             </div>
  168.         </div>
  169.     </div>
  170.  
  171.     <div class="modal fade" id="modal_add_agenda_event" role="dialog">
  172.         <div class="modal-dialog modal-lg">
  173.             <div class="modal-content">
  174.                 <div class="modal-header">
  175.                     <button type="button" class="close" data-dismiss="modal">&times;</button>
  176.                     <h4 class="modal-title">Evenement toevoegen</h4>
  177.                 </div>
  178.                 @using (Ajax.BeginForm("Agenda", "CMS", null, new AjaxOptions { HttpMethod = "post", OnSuccess = "onChangeSuccess" }, null))
  179.                 {
  180.                     @Html.AntiForgeryToken()
  181.                     @Html.HiddenFor(m => m.CompanyId)
  182.  
  183.                     <input id="addStartDate" type="hidden" name="StartDate" />
  184.                     <input id="addEndDate" type="hidden" name="EndDate" />
  185.                     <input name="ActionType" type="hidden" value="add" />
  186.  
  187.                     <div class="modal-body">
  188.                         <div class="container-fluid">
  189.                             <div class="row">
  190.                                 <div class="form-group col-lg-12">
  191.                                     <div class="col-lg-12">
  192.                                         @Html.SiffLabelFor(m => m.Title, new { })
  193.                                         @Html.ValidationMessageFor(m => m.Title, "", new { @class = "text-danger" })
  194.                                         @Html.TextBoxFor(m => m.Title, new { id = "add_title", @class = "form-control", autocomplete = "off" })
  195.                                     </div>
  196.                                 </div>
  197.                             </div>
  198.  
  199.                             <br />
  200.  
  201.                             <div class="row">
  202.                                 <div class="form-group col-lg-12">
  203.                                     <div class="col-lg-6">
  204.                                         @Html.SiffLabelFor(m => m.StartDate, new { })
  205.                                         @Html.ValidationMessageFor(m => m.StartDate, "", new { @class = "text-danger" })
  206.                                         <input type='text' class="form-control" id='add_start_dtp' />
  207.                                         @*<div class='input-group date' id='add_start_dtp'>
  208.                                             <input type='text' class="form-control" />
  209.                                             <span class="input-group-addon">
  210.                                                 <span class="glyphicon glyphicon-calendar"></span>
  211.                                             </span>
  212.                                         </div>*@
  213.                                     </div>
  214.                                     <div class="col-lg-6">
  215.                                         @Html.SiffLabelFor(m => m.EndDate, new { })
  216.                                         @Html.ValidationMessageFor(m => m.EndDate, "", new { @class = "text-danger" })
  217.                                         <input type='text' class="form-control" id='add_end_dtp' />
  218.                                         @*<div class='input-group date' id='add_end_dtp'>
  219.                                             <input type='text' class="form-control" />
  220.                                             <span class="input-group-addon">
  221.                                                 <span class="glyphicon glyphicon-calendar"></span>
  222.                                             </span>
  223.                                         </div>*@
  224.                                     </div>
  225.                                 </div>
  226.                             </div>
  227.  
  228.                             <br />
  229.  
  230.                             <div class="row">
  231.                                 <div class="form-group col-lg-12">
  232.                                     <div class="col-lg-12">
  233.                                         @Html.SiffLabelFor(m => m.Location, new { })
  234.                                         @Html.ValidationMessageFor(m => m.Location, "", new { @class = "text-danger" })
  235.                                         @Html.TextBoxFor(m => m.Location, new { id = "add_location", @class = "form-control", autocomplete = "off" })
  236.                                     </div>
  237.                                 </div>
  238.                             </div>
  239.  
  240.                             <br />
  241.  
  242.                             <div class="row">
  243.                                 <div class="form-group col-lg-12">
  244.                                     <div class="form-group col-lg-12">
  245.                                         @Html.SiffLabelFor(m => m.Image, new { })
  246.                                         @Html.ValidationMessageFor(m => m.Image, "", new { @class = "text-danger" })
  247.                                         <input type="file" name="Image" id="input_agenda_event_add" />
  248.                                         <br />
  249.                                         <img id="agenda_event_image_add" class="img-responsive col-lg-3">
  250.                                     </div>
  251.                                 </div>
  252.                             </div>
  253.  
  254.                             <br />
  255.  
  256.                             <div class="row">
  257.                                 <div class="form-group col-lg-12">
  258.                                     <div class="col-lg-12">
  259.                                         @Html.SiffLabelFor(m => m.Description, new { })
  260.                                         @Html.ValidationMessageFor(m => m.Description, "", new { @class = "text-danger" })
  261.                                         @Html.TextAreaFor(m => m.Description, new { id = "add_description", @class = "form-control", autocomplete = "off", rows = 16 })
  262.                                     </div>
  263.                                 </div>
  264.                             </div>
  265.                         </div>
  266.                     </div>
  267.  
  268.                     <div class="modal-footer">
  269.                         <div class="row">
  270.                             <div class="form-group col-lg-12">
  271.                                 <button type="submit" class="btn btn-primary col-sm-12 btn-lg">
  272.                                     <span class="glyphicon glyphicon-save" aria-hidden="true"></span> Evenement toevoegen
  273.                                 </button>
  274.                             </div>
  275.                         </div>
  276.                     </div>
  277.                 }
  278.             </div>
  279.         </div>
  280.     </div>
  281.  
  282.     <div class="modal fade" id="modal_delete_event_are_you_sure" role="dialog">
  283.         <div class="modal-dialog modal-lg">
  284.             <div class="modal-content">
  285.                 <div class="modal-header">
  286.                     <button type="button" class="close" data-dismiss="modal">&times;</button>
  287.                     <h4 class="modal-title">Evenement verwijderen</h4>
  288.                 </div>
  289.  
  290.                 @using (Ajax.BeginForm("Agenda", "CMS", null, new AjaxOptions { HttpMethod = "post", OnSuccess = "onChangeSuccess" }, null))
  291.                 {
  292.                     @Html.AntiForgeryToken()
  293.                     @Html.HiddenFor(m => m.CompanyId)
  294.  
  295.                     <input name="ActionType" type="hidden" value="delete" />
  296.                     <input id="deleteEventId" type="hidden" name="EventId" />
  297.                     <input name="Title" type="hidden" value="1" />
  298.                     <input name="StartDate" type="hidden" value="1" />
  299.                     <input name="EndDate" type="hidden" value="1" />
  300.                     <input name="Location" type="hidden" value="1" />
  301.                     <input name="Description" type="hidden" value="1" />
  302.  
  303.                     <div class="modal-body">
  304.                         <p>Weet u zeker dat u dit evenement wilt verwijderen?</p>
  305.                     </div>
  306.  
  307.                     <div class="modal-footer">
  308.                         <button type="button" class="btn btn-primary btn-lg" data-dismiss="modal">Terug</button>
  309.                         <button type="submit" class="btn btn-danger btn-lg" id="confirmDelete">Verwijderen</button>
  310.                     </div>
  311.                 }
  312.             </div>
  313.         </div>
  314.     </div>
  315.  
  316.     @if (ViewBag.ShowPositiveAlert)
  317.     {
  318.         <div class="alert alert-success">
  319.             <a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a>
  320.             <strong>Gelukt!</strong> <div id="success_alert_msg">De database is aangepast</div>
  321.         </div>
  322.     }
  323.  
  324.     <div id="alert_update_error" class="hidden">
  325.         <div class="alert alert-danger">
  326.             <a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a>
  327.             <strong>Error!</strong> <div id="error_alert_msg"></div>
  328.         </div>
  329.     </div>
  330. </div>
  331.  
  332. @section scripts {
  333. @Scripts.Render("~/bundles/jqueryval")
  334. <script src="~/Scripts/jquery.unobtrusive-ajax.js"></script>
  335. <script type="text/javascript" src="~/Scripts/jquery.validate.unobtrusive.bootstrap.min.js"></script>
  336. <script type="text/javascript">
  337.  
  338.         function onChangeSuccess(data) {
  339.             //alert(data.status);
  340.  
  341.             if (data.status === "success") {
  342.                 location.reload();
  343.  
  344.                 //! This does not cover it. The data table is not refreshed
  345.                 //$("[data-dismiss=modal]").trigger({ type: "click" });
  346.                 //$("#alert_update_success").removeClass("hidden");
  347.             }
  348.             else {
  349.                 $.each(data.formErrors, function () {
  350.                     //alert(this.key + " - " + this.errors.join());
  351.  
  352.                     if (this.key) {
  353.                         $("[data-valmsg-for=" + this.key + "]").html(this.errors.join());
  354.                     }
  355.                     else {
  356.                         $("#alert_update_error").removeClass("hidden");
  357.                         $("#error_alert_msg").append(this.errors.join());
  358.                     }
  359.                 });
  360.             }
  361.         }
  362.  
  363.         $(document).ready(function () {
  364.             $('.startDate').each(function (i, e) {
  365.                 var t = $(e);
  366.  
  367.                 var date = parseFloat(t.data('startdate'));
  368.                 t.text(moment.unix(date).format("DD-MM-YYYY HH:mm"));
  369.             });
  370.  
  371.             $('.endDate').each(function (i, e) {
  372.                 var t = $(e);
  373.  
  374.                 var date = parseFloat(t.data('enddate'));
  375.                 t.text(moment.unix(date).format("DD-MM-YYYY HH:mm"));
  376.             });
  377.  
  378.             $('#edit_start_dtp').datetimepicker({ format: 'DD-MM-YYYY HH:mm' });
  379.             $("#edit_start_dtp").on("dp.change", function (e) {
  380.                 $('#editStartDate').val(e.date.format('X'));
  381.             });
  382.  
  383.             $('#edit_end_dtp').datetimepicker({ format: 'DD-MM-YYYY HH:mm' });
  384.             $("#edit_end_dtp").on("dp.change", function (e) {
  385.                 $('#editEndDate').val(e.date.format('X'));
  386.             });
  387.  
  388.             $('#add_start_dtp').datetimepicker({ format: 'DD-MM-YYYY HH:mm' });
  389.             $("#add_start_dtp").on("dp.change", function (e) {
  390.                 $('#addStartDate').val(e.date.format('X'));
  391.             });
  392.  
  393.             $('#add_end_dtp').datetimepicker({ format: 'DD-MM-YYYY HH:mm' });
  394.             $("#add_end_dtp").on("dp.change", function (e) {
  395.                 $('#addEndDate').val(e.date.format('X'));
  396.             });
  397.  
  398.             $('.editAgendaEvent').click(function () {
  399.                 var t = $(this);
  400.  
  401.                 var id = t.data('eventid');
  402.                 var title = t.data('title');
  403.                 var description = t.data('description');
  404.                 var location = t.data('location');
  405.                 var startdate = t.data('startdate');
  406.                 var enddate = t.data('enddate');
  407.                 var imageName = t.data('imagename');
  408.  
  409.                 $('#editEventId').val(id);
  410.                 $('#edit_title').val(title);
  411.                 $('#edit_description').val(description);
  412.                 $('#edit_location').val(location);
  413.                 $('#edit_start_dtp').data("DateTimePicker").date(moment.unix(parseFloat(startdate)));
  414.                 $('#edit_end_dtp').data("DateTimePicker").date(moment.unix(parseFloat(enddate)));
  415.                 $('#agenda_event_image_edit').attr('src', '@Url.Content($"~/images/m/{Model.CompanyName}")/' + imageName);
  416.  
  417.                 $("#modal_edit_agenda_event").modal({show: true, keyboard: false, backdrop: 'static' });
  418.             });
  419.  
  420.             $('.addNewAgendaEvent').click(function () {
  421.                 $('#add_title').val('');
  422.                 $('#add_description').val('');
  423.                 $('#add_location').val('');
  424.                 $('#add_start_dtp').data("DateTimePicker").date(moment());
  425.                 $('#add_end_dtp').data("DateTimePicker").date(moment());
  426.  
  427.                 $("#modal_add_agenda_event").modal({show: true, keyboard: false, backdrop: 'static' });
  428.             });
  429.  
  430.             $('.deleteAgendaEvent').click(function () {
  431.                 var t = $(this);
  432.                 var id = t.data('eventid');
  433.                 $('#deleteEventId').val(id);
  434.                 $("#modal_delete_event_are_you_sure").modal({show: true, keyboard: false, backdrop: 'static' });
  435.             });
  436.  
  437.             $("#input_agenda_event_edit").change(function () {
  438.                 setImagePreview(this, '#agenda_event_image_edit');
  439.             });
  440.  
  441.             $("#input_agenda_event_add").change(function () {
  442.                 setImagePreview(this, '#agenda_event_image_add');
  443.             });
  444.  
  445.             function setImagePreview(input, imgId) {
  446.                 if (input.files && input.files[0]) {
  447.                     var reader = new FileReader();
  448.  
  449.                     reader.onload = function (e) {
  450.                         $(imgId).attr('src', e.target.result);
  451.                     }
  452.  
  453.                     reader.readAsDataURL(input.files[0]);
  454.                 }
  455.             }
  456.         });
  457. </script>
  458. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement