June 10, 2009

New TinyMCE Version

Filed under: OpsWeb — egoncasteel @ 4:58 pm

It had been some time since I had updated TinyMCE on OPSweb, but last month I finally got to it. I went from the last stable version of 2 to the latest stable release of 3, both with the appropriate versions of MCImageManager.  Paste from Word is the killer feature that prompted this upgrade. That and the bug that popped up in version 2.

“I don’t know why it just started doing that. I was going to upgrade it any way let see if we get lucky and it just gos away.”

I am impressed. The paste from Word tool works fairly well. This is something that many people had asked about. You could paste from Word in version 2, but Words idea of a HTML export is a nightmare.  If there is such a thing as anti-semantic HTML the crap the Word spits out would be it.

Oh and the bug went away.


May 16, 2009

OpsWeb and Google

Filed under: OpsWeb — egoncasteel @ 1:19 am

I had a chance to do updates on OpsWeb this week. I made a lot of little improvements here and there, but one of the nifty things I put in was Google search. Now when ever some one searches OpsWeb they also will get the results form Googles web search. Hopefully this will help with the problems that a are not limited just to our IT department. Things like Windows and Mac issues.

PS: OpsWeb now has over 750 articles

February 6, 2009

OpsWeb Tour Part 6: Tape Tracker

Filed under: OpsWeb — egoncasteel @ 11:32 pm

Tape Tracker tracks the location and movements of our back up tapes. We have several different pools and multiple drives. We also have off site storage of our tapes.

Our tapes are already barcoded for our off site storage. So to make things easy I used those barcodes as unique ids, and we use a bar code scanner to scan the tapes, new locations, and the type of transaction it is.

To make using the scanner easier I set it to append a tab character to the scanned barcode label. I used a little java script to have the web form submit after a tab character was read and the input field loses focus.

<form name='myform' class='standard_form' method='post' action='tapes_control.php?action=move&step=1'>
	<label for="docusafe_id">Docusafe ID:</label>
	<input id="focus" onKeyDown="if(event.keyCode==9)document.myform.submit()" type="text" name="record&#91;docusafe_id&#93;" size="20"value="">

February 3, 2009

Improved OpsWeb Articles App

Filed under: OpsWeb — egoncasteel @ 11:13 pm

There have been a lot of improvements to the articles app since the last time I posted about it. Most of them are little refinements, like adding the little article number form to the article display template to allow staff to quickly jump to a different article. A couple like adding the parser so people could link to other articles easier,  and  updating the searching were more involved.

The biggest change that the users notice are the changes to the portal. This was my first attempt at doing something original in Jquery. I wrote my own multi-level ordered list to dynamic tree script. It does a couple clever things like graying out articles you don’t have access to, but its pretty simple. I have enjoyed using Jquery. In the past I have shyed away from using Javascript, but Jquery improves it interface for handling DHTML so much it is almost like using a new languge.

Oh Almost forgot there are over 650 articles now. It has become the defacto place for IS documentation.

December 15, 2008

OpsWeb Tour Part 5: Print Log

Filed under: OpsWeb — egoncasteel @ 6:27 pm

Our department does the bulk of the printing for corporate. Up to 10,000 pages or more on some nights. So to keep tack of just how much printing we where doing I wrote the Print Log app.

The biggest challenge writing the Print Log app was the nature of the data we were taking in versus what we wanted out. What we wanted to know was how many pages we printed on each printer during the day and during the night. Printers don’t tell you this of course they just give you a count of how many pages they have printed in their life.

here is the table structure.

Field Type
ROWID int(11)
day int(11)
corpoplp2_am int(11)
corpoplp2_pm int(11)
corpoplp3_am int(11)
corpoplp3_pm int(11)
corpoplp4_am int(11)
corpoplp4_pm int(11)

So as you can see for each day there is an am and pm count for each printer. Now the am count is simple (pm page count) – (am page count) = the number of pages printed during the day. The tricky part is the pm count. It needs information fm the next row. (next day’s am page count) – (todays pm page count) = the number of pages printed that night. I chose to do all this count calculation on the  PHP instead of the SQL side.

