X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/ee06f37b0f6f6d94cd05a6ffae556660f7c4a2bc..c930e9176a5a85509c5b0230e2bff5c22a591432:/air/samples/tasks/task.js diff --git a/air/samples/tasks/task.js b/air/samples/tasks/task.js deleted file mode 100644 index 8da44ee0..00000000 --- a/air/samples/tasks/task.js +++ /dev/null @@ -1,297 +0,0 @@ -/* - * Ext JS Library 0.30 - * Copyright(c) 2006-2009, Ext JS, LLC. - * licensing@extjs.com - * - * http://extjs.com/license - */ - - -Ext.onReady(function(){ - Ext.QuickTips.init(); - - var win = window.nativeWindow; - - var opener = Ext.air.NativeWindow.getRootHtmlWindow(); - var taskId = String(window.location).split('=')[1]; - var isNew = !taskId; - var completed = false; - - win.title = 'Task - ' + Ext.util.Format.ellipsis(getTask().data.title, 40); - - var tb = new Ext.Toolbar({ - region: 'north', - height:26, - id:'main-tb', - items:[{ - id:'cpl-btn', - iconCls: 'icon-mark-complete', - text: 'Mark Complete', - handler: function(){ - setCompleted(!completed); - if(completed) { - setMsg('This task was completed on ' + new Date().format('l, F d, Y')); - } - if(validate()) { - (function(){ - saveData(); - if (completed) { - win.close(); - } - }).defer(250); - } - } - },'-', - {iconCls: 'icon-delete-task', text: 'Delete', handler: function(){ - Ext.Msg.confirm('Confirm Delete', 'Are you sure you want to delete this task?', function(btn){ - if(btn == 'yes'){ - opener.tx.data.tasks.remove(getTask()); - win.close(); - } - }); - }} - ] - }); - - var title = new Ext.form.TextField({ - fieldLabel: 'Task Subject', - name: 'title', - anchor: '100%' - }); - - var dueDate = new Ext.form.DateField({ - fieldLabel: 'Due Date', - name: 'dueDate', - width: 135, - format: 'm/d/Y' - }); - - var list = new ListSelector({ - fieldLabel: 'Task List', - name: 'listId', - store: opener.tx.data.lists, - anchor: '100%' - }); - - list.on('render', function(){ - this.menu.on('beforeshow', function(m){ - list.tree.setWidth(Math.max(180, list.getSize().width)); - }); - }); - win.addEventListener('closing', function(){ - opener.tx.data.lists.unbindTree(list.tree); - }); - - - var hasReminder = new Ext.form.Checkbox({ - boxLabel: 'Reminder:', - checked: false - }); - - var reminder = new Ext.ux.form.DateTime({ - name: 'reminder', - disabled: true, - timeFormat: 'g:i A', - dateFormat: 'm/d/Y', - timeConfig: { - tpl: opener.Templates.timeField, - listClass:'x-combo-list-small', - maxHeight:100 - } - }); - - var description = new Ext.form.HtmlEditor({ - hideLabel: true, - name: 'description', - anchor: '100% -95', // anchor width by percentage and height by raw adjustment - onEditorEvent : function(e){ - var t; - if(e.browserEvent.type == 'mousedown' && (t = e.getTarget('a', 3))){ - t.target = '_blank'; - } - this.updateToolbar(); - } - }); - - var form = new Ext.form.FormPanel({ - region:'center', - baseCls: 'x-plain', - labelWidth: 75, - margins:'10 10 5 10', - - buttonAlign: 'right', - minButtonWidth: 80, - buttons:[{ - text: 'OK', - handler: function(){ - if(validate()) { - saveData(); - window.nativeWindow.close(); - } - } - },{ - text: 'Cancel', - handler: function(){ window.nativeWindow.close(); } - }], - - - items: [{ - xtype:'box', - autoEl: {id:'msg'} - }, - title,{ - layout: 'column', - anchor: '100%', - baseCls: 'x-plain', - items: [{ - width: 250, - layout: 'form', - baseCls: 'x-plain', - items: dueDate - }, { - columnWidth: 1, - layout: 'form', - baseCls: 'x-plain', - labelWidth:55, - items: list - }] - },{ - xtype:'box', - autoEl: {cls:'divider'} - },{ - layout: 'column', - anchor: '100%', - baseCls: 'x-plain', - items: [{ - width: 80, - layout: 'form', - baseCls: 'x-plain', - hideLabels: true, - items: hasReminder - }, { - columnWidth: 1, - layout: 'form', - baseCls: 'x-plain', - hideLabels: true, - items: reminder - }] - }, - description] - }); - - var viewport = new Ext.Viewport({ - layout:'border', - items:[tb, form] - }); - - var msg = Ext.get('msg'); - var task = getTask(); - - if(task && task.data.completedDate){ - setMsg('This task was completed on ' + task.data.completedDate.format('l, F d, Y')); - } - - hasReminder.on('check', function(cb, checked){ - reminder.setDisabled(!checked); - if(checked && !reminder.getValue()){ - reminder.setValue(opener.tx.data.getDefaultReminder(getTask())); - } - }); - - refreshData.defer(10); - - win.visible = true; - win.activate(); - - title.focus(); - - function refreshData(){ - if(!isNew){ - var task = getTask(); - hasReminder.setValue(!!task.data.reminder); - form.getForm().loadRecord(task); - setCompleted(task.data.completed); - } - } - - function saveData(){ - var task; - if(isNew){ - task = opener.tx.data.tasks.createTask( - title.getValue(), - list.getRawValue(), - dueDate.getValue(), - description.getValue(), - completed - ); - }else{ - task = getTask(); - task.set('completed', completed); - } - if(!hasReminder.getValue()){ - reminder.setValue(''); - } - form.getForm().updateRecord(task); - } - - function setCompleted(value){ - completed = value; - var cplBtn = Ext.getCmp('cpl-btn'); - if (completed) { - cplBtn.setText('Mark Active'); - cplBtn.setIconClass('icon-mark-active'); - hasReminder.disable(); - reminder.disable(); - } - else { - cplBtn.setText('Mark Complete'); - cplBtn.setIconClass('icon-mark-complete'); - setMsg(null); - hasReminder.enable(); - reminder.setDisabled(!hasReminder.checked); - } - } - - function setMsg(msgText){ - var last; - if(!msgText) { - msg.setDisplayed(false); - } else { - msg.setDisplayed(''); - msg.update(msgText); - } - description.anchorSpec.bottom = function(v){ - if(v !== last){ - last = v; - var h = msg.getHeight(); - return v - 95 - (h ? h + 8 : 0); - } - }; - form.doLayout(); - } - - function validate(){ - if(Ext.isEmpty(title.getValue(), false)){ - Ext.Msg.alert('Warning', 'Unable to save changes. A subject is required.', function(){ - title.focus(); - }); - return false; - } - return true; - } - - function getTask(){ - var t = opener.tx.data.tasks.lookup(taskId); - if(t){ - //workaround WebKit cross-frame date issue - fixDateMember(t.data, 'completedDate'); - fixDateMember(t.data, 'reminder'); - fixDateMember(t.data, 'dueDate'); - } - return t; - } - -}); - - -