- Timestamp:
- 08/10/12 15:52:37 (12 years ago)
- Location:
- sandbox/2.4.2-expresso1/prototype/modules/calendar
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
sandbox/2.4.2-expresso1/prototype/modules/calendar/interceptors/DBMapping.php
r6985 r6988 13 13 { 14 14 15 if ( !is_numeric($params['startTime']))15 if (isset($params['startTime']) && !is_numeric($params['startTime'])){ 16 16 $params['startTime'] = self::parseTimeDate($params['startTime'], $params['timezone']); 17 18 if (!is_numeric($params['endTime'])) { 17 $params['rangeStart'] = $params['startTime']; 18 } 19 if (isset($params['endTime']) && !is_numeric($params['endTime'])) { 19 20 $params['endTime'] = self::parseTimeDate($params['endTime'], $params['timezone']); 20 21 21 22 if ($params['allDay']) 22 23 $params['endTime'] = $params['endTime'] + 86400000; 24 25 $params['rangeEnd'] = $params['endTime']; 23 26 } 24 27 25 28 if (isset($params['due']) && $params['due'] != '' && !is_numeric($params['due'])) 26 29 $params['due'] = self::parseTimeDate($params['due'], $params['timezone']); 27 28 29 $params['rangeEnd'] = $params['endTime'];30 $params['rangeStart'] = $params['startTime'];31 30 32 31 /////////////////////////////////////////////////////////////////// -
sandbox/2.4.2-expresso1/prototype/modules/calendar/js/calendar.codecs.js
r6985 r6988 391 391 }); 392 392 393 DataLayer.codec( "schedulable", "taskEdit", { 394 395 decoder: function( evtObj ){ 396 Encoder.EncodeType = "entity"; 397 398 if( notArray = $.type(evtObj) !== "array" ) 399 evtObj = [ evtObj ]; 400 401 var pref = User.preferences; 402 403 var res = $.map(evtObj, function( form ){ 404 405 return DataLayer.merge({ 406 id: form.idTask, 407 percentage: form.percentage, 408 type: '2', 409 status: form.taskStatus, 410 participants : $.map(form.attendee, function( attendee, i ){ 411 if(isNaN(attendee)){ 412 return{ 413 id: attendee, 414 acl: form.attendeeAcl[i], 415 delegatedFrom: !!form.delegatedFrom[i] ? form.delegatedFrom[i] : 0, 416 isOrganizer: (form.attendee_organizer == attendee ? 1 : 0 ), 417 isExternal: !!parseInt(form.attendeeType[i]) ? 1 : 0, 418 acl: form.attendeeAcl[i].replace('o', '') 419 }; 420 }else{ 421 if(DataLayer.get('participant', attendee).user == User.me.id){ 422 var me = { 423 user: User.me.id, 424 status: form.status, 425 id: attendee, 426 isOrganizer: 0, 427 receiveNotification : (!!form.receiveNotification ? 1 : 0), 428 alarms: typeof(form.alarmTime) != 'undefined' ? 429 $.map( form.alarmTime || [], function( alarmTime, i ){ 430 431 if( alarmTime === "" ) 432 return( null ); 433 434 return !!form.alarmId[i] ? 435 { 436 type: form.alarmType[i], 437 unit: form.alarmUnit[i], 438 time: form.alarmTime[i], 439 id: form.alarmId[i] 440 } : 441 { 442 type: form.alarmType[i], 443 unit: form.alarmUnit[i], 444 time: form.alarmTime[i] 445 }; 446 }) : [] 447 }; 448 449 if(form.startDate){ 450 var tzId = DataLayer.get('schedulable', form.idEvent).timezone || User.preferences.timezone, 451 formatString = pref.dateFormat + " " + pref.hourFormat; 452 453 DataLayer.put('notification', { 454 participant: me.id, 455 type: 'suggestion', 456 startTime: Date.parseExact(form.startDate + (!!form.allDay ? " 00:00": " "+$.trim(form.startHour)) , formatString ).toString('yyyy-MM-dd HH:mm:00'), 457 endTime: Date.parseExact(form.endDate + ( !!form.allDay ? " 00:00": " "+$.trim(form.endHour)), formatString ).toString('yyyy-MM-dd HH:mm:00'), 458 allDay: ( !!form.allDay ? 1 : 0 ), 459 schedulable: form.idEvent 460 }); 461 462 } 463 return me; 464 }else return(null); 465 }; 466 }) 467 }, (form.group != form.lastGroup? {calendar: form.group, lastCalendar: form.lastGroup} : {})) 468 }); 469 return notArray ? res[0] : res; 470 }, 471 472 encoder: function( evtObj ){} 473 474 }); 475 393 476 DataLayer.codec( "schedulable", "preview", { 394 477 … … 794 877 }), 795 878 organizer: participantInfo.organizer || me, 879 isOrganizer: (participantInfo.organizer || me).id == me.id, 796 880 alarms: !!participantInfo.user ? participantInfo.user.alarms : [], 797 881 status: !!participantInfo.user ? participantInfo.user.status : 1, -
sandbox/2.4.2-expresso1/prototype/modules/calendar/js/helpers.js
r6985 r6988 2629 2629 DataLayer.render( 'templates/import_export.ejs', { 2630 2630 calendars: typeView == 0 ? Calendar.calendars : Calendar.groups, 2631 owner: User.me.id 2631 owner: User.me.id, 2632 typeView: typeView 2632 2633 }, function( html ){ 2633 2634 -
sandbox/2.4.2-expresso1/prototype/modules/calendar/templates/attendees_task.ejs
r6974 r6988 15 15 <%}%> 16 16 </select> 17 <% if (data.task.id && (data.task.me.id != data.task.organizer.id)&& !data.task.delegatedFrom[data.task.me.id]) { %>18 19 <a href="#" class="button participant-delegate add-attendee-options-button">Delegar participação a um novo participante</a>20 21 17 <% if (data.task.id && !data.task.delegatedFrom[data.task.me.id]) { %> 18 <fieldset class="add-attendee-options-read"> 19 <a href="#" class="button participant-delegate add-attendee-options-button">Delegar participação a um novo participante</a> 20 </fieldset> 21 <%}%> 22 22 <p class="input-group request-update <%=data.task.delegatedFrom[data.task.me.id] ? '' : "hidden"%>"> 23 23 <input type="checkbox" name="receiveNotification" value="true" <%=data.task.me.receiveNotification =='1' ? 'checked="checked"' : ''%>/> 24 <label for="request-update">Receber atualiza ções</label>24 <label for="request-update">Receber atualizações</label> 25 25 </p> 26 26 … … 35 35 <label for="attendee" title="<%= data.task.me.user ? data.task.me.user.mail : data.task.me.mail %>" class="mail hidden"></label> 36 36 37 <li class="organizer <%= data.task. me.id == data.task.organizer.id? "hidden" : "" %>">37 <li class="organizer <%= data.task.isOrganizer ? "hidden" : "" %>"> 38 38 <div style="overflow:hidden; width:100%; display:table;"> 39 39 <span class="space-status ui-icon <%=iconStatus[data.task.organizer.status]%>" title="<%=legendStatus[data.task.organizer.status]%>"></span> … … 74 74 <span class="space-special ui-icon <%= !!data.task.delegatedFrom[data.task.attendee[i].id] ? iconStatus[5] : iconStatus[6]%>" title="<%=!!data.task.delegatedFrom[data.task.attendee[i].id] ? legendStatus[5] : legendStatus[6]%>"></span> 75 75 76 <input type="checkbox" class="new" value="<%= data.task.attendee[i].id %>">76 <input type="checkbox" class="new" <%= data.task.isOrganizer ? '' : 'disabled="disabled"'%> value="<%= data.task.attendee[i].id %>"> 77 77 78 78 <input type="hidden" name="attendee[]" value="<%=data.task.attendee[i].id%>"> … … 83 83 <label title="<%= data.task.attendee[i].mail ? data.task.attendee[i].mail : ''%>" class="mail <%= !!data.task.delegatedFrom[data.task.attendee[i].id] ? "name-special-delegated" : "name-special"%>"><%= data.task.attendee[i].mail ? data.task.attendee[i].mail : '' %></label> 84 84 <span class="ui-icon ui-icon-close ui-corner-all ui-icon-float-right"></span> 85 </div>86 <div class="attendee-options">87 <a class="button close new">Remover</a>88 85 </div> 89 86 <%if(data.isOrganizer){%> 87 <div class="attendee-options"> 88 <a class="button close new">Remover</a> 89 </div> 90 <%}%> 90 91 91 92 <%if(!!data.task.delegatedFrom[data.task.attendee[i].id]){%> … … 117 118 </ul> 118 119 </dd> 119 <dd class="attendee-list-add" >120 <dd class="attendee-list-add" <%= data.isOrganizer ? '' : 'disabled="disabled"'%>> 120 121 <fieldset class="add-attendee-input input-field-rounded ui-corner-all"> 121 <span class="ui-icon ui-icon-plus" ></span>122 <input class="plus" type="text" />122 <span class="ui-icon ui-icon-plus" <%= data.isOrganizer ? '' : 'disabled="disabled"'%>></span> 123 <input class="plus" <%= data.isOrganizer ? '' : 'disabled="disabled"'%> type="text" /> 123 124 </fieldset> 124 125 </dd> … … 137 138 <ul class="attendees-count"> 138 139 <li><label>Sim:</label><%=data.task.statusParticipants.accepted%></li> 139 <li><label>N ão:</label><%=data.task.statusParticipants.cancelled%></li>140 <li><label>Não:</label><%=data.task.statusParticipants.cancelled%></li> 140 141 <li><label>Talvez:</label><%=data.task.statusParticipants.tentative%></li> 141 142 <li><label>Aguardando:</label><%=data.task.statusParticipants.unanswered%></li> … … 151 152 </dl> 152 153 153 <dl class="block-add-attendee search">154 <dl class="block-add-attendee search <%= data.isOrganizer ? '' : 'hidden'%>"> 154 155 <dt class="add-attendee search">Adicionar outros convidados</dt> 155 156 <dd class="add-attendee"> -
sandbox/2.4.2-expresso1/prototype/modules/calendar/templates/import_export.ejs
r5901 r6988 15 15 <input type="hidden" name="type" value="iCal"> 16 16 <input type="hidden" name="params[owner]" value="<%= data.owner %>"> 17 <legend class="hidden">Importar agenda</legend>17 <legend class="hidden">Importar <%=data.typeView == 0 ? 'eventos' : 'tarefas'%></legend> 18 18 <p class="input-group"> 19 19 <label for="data">Arquivo:</label> … … 21 21 <input type="file" name="data" value=""/> 22 22 <span class="tip">Escolha o arquivo que contenha um ou vários eventos. A Agenda do Expresso pode importar informações de evento no formato iCal.</span> 23 <label for="calendar"> Agenda:</label>23 <label for="calendar"><%=data.typeView == 0 ? 'Agenda:' : 'Grupo:'%></label> 24 24 <select name="params[calendar]"> 25 25 <% for( var i = 0; i < data.calendars.length; i++ ){ %> … … 27 27 <% } %> 28 28 </select> 29 <span class="tip"> Agenda daqual os eventos serão importados</span>29 <span class="tip"><%=data.typeView == 0 ? 'Agenda da' : 'Grupo do'%> qual os eventos serão importados</span> 30 30 </p> 31 31 </fieldset> … … 42 42 <legend class="hidden">Exportar agenda</legend> 43 43 <p class="input-group"> 44 <label for="calendar"> Agenda:</label>44 <label for="calendar"><%=data.typeView == 0 ? 'Agenda:' : 'Grupo:'%></label> 45 45 <select name="calendar"> 46 46 <!--<option value="cal_all">Todas agendas</option>--> … … 49 49 <% } %> 50 50 </select> 51 <span class="tip">Escolha a agenda que deseja exportar. A Agenda do Expresso pode exportar informações de eventono formato iCal.</span>51 <span class="tip">Escolha <%=data.typeView == 0 ? 'a agenda' : 'o grupo'%> que deseja exportar. <%=data.typeView == 0 ? 'A Agenda' : 'O Grupo'%> do Expresso pode exportar informações de <%=data.typeView == 0 ? 'eventos' : 'tarefas'%> no formato iCal.</span> 52 52 </p> 53 53 </fieldset> -
sandbox/2.4.2-expresso1/prototype/modules/calendar/templates/task_activity_add.ejs
r6945 r6988 1 1 <dl class="block-activity-group-select activitys-list"> 2 <dt class="activity-group-select">Grupo de evento</dt>2 <dt class="activity-group-select">Grupo de tarefas</dt> 3 3 <dd class="group-select"> 4 4 <ul class="activity-group-select"> -
sandbox/2.4.2-expresso1/prototype/modules/calendar/templates/task_add.ejs
r6981 r6988 1 1 <div title="Criar Tarefa" class="div-addtask content"> 2 <form method="POST" action=" schedulable:task" class="form-addtask content">2 <form method="POST" action="<%= data.task.isOrganizer ? 'schedulable:task' : 'schedulable:taskEdit' %>" class="form-addtask content"> 3 3 4 4 <fieldset id="calendar_addtask_details1"> 5 5 <legend class="hidden">Detalhes da tarefa</legend> 6 6 <p class="input-group"> 7 <input type="text" class="h1" name="summary" value="<%= (data.task.summary) ? data.task.summary : '' %>"/>7 <input type="text" class="h1" <%= data.task.isOrganizer ? '' : 'disabled="disabled"'%> name="summary" value="<%= (data.task.summary) ? data.task.summary : '' %>"/> 8 8 <% if( data.task.id ){ %> 9 9 <input type="hidden" class="id-task" name="idTask" value="<%= data.task.id %>"/> … … 14 14 </p> 15 15 <p class="input-group date-info"> 16 <input type="text" class="date start-date" value="<%= (data.task.startDate) ? data.task.startDate : '' %>" name="startDate" />17 <input type="text" class="time start-time<%= (data.task.allDay) ? ' hidden' : '' %>" value="<%= (data.task.startHour) ? data.task.startHour : '' %>" name="startHour" />16 <input type="text" class="date start-date" <%= data.task.isOrganizer ? '' : 'disabled="disabled"'%> value="<%= (data.task.startDate) ? data.task.startDate : '' %>" name="startDate" /> 17 <input type="text" class="time start-time<%= (data.task.allDay) ? ' hidden' : '' %>" <%= data.task.isOrganizer ? '' : 'disabled="disabled"'%> value="<%= (data.task.startHour) ? data.task.startHour : '' %>" name="startHour" /> 18 18 <span>até</span> 19 <input type="text" class="date end-date" value="<%= (data.task.endDate) ? data.task.endDate : '' %>" name="endDate" />20 <input type="text" class="time end-time<%= (data.task.allDay) ? ' hidden' : '' %>" value="<%= (data.task.endHour) ? data.task.endHour : '' %>" name="endHour" />19 <input type="text" class="date end-date" value="<%= (data.task.endDate) ? data.task.endDate : '' %>" <%= data.task.isOrganizer ? '' : 'disabled="disabled"'%> name="endDate" /> 20 <input type="text" class="time end-time<%= (data.task.allDay) ? ' hidden' : '' %>" <%= data.task.isOrganizer ? '' : 'disabled="disabled"'%> value="<%= (data.task.endHour) ? data.task.endHour : '' %>" name="endHour" /> 21 21 22 22 <span class="previsao-termino">Previsão término:</span> 23 <input type="text" name="dueDate" class="date date-previsao" value="<%= data.task.dueDate %>">24 <input type="text" name="dueTime" class="time time-previsao" value="<%= data.task.dueTime %>">25 26 <a href="#" class="calendar_addtask_details_lnk_timezone" >Fuso horário</a>23 <input type="text" name="dueDate" class="date date-previsao" <%= data.task.isOrganizer ? '' : 'disabled="disabled"'%> value="<%= data.task.dueDate %>"> 24 <input type="text" name="dueTime" class="time time-previsao" <%= data.task.isOrganizer ? '' : 'disabled="disabled"'%> value="<%= data.task.dueTime %>"> 25 26 <a href="#" class="calendar_addtask_details_lnk_timezone" <%= data.task.isOrganizer ? '' : 'disabled="disabled"'%>>Fuso horário</a> 27 27 28 28 29 29 <!-- <input type="text" name="timezone" style="display: none;" />--> 30 <select name="timezone" class="hidden calendar-addtask-details-txt-timezone" >30 <select name="timezone" class="hidden calendar-addtask-details-txt-timezone" <%= data.task.isOrganizer ? '' : 'disabled="disabled"'%>> 31 31 <option value="">- None selected -</option> 32 32 <% for( var tzId in data.task.timezones ){ %> … … 34 34 <% } %> 35 35 </select> 36 37 <a class="button suggestion-hours small hidden" href="#">Sugerir horário</a> 38 36 39 37 40 </p> … … 47 50 48 51 <p class="input-group task-type"> 49 <input type="checkbox" name="allDay" value="true" <%= (data.task.allDay) ? 'checked="checked"' : '' %> />52 <input type="checkbox" name="allDay" value="true" <%= (data.task.allDay) ? 'checked="checked"' : '' %> <%= data.task.isOrganizer ? '' : 'disabled="disabled"'%>/> 50 53 <label for="allDay">Dia inteiro</label> 51 54 <!-- … … 56 59 % Conclusão: <input type="text" name="percentage" class="done" value="<%= data.task.percentage %>"> 57 60 <span style="margin:0 0 0 5px;">Status:</span> 58 61 <select name="taskStatus" style="margin: 0 0 0 5px;"> 59 62 <option class="taskStatus-noAction"<%= (data.task.taskStatus == '1') ? 'selected="selected"' : '' %> value="1">Sem ações</option> 60 63 <option class="taskStatus-inProcess"<%= (data.task.taskStatus == '2') ? 'selected="selected"' : '' %> value="2">Em Processo</option> … … 63 66 </select> 64 67 <span style="margin:0 0 0 5px;">Prioridade:</span> 65 <select name="priority" >68 <select name="priority" <%= data.task.isOrganizer ? '' : 'disabled="disabled"'%>> 66 69 <option <%= (data.task.priority == '1') ? 'selected="selected"' : '' %> value="1">Alta</option> 67 70 <option <%= (data.task.priority == '2') ? 'selected="selected"' : '' %> value="2">Normal</option> … … 84 87 <p class="input-group"> 85 88 <label for="calendar_addtask_details_txtarea_description" class="for-textarea" >Descrição</label> 86 <textarea name="description" ><%=(data.task) ? data.task.description : '' %></textarea>89 <textarea name="description" <%= data.task.isOrganizer ? '' : 'disabled="disabled"'%>><%=(data.task) ? data.task.description : '' %></textarea> 87 90 </p> 88 91 … … 208 211 <div class="button-files-upload"> 209 212 <!-- The fileinput-button span is used to style the file input field as button --> 210 <span class="button btn-success fileinput-button" >213 <span class="button btn-success fileinput-button" <%= data.task.isOrganizer ? '' : 'disabled="disabled"'%>> 211 214 <span><i class="icon-plus icon-white"></i> Adicionar</span> 212 <input type="file" name="files[]" multiple >215 <input type="file" name="files[]" multiple <%= data.task.isOrganizer ? '' : 'disabled="disabled"'%>> 213 216 </span> 214 <button type="button" class="button btn-danger delete <%= data.task && data.task.attachments && data.task.attachments.length ? '' : 'hidden' %>" >217 <button type="button" class="button btn-danger delete <%= data.task && data.task.attachments && data.task.attachments.length ? '' : 'hidden' %>" <%= data.task.isOrganizer ? '' : 'disabled="disabled"'%>> 215 218 <i class="icon-trash icon-white"></i> Remover Todos 216 219 </button>
Note: See TracChangeset
for help on using the changeset viewer.