Browse Source

calendar - find how to save the date in google calendar or ios calendar.

am
farhan 5 months ago
parent
commit
2334e3820a
1 changed files with 60 additions and 1 deletions
  1. 60
    1
      resources/views/modals/calendar-modal.blade.php

+ 60
- 1
resources/views/modals/calendar-modal.blade.php View File

@@ -233,7 +233,7 @@
233 233
       </div>
234 234
       <div class="modal-action">
235 235
         <form method="dialog" id="closeCalendarForm"></form>
236
-        <button type="button" class="btn bg-babybluedark">Simpan</button>
236
+        <button type="button" class="btn bg-babybluedark" id="saveDate">Simpan</button>
237 237
         <button type="button" class="btn" id="submitCloseCalendarForm">Tutup</button>
238 238
       </div>
239 239
     </div>
@@ -247,4 +247,63 @@
247 247
             });
248 248
         });
249 249
       </script>
250
+
251
+<script>
252
+    function getMobileOperatingSystem() {
253
+        var userAgent = navigator.userAgent || navigator.vendor || window.opera;
254
+
255
+        if (/windows phone/i.test(userAgent)) {
256
+            return "Windows Phone";
257
+        }
258
+
259
+        if (/android/i.test(userAgent)) {
260
+            return "Android";
261
+        }
262
+
263
+        if (/iPad|iPhone|iPod/.test(userAgent) && !window.MSStream) {
264
+            return "iOS";
265
+        }
266
+
267
+        return "unknown";
268
+    }
269
+
270
+    document.getElementById('saveDate').addEventListener('click', function () {
271
+        const os = getMobileOperatingSystem();
272
+        console.log("Operating System: " + os);
273
+
274
+        const title = 'Event Title';
275
+        const startDate = '20240720T090000Z';
276
+        const endDate = '20240720T100000Z';
277
+        const details = 'Event Details';
278
+        const location = 'Event Location';
279
+
280
+        if (os === 'iOS') {
281
+            const icsContent = `BEGIN:VCALENDAR
282
+VERSION:2.0
283
+BEGIN:VEVENT
284
+SUMMARY:${title}
285
+DTSTART:${startDate}
286
+DTEND:${endDate}
287
+DESCRIPTION:${details}
288
+LOCATION:${location}
289
+END:VEVENT
290
+END:VCALENDAR`;
291
+
292
+            const blob = new Blob([icsContent], { type: 'text/calendar' });
293
+            const url = URL.createObjectURL(blob);
294
+            const a = document.createElement('a');
295
+            a.href = url;
296
+            a.download = 'event.ics';
297
+            document.body.appendChild(a);
298
+            a.click();
299
+            document.body.removeChild(a);
300
+            URL.revokeObjectURL(url);
301
+        } else if (os === 'Android') {
302
+            const googleCalendarUrl = `https://calendar.google.com/calendar/render?action=TEMPLATE&text=${encodeURIComponent(title)}&dates=${startDate}/${endDate}&details=${encodeURIComponent(details)}&location=${encodeURIComponent(location)}`;
303
+            window.open(googleCalendarUrl, '_blank');
304
+        } else {
305
+            alert('Your device is not supported for this feature.');
306
+        }
307
+    });
308
+</script>
250 309
   @endpush

Loading…
Cancel
Save