- Timestamp:
- 08/06/12 10:03:03 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sandbox/2.4.2-expresso1/prototype/modules/calendar/js/calendar.codecs.js
r6903 r6945 799 799 }; 800 800 }); 801 801 return (notArray ? res[0] : res); 802 } 803 }); 804 805 DataLayer.codec( "schedulable", "taskSearch", { 806 807 decoder: function( evtObj ){ 808 809 }, 810 811 encoder: function( evtObj ){ 812 813 var notArray = false; 814 815 if( notArray = $.type(evtObj) !== "array" ) 816 evtObj = [ evtObj ]; 817 818 var res = $.map(evtObj, function( objEvent ){ 819 820 if(!(typeof(objEvent) == 'object')) 821 return (null); 822 823 return { 824 id: objEvent.id, 825 description: !!objEvent.summary ? objEvent.summary : objEvent.description, 826 startDate: new Date( parseInt(objEvent.startTime) ).setTimezoneOffset( Timezone.timezone( objEvent.timezone ) ).toString( User.preferences.dateFormat ), 827 startHour: dateCalendar.formatDate(Timezone.getDateEvent(new Date( parseInt(objEvent.startTime)), objEvent.timezone, objEvent.calendar, objEvent.DayLigth, 'startTime'), User.preferences.hourFormat), 828 endDate: new Date( parseInt(objEvent.endTime) - (!!parseInt(objEvent.allDay) ? 86400000 : 0) ).setTimezoneOffset( Timezone.timezone( objEvent.timezone ) ).toString( User.preferences.dateFormat ), 829 endHour: dateCalendar.formatDate(Timezone.getDateEvent(new Date(parseInt(objEvent.endTime)), objEvent.timezone, objEvent.calendar, objEvent.DayLigth, 'endTime'), User.preferences.hourFormat), 830 dueDate: (!objEvent.due || objEvent.due == '' || objEvent.due == '0') ? '' : new Date( parseInt(objEvent.due) ).setTimezoneOffset( Timezone.timezone( objEvent.timezone ) ).toString( User.preferences.dateFormat ), 831 dueTime: (!objEvent.due || objEvent.due == '' || objEvent.due == '0') ? '' : dateCalendar.formatDate(Timezone.getDateEvent(new Date( parseInt(objEvent.due)), objEvent.timezone, objEvent.calendar, objEvent.DayLigth, 'startTime'), User.preferences.hourFormat), 832 allDay: !!parseInt( objEvent.allDay ), 833 percentage: (objEvent.percentage) ? objEvent.percentage : '0' 834 } 835 }); 836 return (notArray ? res[0] : res); 837 } 838 }); 839 840 DataLayer.codec( "schedulable", "activity", { 841 842 decoder: function( evtObj ){ 843 Encoder.EncodeType = "entity"; 844 845 if( notArray = $.type(evtObj) !== "array" ) 846 evtObj = [ evtObj ]; 847 848 var pref = User.preferences; 849 850 var res = $.map(evtObj, function( form ){ 851 852 var tzId = form.timezone || Calendar.signatureOf[form.group].calendar.timezone || User.preferences.timezone, 853 854 formatString = pref.dateFormat + " " + pref.hourFormat; 855 856 var decodeParticipants = function(attend){ 857 return [DataLayer.merge( 858 { 859 user: User.me.id, 860 isOrganizer: 1, 861 acl: 'row', 862 alarms: $.map( form.alarmTime || [], function( alarmTime, i ){ 863 if( alarmTime === "" ) 864 return( null ); 865 return !!form.alarmId[i] ? { 866 type: form.alarmType[i], 867 unit: form.alarmUnit[i], 868 time: form.alarmTime[i], 869 id: form.alarmId[i] 870 }: 871 872 { 873 type: form.alarmType[i], 874 unit: form.alarmUnit[i], 875 time: form.alarmTime[i] 876 }; 877 }) 878 }, attend != '0' ? {id: attend} : {})]; 879 }; 880 881 return DataLayer.merge({ 882 "class": form["class"], 883 startTime: Date.parseExact(form.startDate + " "+$.trim(form.startHour) , formatString ).toString(!!form.allDay ? 'yyyy-MM-dd 00:00:00' : 'yyyy-MM-dd HH:mm:00'), 884 endTime: Date.parseExact(form.endDate + " "+$.trim(form.endHour), formatString ).toString(!!form.allDay ? 'yyyy-MM-dd 00:00:00' : 'yyyy-MM-dd HH:mm:00'), //+ (!!form.allDay ? 86400000 : 0) , 885 due: (form.dueDate == '' )? 0 : Date.parseExact(form.dueDate + " "+$.trim(form.dueHour) , formatString ).toString(!!form.allDay ? 'yyyy-MM-dd 00:00:00' : 'yyyy-MM-dd HH:mm:00'), 886 allDay: ( !!form.allDay ? 1 : 0 ), 887 status: form.taskStatus, 888 id: form.idActivity, 889 type: !!form.type ? form.type : 2, 890 percentage: form.percentage, 891 priority: form.priority, 892 category: form.category, 893 summary: form.summary, 894 description: form.description, 895 timezone: tzId, 896 attachments: $.map(form.attachment || [], function( attachment, i ){ 897 return { 898 attachment: attachment 899 } 900 }), 901 participants: decodeParticipants(form.idAttendee), 902 taskToActivity:$.map( form.idtask || [], function( task, i ){ 903 904 return DataLayer.merge({ 905 task: task, 906 owner: User.me.id 907 }, form.idTaskToActivity[i] != '' ? {id: form.idTaskToActivity[i]} : {}); 908 909 }) 910 }, form.lastGroup ? (( form.lastGroup == form.group ) ? {} : {calendar: form.group, lastGroup: form.lastGroup}) : {calendar: form.group}); 911 }); 912 913 return notArray ? res[0] : res; 914 }, 915 916 encoder: function( evtObj ){ 917 918 var notArray = false; 919 920 if( notArray = $.type(evtObj) !== "array" ) 921 evtObj = [ evtObj ]; 922 923 var res = $.map(evtObj, function( objEvent ){ 924 925 if(!(typeof(objEvent) == 'object')) 926 return (null); 927 928 var decodeTasks = function(obj){ 929 930 var tasks = {}, task = {}; 931 932 for(var i =0; i < obj.taskToActivity.length; i++){ 933 934 taskToActivity = DataLayer.get('taskToActivity', obj.taskToActivity[i]); 935 task = taskToActivity.task; 936 937 if($.type(task) != 'object') 938 task = DataLayer.get('schedulable', task); 939 940 tasks[task.id] = { 941 taskToActivity: taskToActivity.id, 942 allDay: !!parseInt(task.allDay), 943 dueDate: (!task.due || task.due == '' || task.due == '0') ? '' : new Date( parseInt(task.due) ).setTimezoneOffset( Timezone.timezone( task.timezone ) ).toString( User.preferences.dateFormat ), 944 dueTime: (!task.due || task.due == '' || task.due == '0') ? '' : dateCalendar.formatDate(Timezone.getDateEvent(new Date( parseInt(task.due)), task.timezone, obj.calendar, obj.DayLigth, 'startTime'), User.preferences.hourFormat), 945 startDate: new Date( parseInt(task.startTime) ).setTimezoneOffset( Timezone.timezone( task.timezone ) ).toString( User.preferences.dateFormat ), 946 startHour: dateCalendar.formatDate(Timezone.getDateEvent(new Date( parseInt(task.startTime)), task.timezone, task.calendar, obj.DayLigth, 'startTime'), User.preferences.hourFormat), 947 endDate: new Date( parseInt(task.endTime) - (!!parseInt(task.allDay) ? 86400000 : 0) ).setTimezoneOffset( Timezone.timezone( task.timezone ) ).toString( User.preferences.dateFormat ), 948 endHour: dateCalendar.formatDate(Timezone.getDateEvent(new Date(parseInt(task.endTime)), task.timezone, obj.calendar, obj.DayLigth, 'endTime'), User.preferences.hourFormat), 949 } 950 951 tasks[task.id].description = tasks[task.id].startDate + ' - ' + (!!task.summary ? task.summary : task.description); 952 953 } 954 955 tasks.length = obj.taskToActivity.length; 956 return tasks; 957 958 }; 959 960 return { 961 "class": objEvent["class"], 962 id: objEvent.id, 963 location: objEvent.location, 964 category: objEvent.category, 965 activityStatus: objEvent.status, 966 groups: Calendar.groups, 967 group: objEvent.group ? objEvent.group : objEvent.calendar, 968 summary: objEvent.summary, 969 type: !!objEvent.type ? objEvent.type : 2, 970 description: objEvent.description, 971 timezone: objEvent.timezone, 972 timezones: Timezone.timezones, 973 percentage: (objEvent.percentage) ? objEvent.percentage : '0', 974 priority: objEvent.priority, 975 startDate: new Date( parseInt(objEvent.startTime) ).setTimezoneOffset( Timezone.timezone( objEvent.timezone ) ).toString( User.preferences.dateFormat ), 976 startHour: dateCalendar.formatDate(Timezone.getDateEvent(new Date( parseInt(objEvent.startTime)), objEvent.timezone, objEvent.calendar, objEvent.DayLigth, 'startTime'), User.preferences.hourFormat), 977 endDate: new Date( parseInt(objEvent.endTime) - (!!parseInt(objEvent.allDay) ? 86400000 : 0) ).setTimezoneOffset( Timezone.timezone( objEvent.timezone ) ).toString( User.preferences.dateFormat ), 978 endHour: dateCalendar.formatDate(Timezone.getDateEvent(new Date(parseInt(objEvent.endTime)), objEvent.timezone, objEvent.calendar, objEvent.DayLigth, 'endTime'), User.preferences.hourFormat), 979 dueDate: (!objEvent.due || objEvent.due == '' || objEvent.due == '0') ? '' : new Date( parseInt(objEvent.due) ).setTimezoneOffset( Timezone.timezone( objEvent.timezone ) ).toString( User.preferences.dateFormat ), 980 dueTime: (!objEvent.due || objEvent.due == '' || objEvent.due == '0') ? '' : dateCalendar.formatDate(Timezone.getDateEvent(new Date( parseInt(objEvent.due)), objEvent.timezone, objEvent.calendar, objEvent.DayLigth, 'startTime'), User.preferences.hourFormat), 981 allDay: !!parseInt( objEvent.allDay ), 982 historic: [], 983 tasks: objEvent.taskToActivity ? decodeTasks(objEvent) : {}, 984 attachments: $.map(objEvent.attachments || [], function( attachment, i ){ 985 var attach = DataLayer.get('schedulableToAttachment', attachment, false); 986 //TODO - Verificar na API retorno de id sobre os conceitos em que s?o utilizados tabelas de liga??o 987 if(!attach.name) return(null); 988 989 var ext = attach.name.split('.'); 990 attach.name = attach.name.length < 10 ? attach.name : ( ext.length == 1 ? attach.name.substr(0, 10) : (attach.name.substr(0, 6) + '.' + ext[ext.length -1])); 991 attach.size = formatBytes(attach.size); 992 return attach; 993 }), 994 me : User.me, 995 attendee: $.map(objEvent.participants || [], function( participant, i ){ 996 997 var attend = DataLayer.get('participant', (participant.id || participant)); 998 attend.user = DataLayer.get('user', attend.user); 999 1000 return { 1001 id: attend.id, 1002 alarms : $.map(attend.alarms || [], function( alarm ){ 1003 var alarm = DataLayer.get('alarm', alarm); 1004 return (alarm == "" ? (null) : alarm); 1005 }) 1006 }; 1007 }), 1008 1009 }; 1010 }); 802 1011 return (notArray ? res[0] : res); 803 1012 } … … 1089 1298 1090 1299 if(!(!!evtObj)) 1091 return undefined;1300 evtObj = []; 1092 1301 1093 1302 var notArray = false; … … 1314 1523 1315 1524 //occurrences = DataLayer.unique( occurrences ).sort(); 1316 1317 for( var i = 0; i < occurrences.length; i++ ) 1318 grouped[ evt.calendar ].push( DataLayer.merge( 1319 { 1320 id: evt.URI || evt.id+ '-' + i, 1321 title: Encoder.htmlDecode(evt.summary), 1322 start: Timezone.getDateCalendar(new Date( parseInt( occurrences[i] ) ), calendar.timezone, !!evt.DayLigth ? evt.DayLigth.calendar.startTime : Timezone.daylightSaving), 1323 end: Timezone.getDateCalendar(new Date( parseInt( occurrences[i] ) + duration - (!!parseInt(evt.allDay) ? 86400000 : 0)), calendar.timezone, !!evt.DayLigth ? evt.DayLigth.calendar.startTime : Timezone.daylightSaving), 1324 allDay: parseInt( evt.allDay ), 1325 isRepeat: isRepeat, 1326 occurrence: i, 1327 type: evt.type, 1328 calendar: evt.calendar 1329 }, eventEditable(evt.id, isRepeat, i ) ) ); 1525 var typeEvent; 1526 for( var i = 0; i < occurrences.length; i++ ){ 1527 1528 typeEvent = (evt.type == 2 && evt.taskToActivity ? 3 : evt.type) 1529 grouped[ evt.calendar ].push( DataLayer.merge( 1530 { 1531 id: evt.URI || evt.id+ '-' + i, 1532 title: Encoder.htmlDecode(evt.summary), 1533 start: Timezone.getDateCalendar(new Date( parseInt( occurrences[i] ) ), calendar.timezone, !!evt.DayLigth ? evt.DayLigth.calendar.startTime : Timezone.daylightSaving), 1534 end: Timezone.getDateCalendar(new Date( parseInt( occurrences[i] ) + duration - (!!parseInt(evt.allDay) ? 86400000 : 0)), calendar.timezone, !!evt.DayLigth ? evt.DayLigth.calendar.startTime : Timezone.daylightSaving), 1535 allDay: parseInt( evt.allDay ), 1536 isRepeat: isRepeat, 1537 occurrence: i, 1538 type: typeEvent, 1539 calendar: evt.calendar 1540 }, (parseInt(typeEvent) == 1 ? eventEditable(evt.id, isRepeat, i ) : (parseInt(typeEvent) == 2 ? {editable: true, disableResizing: false, disableDragging: false} : {editable: false, disableResizing: true, disableDragging: true}) )) ); 1541 } 1330 1542 }); 1331 1543
Note: See TracChangeset
for help on using the changeset viewer.