You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Link.cshtml 3.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. @{
  2. Layout = "~/Views/Shared/_Layout.cshtml";
  3. }
  4. @model LinkModel
  5. @if (!Model.IsValid)
  6. {
  7. <div class="image-logo">
  8. <h1>Document expired!</h1>
  9. </div>
  10. <a class="btn btn-light share-button" asp-controller="Home" asp-action="Index">Share message securely!</a>
  11. }
  12. else
  13. {
  14. <div class="image-logo">
  15. <h1>Document is ready!</h1>
  16. </div>
  17. <a href="/" class="share-more-files-button">Share more files</a>
  18. @if (Model.Share == true)
  19. {
  20. <div class="label-text">
  21. Link is ready:
  22. </div>
  23. <div id="div-link" class="label-text link-show">
  24. @{
  25. var link = Url.Action("Link", "Home", new { code = Model.MessageModel.Code }, "https");
  26. }
  27. <a id="a-link" href="@link">@link</a>
  28. </div>
  29. <a class="btn btn-light share-button" onclick="copyToClipboard()">Copy to clipboard!</a>
  30. @if (!string.IsNullOrWhiteSpace(Model.MessageModel.Text))
  31. {
  32. <div class="label-text">
  33. Message:
  34. </div>
  35. <div class="label-text link-show">
  36. @Model.MessageModel.Text
  37. </div>
  38. }
  39. if (Model.MessageModel.FileNames.Count > 0)
  40. {
  41. <div class="label-text">
  42. Files:
  43. </div>
  44. <div class="label-text link-show">
  45. @foreach (var file in Model.MessageModel.FileNames)
  46. {
  47. <a asp-action="Download" asp-route-filename="@file" asp-route-code="@Model.MessageModel.Code">@file</a>
  48. <br/>
  49. }
  50. </div>
  51. }
  52. }
  53. else
  54. {
  55. <div>
  56. @if (Model.TimeLeft != null)
  57. {
  58. var time = Model.TimeLeft.Value;
  59. if (time.Days > 0)
  60. {
  61. <div class="label-text-lower">
  62. This message will expire in: @time.ToString("%d") days @time.ToString("%h") hours @time.ToString("%m") minutes
  63. </div>
  64. }
  65. else
  66. {
  67. <div class="label-text-lower">
  68. This message will expire in: @time.ToString(@"hh\:mm\:ss")
  69. </div>
  70. }
  71. }
  72. else
  73. {
  74. <div class="label-text-lower">
  75. This message will expire when you leave this page
  76. </div>
  77. }
  78. </div>
  79. @if (!string.IsNullOrWhiteSpace(Model.MessageModel.Text))
  80. {
  81. <div class="label-text">
  82. Message:
  83. </div>
  84. <div class="label-text link-show">
  85. @Model.MessageModel.Text
  86. </div>
  87. }
  88. @if (Model.MessageModel.FileNames.Count > 0)
  89. {
  90. <div class="label-text">
  91. Files:
  92. </div>
  93. <div class="label-text link-show">
  94. @foreach (var file in Model.MessageModel.FileNames)
  95. {
  96. <a asp-action="Download" asp-route-filename="@file" asp-route-code="@Model.MessageModel.Code">@file</a>
  97. <br/>
  98. }
  99. </div>
  100. }
  101. <a class="btn btn-light share-button" asp-controller="Home" asp-action="Index">Share new message securely!</a>
  102. }
  103. }
  104. <script>
  105. copyToClipboard = () => {
  106. // Get the text field
  107. const copyText = document.getElementById("a-link").innerText;
  108. // Copy the text inside the text field
  109. navigator.clipboard.writeText(copyText);
  110. }
  111. </script>