Quellcode durchsuchen

Merge branch 'master' of github.com:tracim/tracim

Bastien Sevajol (Algoo) vor 7 Jahren
Ursprung
Commit
7426fabcfa
1 geänderte Dateien mit 51 neuen und 9 gelöschten Zeilen
  1. 51 9
      tracim/tracim/public/_caldavzap/forms.js

+ 51 - 9
tracim/tracim/public/_caldavzap/forms.js Datei anzeigen

@@ -1666,13 +1666,46 @@ function showEventForm(date, allDay, calEvent, jsEvent, mod, repeatOne, confirmR
1666 1666
 	var cals=globalResourceCalDAVList.sortedCollections;
1667 1667
 	var calendarObj = $('#event_calendar');
1668 1668
 	var calSelected = $('.resourceCalDAV_item.resourceCalDAV_item_selected').attr('data-id');
1669
-		for(var i=0;i<cals.length;i++)
1670
-		{
1671
-			if(cals[i].uid!=undefined && ((calEvent!=null && calEvent.res_id==cals[i].uid) || (cals[i].makeLoaded && !cals[i].permissions_read_only )))
1672
-			{
1673
-				calendarObj.append(new Option(cals[i].displayValue,cals[i].uid));
1674
-			}
1675
-		}
1669
+
1670
+  var calendarsApiHasResponded = false
1671
+	// begin custom code
1672
+  $.ajax({
1673
+    url: '/api/calendars/',
1674
+    method: 'GET',
1675
+    contentType: 'application/json'
1676
+  }).done(function (data) {
1677
+
1678
+    var regExpUser = new RegExp('\/user\/')
1679
+    var regExpWorkspace = new RegExp('\/workspace\/')
1680
+
1681
+    var user_or_workspace
1682
+
1683
+    for(var i=0;i<cals.length;i++)
1684
+    {
1685
+      if(cals[i].uid!=undefined && ((calEvent!=null && calEvent.res_id==cals[i].uid) || (cals[i].makeLoaded && !cals[i].permissions_read_only )))
1686
+      {
1687
+        var currentICS = parseInt(cals[i].displayValue.replace('.ics', ''))
1688
+
1689
+        if (regExpUser.test(cals[i].uid))
1690
+          user_or_workspace = 'user'
1691
+        else if (regExpWorkspace.test(cals[i].uid))
1692
+          user_or_workspace = 'workspace'
1693
+        else
1694
+          user_or_workspace = 'fail'
1695
+
1696
+        var calName = ''
1697
+        var calList_length = data.value_list.length
1698
+        for (var j = 0; j < calList_length; j++) {
1699
+          if (data.value_list[j].id === currentICS && data.value_list[j].type === user_or_workspace) {
1700
+            calName = data.value_list[j].label
1701
+          }
1702
+        }
1703
+
1704
+        calendarObj.append(new Option(calName, cals[i].uid));
1705
+      }
1706
+    }
1707
+    calendarsApiHasResponded = true
1708
+  })
1676 1709
 
1677 1710
 	if(mod=='new')
1678 1711
 	{
@@ -2362,8 +2395,17 @@ function showEventForm(date, allDay, calEvent, jsEvent, mod, repeatOne, confirmR
2362 2395
 			$('#event_details_template').find('svg[data-type="select_icon"]').replaceWith($('<div>').append($(newSVG).clone()).html());
2363 2396
 		}
2364 2397
 		/*************************** END OF BAD HACKS SECTION ***************************/
2365
-		if(calEvent.etag!='')
2366
-			$('#event_calendar').val(calEvent.res_id);
2398
+		if(calEvent.etag!='') {
2399
+      var interval = window.setInterval(function () {
2400
+        if (calendarsApiHasResponded === true) {
2401
+          $('#event_calendar').val(calEvent.res_id);
2402
+          stopInterval()
2403
+        }
2404
+      }, 500)
2405
+      var stopInterval = function () {
2406
+        window.clearInterval(interval)
2407
+      }
2408
+    }
2367 2409
 	}
2368 2410
 
2369 2411
 	if(repeatOne=='editOnly' || $('#recurrenceID').val()!='')