Circle Tasks 2: новая версия моего ToDo скрипта

18 сентября, 2009
circle tasks logo

Приветствую всех читателей!

На днях я закончил работу над второй версией ToDo скрипта и теперь хочу о нёй рассказать ;) И, самое главное, почитать ваши отзывы.

Т.к. после релиза первой версии прошло уже больше месяца, я кратко напомню, о чем идет речь.

Думаю, представить себе простейший ToDo список могут все. Это просто перечень дел с отметками «выполнено / не выполнено».

Но существует множество вариантов усовершенствования такого списка. Например, можно придумать различные состояния для задач и обозначить их какими-нибудь символами. Такой подход значительно упрощает работу с большими списками, т.к. вы можете сортировать и фильтровать задачи по различным критериями (состояние, дата).

Для этого скрипта я использовал одну из таких систем обозначений. Её разработал Sigurdur Armannsson. Подробно её описание вы найдете в предыдущей статье.

Сейчас речь пойдет именно об изменениях по сравнению с предыдущей версией.

Сразу дам ссылки на страницу с демо версией и архив.

демонстрационный пример

архив с исходным кодом

Для входа можно использовать demo аккаунт (логин: admin@todo.loc, пароль: password) или создать нового пользователя (ссылка «Регистрация» под. формой входа). Только учтите, что приложение позволяет изменять пароль, и если кто-то успеет изменить его до вас, то вам останется только регистрация.

1) Изменилось название :) . Теперь скрипт называется Circle Tasks. Это название ближе к названию оригинала.

2) Изменился дизайн. Тут изменения не очень большие. Подобраны более подходящие иконки для операций «Изменить» и «Удалить», перерисованы иконки состояний задач. Изменена цветовая гамма (надеюсь в лучшую сторону :) ).

3) Интерфейс. Вот здесь изменений больше всего.

Во-первых, я учел отличные рекомендации Steward и убрал inline редакторы. Сначала мне казалось, что они будут ускорять работу, но оказалось что это не так. Теперь чтобы изменить задачу нужно кликнуть по кнопке «Изменить», откроется форма, содержащая все необходимые поля.

update_note

Во-вторых, в меню добавлен пункт «Настройки». Он ведет на страницу, которая позволяет изменить язык приложения и пароль.

Предпочитаемый язык сохраняется отдельно для каждого пользователя в базе данных. Если точно определить язык не возможно (например, вы не залогинились), то используются данные из заголовка Accept-Language, который отправляет ваш браузер.

На данный момент доступны русский и английский языки.

4) Поддержка неограниченного количества пользователей.

Я хочу сразу пояснить, что это приложение задумывалось как однопользовательское. А «поддержка неограниченного количества пользователей» означает, что можно регистрировать сколько угодно пользователей, но ToDo список будет у каждого свой. Отправлять задания другим пользователям нельзя.

И, честно говоря, я сомневаюсь, что этот функционал нужно добавлять. Т.к. в результате получится совершенно другое приложение, более сложное и рассчитанное на другую аудиторию. Примеры таких приложений вы можете посмотреть здесь.

В общем, если я когда-нибудь и займусь такой разработкой, то это будет совершенно другое приложение, а не очередная версия Circle Tasks.

5) Уменьшился размер JS файлов. В основном за счет замены jQuery UI () на JQuery Tools.

Кстати я первый раз использовал JQuery Tools и впечатления самые положительные. Функционала, конечно, меньше, чем в jQuery UI, но его должно хватить в 90% случаев. Легко изменяется оформление компонентов. И главное преимущество – размер. В общем, всем рекомендую попробовать.

Об основных изменениях я рассказал. Если у вас возникли вопросы, замечания или пожелания, пишите, буду рад на них ответить!

Понравилась статья? Подписывайтесь на продолжение rss link !

Или на мой твиттер twitter link

]]>

Добавьте эту страницу в google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

]]>

Опубликовано в Web разработка, Разное Комментарии (67) »

]]>

Комментарии (67)

