Wooot. Finishing this today

This commit is contained in:
Karl Cordes 2011-05-19 09:46:22 +10:00
parent ea47dcf30e
commit f691abc6db
13 changed files with 235 additions and 97 deletions

1
.gitignore vendored
View file

@ -14,3 +14,4 @@ emails/*
nbproject/*
processed_vaultmsgs/*
vaultmsgs/*
cake_eclipse_helper.php

View file

@ -44,4 +44,7 @@ Router::connect('/', array('controller' => 'enquiries', 'action' => 'index'));
* developement.
*/
Router::connect('/tests', array('controller' => 'tests', 'action' => 'index'));
?>

View file

@ -3,6 +3,7 @@ class DocPagesController extends AppController {
var $name = 'DocPages';
var $helpers = array('Html', 'Form');
}

View file

@ -36,6 +36,18 @@ class DocumentsController extends AppController {
$this->data = $document;
$this->set('docType',$docType);
$this->set('principles', $this->Document->LineItem->Product->Principle->find('list'));
}
function getProducts($principleID = null) {
$this->layout = 'ajax';
if($principleID == null) {
echo "INVALID PRINCIPLE ID";
}
}
/**
@ -112,23 +124,9 @@ class DocumentsController extends AppController {
}
/* function add() {
if (!empty($this->data)) {
$this->Document->create();
if ($this->Document->save($this->data)) {
$this->Session->setFlash(__('The Document has been saved', true));
$this->redirect(array('action'=>'index'));
} else {
$this->Session->setFlash(__('The Document could not be saved. Please, try again.', true));
}
}
$customers = $this->Document->Customer->find('list');
$enquiries = $this->Document->Enquiry->find('list');
$jobs = $this->Document->Job->find('list');
$users = $this->Document->User->find('list');
$contacts = $this->Document->Contact->find('list');
$this->set(compact('customers', 'enquiries', 'jobs', 'users', 'contacts'));
}*/
function edit($id = null) {
if (!$id && empty($this->data)) {
@ -136,6 +134,11 @@ class DocumentsController extends AppController {
$this->redirect(array('action'=>'index'));
}
if (!empty($this->data)) {
$docID = $this->data['Document']['id'];
$this->Document->DocPage->deleteAll(array('document_id'=>$docID));
$this->Document->DocPage->updateCounterCache(array('document_id'=>$docID));
if ($this->Document->saveAll($this->data)) {
$this->Session->setFlash(__('The Document has been saved', true));
$this->redirect(array('action'=>'index'));

View file

@ -10,13 +10,11 @@ class DocPage extends AppModel {
'foreignKey' => 'document_id',
'conditions' => '',
'fields' => '',
'order' => ''
'order' => '',
'counterCache' => 'doc_page_count'
)
);
var $order = 'DocPage.page_number ASC';
var $order = 'page_number ASC';
}
?>

View file

@ -25,7 +25,8 @@ class Document extends AppModel {
'DocPage' => array(
'className'=> 'DocPage',
'foreignKey' => 'document_id'
'foreignKey' => 'document_id',
'order' => 'DocPage.page_number ASC'
)
);

View file

@ -10,6 +10,7 @@ echo $paginator->counter(array(
<tr>
<th><?php echo $paginator->sort('id');?></th>
<th><?php echo $paginator->sort('created');?></th>
<th>#Pages</th>
<th><?php echo $paginator->sort('user_id');?></th>
<th class="actions"><?php __('Actions');?></th>
</tr>
@ -28,13 +29,16 @@ foreach ($documents as $document):
<td>
<?php echo $document['Document']['created']; ?>
</td>
<td>
<?=$document['Document']['doc_page_count'];?>
</td>
<td>
<?php echo $html->link($document['User']['username'], array('controller' => 'users', 'action' => 'view', $document['User']['id'])); ?>
</td>
<td class="actions">
<?php echo $html->link(__('View', true), array('action' => 'view', $document['Document']['id'])); ?>
<?php echo $html->link(__('Edit', true), array('action' => 'edit', $document['Document']['id'])); ?>
<?php echo $html->link(__('Delete', true), array('action' => 'delete', $document['Document']['id']), null, sprintf(__('Are you sure you want to delete # %s?', true), $document['Document']['id'])); ?>
</td>
</tr>
<?php endforeach; ?>
@ -45,18 +49,3 @@ foreach ($documents as $document):
| <?php echo $paginator->numbers();?>
<?php echo $paginator->next(__('next', true).' >>', array(), null, array('class' => 'disabled'));?>
</div>
<div class="actions">
<ul>
<li><?php echo $html->link(__('New Document', true), array('action' => 'add')); ?></li>
<li><?php echo $html->link(__('List Users', true), array('controller' => 'users', 'action' => 'index')); ?> </li>
<li><?php echo $html->link(__('New User', true), array('controller' => 'users', 'action' => 'add')); ?> </li>
<li><?php echo $html->link(__('List Invoices', true), array('controller' => 'invoices', 'action' => 'index')); ?> </li>
<li><?php echo $html->link(__('New Invoice', true), array('controller' => 'invoices', 'action' => 'add')); ?> </li>
<li><?php echo $html->link(__('List Quotes', true), array('controller' => 'quotes', 'action' => 'index')); ?> </li>
<li><?php echo $html->link(__('New Quote', true), array('controller' => 'quotes', 'action' => 'add')); ?> </li>
<li><?php echo $html->link(__('List Purchase Orders', true), array('controller' => 'purchase_orders', 'action' => 'index')); ?> </li>
<li><?php echo $html->link(__('New Purchase Order', true), array('controller' => 'purchase_orders', 'action' => 'add')); ?> </li>
<li><?php echo $html->link(__('List Line Items', true), array('controller' => 'line_items', 'action' => 'index')); ?> </li>
<li><?php echo $html->link(__('New Line Item', true), array('controller' => 'line_items', 'action' => 'add')); ?> </li>
</ul>
</div>

View file

@ -19,5 +19,16 @@ switch($docType) {
break;
}
?>
<div id="pageContentFactory">
<?
echo $form->input("DocPage.content", array('class'=>'page', 'label'=>'Page', 'between'=>'<button class="removePage">X</button>'));
?>
</div>
<div id="lineItemModal">
<? echo $form->input('Product.principle_id', array('id'=>'principleSelect', 'label'=>'Principle','empty'=>'Select Principle'));?>
</div>

View file

@ -1,4 +1,9 @@
<h2>Quote: <?=$enquiry['Enquiry']['title']?></h2>
<h2>Quote: <?=$enquiry['Enquiry']['title']?> <?
if($document['Quote']['revision'] > 0) {
echo "Revision {$document['Quote']['revision']}";
}
?>
</h2>
<?
echo $form->create('Document',array('type'=>'post','action'=>'edit'));
@ -6,27 +11,27 @@ echo $form->input('Document.id');
?>
<div class="docButtons">
<button id="addPage">Add Page</button>
<button id="addPage">Add Content Page</button>
<button id="addLineItem">Add Line Item</button>
</div>
<div class="pages">
<?php foreach($document['DocPage'] as $key => $page):?>
<div class="docPage">
<div class="docPage">
<?=$form->input("DocPage.{$key}.id");?>
<?=$form->input("DocPage.{$key}.content", array('class'=>'page', 'label'=>'Page '.$page['page_number'], 'between'=>'<button class="removePage">X</button>'));?>
<?=$form->input("DocPage.{$key}.document_id", array('type'=>'hidden'));?>
<?=$form->input("DocPage.{$key}.page_number", array('type'=>'hidden'));?>
</div>
<?=$form->input("DocPage.{$key}.id");?>
<?=$form->input("DocPage.{$key}.content", array('class'=>'page', 'label'=>'Page'));?>
<?=$form->input("DocPage.{$key}.document_id", array('type'=>'hidden'));?>
<?endforeach?>
</div>
<?endforeach?>
<?=$form->end('Save');?>
<? debug($this->data);?>
<? debug($enquiry);?>
<?php debug($document);?>
<?php debug($docType);?>
<? //debug($this->data);?>
<? //debug($enquiry);?>
<?php debug($document);?>
<?php //debug($docType);?>

View file

@ -1495,4 +1495,13 @@ div.address span {
left: 50%;
top: 50%;
}
.pages {
width: 50%;
}
.pages label {
display: inline;
padding-right: 0.2em;
}

View file

@ -282,23 +282,9 @@ $(function() {
newInvoiceForm.prepend(closeButton);
$("#invoices").append(newInvoiceForm);
}
function getCakeID(model, count, field) {
return model+count+capitalizeFirstLetter(field);
}
function getCakeName(model, count, field) {
return 'data['+model+']['+count+']['+field+']';
}
function capitalizeFirstLetter(string) {
return string.charAt(0).toUpperCase() + string.slice(1);
}
/**
* A more generic way of handling the HABTM <ul> <li>[REMOVE BUTTON] NAME [HIDDEN INPUT]</li> </ul>
@ -325,23 +311,6 @@ $(function() {
}
function getSelectedID(elementID) {
var id;
$(elementID+" :selected").each(function(i, selected) {
id = this.value;
});
return id;
}
function getSelectedText(elementID) {
var text;
$(elementID+" :selected").each(function(i, selected) {
text = $(selected).text();
});
return text;
}
/**
* Resets the Form to its default site
*/

View file

@ -1,16 +1,133 @@
$(function() {
$("#addPage").button().click(function() {
alert("LETS ADD STUFFFF");
return false;
$( "#lineItemModal" ).dialog({
autoOpen: false,
height: 900,
width: 600,
modal: true,
buttons: {
"Add Line Item": function() {
//var thisShipmentInputs = $('#ShipmentAddForm').find('input,select,textarea');
$.post('/line_items/ajax_add', null, function(data) {
$( "#lineItemModal" ).dialog('close');
//window.location.reload(); //Change this to fetch a new copy of the table and update a <div>.
});
},
Cancel: function() {
$( this ).dialog( "close" );
//$("#ShipmentAddForm")[0].reset();
$("#principlesList").empty();
}
},
close: function() {
$("#importFields").hide();
$("#principle").hide();
}
});
$("#addLineItem").button().click(function() {
//Setup CKEditor toolbars
var config = {
toolbar:[
['Cut','Copy','Paste','PasteText','PasteFromWord','-','Scayt'],
['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],
['Image','Table','HorizontalRule','SpecialChar'],
'/',
['Styles','Format'],
['Bold','Italic','Strike'],
['NumberedList','BulletedList','-','Outdent','Indent','Blockquote'],
['Link','Unlink'],
['Maximize','-','About']
]
};
$("#pageContentFactory").hide();
//Add a new Page Element.
$("#addPage").button().click(function(event) {
event.preventDefault();
$('.page').ckeditor(function() {
this.destroy();
});
var newPage = $('#pageContentFactory').clone();
newPage.removeAttr('id');
newPage.show();
var pageCount = $('.docPage').length;
//alert(pageCount);
pageCount++;
var model = 'DocPage';
var field = 'content';
var ID = getCakeID(model,pageCount, field);
var name = getCakeName(model, pageCount, field);
newPage.find('label').attr('for', ID);
newPage.find('textarea').attr('id', ID).attr('name', name);
newPage.addClass('docPage');
var hiddenName = getCakeName(model, pageCount, 'page_number');
newPage.append('<input type="hidden" name="'+hiddenName+'" value="'+pageCount+'">');
$('.pages').append(newPage);
$('.page').ckeditor(config);
return false;
});
$('.page').ckeditor();
//Open the LineItem dialog
$("#addLineItem").button().click(function() {
$( "#lineItemModal" ).dialog('open');
});
return false;
});
$("#principleSelect").change(function() {
alert("OH YEAH LETS DO THIS");
});
// Initialize the editor.
// Callback function can be passed and executed after full instance creation.
$('.page').ckeditor(config);
//Remove this Page
$(".removePage").live('click',function() {
$('.page').ckeditor(function() {
this.destroy();
});
$(this).parents(".docPage").remove();
$('.page').ckeditor(config);
});
});

View file

@ -14,7 +14,38 @@ $(function() {
})
.ajaxStop(function() {
$(this).hide();
})
;
});
});
});
function getCakeID(model, count, field) {
return model+count+capitalizeFirstLetter(field);
}
function getCakeName(model, count, field) {
return 'data['+model+']['+count+']['+field+']';
}
function capitalizeFirstLetter(string) {
return string.charAt(0).toUpperCase() + string.slice(1);
}
function getSelectedID(elementID) {
var id;
$(elementID+" :selected").each(function(i, selected) {
id = this.value;
});
return id;
}
function getSelectedText(elementID) {
var text;
$(elementID+" :selected").each(function(i, selected) {
text = $(selected).text();
});
return text;
}