CodeIgniter Forums
CodeExtinguisher 2.0 Release Candidate 14.2 - Printable Version

+- CodeIgniter Forums (https://forum.codeigniter.com)
+-- Forum: Archived Discussions (https://forum.codeigniter.com/forumdisplay.php?fid=20)
+--- Forum: Archived Libraries & Helpers (https://forum.codeigniter.com/forumdisplay.php?fid=22)
+--- Thread: CodeExtinguisher 2.0 Release Candidate 14.2 (/showthread.php?tid=8451)

Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49


CodeExtinguisher 2.0 Release Candidate 14.2 - El Forum - 06-05-2008

[eluser]gusa[/eluser]
what's the meaning of codexcontroller:firstitem?
thanks!

i know that it retrieves the first item to be displayed in the Overview page (http://codeextinguisher.pbwiki.com/CodexController) but i still don't understand what's for.


CodeExtinguisher 2.0 Release Candidate 14.2 - El Forum - 06-05-2008

[eluser]Majd Taby[/eluser]
gusa, CodeExtinguisher _used_ to have server side pagination, but i convertd it to client-side pagination so that ordering and pagination would work in a more intuitive way. Adding db pagination is actually very easy. Here's what you want to modify:

1) codexcontroller:ConfusedetupQuery
2) Remove the pagination code from view_modes/table.php and add your own.


CodeExtinguisher 2.0 Release Candidate 14.2 - El Forum - 06-05-2008

[eluser]gusa[/eluser]
excellent! you are awesome.

another challenge to codex:

suppose there are two tables defined in my database: SALES(sa_id, ...) and LINES_OF_SALE(ls_id, ls_sa_id, ...). the second table has a foreign relationship with the first one, throw the field ls_sa_id.

when i edit a sale (in the sales form), i want to have access to the related LINES_OF_SALE. in other words, the perfect solution would be to have a sublist inside sale's form with the lines of sale. then i could edit one line of sale and get back to the corresponding sale.

if that's not possible, it's ok to me if i have a link (inside sales form) to the lines_of_sale controller but with the restriction that lines_of_sale should only display the data related to the editing sale.

is it possible to implement one of these solutions in codex?
maybe you have in mind another solution.


CodeExtinguisher 2.0 Release Candidate 14.2 - El Forum - 06-05-2008

[eluser]Majd Taby[/eluser]
Have you looked at the DbDropDown, ManyToMany and OneToMany plugins?


CodeExtinguisher 2.0 Release Candidate 14.2 - El Forum - 06-05-2008

[eluser]gusa[/eluser]
[quote author="jTaby" date="1212707847"]Have you looked at the DbDropDown, ManyToMany and OneToMany plugins?[/quote]

yeah. but what if LINES_OF_SALE has thousand of rows per each SALE?


CodeExtinguisher 2.0 Release Candidate 14.2 - El Forum - 06-05-2008

[eluser]Majd Taby[/eluser]
what do you mean? the UI was changed in RC8 (I think) to handle that use case.


CodeExtinguisher 2.0 Release Candidate 14.2 - El Forum - 06-05-2008

[eluser]gusa[/eluser]
[quote author="jTaby" date="1212708463"]what do you mean? the UI was changed in RC8 (I think) to handle that use case.[/quote]

ok. i'm not being clear enough.
maybe one example helps:

Code:
/*
SALES
+----------+----------+---------------+
| sa_id    | sa_obs   | sa_date       |
+----------+----------+---------------+
| 1        | bla      | 01/01/2008    |
+----------+----------+---------------+
| 2        | bla2     | 03/12/2008    |
+----------+----------+---------------+
| 3        | bla3     | 04/09/2008    |
+----------+----------+---------------+

LINES_OF_SALE

+----------+----------+---------+----------+
| ls_id    | ls_sa_id | ls_desc | ls_price |
+----------+----------+---------+----------+
| 1        | 1        | ...     | ...      |
+----------+----------+---------+----------+
| 2        | 1        | ...     | ...      |
+----------+----------+---------+----------+
| ...      | 1        | ...     | ...      |
+----------+----------+---------+----------+
| 100      | 2        | ...     | ...      |
+----------+----------+---------+----------+
| 101      | 2        | ...     | ...      |
+----------+----------+---------+----------+
| 102      | 2        | ...     | ...      |
+----------+----------+---------+----------+
| ...      | 2        | ...     | ...      |
+----------+----------+---------+----------+
| 514      | 3        | ...     | ...      |
+----------+----------+---------+----------+
| 515      | 3        | ...     | ...      |
+----------+----------+---------+----------+
| 516      | 3        | ...     | ...      |
+----------+----------+---------+----------+
| ...      | 3        | ...     | ...      |
+----------+----------+---------+----------+
*/

suppose i want to edit sale #1.
if i choose onetomany plugin, in the left pane i'll see all the rows from LINES_OF_SALE, which is exactly what i don't want. why should i see the lines of sales of sales #2 and #3. there's another issue: onetomany plugin (as far as i'm concerned) does not allow the user to edit the data.

the custom solution to this issue is to have a subform (sometimes called subfile). when the user adds or edits a sale, you can also add, edit or delete a line of sale (but only those that belongs to the sale).

taking in account that i have a deadline next week, i was wondering if i can find another solution (for example, to put a link in the sale's form to the corresponding lines of sale).

i hope i was clear enough this time.


CodeExtinguisher 2.0 Release Candidate 14.2 - El Forum - 06-05-2008

[eluser]Majd Taby[/eluser]
Given your deadline, Here's what I would do:

1) Modify the one-to-many plugin so that you can add your own WHERE clause to the query through YAML. The changes to plugins/onetomany.php and plugins/relationalcontainer.php should be minimal.

2) As far as editing, deleting, you're correct, CodeExtinguisher doesn't support that, but now that you mention it, it would be a very nice addition. I can't promise you I can deliver on it on a week though. As an alternative, you can modify the RelationalContainer::getHTML() method to add a link that takes you to page to manage the related data.

I know it's not an optimal solution, but it works and if it's an option, you can update your clients' codex setup at a later time.


CodeExtinguisher 2.0 Release Candidate 14.2 - El Forum - 06-05-2008

[eluser]gusa[/eluser]
[quote author="jTaby" date="1212713779"]Given your deadline, Here's what I would do:

1) Modify the one-to-many plugin so that you can add your own WHERE clause to the query through YAML. The changes to plugins/onetomany.php and plugins/relationalcontainer.php should be minimal.