Вы можете отслеживать обсуждение записи с помощью RSS 2.0 rss link

Вы также можете оставить комментарий, или трекбек с Вашего сайта.

]]>
  1. bullder

    Как бы тестовый заход интересно сразу бы )

    А то регистрироваться приходиться

    • Тестовый вход есть
      логин: admin@todo.loc, пароль: password
      но проблема в том, что кто угодно может изменить пароль. База данных восстанавливается каждые 24 часа, но это проблему не решает. Если сегодня кто-то залогинился с тестовым аккаунтом до вас и изменил пароль, то вы сможете только зарегистрироваться.
      Я специально упростил регистрацию (никаких captcha и подтверждений на email).

  2. Привет. Сейчас гляну, тоже что-нибудь напишу :)

  3. 1. Есть скролл горизонтальный под 1024х768 FF. Не эстетично :)
    2. Иконки статусов по-моему неоднозначны, фиг знает. Хотя, это на первый взгляд так, если подумать вроде понимаешь что к чему.

    Вообще классно, надо туда ссылки еще вставить и форматирование текста.

  4. Be3

    Изменить запись -> Статус
    Ситуация: Случайно кликнул на статус
    Действия: Что бы оставить прежний статус, необходимо найти его в списке и выбрать.
    На мой взгляд не совсем юзер френдли. К тому же наличие в списке такого же статуса немного сбивает с толку +)

    Но это называется нашел к чему прикопаться +) В целом молодец, Вов!
    Вечерком почитаю код +)

    • Be3

      Случайно вывел в списке дел notice. Удалив из формы поле "Статус" с помощью firebug… а говорили все поля обязательные +)

  5. классный скриптик, спасибо!

  6. serator

    Не лучше ли сделать при заходе загрузку всех данных на json'е (формат на вкус и цвет) и далее строить / фильтрировать с помощью js. Данных-то с копейку по сути выходит.

    + в некоторых записях в нижней строке не видно нижних частей букв вроде "j", "q", "g" и подобных. Нижняя часть у них просто обрезается.

    + A PHP Error was encountered
    Severity: Notice
    Message: Undefined index:
    Filename: views/todolist.php
    Line Number: 26

    + У одной из записей статус "undefined".

    В целом задумка неплохая, но реализация пока хромает… Продолжайте развивать, возможно выйдет нечто толковое ;)

  7. Большое спасибо за отзывы!
    Я постараюсь в ближайшее время исправить ошибки.

  8. Отличная задумка и реализация.
    Но хотелось бы увидеть реализацию в виде программы. Быстро открыл, написал, свернул в трей.
    Установка на локалке наверное не выход.
    или возможно сменить немного дизайн и ставить на рабочий стол активным содержимым

  9. Как зарегиться на сайте? Что-то не догоняю ):

  10. Во-первых, я учел отличные рекомендации Steward и убрал inline редакторы. Сначала мне казалось, что они будут ускорять работу, но оказалось что это не так.

    Можно подробнее? Мне всегда казалось, что inline-редакторы и быстрее и удобнее (во всяком случае, для меня)…

    • Там проблема была не в inline редакторах как таковых, а в их реализации :) и в специфике приложения.
      Часто возникает необходимость изменить статус задачи и одновременно что-то добавить в описание. В таких случаях inline редакторы тормозили работу, т.к. выполнялось два отдельных запроса для сохранения изменений.

  11. Есть большая проблема, может здесь кто нибудь подскажет как ее решить, буду очень благодарен….
    Есть ли скрипт который автоматически удаляет все файлы из определенной папки на сервере скажем раз в 24 часа?

    • Зачем скрипт? Файлы можно удалить обычной командой из консоли.
      Создаете задачу в планировщике (Cron) и указываете нужную команду. А периодичность можно задать практически любую.

  12. Бакалавр – ну такой срипт за 2 минуты можно написать :)

    Владимир – ToDo скрипт – опять же очень к месту !
    пол интернета перерыл в поисках ОНЛАЙН (локальные не интересуют), остановился на супер простом виджете "Список дел" от гугла – но там как оказалось ограничение в 10 дел :) и снова проблема повисла в воздухе – а самому писать вообще в ломы :)

    а тут готовый скрипт – так вообще секьюрно получается – все твои дела, у тебя же на сервере :)

    ща заюзаю скриптец … !

  13. блин – ну ничего у меня с первого раза не работает :)
    на денвере вообще кнопка добавить задачу не пашет,
    на серваке при создании задачи дата обведена красным – типа неправильно
    2009-09-22
    и кнопка добавить не жмется :(
    вообще я без даты хотел бы задач понавтыкать !
    я задачи ставлю без дат – просто чтоб не забыть
    а вот возможность добавлять приоритеты для каждой задачи – это необходимо ! (хотябы звёздочками выделять)

  14. второй раз попробовал – ничего красным не обведено, кнопку "добавить" жму – а она не нажимается

  15. в демку тоже войти не получилось – ни со стандартной учеткой, ни с вновь зарегестрированной
    "Неверная пара логин/пароль, попробуйте ещё раз"

  16. Спасибо! Будем тестить. В связке с микроТУДУ от Тормаза думаю будет самое оно!

  17. вообще готовое приложение с открытым кодом – очень здорово, но мне как начинающему в CodeIgniter было бы здорово создание подобного приложения кратенько по шагам …
    есть какой нить материальчик подобный ?

  18. Не понял…

    Firefox определил, что сервер перенаправляет запрос на этот адрес таким образом, что он никогда не завершится.

  19. Поставился нормально вроде как. Но даже первую страницу не хочет открывать. Висит

    • Вы создавали виртуальный домен или ставили в отдельную папку?
      Попробуйте ввести адрес страницы вход
      http://localhost/main/login (никаких редиректов при этом отправляться не должно)
      Мне нужно больше информации чтобы понять в чем дело.

      • Ставил на поддомен на реальном хосте. Может чото с настройками PHP не так?

        • Скрипт не требует каких-то особых настроек. Если у вас работает CodeIgniter и есть доступ к MySQL, то все должно быть в порядке.

          Попробуйте просто установить CI, а потом замените папку application.

  20. Спасибо за програмку, все работает. Жду полноценной версии.

  21. VRuslan

    Пожелания для последующих версий:
    - реализация функций, подобных http://www.toodledo.com/info/index.php:
    1) создание представлений списка задач по периодам (на неделю, месяц…), для печати (в виде PDF-буклета);
    2) синхронизация с мобильными устройствами;

    - разделить маркеры:
    1) выполнения задачи (можно предложенные кружочки) и
    2) важности задачи (A-"важно и срочно", B-"важно", C-"срочно", D-"не важно и не срочно"), см. Тайм-менеджмент по Бодо Шеферу http://wayleader.blogspot.com/2009/04/blog-post_17.html
    ;

    Спасибо за скрипт!

    • Спасибо за советы! Я стараюсь учитывать пожелания, но при этом по возможности оставлять приложение максимально простым.

      Например. Очень часто важные дела автоматически являются срочными.

  22. VRuslan

    Владимир, у меня не добавляется новая задача – поля заполнил, дата введена в верном формате, но работает только кнопка "отмена".
    Что может быть не так?

  23. Запрос должен уходить на
    _http://demosites.org.ua/simpletasks/main/addnote
    В адресе не должно быть index.php, т.к. .htaccess его автоматически добавляет.
    Проверьте application/config/config.php

  24. Было-бы не плохо для таска не только дату редактировать но еще и время.
    Например Task 1 нужно выполнить до 09-09-2009 14:30.

    ПС.
    Скрипт понравился. =)

  25. Рекомендую сделать как в iPhone программе ToDo`s:
    - возможность переставлять по приоритетам (вверх или вниз)
    - три уровня важности (важный, средний и малый)
    - Заметки.

    Будет оень удобно.

    • Спасибо за совет.
      Но такие изменения приведут к изменению принципа работы. Например, сейчас можно указать состояние задачи "Важная" или "Требующая особого внимания" и выполнять поиск с учетом этих состояний. Если еще добавить и уровни важности, то, боюсь, возникнет путаница.

  26. Алексей

    При добавлении и удалении, работает кнопка отмена, кнопка добавить и удалить – работает, но окно не закрывает

    Fatal error: Call to undefined function json_encode() in /system/application/controllers/main.php on line 503

    • Это значит, что на сервере не включена поддержка json.
      Либо у вас PHP 4, либо ее просто нужно включить в php.ini.
      Варианты решения. Если нет доступа к php.ini и возможности поменять сервер, то можно использовать эту функцию.

      • Алексей

        Спасибо, получилось.
        Еще один вопрос: Возможно ли в настройках отключить регистрацию, для чего настройки smtp?

        • В конфиге отключение регистрации не предусмотрено, но вы можете заблокировать к ней доступ.
          Для этого в файле application\controllers\main.php измените строку 38.
          Текущий вариант
          $allowedPages = array('login', 'checklogin', 'register', 'checkregister');
          вам нужно
          $allowedPages = array('login');

          После этого можно убрать ссылку "Зарегистрироваться". Файл application\views\loginform.php
          Убрать нужно строку 14 в которой вызов
          anchor('main/register'…

        • Какие настройки smtp?

        • Алексей

          application\config\email.php – там :)

        • Это стандартные настройки фреймворка (CodeIgniter). С ним в комплекте идет библиотека для отправки email. В этом приложении не используется.

  27. Возникает ошибка при работе со скриптом. Не удаётся открыть даже main/login

    No input file specified.

    Пробовал ставить как в отдельную папку, так и на суб домен. Никак не могу найти где в скриптах берётся значение document_root, так как хочется всё же с папку установить =)

    • DocumentRoot – этот параметр указывается в настройках сервера (httpd.conf). В нем указывается папка в которой находятся ваши скрипты. Параметр может быть один для всего сайта или указываться отдельно для каждого виртуального домена.
      Т.е. вы должны распаковать архив с приложением в эту папку.

  28. В общем так на денвере кнопки "Добавить", "Удалить" и "Редактировать" не пашут, на выделенном сервере всё окей.

    Пробовал firebug'ом глянуть – при клике по кнопке запрос появится в консоле не появился :(

    как ещё можно попробовать диагностировать проблему ?

    $config['base_url'] = "http://todo/";

  29. почему то линк
    a href="http://todo/#" rel="#newnote"

    нихрена не обрабатывается нормально

  30. при загрузке страницы в фаербурге
    K.style is undefined строка 30
    L is null строка 31

    • Если кнопки не работают, значит, либо js файлы не загрузились, либо не назначены обработчики.
      Попробуйте поставить точку останова в firebug'е и посмотреть как скрипты выполняются.
      Кроме того, в firebug'е вы можете посмотреть содержимое всех скриптов, если вы этого содержимого не видите, значит скрипты не загружены.

  31. Гарик

    Скачал, установил на локалхосте (Денвер). При просмотре кода вдруг выяснил, что мой CuteFTP 8 не корректно отображает текст на русском (не понимает utf-8?). Победил таким способом: открывал ручками в блокноте каждый файл и копипастил в файл на локалхосте. Помогло – все формы стали отображаться на русском. Но. Возникла другая проблема (или продолжение прежней) – создаю новую запись, сохраняю её и до обновления страницы она остаётся читаемой, а после обновления страницы (после подгрузки из БД) русский текст превращается в кракозябры. При этом в БД он без кракозябр, а при отображении в форме становится кракозябрами.
    Помогите! Где ковырять?

    • Проверять все кодировки.
      1) файлов (это вы уже сделали);
      2) базы данных (нужно проверить не только кодировку таблиц, но и кодировку соединения);
      3) веб сервера.

]]>

Оставить комментарий

* - обязательные для заполнения поля

]]>