[6876] | 1 | function taskDetails(objTask, decoded, path, isMail, repeat) {
|
---|
| 2 |
|
---|
| 3 | $('.qtip.qtip-blue').remove();
|
---|
| 4 |
|
---|
| 5 | attendees = {};
|
---|
| 6 |
|
---|
| 7 | if (path == undefined) path = "";
|
---|
| 8 |
|
---|
| 9 | if (!decoded) objTask = DataLayer.decode("task:calendar", objTask);
|
---|
| 10 |
|
---|
| 11 | if (!isMail) objTask = DataLayer.encode("schedulable:task", objTask);
|
---|
| 12 |
|
---|
| 13 | if (typeof (objTask.id) == 'undefined') {
|
---|
| 14 | objTask.alarms = Calendar.signatureOf[User.preferences.defaultCalendar || Calendar.calendarIds[0]].defaultAlarms || false;
|
---|
| 15 | objTask.useAlarmDefault = 1;
|
---|
| 16 | }
|
---|
| 17 |
|
---|
| 18 |
|
---|
| 19 | if(objTask.me.id == User.me.id){
|
---|
| 20 | objTask.me.id = DataLayer.put('participant', {
|
---|
| 21 | user: objTask.me.id,
|
---|
| 22 | mail: objTask.me.mail
|
---|
| 23 | });
|
---|
| 24 | objTask.organizer.id = objTask.me.id;
|
---|
| 25 | }
|
---|
| 26 |
|
---|
| 27 | var dependsDelegate = function(reference, inverse){
|
---|
| 28 | if(inverse){
|
---|
| 29 | if(reference.find('input[name="attendee[]"]').val() == blkAddAtendee.find('li.organizer input[name="attendee_organizer"]').val())
|
---|
| 30 | blkAddAtendee.find('li.organizer input[name="attendee_organizer"]').val(blkAddAtendee.find('.me input[name="attendee[]"]').val());
|
---|
| 31 | }else{
|
---|
| 32 | if(blkAddAtendee.find('.me input[name="attendee[]"]').val() == blkAddAtendee.find('li.organizer input[name="attendee_organizer"]').val())
|
---|
| 33 | blkAddAtendee.find('li.organizer input[name="attendee_organizer"]').val(reference.find('input[name="attendee[]"]').val());
|
---|
| 34 | }
|
---|
| 35 | };
|
---|
| 36 |
|
---|
| 37 | var removeOthers = function(){
|
---|
| 38 | var other = blkAddAtendee.find('.delegate.attendee-permissions-change-button');
|
---|
| 39 | if(other.lenght)
|
---|
| 40 | dependsDelegate(other.parents('li'), true);
|
---|
| 41 |
|
---|
| 42 | blkAddAtendee.find('.delegate').removeClass('attendee-permissions-change-button');
|
---|
| 43 | blkAddAtendee.find('.ui-icon-transferthick-e-w').removeClass('attendee-permissions-change');
|
---|
| 44 |
|
---|
| 45 | };
|
---|
| 46 |
|
---|
| 47 | var callbackAttendee = function(){
|
---|
| 48 | var checked = false;
|
---|
| 49 | blkAddAtendee.find("li.not-attendee").addClass('hidden');
|
---|
| 50 |
|
---|
| 51 | blkAddAtendee.find("li .button").filter(".close.new").button({
|
---|
| 52 | icons: {
|
---|
| 53 | primary: "ui-icon-close"
|
---|
| 54 | },
|
---|
| 55 | text: false
|
---|
| 56 | }).click(function () {
|
---|
| 57 | DataLayer.remove('participant', $(this).parents('li').find('[type=checkbox]').val());
|
---|
| 58 | if($(this).parent().find('.button.delegate').hasClass('attendee-permissions-change-button')){
|
---|
| 59 | removeOthers();
|
---|
| 60 | blkAddAtendee.find('.request-update').addClass('hidden');
|
---|
| 61 | blkAddAtendee.find('.status option').toggleClass('hidden');
|
---|
| 62 |
|
---|
| 63 | blkAddAtendee.find('option[value=1]').attr('selected','selected').trigger('change');
|
---|
| 64 | }
|
---|
| 65 |
|
---|
| 66 | $(this).parents('li').remove();
|
---|
| 67 |
|
---|
| 68 | if(blkAddAtendee.find(".attendee-list li").length == 1)
|
---|
| 69 | blkAddAtendee.find("li.not-attendee").removeClass('hidden');
|
---|
| 70 | })
|
---|
| 71 | .addClass('tiny disable ui-button-disabled ui-state-disabled')
|
---|
| 72 | .removeClass('new').end()
|
---|
| 73 |
|
---|
| 74 | .filter(".delegate.new").button({
|
---|
| 75 | icons: {
|
---|
| 76 | primary: "ui-icon-transferthick-e-w"
|
---|
| 77 | },
|
---|
| 78 | text: false
|
---|
| 79 | }).click(function () {
|
---|
| 80 | var me = $(this).parents('li');
|
---|
| 81 | if($(this).hasClass('attendee-permissions-change-button')){
|
---|
| 82 | $(this).removeClass('attendee-permissions-change-button')
|
---|
| 83 | .find('.ui-icon-transferthick-e-w').removeClass('attendee-permissions-change').end();
|
---|
| 84 |
|
---|
| 85 | me.find('input[name="delegatedFrom[]"]').val('');
|
---|
| 86 | dependsDelegate(me, true);
|
---|
| 87 |
|
---|
| 88 | blkAddAtendee.find('.request-update').addClass('hidden');
|
---|
| 89 | blkAddAtendee.find('.status option').toggleClass('hidden');
|
---|
| 90 |
|
---|
| 91 | blkAddAtendee.find('option[value=1]').attr('selected','selected').trigger('change');
|
---|
| 92 |
|
---|
| 93 | }else{
|
---|
| 94 | removeOthers();
|
---|
| 95 |
|
---|
| 96 | $(this).addClass('attendee-permissions-change-button')
|
---|
| 97 | .find('.ui-icon-transferthick-e-w').addClass('attendee-permissions-change').end();
|
---|
| 98 |
|
---|
| 99 | me.find('input[name="delegatedFrom[]"]').val(blkAddAtendee.find('.me input[name="attendee[]"]').val());
|
---|
| 100 |
|
---|
| 101 | dependsDelegate(me, false);
|
---|
| 102 |
|
---|
| 103 | blkAddAtendee.find('.request-update').removeClass('hidden');
|
---|
| 104 | if(blkAddAtendee.find('.status option.hidden').length == 1)
|
---|
| 105 | blkAddAtendee.find('.status option').toggleClass('hidden');
|
---|
| 106 |
|
---|
| 107 | blkAddAtendee.find('option[value=5]').attr('selected','selected').trigger('change');
|
---|
| 108 | }
|
---|
| 109 | })
|
---|
| 110 | .addClass('tiny disable ui-button-disabled ui-state-disabled')
|
---|
| 111 | .removeClass('new').end()
|
---|
| 112 |
|
---|
| 113 | .filter(".open-delegate.new").click(function(){
|
---|
| 114 | if($(this).hasClass('ui-icon-triangle-1-e')){
|
---|
| 115 | $(this).removeClass('ui-icon-triangle-1-e').addClass('ui-icon-triangle-1-s');
|
---|
| 116 | $(this).parents('li').find('.list-delegates').removeClass('hidden');
|
---|
| 117 | }else{
|
---|
| 118 | $(this).removeClass('ui-icon-triangle-1-s').addClass('ui-icon-triangle-1-e');
|
---|
| 119 | $(this).parents('li').find('.list-delegates').addClass('hidden');
|
---|
| 120 | }
|
---|
| 121 |
|
---|
| 122 | }).removeClass('new');
|
---|
| 123 |
|
---|
| 124 | UI.dialogs.addTask.find('.attendees-list li').hover(
|
---|
| 125 | function () {
|
---|
| 126 | $(this).addClass("hover-attendee");
|
---|
| 127 | $(this).find('.button').removeClass('disable ui-button-disabled ui-state-disabled').end()
|
---|
| 128 | .find('.attendee-options').addClass('hover-attendee');
|
---|
| 129 | },
|
---|
| 130 | function () {
|
---|
| 131 | $(this).removeClass("hover-attendee");
|
---|
| 132 | $(this).find('.button').addClass('disable ui-button-disabled ui-state-disabled').end()
|
---|
| 133 | .find('.attendee-options').removeClass('hover-attendee');
|
---|
| 134 | }
|
---|
| 135 | );
|
---|
| 136 | }
|
---|
| 137 |
|
---|
| 138 | /**
|
---|
| 139 | * canDiscardTaskDialog deve ser true se não houver alterações no task
|
---|
| 140 | */
|
---|
| 141 | canDiscardTaskDialog = true;
|
---|
| 142 | /**
|
---|
| 143 | * zebraDiscardTaskDialog é uma flag indicando que uma janela de confirmação (Zebra_Dialog)
|
---|
| 144 | * já estão aberta na tela, uma vez que não é possivel acessar o task ESC utilizado para fechá-la
|
---|
| 145 | */
|
---|
| 146 | zebraDiscardTaskDialog = false;
|
---|
| 147 |
|
---|
| 148 | var html = DataLayer.render(path + 'templates/task_add.ejs', {
|
---|
| 149 | task: objTask
|
---|
| 150 | });
|
---|
| 151 |
|
---|
| 152 | if (!UI.dialogs.addTask) {
|
---|
| 153 |
|
---|
| 154 | UI.dialogs.addTask = jQuery('#sandbox').append('<div title="Criar tarefa" class="new-task-win active"> <div>').find('.new-task-win.active').html(html).dialog({
|
---|
| 155 | resizable: false,
|
---|
| 156 | modal: true,
|
---|
| 157 | autoOpen: false,
|
---|
| 158 | width: 774,
|
---|
| 159 | position: 'center',
|
---|
| 160 | close: function (event, ui) {
|
---|
| 161 | /**
|
---|
| 162 | * Remove tooltip possivelmente existente
|
---|
| 163 | */
|
---|
| 164 | if ($('.qtip.qtip-blue.qtip-active').length) $('.qtip.qtip-blue.qtip-active').qtip('destroy');
|
---|
| 165 | attendees = {};
|
---|
| 166 | },
|
---|
| 167 | beforeClose: function (event, ui) {
|
---|
| 168 |
|
---|
| 169 | if (!canDiscardTaskDialog && !zebraDiscardTaskDialog) {
|
---|
| 170 | zebraDiscardTaskDialog = true;
|
---|
| 171 | window.setTimeout(function () {
|
---|
| 172 | $.Zebra_Dialog('Suas alterações na tarefa não foram salvas. Deseja descartar as alterações?', {
|
---|
| 173 | 'type': 'question',
|
---|
| 174 | 'overlay_opacity': '0.5',
|
---|
| 175 | 'buttons': ['Descartar alterações', 'Continuar editando'],
|
---|
| 176 | 'onClose': function (clicked) {
|
---|
| 177 | if (clicked == 'Descartar alterações') {
|
---|
| 178 | canDiscardTaskDialog = true;
|
---|
| 179 | /**
|
---|
| 180 | *Remoção dos anexos da task caso seja cancelado a ediçãoo
|
---|
| 181 | */
|
---|
| 182 | DataLayer.rollback();
|
---|
| 183 |
|
---|
| 184 | var ids = false;
|
---|
| 185 | $.each($('.attachment-list input'), function (i, input) {
|
---|
| 186 | DataLayer.put('attachment', {
|
---|
| 187 | id: '' + input.value
|
---|
| 188 | });
|
---|
| 189 | DataLayer.remove('attachment', '' + input.value);
|
---|
| 190 | ids = true;
|
---|
| 191 | });
|
---|
| 192 | if (ids) DataLayer.commit();
|
---|
| 193 |
|
---|
| 194 | UI.dialogs.addTask.dialog('close');
|
---|
| 195 | } else {
|
---|
| 196 | zebraDiscardTaskDialog = false;
|
---|
| 197 | }
|
---|
| 198 |
|
---|
| 199 | /**
|
---|
| 200 | * Uma vez aberta uma janela de confirmação (Zebra_Dialog), ao fechá-la
|
---|
| 201 | * com ESC, para que o task ESC nÃo seja propagado para fechamento da
|
---|
| 202 | * janela de edição de tasks, deve ser setada uma flag indicando que
|
---|
| 203 | * já existe uma janela de confirmação aberta.
|
---|
| 204 | */
|
---|
| 205 | if (!clicked) {
|
---|
| 206 | window.setTimeout(function () {
|
---|
| 207 | zebraDiscardTaskDialog = false;
|
---|
| 208 | }, 200);
|
---|
| 209 | }
|
---|
| 210 | }
|
---|
| 211 | });
|
---|
| 212 |
|
---|
| 213 | }, 300);
|
---|
| 214 |
|
---|
| 215 | }
|
---|
| 216 | //DataLayer.rollback();
|
---|
| 217 | return canDiscardTaskDialog;
|
---|
| 218 | },
|
---|
| 219 | dragStart: function (task, ui) {
|
---|
| 220 | if ($('.qtip.qtip-blue.qtip-active').length) $('.qtip.qtip-blue.qtip-active').qtip('destroy');
|
---|
| 221 | }
|
---|
| 222 | });
|
---|
| 223 |
|
---|
| 224 | } else {
|
---|
| 225 | UI.dialogs.addTask.html(html);
|
---|
| 226 | }
|
---|
| 227 |
|
---|
| 228 | var tabs = UI.dialogs.addTask.children('.content').tabs({
|
---|
| 229 | select: function (task, ui) {
|
---|
| 230 | if ($('.qtip.qtip-blue.qtip-active').length) $('.qtip.qtip-blue.qtip-active').qtip('destroy');
|
---|
| 231 | }
|
---|
| 232 | });
|
---|
| 233 | var group = DataLayer.get('calendar', objTask.group);
|
---|
| 234 |
|
---|
| 235 | if (group.timezone != objTask.timezone) {
|
---|
| 236 | UI.dialogs.addTask.find('.calendar-addtask-details-txt-timezone').find('option[value="' + objTask.timezone + '"]').attr('selected', 'selected').trigger('change');
|
---|
| 237 | UI.dialogs.addTask.find('.calendar_addtask_details_lnk_timezone').addClass('hidden');
|
---|
| 238 | $('.calendar-addtask-details-txt-timezone').removeClass('hidden');
|
---|
| 239 |
|
---|
| 240 | }
|
---|
| 241 |
|
---|
| 242 | UI.dialogs.addTask.find('.calendar_addtask_details_lnk_timezone').click(function (e) {
|
---|
| 243 | $(this).addClass('hidden');
|
---|
| 244 | $('.calendar-addtask-details-txt-timezone').removeClass('hidden');
|
---|
| 245 | e.prtaskDefault();
|
---|
| 246 | });
|
---|
| 247 |
|
---|
| 248 | UI.dialogs.addTask.find('.button.remove').button({
|
---|
| 249 | text:false,
|
---|
| 250 | icons:{
|
---|
| 251 | primary:'ui-icon-close'
|
---|
| 252 | }
|
---|
| 253 | }).click(function(el){
|
---|
| 254 | var id;
|
---|
| 255 | if( id = $(this).parent().find('input[name="alarmId[]"]').val())
|
---|
| 256 | DataLayer.remove('alarm', id);
|
---|
| 257 | $(this).parent().remove().find('li').is(':empty');
|
---|
| 258 | });
|
---|
| 259 |
|
---|
| 260 | /*Seleciona a agenda padrão para visualização edição de um task*/
|
---|
| 261 | if (objTask.id) UI.dialogs.addTask.find('option[value="' + objTask.group + '"]').attr('selected', 'selected').trigger('change');
|
---|
| 262 |
|
---|
| 263 | /* Checkbox allday */
|
---|
| 264 | UI.dialogs.addTask.find('input[name="allDay"]').click(function () {
|
---|
| 265 | $(this).attr("checked") ? UI.dialogs.addTask.find('.start-time, .end-time').addClass('hidden') : UI.dialogs.addTask.find('.start-time, .end-time').removeClass('hidden');
|
---|
| 266 | updateMap(true);
|
---|
| 267 | });
|
---|
| 268 |
|
---|
| 269 | UI.dialogs.addTask.find('.button').button();
|
---|
| 270 | UI.dialogs.addTask.find('.button.add').button({
|
---|
| 271 | icons: {
|
---|
| 272 | secondary: "ui-icon-plus"
|
---|
| 273 | }
|
---|
| 274 | });
|
---|
| 275 |
|
---|
| 276 | // ==== validation tasks ====
|
---|
| 277 | UI.dialogs.addTask.find(".input-group .h1").Watermark("Tarefa sem título");
|
---|
| 278 | if (User.preferences.hourFormat.length == 5) {
|
---|
| 279 | UI.dialogs.addTask.find(".end-time, .start-time").mask("99:99", {
|
---|
| 280 | completed: function () {
|
---|
| 281 | updateMap();
|
---|
| 282 | }
|
---|
| 283 | });
|
---|
| 284 | } else {
|
---|
| 285 | $.mask.definitions['{'] = '[ap]';
|
---|
| 286 | $.mask.definitions['}'] = '[m]';
|
---|
| 287 | UI.dialogs.addTask.find(".end-time, .start-time").mask("99:99 {}", {
|
---|
| 288 | completed: function () {
|
---|
| 289 | $(this).val(date.Calendar.defaultToAmPm($(this).val()));
|
---|
| 290 | $(this).timepicker("refresh");
|
---|
| 291 | $(this).val($(this).val().replace(/[\.]/gi, ""));
|
---|
| 292 | updateMap();
|
---|
| 293 | }
|
---|
| 294 | });
|
---|
| 295 | }
|
---|
| 296 | UI.dialogs.addTask.find(".number").numeric();
|
---|
| 297 | User.preferences.dateFormat.indexOf('-') > 0 ? UI.dialogs.addTask.find(".date").mask("99-99-9999", {
|
---|
| 298 | completed: function () {
|
---|
| 299 | updateMap();
|
---|
| 300 | }
|
---|
| 301 | }) : UI.dialogs.addTask.find(".date").mask("99/99/9999", {
|
---|
| 302 | completed: function () {
|
---|
| 303 | updateMap();
|
---|
| 304 | }
|
---|
| 305 | });
|
---|
| 306 |
|
---|
| 307 | UI.dialogs.addTask.find(".menu-addtask").children(".delete").click(function () {
|
---|
| 308 | $.Zebra_Dialog('Tem certeza que deseja excluir esta tarefa?', {
|
---|
| 309 | 'type': 'question',
|
---|
| 310 | 'overlay_opacity': '0.5',
|
---|
| 311 | 'buttons': ['Sim', 'Não'],
|
---|
| 312 | 'onClose': function (clicked) {
|
---|
| 313 | if (clicked == 'Sim') {
|
---|
| 314 | canDiscardTaskDialog = true; /* Remove por filtro */
|
---|
| 315 | DataLayer.removeFilter('schedulable', {
|
---|
| 316 | filter: ['AND', ['=', 'id', objTask.id],
|
---|
| 317 | ['=', 'calendar', objTask.group],
|
---|
| 318 | ['=', 'user', (objTask.me.user ? objTask.me.user.id : objTask.me.id)]
|
---|
| 319 | ]
|
---|
| 320 | });
|
---|
| 321 | Calendar.rerenderView(true); /********************/
|
---|
| 322 | UI.dialogs.addTask.dialog("close");
|
---|
| 323 | }
|
---|
| 324 | }
|
---|
| 325 | });
|
---|
| 326 | }).end()
|
---|
| 327 |
|
---|
| 328 | .children(".cancel").click(function () {
|
---|
| 329 | UI.dialogs.addTask.dialog("close");
|
---|
| 330 | }).end()
|
---|
| 331 |
|
---|
| 332 | .children(".save").click(function () { /* Validação */
|
---|
| 333 | /*if (msg = validDateTask()) {
|
---|
| 334 | $(".new-task-win.active").find('.messages-validation').removeClass('hidden').find('.message label').html(msg);
|
---|
| 335 | return false;
|
---|
| 336 | }*/
|
---|
| 337 |
|
---|
| 338 | UI.dialogs.addTask.children().find('form.form-addtask').submit();
|
---|
| 339 | UI.dialogs.addTask.dialog("close");
|
---|
| 340 |
|
---|
| 341 | }).end()
|
---|
| 342 |
|
---|
| 343 | .children(".export").click(function () {
|
---|
| 344 | UI.dialogs.addTask.children().find(".form-export").submit();
|
---|
| 345 | });
|
---|
| 346 |
|
---|
| 347 | var attendeeHtml = DataLayer.render(path + 'templates/attendees_task.ejs', {
|
---|
| 348 | task: objTask
|
---|
| 349 | });
|
---|
| 350 |
|
---|
| 351 | // load template of attendees
|
---|
| 352 | var blkAddAtendee = UI.dialogs.addTask.find('#calendar_addtask_details6').append(attendeeHtml);
|
---|
| 353 |
|
---|
| 354 | if(objTask.attendee.length)
|
---|
| 355 | callbackAttendee();
|
---|
| 356 |
|
---|
| 357 | /*
|
---|
| 358 | * Opções de delegação do participante/organizer
|
---|
| 359 | */
|
---|
| 360 | blkAddAtendee.find(".button.participant-delegate").button({
|
---|
| 361 | icons: {
|
---|
| 362 | primary: "ui-icon-transferthick-e-w"
|
---|
| 363 | },
|
---|
| 364 | text: false
|
---|
| 365 | }).click(function () {
|
---|
| 366 | if($(this).hasClass('attendee-permissions-change-button')){
|
---|
| 367 | if(!$(this).hasClass('disable')){
|
---|
| 368 | $(this).removeClass('attendee-permissions-change-button')
|
---|
| 369 | .find('.ui-icon-transferthick-e-w').removeClass('attendee-permissions-change').end();
|
---|
| 370 | blkAddAtendee.find('.block-add-attendee.search').addClass('hidden');
|
---|
| 371 | blkAddAtendee.find('.block-add-attendee.search dt').html('Adicionar outros contatos');
|
---|
| 372 | }
|
---|
| 373 | }else{
|
---|
| 374 | $(this).addClass('attendee-permissions-change-button')
|
---|
| 375 | .find('.ui-icon-transferthick-e-w').addClass('attendee-permissions-change').end();
|
---|
| 376 | blkAddAtendee.find('.block-add-attendee.search dt').html('Delegar participação para');
|
---|
| 377 | blkAddAtendee.find('.block-add-attendee.search').removeClass('hidden');
|
---|
| 378 | blkAddAtendee.find('.block-add-attendee.search input.search').focus();
|
---|
| 379 | }
|
---|
| 380 | })
|
---|
| 381 | .addClass('tiny');
|
---|
| 382 |
|
---|
| 383 | var dates = UI.dialogs.addTask.find('input.date').datepicker({
|
---|
| 384 | dateFormat: User.preferences.dateFormat.replace(/M/g, 'm').replace(/yyyy/g, 'yy'),
|
---|
| 385 | onSelect: function (selectedDate) {
|
---|
| 386 | updateMap();
|
---|
| 387 | }
|
---|
| 388 | });
|
---|
| 389 |
|
---|
| 390 | UI.dialogs.addTask.find('input.time').timepicker({
|
---|
| 391 | closeText: 'Ok',
|
---|
| 392 | hourGrid: 4,
|
---|
| 393 | minuteGrid: 10,
|
---|
| 394 | ampm: ((User.preferences.hourFormat.length > 5) ? true : false),
|
---|
| 395 | timeFormat: "hh:mm tt",
|
---|
| 396 | onSelect: function (selectedDateTime) {
|
---|
| 397 | if (!(User.preferences.hourFormat.length == 5)) $(this).val(selectedDateTime.replace(/[\.]/gi, ""));
|
---|
| 398 | updateMap();
|
---|
| 399 | },
|
---|
| 400 | onClose: function (selectedDateTime) {
|
---|
| 401 | if (!(User.preferences.hourFormat.length == 5)) $(this).val(selectedDateTime.replace(/[\.]/gi, ""));
|
---|
| 402 | }
|
---|
| 403 | });
|
---|
| 404 |
|
---|
| 405 | blkAddAtendee.find('.add-attendee-search .ui-icon-search').click(function (task) {
|
---|
| 406 | blkAddAtendee.find('.add-attendee-search input').keydown();
|
---|
| 407 | });
|
---|
| 408 |
|
---|
| 409 | blkAddAtendee.find('.add-attendee-search input').keydown(function (task) {
|
---|
| 410 |
|
---|
| 411 | if (task.keyCode == '13' || typeof (task.keyCode) == 'undefined') {
|
---|
| 412 | var result = DataLayer.get('user', ["*", "name", $(this).val()], true);
|
---|
| 413 |
|
---|
| 414 | /**
|
---|
| 415 | * TODO: trocar por template
|
---|
| 416 | */
|
---|
| 417 | blkAddAtendee.find('ul.search-result-list').empty().css('overflow', 'hidden');
|
---|
| 418 | if (!result) {
|
---|
| 419 | blkAddAtendee.find('ul.search-result-list').append('<li><label class="empty">Nenhum resultado encontrado.</label></li>');
|
---|
| 420 | }
|
---|
| 421 |
|
---|
| 422 | for (i = 0; i < result.length; i++)
|
---|
| 423 | result[i].enabled = (blkAddAtendee.find('dd.attendee-list ul.attendee-list label.mail[title="' + result[i].mail + '"]').length) ? false : true;
|
---|
| 424 |
|
---|
| 425 | blkAddAtendee.find('ul.search-result-list').append(DataLayer.render(path + 'templates/participants_search_itemlist.ejs', result));
|
---|
| 426 |
|
---|
| 427 | blkAddAtendee.find('ul.search-result-list li').click(function (task, ui) {
|
---|
| 428 | if ($(task.target).is('input')) {
|
---|
| 429 | old_item = $(task.target).parents('li');
|
---|
| 430 | newAttendeeId = DataLayer.put('participant', {
|
---|
| 431 | user: old_item.find('.id').html(),
|
---|
| 432 | isExternal: old_item.find('.isExternal').html()
|
---|
| 433 | });
|
---|
| 434 |
|
---|
| 435 | attendees[old_item.find('.id').html()] = old_item.find('.name').html();
|
---|
| 436 |
|
---|
| 437 | blkAddAtendee.find('dd.attendee-list ul.attendee-list').append(DataLayer.render(path + 'templates/participants_add_itemlist.ejs', [{
|
---|
| 438 | id: newAttendeeId,
|
---|
| 439 | name: old_item.find('.name').html(),
|
---|
| 440 | mail: old_item.find('.mail').html(),
|
---|
| 441 | isExternal: old_item.find('.isExternal').html(),
|
---|
| 442 | notEvent: true,
|
---|
| 443 | isDirty: !! !objTask.id
|
---|
| 444 | }])).scrollTo('max');
|
---|
| 445 | /**
|
---|
| 446 | * Delegação de participação de um participante com permissão apenas de leitura
|
---|
| 447 | *
|
---|
| 448 | */
|
---|
| 449 | if (objTask.me.id != objTask.organizer.id) {
|
---|
| 450 |
|
---|
| 451 | blkAddAtendee.find('.block-add-attendee.search').addClass('hidden');
|
---|
| 452 | blkAddAtendee.find('.block-add-attendee.search dt').html('Adicionar outros contatos');
|
---|
| 453 |
|
---|
| 454 | blkAddAtendee.find('.status option').toggleClass('hidden');
|
---|
| 455 | blkAddAtendee.find('option[value=5]').attr('selected', 'selected').trigger('change');
|
---|
| 456 | blkAddAtendee.find('.request-update').removeClass('hidden');
|
---|
| 457 |
|
---|
| 458 | blkAddAtendee.find('dd.attendee-list ul.attendee-list li .button.close').parents('li').find('input[name="delegatedFrom[]"]').val(blkAddAtendee.find('.me input[name="attendee[]"]').val());
|
---|
| 459 |
|
---|
| 460 | blkAddAtendee.find('.me .participant-delegate').addClass('disable ui-button-disabled ui-state-disabled');
|
---|
| 461 | blkAddAtendee.find(".button.close").button({
|
---|
| 462 | icons: {
|
---|
| 463 | primary: "ui-icon-close"
|
---|
| 464 | },
|
---|
| 465 | text: false
|
---|
| 466 | }).click(function () {
|
---|
| 467 |
|
---|
| 468 | $(this).parents('li').find('input[name="delegatedFrom[]"]').val('');
|
---|
| 469 | blkAddAtendee.find('.request-update').addClass('hidden');
|
---|
| 470 | blkAddAtendee.find('.status option').toggleClass('hidden');
|
---|
| 471 | blkAddAtendee.find('option[value=1]').attr('selected', 'selected').trigger('change');
|
---|
| 472 | blkAddAtendee.find('.me .participant-delegate').removeClass('disable ui-button-disabled ui-state-disabled attendee-permissions-change-button').find('.ui-icon-person').removeClass('attendee-permissions-change').end();
|
---|
| 473 |
|
---|
| 474 | DataLayer.remove('participant', $(this).parents('li').find('[type=checkbox]').val());
|
---|
| 475 | $(this).parents('li').remove();
|
---|
| 476 | }).addClass('tiny');
|
---|
| 477 | } else {
|
---|
| 478 | callbackAttendee();
|
---|
| 479 | old_item.remove();
|
---|
| 480 | }
|
---|
| 481 | }
|
---|
| 482 | });
|
---|
| 483 |
|
---|
| 484 | event.preventDefault();
|
---|
| 485 | }
|
---|
| 486 | });
|
---|
| 487 |
|
---|
| 488 | UI.dialogs.addTask.find('.row.fileupload-buttonbar-task .button').filter('.delete').button({
|
---|
| 489 | icons: {
|
---|
| 490 | primary: "ui-icon-close"
|
---|
| 491 | },
|
---|
| 492 | text: 'Excluir'
|
---|
| 493 | }).click(function () {
|
---|
| 494 | $.Zebra_Dialog('Tem certeza que deseja excluir todos anexos?', {
|
---|
| 495 | 'type': 'question',
|
---|
| 496 | 'overlay_opacity': '0.5',
|
---|
| 497 | 'buttons': ['Sim', 'Não'],
|
---|
| 498 | 'onClose': function (clicked) {
|
---|
| 499 | if (clicked == 'Sim') {
|
---|
| 500 |
|
---|
| 501 | var ids = [];
|
---|
| 502 | $.each($('.attachment-list input'), function (i, input) {
|
---|
| 503 | DataLayer.remove('schedulableToAttachment', {
|
---|
| 504 | filter: ['=', 'id', '' + input.value]
|
---|
| 505 | });
|
---|
| 506 | });
|
---|
| 507 | $('.attachment-list input').remove();
|
---|
| 508 | $('.row.fileupload-buttonbar .attachments-list p').remove();
|
---|
| 509 | }
|
---|
| 510 | }
|
---|
| 511 | });
|
---|
| 512 | }).end().filter('.close').button({
|
---|
| 513 | icons: {
|
---|
| 514 | primary: "ui-icon-close"
|
---|
| 515 | },
|
---|
| 516 | text: false
|
---|
| 517 | }).click(function () {
|
---|
| 518 | DataLayer.remove('schedulableToAttachment', $(this).parents('p').find('input[name="fileId[]"]').val());
|
---|
| 519 | $(this).parents('p').remove();
|
---|
| 520 | }).end().filter('.downlaod-archive').button({
|
---|
| 521 | icons: {
|
---|
| 522 | primary: "ui-icon-arrowthickstop-1-s"
|
---|
| 523 | },
|
---|
| 524 | text: false
|
---|
| 525 | });
|
---|
| 526 | var maxSizeFile = 2000000;
|
---|
| 527 | $('#fileupload').fileupload({
|
---|
| 528 | sequentialUploads: true,
|
---|
| 529 | add: function (e, data) {
|
---|
| 530 | if (data.files[0].size < maxSizeFile) data.submit();
|
---|
| 531 | },
|
---|
| 532 | change: function (e, data) {
|
---|
| 533 | $.each(data.files, function (index, file) {
|
---|
| 534 | var attach = {};
|
---|
| 535 | attach.fileName = file.name;
|
---|
| 536 | var ext = file.name.split('.');
|
---|
| 537 | if (file.name.length > 10) attach.fileName = ext.length == 1 ? file.name.substr(0, 10) : file.name.substr(0, 6) + '.' + ext[ext.length - 1];
|
---|
| 538 | attach.fileSize = formatBytes(file.size);
|
---|
| 539 | if (file.size > maxSizeFile) attach.error = 'Tamanho de arquivo nao permitido!!'
|
---|
| 540 |
|
---|
| 541 | $('.attachments-list').append(DataLayer.render(path + 'templates/attachment_add_itemlist.ejs', {
|
---|
| 542 | file: attach
|
---|
| 543 | }));
|
---|
| 544 |
|
---|
| 545 | if (file.size < maxSizeFile) {
|
---|
| 546 | $('.fileinput-button.new').append(data.fileInput[0]).removeClass('new');
|
---|
| 547 | $('.attachments-list').find('[type=file]').addClass('hidden');
|
---|
| 548 |
|
---|
| 549 | } else $('.fileinput-button.new').removeClass('new');
|
---|
| 550 |
|
---|
| 551 |
|
---|
| 552 | $('.attachments-list').find('.button.close').button({
|
---|
| 553 | icons: {
|
---|
| 554 | primary: "ui-icon-close"
|
---|
| 555 | },
|
---|
| 556 | text: false
|
---|
| 557 | }).click(function () {
|
---|
| 558 | var idAttach = $(this).parent().find('input[name="fileId[]"]').val();
|
---|
| 559 | $('.attachment-list').find('input[value="' + idAttach + '"]')
|
---|
| 560 | $(this).parent().remove();
|
---|
| 561 | });
|
---|
| 562 |
|
---|
| 563 | })
|
---|
| 564 | },
|
---|
| 565 | done: function (e, data) {
|
---|
| 566 | var currentUpload = $('.progress.after-upload:first').removeClass('after-upload').addClass('on-complete').hide();
|
---|
| 567 |
|
---|
| 568 | if ( !! data.result && data.result != "[]") {
|
---|
| 569 | var newAttach = (attch = jQuery.parseJSON(data.result)) ? attch : jQuery.parseJSON(data.result[0].activeElement.childNodes[0].data);
|
---|
| 570 | $('.attachment-list').append('<input tyepe="hidden" name="attachment[]" value="' + newAttach['attachment'][0][0].id + '"/>');
|
---|
| 571 | currentUpload.removeClass('on-complete').parents('p').append('<input type="hidden" name="fileId[]" value="' + newAttach['attachment'][0][0].id + '"/>').find('.status-upload').addClass('ui-icon ui-icon-check');
|
---|
| 572 | } else currentUpload.removeClass('on-complete').parents('p').find('.status-upload').addClass('ui-icon ui-icon-cancel');
|
---|
| 573 | }
|
---|
| 574 | });
|
---|
| 575 | $('.attachments-list .button').button();
|
---|
| 576 |
|
---|
| 577 | if ( !! window.FormData) $('#fileupload').bind('fileuploadstart', function () {
|
---|
| 578 | var widget = $(this),
|
---|
| 579 | progressElement = $('#fileupload-progress').fadeIn(),
|
---|
| 580 | interval = 500,
|
---|
| 581 | total = 0,
|
---|
| 582 | loaded = 0,
|
---|
| 583 | loadedBefore = 0,
|
---|
| 584 | progressTimer, progressHandler = function (e, data) {
|
---|
| 585 | loaded = data.loaded;
|
---|
| 586 | total = data.total;
|
---|
| 587 | },
|
---|
| 588 | stopHandler = function () {
|
---|
| 589 | widget.unbind('fileuploadprogressall', progressHandler).unbind('fileuploadstop', stopHandler);
|
---|
| 590 | window.clearInterval(progressTimer);
|
---|
| 591 | progressElement.fadeOut(function () {
|
---|
| 592 | progressElement.html('');
|
---|
| 593 | });
|
---|
| 594 | },
|
---|
| 595 | formatTime = function (seconds) {
|
---|
| 596 | var date = new Date(seconds * 1000);
|
---|
| 597 | return ('0' + date.getUTCHours()).slice(-2) + ':' + ('0' + date.getUTCMinutes()).slice(-2) + ':' + ('0' + date.getUTCSeconds()).slice(-2);
|
---|
| 598 | },
|
---|
| 599 |
|
---|
| 600 | formatPercentage = function (floatValue) {
|
---|
| 601 | return (floatValue * 100).toFixed(2) + ' %';
|
---|
| 602 | },
|
---|
| 603 | updateProgressElement = function (loaded, total, bps) {
|
---|
| 604 | progressElement.html(
|
---|
| 605 | formatBytes(bps) + 'ps | ' + formatTime((total - loaded) / bps) + ' | ' + formatPercentage(loaded / total) + ' | ' + formatBytes(loaded) + ' / ' + formatBytes(total));
|
---|
| 606 | },
|
---|
| 607 | intervalHandler = function () {
|
---|
| 608 | var diff = loaded - loadedBefore;
|
---|
| 609 | if (!diff) {
|
---|
| 610 | return;
|
---|
| 611 | }
|
---|
| 612 | loadedBefore = loaded;
|
---|
| 613 | updateProgressElement(
|
---|
| 614 | loaded, total, diff * (1000 / interval));
|
---|
| 615 | };
|
---|
| 616 | widget.bind('fileuploadprogressall', progressHandler).bind('fileuploadstop', stopHandler);
|
---|
| 617 | progressTimer = window.setInterval(intervalHandler, interval);
|
---|
| 618 | });
|
---|
| 619 |
|
---|
| 620 | disponibily(objTask, path, attendees, 'task');
|
---|
| 621 |
|
---|
| 622 | UI.dialogs.addTask.find('.button-add-alarms').click(function () {
|
---|
| 623 | var li_attach = DataLayer.render(path + 'templates/alarms_add_itemlist.ejs', {
|
---|
| 624 | type: 1
|
---|
| 625 | });
|
---|
| 626 |
|
---|
| 627 | jQuery('.task-alarms-list').append(li_attach).find('.button.remove').button({
|
---|
| 628 | text: false,
|
---|
| 629 | icons: {
|
---|
| 630 | primary: 'ui-icon-close'
|
---|
| 631 | }
|
---|
| 632 | }).click(function (el) {
|
---|
| 633 | $(this).parent().remove().find('li').is(':empty')
|
---|
| 634 | });
|
---|
| 635 | // valicacao de campos numericos
|
---|
| 636 | $('.number').numeric();
|
---|
| 637 | });
|
---|
| 638 |
|
---|
| 639 |
|
---|
| 640 | UI.dialogs.addTask.dialog('open');
|
---|
[6815] | 641 | } |
---|