public function get_totals_by_day_DB($num_of_days = 30){
    $DB = &amp;amp;ADONewConnection($this-&amp;gt;DNS);
    //$DB-&amp;gt;debug = true;

    $query = "
        SELECT * FROM (
            SELECT *
            FROM print_log
            ORDER BY day DESC
            LIMIT ".($num_of_days + 1)."
        ) AS temp
        ORDER BY day;

    $result = $DB-&amp;gt;Execute($query);

        return false;

    $out = array();
    $foo = $result-&amp;gt;GetRows();

    foreach ($foo as $today){
        $totals = array();
        $tomarrow = current($foo);
        $day = array();
        if ($tomarrow){
            foreach ($this-&amp;gt;printer_names as $name){
                //echo     $name."_night  = ".$today[$name."_am"]." - ".$yesterday[$name."_pm"]."\n";
                $day[$name."_night"] = $tomarrow[$name."_am"] - $today[$name."_pm"];
            foreach ($this-&amp;gt;printer_names as $name){
                //echo $name."_day  = ".$today[$name."_pm"]." - ".$today[$name."_am"]."\n";
                $day[$name."_day"] = $today[$name."_pm"] - $today[$name."_am"];
            $sum = 0;
            foreach ($day as $total){
                $sum = $sum + $total;
            $day['total'] = $sum;
            $out[$today['day']] = $day;
    return $out;

Other features of this app are the graph and the jquery table sort. The graph is made using the JpGraph library. The table sort is done using the Tablesorter jquery plugin.

November 10, 2008

OpsWeb Tour Part 4: Responsibilities

Filed under: OpsWeb — egoncasteel @ 2:28 am

Responsibilities is an app to track who is in charge of what. It list all of our programs and servers and gives primary and back up contacts for each.

This app uses a many to many relation ship for both the primary and backup contacts for each Responsibility. So as an example if there is a team of 6 that support an app then all 6 can be added to the primary contact.

October 8, 2008

OpsWeb Tour Part 3: Live Security

Filed under: OpsWeb — egoncasteel @ 7:09 pm

This is a pretty standard database app. It list all the security codes for our live system (Oracle Forms Point of Sales). There are a few interesting things here. This is the app that I wrote the alpha anchor function for. You can see a full write up on it here.

There is also some visual mark-up. Each record contains several bool fields. Things like is approval required, or is it high security. I converted these in to codes that are placed in the table row,  or change the color of the row.

The securities can ether be viewed in on large list or grouped by type.

November 29, 2007

OpsWeb Tour Part 2: Articles

Filed under: OpsWeb — Tags: — egoncasteel @ 12:54 pm

This is the second part of my tour of OpsWeb. In part 1 of my tour I showed you the Alerts module. This time I will show you the heart of the site the Article module.

The Article module is used to store, organize, manage, and share information used by the IS department. There are currently over 400 articles on OpswWeb. All of the articles are categorized, indexed and fully search able.  Articles on the site range from quick FAQ type articles to procedures on how to complete a task, and full documentation on different parts of the system.

One of the best feature of the Articles is the way it saves the articles. Each time a change is committed a diff of the old article and the revision is made and saved before the article is updated. So any past versions of the article can be seen and restored if needed.

November 26, 2007

OpsWeb Tour Part 1: Alerts

Filed under: OpsWeb — egoncasteel @ 2:39 pm

OpsWeb is an internal web site I am developing for American TV IS Department. Currently the sites has been live for 1.5 years and is used by around 50 members of the IS department staff. It provides a central location for IS documentation and information sharing between the 4 IS departments.

OpsWeb contains several modules and I am continuing to add to the site. The first module I will show you is the Alerts module. Alerts is the home page of the site. It functions as a place to share information that is based on a time period or announcements.

If you look at the screen shot below you will see what the page looks like. In the middle section of the page are the alerts and a short description. Clicking on the alerts title will take you inside to view the complete article where full mark up is allowed. To the right of the alerts new articles or modified articles are listed. The dates displayed above the alerts and articles can be changed by uses to find alerts for a different day or older article chandes. The user can enter a the new date in a large number of ways and the PHP strtodate function will translate it for them. This allows for delta dates like -10 days.

Create a free website or blog at