2) As far as editing, deleting, you're correct, CodeExtinguisher doesn't support that, but now that you mention it, it would be a very nice addition. I can't promise you I can deliver on it on a week though. As an alternative, you can modify the RelationalContainer::getHTML() method to add a link that takes you to page to manage the related data.

I know it's not an optimal solution, but it works and if it's an option, you can update your clients' codex setup at a later time.[/quote]

ok, great. thanks.
however, my intuition says that there's another solution.
let's say that i have two controllers: sales and lines_of_sale.
i want to access lines_of_sale from the first controller, by:

1) putting a link in sales' overview table to the second controller (the url could be lines_of_sale/<sa_id>, where <sa_id> is the primary key of SALES),
2) lines_of_sale must restrict the search somehow ($this->table_access_restriction?),
3) once in lines_of_sale, the add and edit forms should remember the original call.

if that's possible, then i can save a lot of work.

the question is how can i hack codex to allow me to do that Big Grin


CodeExtinguisher 2.0 Release Candidate 14.2 - El Forum - 06-06-2008

[eluser]abmcr[/eluser]
[quote author="gusa" date="1212716173"]
however, my intuition says that there's another solution.
let's say that i have two controllers: sales and lines_of_sale.
i want to access lines_of_sale from the first controller, by:

1) putting a link in sales' overview table to the second controller (the url could be lines_of_sale/<sa_id>, where <sa_id> is the primary key of SALES),
2) lines_of_sale must restrict the search somehow ($this->table_access_restriction?),
3) once in lines_of_sale, the add and edit forms should remember the original call.

if that's possible, then i can save a lot of work.

the question is how can i hack codex to allow me to do that Big Grin[/quote]

Hello gusa: i have the same problem and i have made as you suggest.... but not all work. IN few words, in the overview mode, i create a link to the second table (in your case lines_of_sale) with
Code:
$config = array(
                    'db_table' => 'example',
                    'form_setup' => $this->spyc->YAMLLOAD($this->codexadmin->getDefinitionFileName('example_form')),
                    'controller_name' => 'Example',
                    'primary_key' => 'my_id',
                    'display_fields'=>array('textbox_test','checkbox_test','related2'),
                    'order_by' => 'textbox_test',
                    'order_type' => 'DESC',
                    'table_access_restriction'=>array('my_id '=>$this->uri->segment(3)),
                    'rules'=>$rules
                    );
        $this->setConfig($config);
At this point i see the related data..... it is necessary, at this point, to hack the code for remembre the ur segment, when, after an edit, i go back to the overview mode, and (this is very important) for insert the uri if an new record is added...
I want to edit the codex_crumbs.php view for insert in thsi view the uri->segment, but i have not try (no time this days :-( )