Osm Admin: Contributor Installation
2 years ago ∙ 1 minute read
Yesterday, I tested the instructions for installing Osm Admin locally as a contributor.
2 years ago ∙ 1 minute read
Yesterday, I tested the instructions for installing Osm Admin locally as a contributor.
2 years ago ∙ 2 minutes read
Yesterday:
git push
.2 years ago ∙ 2 minutes read
Yesterday started as usual, planning new iteration, and then BAM! - one folk - Saif - joined the project. It made me correct the course a bit, and take care of potential contributors:
README
explains what the project is about, and how to get started as a contributor;2 years ago ∙ 3 minutes read
Yay! After implementing invalid data conversion, I finished the iteration #18 dedicated to diff-based migrations!
2 years ago ∙ 4 minutes read
I must say, it's a bit disturbing to implement the same thing for the third time. Still, the goal is to get it finished, and have it sustainable.
After the effort, the code has become su much easier to read!
2 years ago ∙ 1 minute read
I continued working on property diff algorithm that plans all the migration details.
2 years ago ∙ 3 minutes read
Yesterday, I finished implementing data conversion for int
and string
property types.
Then, I started refactoring it.
2 years ago ∙ 1 minute read
Last time, I pushed through string
property migrations and created a migration log.
Today, I continued solving data conversion issues.
2 years ago ∙ 4 minutes read
string
property migrations.2 years ago ∙ 3 minutes read
Yesterday, I finished writing int
property migrations. True, testing it is still a todo.
The major part of the code (type change, nullability and other attribute handling) will be reused in other property types.
2 years ago ∙ 3 minutes read
I refactored Property::migrate()
using additional Migration
classes. It's so much more convenient to compare property definition versions and generate migration SQLs!
New code structure already handles property explicitness changes.
2 years ago ∙ 7 minutes read
After enumerating what kind of changes can happen to a property, I started implementing the most hard one - changing property type.
2 years ago ∙ 3 minutes read
The Query::bulkUpdate()
method is implemented in the TDD way.
2 years ago ∙ 2 minutes read
My current goal is to get some minimum Osm Admin user interface and API working - just for one property, one data type, one UI control type, and then improve.
And there is a lot of space for improvement. The main areas are listed in this document.
I'd really appreciate a helping hand, so if you are into this sort of things, DM me on Twitter.
2 years ago ∙ 4 minutes read
I feel that both attributes decorating data classes, and object model parsed from it are too complex.
Let's have a fresh look at Osm Admin. If I had to start from scratch, how would it be?
2 years ago ∙ 2 minutes read
Recently, I implemented mass-editing in Osm Admin. It allows you to view and edit multiple objects in a single operation.
This article describes mass-editing of products in a typical e-commerce application.
2 years ago ∙ 3 minutes read
In the user interface, you can narrow displayed data using grid column filters, or filters displayed in the sidebar. To enable that, apply #[Filter\*]
attributes to class properties.
Applied filters appear in the URL query parameters, for example, .../edit?id=5+16+19
, and on the page.
You can apply filters not only to a grid page, but also to a form page - to mass edit all matching objects, or to an action URL (edit, delete, or custom) - to perform the action on all matching objects.
In the same way, you can apply filters to the API URLs in order to retrieve or modify matching objects in a script.
2 years ago ∙ 2 minutes read
The project repository, osmphp/admin
, follows a typical Osm Framework-based project structure. However, this repository is going to be a reusable Composer package, and has important structural differences presented in this article.
2 years ago ∙ 2 minutes read
This article introduces the core project concepts: data object, data class, data query, and data schema.
2 years ago ∙ 1 minute read
I'm super-excited to announce that I'm starting a new project codenamed "The Big Red Button". It's about defining application data structures and logic in PHP code, pressing the big red button (hence the codename), and getting fully functioning Admin Panel and API.
2021 ∙ September ∙ osm.software Website
2 years ago ∙ 2 minutes read
After pushing changes to GitHub, osm.software website is updated without any additional manual action. On push, GitHub executes the deployment script on the production server. Most changes are done to content only, and in this case, the deployment script only updates the search index. Otherwise, with the website being on maintenance, it additionally updates Composer and Node dependencies, builds JS and CSS assets, and runs the database migrations.
2021 ∙ August ∙ osm.software Website
2 years ago ∙ 1 minute read
Install PHP 8, MySql, Node, Gulp and ElasticSearch. Clone the project. Edit project settings. Finally, run few commands in the command line.
2021 ∙ July ∙ osm.software Website
3 years ago ∙ 1 minute read
Today, osm.software reached an important milestone - 100% Lighthouse score.
2021 ∙ July ∙ osm.software Website
3 years ago ∙ 1 minute read
This article explains how to manage and assign blog categories.