Giter Site home page Giter Site logo

time's Introduction

CakePHP

CakePHP

CakePHP is a rapid development framework for PHP which uses commonly known design patterns like Active Record, Association Data Mapping, Front Controller and MVC. Our primary goal is to provide a structured framework that enables PHP users at all levels to rapidly develop robust web applications, without any loss to flexibility.

Some Handy Links

CakePHP - The rapid development PHP framework

Cookbook - THE Cake user documentation; start learning here!

Plugins - A repository of extensions to the framework

The Bakery - Tips, tutorials and articles

API - A reference to Cake's classes

CakePHP TV - Screen casts from events and video tutorials

The Cake Software Foundation - promoting development related to CakePHP

Get Support!

Our Google Group - community mailing list and forum

#cakephp on irc.freenode.net - Come chat with us, we have cake.

Q & A - Ask questions here, all questions welcome

Lighthouse - Got issues? Please tell us!

Bake Status

Cake Power

time's People

Contributors

curlyjason avatar dreamingmind avatar

Watchers

 avatar  avatar

time's Issues

Show time in graph

I would really like to play with graphing in a php environment. Not sure if it needs plug-ins or esoteric programming. But it would be nice to view each team members contribution toward the whole shown graphically

Update text height controls

Move the text height controls into the nav header, making them a little smaller.
Also save this preference into user preferences.

row status classing is ready for css

I've got the rows classing according to record status. Kickstart still puts odd/even alt class on the rows too, so you can do pairs of styles like this:

table.striped tr.open.alt {
    background-color: somecolor;
}
table.striped tr.open {
    background-color: somecolor;
}

One pair for each status:

  • open
  • review
  • closed

I derive the class in a very procedural way, so if you add more status levels, it will not be convenient. It would be much simpler to make the status field a string rather than a number derived from a Constant. Then the value could be used directly as the class and expansion would just require making new css to style the new status rows if desired.

task list is not retrieved through an ajax process

when changing the project in a time record the task list must be filtered for that project. This is currently done through a page reload!!

Ajax could get the correct list

Or all the lists could be sent to the page as json or hidden nodes. Then moved into place when needed.

The second way might not have all the current tasks if another user had edited them after the first user's page was loaded

thoughts on project/task collection

Projects can act as the collector object for Tasks in the same way that Watchers collects Watcher in ampfg.

Cake 3 Entities have this ability in a more natural way. We had to make our 3 collection and 3 unit classes manually and do things to assemble the collections. But in cake 3, the way queries work, you can automatically get a Project Entity object that contains a 'collection' of Task Entity objects.

The project object can make the set of Tasks into a Cake Collection. That is a utility class that can do many, many collectiony things (like super Hash class).

The Collection class relies heavily on passing arguments that are Callable. The book examples show these as anonymous functions defined right in the call. It looks very much like javascript calls we are familiar with.

It's dense material but well worth experimenting with if you need to do any filtering, merging, intersecting or manipulation of a collection.

New Project Interface

Since there is a fair amount of hookup to register a new project (to make the iframe ui work), there is going to have to be some layout to deal with making the necessary records.

But it would also be nice to be able to create a new project on the fly by typing its name into the select. Then some background process would detect the absence of the other supporting records and auto-create some stubs records that would later be filled in.

Automated login from dev systems

  • Create a project hashes table with the following columns
    • project_login - the login identifier that can be obtained from the project system (this could be the username or the user id or some other identifying element)
    • project_id - the id of the project in the time tracking system
    • hash - a hash of the project_login and the project_id
    • user_id - the associated user in the time tracking system
  • Create an interface to create the hashes from entries in crud interface with project_login, project_id and user_id.
    • Use custom salt for this that can also be used for the portable class, below
  • Write a basic portable class for insertion in all working projects
    • include the salt used in the hash creation interface, above
    • include a project_id constant containing the timekeeping system's project id for this project
    • has one function, which returns a hash based upon the included project_id constant and whatever user identifier can be captured from the system
  • Write a timekeeping module for working projects
    • iframe based
    • returns the timekeeping website itself
    • adds the hash created by the portable class static function, above
  • In timekeeper
    • Write a function that automatically logs the user in and sets a default project when the user arrives with an identifiable hash

Trend Line - Project

A basic calculation on the project's time estimate could extrapolate the amount of contribution expected each day, or over a period of time. This would mean that you can see when you're pushing past the norm, when you're slacking and how you are to date.

I live in fear of this feature.

Create a way to edit past time records

I'm thinking something like showing the most recent five or 10 on the home right under the card, and include an edit link. Ajax in kinda thing. Stub out security routine to later control this stuff. Good place to play with auth.

New project doesn't get appropriate status

When you create a new project, it does not get set to the active status.
Also, on the edit page for projects, there is no list provided to allow you to select appropriate statuses.

Time Edit (basic crud method) is pulling wrong data for record

The User and Project fields are becoming some wrong data, possibly the default values.

The query that pulls data for this edit layout should be examined to insure it is getting a complete record. If it is, the view must be mis-handling the data when rendering the form.

thoughts on ajax of tasks

I've been trying to better understand how to use caching to improve performance.

Caching the tasks for a project seems like a good idea since we need to ajax the tasks into the pages on the fly. Good place for speed. But the question for me is always "how do you make sure the cache is up-to-date". I don't have experience to fall back on.

The cache of Tasks for a project is invalid when any task in the set gets changed. So that implies some afterSave(?) process that determines which cache is effected and clears it.

And when making a query to get the tasks for a project, the cache is retrieved, checked, the query made and cached if need-be, then the result (found cache or query) is returned.

So maybe only two places have to do work. Are these Task Table methods? or is one something in the controller?

Another idea about Task caching, this might be a good thing for a memcache rather than a file cache. There is not a lot of them so the server memory wouldn't be too stressed. But they could be MUCH FASTER for the ajax calls that retrieve them

Project dropdown list

Need a method to pull this list.

Is this a Project query? or DISTINCT Time query?

DISTINCT Time accounts for the fuzzy data we have right now.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.