Friday, May 8, 2009

myTinyTodo v1.0 released

Main feature of new version is the password protection. You may protect your tasks with password specified in configuration file ($config['password']). Also you can allow the others to view your tasks but not to modify: $config['allow'] = "read";.

Configuration file 'config.php' moved to directory 'db'.

Changed format of language packs. Now packs can be used with new version of script even if new strings will be added for translation.

How to make your translation:
1. Copy and rename english language pack 'en.php' in directory 'lang'.
2. Modify text strings in this file (in UTF-8 encoding).
3. To use new language pack specify it in configuration file:
$config['lang'] = "your pack";.

myTinyTodo homepage

Update: New version released

23 comments:

  1. are you going to add contexts?

    ReplyDelete
  2. mudbrrk: Actually, no. Not yet. But I'm thinking about adding tags.

    ReplyDelete
  3. that would do nicely...keep up the good work and thanks

    ReplyDelete
  4. could you make it possible to search the content, too?

    That would be very nice :)

    And in addition, German translation:

    #Start

    class Lang extends DefaultLang
    {
    var $js = array
    (
    'actionNote' => "quickedit",
    'actionEdit' => "bearbeiten",
    'actionDelete' => "löschen",
    'taskDate' => array("function(date) { return 'hnzugefügt am '+date; }"),
    'confirmDelete' => "Sind Sie sicher?",
    'actionNoteSave' => "speichern",
    'actionNoteCancel' => "abbrechen",
    'error' => "FEHLER",
    'denied' => "Zugriff verweigert",
    'invalidpass' => "Falsches Passwort",
    'readonly' => "nur lesen",
    'logout' => "abmelden",
    );

    var $inc = array
    (
    'tab_newtask' => "Aufgaben",
    'tab_search' => "Suche",
    'btn_add' => "hinzufügen",
    'btn_search' => "Suche",
    'searching' => "Suchbegriff",
    'tasks' => "Aufgaben",
    'show_completed' => "Zeige abgeschlossene Aufgaben",
    'hide_completed' => "Verstecke abgeschlossene Aufgaben",
    'return_view' => "zurück zur Übersicht",
    'edit_task' => "Aufgabe editieren",
    'priority' => "Priorität",
    'task' => "Aufgabe",
    'note' => "quickedit",
    'save' => "speichern",
    'cancel' => "abbrechen",
    'tab_login' => "Anmelden",
    'password' => "Passwort",
    'btn_login' => "Anmelden",
    );
    }

    #End

    ReplyDelete
  5. Was too fast..

    THIS is the correct German version:

    #Start

    class Lang extends DefaultLang
    {
    var $js = array
    (
    'actionNote' => "quickedit",
    'actionEdit' => "bearbeiten",
    'actionDelete' => "löschen",
    'taskDate' => array("function(date) { return 'hinzugefügt am '+date; }"),
    'confirmDelete' => "Sind Sie sicher?",
    'actionNoteSave' => "speichern",
    'actionNoteCancel' => "abbrechen",
    'error' => "FEHLER",
    'denied' => "Zugriff verweigert",
    'invalidpass' => "Falsches Passwort",
    'readonly' => "nur lesen erlaubt",
    'logout' => "abmelden",
    );

    var $inc = array
    (
    'tab_newtask' => "Aufgaben",
    'tab_search' => "Suche",
    'btn_add' => "hinzufügen",
    'btn_search' => "Suche",
    'searching' => "Suchbegriff",
    'tasks' => "Aufgaben",
    'show_completed' => "Zeige abgeschlossene Aufgaben",
    'hide_completed' => "Verstecke abgeschlossene Aufgaben",
    'return_view' => "zurück zur Übersicht",
    'edit_task' => "Aufgabe editieren",
    'priority' => "Priorität",
    'task' => "Aufgabe",
    'note' => "Beschreibung",
    'save' => "speichern",
    'cancel' => "abbrechen",
    'tab_login' => "Anmelden",
    'password' => "Passwort",
    'btn_login' => "Anmelden",
    );
    }

    #End

    ReplyDelete
  6. This is Taiwan lang file (tw.php)

    =============================================

    class Lang extends DefaultLang
    {
    var $js = array
    (
    'actionNote' => "備註",
    'actionEdit' => "編輯",
    'actionDelete' => "刪除",
    'taskDate' => array("function(date) { return '建立於 '+date; }"),
    'confirmDelete' => "你確定嗎?",
    'actionNoteSave' => "儲存",
    'actionNoteCancel' => "移除",
    'error' => "發現錯誤",
    'denied' => "Access denied",
    'invalidpass' => "密碼錯誤",
    'readonly' => "唯讀",
    'logout' => "登出",
    );

    var $inc = array
    (
    'tab_newtask' => "新任務",
    'tab_search' => "搜尋",
    'btn_add' => "新增",
    'btn_search' => "搜尋",
    'searching' => "搜尋關於",
    'tasks' => "任務",
    'show_completed' => "列出已完成的任務",
    'hide_completed' => "隱藏已完成的任務",
    'return_view' => "返回任務清單",
    'edit_task' => "編輯任務",
    'priority' => "重要性",
    'task' => "任務",
    'note' => "注解",
    'save' => "儲存",
    'cancel' => "移除",
    'tab_login' => "登入",
    'password' => "密碼",
    'btn_login' => "登入",
    );
    }

    =============================================

    and this is China lang file (cn.php)

    =============================================

    class Lang extends DefaultLang
    {
    var $js = array
    (
    'actionNote' => "备注",
    'actionEdit' => "编辑",
    'actionDelete' => "删除",
    'taskDate' => array("function(date) { return '建立于 '+date; }"),
    'confirmDelete' => "你确定吗?",
    'actionNoteSave' => "储存",
    'actionNoteCancel' => "移除",
    'error' => "发现错误",
    'denied' => "Access denied",
    'invalidpass' => "密码错误",
    'readonly' => "唯读",
    'logout' => "登出",
    );

    var $inc = array
    (
    'tab_newtask' => "新任务",
    'tab_search' => "搜寻",
    'btn_add' => "新增",
    'btn_search' => "搜寻",
    'searching' => "搜寻关于",
    'tasks' => "任务",
    'show_completed' => "列出已完成的任务",
    'hide_completed' => "隐藏已完成的任务",
    'return_view' => "返回任务清单",
    'edit_task' => "编辑任务",
    'priority' => "重要性",
    'task' => "任务",
    'note' => "注解",
    'save' => "储存",
    'cancel' => "移除",
    'tab_login' => "登入",
    'password' => "密码",
    'btn_login' => "登入",
    );
    }

    ReplyDelete
  7. Please help me! I have this error:

    Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /home/guillem/public_html/todolist/class.db.sqlite.php on line 5

    What can be???

    ReplyDelete
  8. @Guillem: You're using PHP v4.x. This script requires PHP v5.

    ReplyDelete
  9. @RB: is tw.php a Chinese Traditional and cn.php - Chinese Simplified?

    ReplyDelete
  10. Здрасти!
    Hi!
    Konnichiwa!

    Thank you for your great app.
    If I have a choice, add Sub-tasks and Keyboard-Shortcuts please.
    Sorry for my engrish :)

    This is Japanese lang file(jp.php).

    ----
    class Lang extends DefaultLang
    {
    var $js = array
    (
    'actionNote' => "メモ",
    'actionEdit' => "編集",
    'actionDelete' => "削除",
    'taskDate' => array("function(date) { return '作成 '+date; }"),
    'confirmDelete' => "本当に削除しますか?",
    'actionNoteSave' => "セーブ",
    'actionNoteCancel' => "キャンセル",
    'error' => "エラーが発生しました",
    'denied' => "アクセスが拒否されました",
    'invalidpass' => "パスワードが違います",
    'readonly' => "閲覧のみ",
    'logout' => "ログアウト",
    );

    var $inc = array
    (
    'tab_newtask' => "タスク追加",
    'tab_search' => "検索",
    'btn_add' => "追加",
    'btn_search' => "検索",
    'searching' => "検索:",
    'tasks' => "タスク",
    'show_completed' => "完了タスクを見る",
    'hide_completed' => "完了タスクを隠す",
    'return_view' => "タスク一覧へ戻る",
    'edit_task' => "タスク編集",
    'priority' => "優先度",
    'task' => "タスク",
    'note' => "メモ",
    'save' => "セーブ",
    'cancel' => "キャンセル",
    'tab_login' => "ログイン",
    'password' => "パスワード",
    'btn_login' => "ログイン",
    );
    }
    ----

    ReplyDelete
  11. Sort the table by date or priority maybe a great feature

    ReplyDelete
  12. Hey Max, very nice script! I just installed it for a friend of mine. But she needs also deadlines. I thought about adding it by my self and send you the new code. Or are you allready working on it?

    Some Simple Nice Features i also would like to see:
    * set the priority @ adding new task
    * inline editing of the priority
    * make it aalso working without java script

    thanks again, florian

    ReplyDelete
  13. @Guillem: I plan to add some kind of sorting in v1.2 (v1.1 coming soon).

    @florian:
    >deadlines
    "Due dates" are in my to-do, maybe in v1.2

    >set the priority @ adding new task
    This will be in next version v1.1

    >inline editing of the priority
    this will be in v1.2

    >working without java script
    I plan to make version for mobiles without (or little) javascript (probably in v1.3)

    ReplyDelete
  14. Hi! This my Ukrainian translation - http://budulay.org.ua/i/myTinyTodo_10_uk.zip

    ReplyDelete
  15. Very handle little app, thanks for the effort!

    For me, multiple lists would be great. I realize I could create an installation for each list I want to manage, but this app doing multiples would be very cool. I'm using my own naming convention for that now "[projectname] - task". Maybe I'll write a greasemonkey script to allow sorting/filtering on the [projectname] convention.

    ReplyDelete
  16. French translation

    /*
    myTinyTodo French language pack
    Author: Sébastien Gardé
    */

    class Lang extends DefaultLang
    {
    var $js = array
    (
    'actionNote' => "note",
    'actionEdit' => "modifier",
    'actionDelete' => "supprimer",
    'taskDate' => array("function(date) { return 'ajouter le '+date; }"),
    'confirmDelete' => "Etes vous sure?",
    'actionNoteSave' => "sauver",
    'actionNoteCancel' => "annuler",
    'error' => "Une erreur est survenue",
    'denied' => "Accès Interdit",
    'invalidpass' => "Mauvais mot de passe",
    'readonly' => "Lecture seule",
    'logout' => "Déconnexion",
    );

    var $inc = array
    (
    'tab_newtask' => "Nouvelle tâche",
    'tab_search' => "Rechercher",
    'btn_add' => "Ajouter",
    'btn_search' => "Rechercher",
    'searching' => "Chercher",
    'tasks' => "Tâches",
    'show_completed' => "Afficher les tâches terminées",
    'hide_completed' => "Cacher les tâches terminées",
    'return_view' => "Retour à la vue des tâches",
    'edit_task' => "Editer une tâche",
    'priority' => "Priorité",
    'task' => "Tâche",
    'note' => "Note",
    'save' => "Sauver",
    'cancel' => "Annuler",
    'tab_login' => "Identifiant",
    'password' => "Mot de passe",
    'btn_login' => "Se connecter",
    );
    }

    ReplyDelete
  17. hi,

    at first thank's your job. Unhappy, it doesn't work for me. When I want to open the dba.php file it shows me something like that:
    "Disable password protection or Log in."; exit; } $dbclass = strtolower(get_class($db)); if(isset($_GET['createmysql'])) { if($dbclass != 'database_mysql') die("Not a Mysql connection"); $db->dq( "CREATE TABLE IF NOT EXISTS todolist ( `id` INT UNSIGNED NOT NULL auto_increment, `d` DATETIME NOT NULL, `compl` TINYINT UNSIGNED NOT NULL default 0, `title` VARCHAR(250) NOT NULL, `note` TEXT, `prio` TINYINT NOT NULL default 0, /* priority -3..0..+3 */ `ow` INT NOT NULL, /* order weight */ `poc` TINYINT UNSIGNED, /* percent of completition */ PRIMARY KEY(`id`) ) CHARSET=utf8 "); print "Done"; } elseif(isset($_GET['erasemysql'])) { if($dbclass != 'database_mysql') die("Not a Mysql connection"); $db->dq("TRUNCATE TABLE todolist"); print "Done"; } elseif(isset($_GET['createsqlite'])) { if($dbclass != 'database_sqlite') die("Not a SQLite connection"); $db->dq( "CREATE TABLE todolist ( id INTEGER UNSIGNED PRIMARY KEY NOT NULL, d DATETIME NOT NULL, compl TINYINT UNSIGNED NOT NULL default 0, title VARCHAR(250) NOT NULL, note TEXT, prio TINYINT NOT NULL default 0, ow INT NOT NULL, poc TINYINT UNSIGNED ) "); print "Done"; } elseif(isset($_GET['erasesqlite'])) { if($dbclass != 'database_sqlite') die("Not a SQLite connection"); $db->dq("DELETE FROM todolist"); print "Done"; } else { if($dbclass == 'database_mysql') { print 'Using Mysql"

    When I click on "Create Mysql Tables" it does nothing. If I look my mysql database, there is no table inside.

    What can I do ?

    Thanks

    Sébastien

    ReplyDelete
  18. Hi,

    ok in fact, it's working ... but it seems that my page is not the same that the demo page. I use a local webserver install by easyphp. Maybe I have to configure something in apache ?

    thanks for your help

    ReplyDelete
  19. Maybe, when this project is kind of done (v1.3 or something), I'd love to turn it into a WordPress plugin :)

    Keep up the good work, I'm looking forward the sorting function. *thumbsup*

    ReplyDelete
  20. if you click on edit, it looks like a new page is loaded. so some people might try to use the backbutton to go back.

    i added few lines of code, so you can use your backbutton.

    http://zeflo.com/lab/todo/ajax.js

    i also added
    $.historyInit(pageload); @ $().ready

    and i used

    http://zeflo.com/js/jquery.history.js

    ReplyDelete