Index: trunk/extensions/Storyboard/storyboard.css |
— | — | @@ -72,6 +72,29 @@ |
73 | 73 | } |
74 | 74 | |
75 | 75 | /** |
| 76 | + * Css for storyreview |
| 77 | + */ |
| 78 | + |
| 79 | +.storyreviewboard { |
| 80 | + border: 1px solid #ddd; |
| 81 | +} |
| 82 | +.storyreviewboard .storyboard-batch { |
| 83 | + margin: 0; |
| 84 | + padding: 0; |
| 85 | +} |
| 86 | +.storyreviewboard .storyboard-box { |
| 87 | + display: inline-block; |
| 88 | + border: 1px solid #eee; |
| 89 | + width: 99%; |
| 90 | + min-height: 100px; |
| 91 | + margin: 5px; |
| 92 | +} |
| 93 | +.storyreviewboard .storyboard-empty .storyboard-box { |
| 94 | + border: 1px solid #ddd; |
| 95 | + background: #FCFCFC url(images/storyboard-loader.gif) no-repeat scroll center center; |
| 96 | +} |
| 97 | + |
| 98 | +/** |
76 | 99 | * Css for <storyboard> tags |
77 | 100 | */ |
78 | 101 | .storyboard { |
Index: trunk/extensions/Storyboard/specials/StoryReview/StoryReview_body.php |
— | — | @@ -63,8 +63,8 @@ |
64 | 64 | <div id="storyreview-tabs"> |
65 | 65 | <ul> |
66 | 66 | <li><a href="#$unpublished" id="$unpublished-tab">$unpublished</a></li> |
67 | | - <li><a href="#$published" id="$published-tab">$published</a></li> |
68 | | - <li><a href="#$hidden" id="$hidden-tab">$hidden</a></li> |
| 67 | + <!--<li><a href="#$published" id="$published-tab">$published</a></li> |
| 68 | + <li><a href="#$hidden" id="$hidden-tab">$hidden</a></li>--> |
69 | 69 | </ul> |
70 | 70 | <div id="$unpublished"></div> |
71 | 71 | <div id="$published"></div> |
— | — | @@ -184,6 +184,8 @@ |
185 | 185 | |
186 | 186 | private function getStateActionButton( $storyId, $action, $messageKey ) { |
187 | 187 | $message = htmlspecialchars( wfMsg( $messageKey ) ); |
| 188 | + $storyId = Xml::escapeJsString( $storyId ); |
| 189 | + $action = Xml::escapeJsString( $action ); |
188 | 190 | return <<<EOT |
189 | 191 | <button type="button" onclick="stbDoStoryAction( this, $storyId, '$action' )">$message</button> |
190 | 192 | EOT; |
Index: trunk/extensions/Storyboard/storyboard.js |
— | — | @@ -115,13 +115,34 @@ |
116 | 116 | function stbAddStories( $storyboard, query ) { |
117 | 117 | // Remove the empty boxes. |
118 | 118 | $storyboard.html( '' ); |
119 | | - |
| 119 | + |
120 | 120 | // TODO: create the review blocks html with jQuery |
121 | 121 | for ( var i in query.stories ) { |
122 | 122 | var story = query.stories[i]; |
123 | 123 | var $storyBody = jQuery( "<div />" ).addClass( "storyboard-box" ); |
124 | 124 | |
125 | | - $storyboard.append( $storyBody ); |
| 125 | + var $header = jQuery( "<div />" ).addClass( "story-header" ).appendTo( $storyBody ); |
| 126 | + jQuery( "<div />" ).addClass( "story-title" ).text( story.title ).appendTo( $header ); |
| 127 | + |
| 128 | + var textAndImg = jQuery( "<div />" ).addClass( "story-text" ).text( story["*"] ); |
| 129 | + |
| 130 | + if ( story.imageurl ) { |
| 131 | + textAndImg.prepend( |
| 132 | + jQuery( "<img />" ).attr( "src", story.imageurl ).addClass( "story-image" ) |
| 133 | + ); |
| 134 | + } |
| 135 | + |
| 136 | + $storyBody.append( textAndImg ); |
| 137 | + |
| 138 | + $storyBody.append( // TODO: get the actual message here |
| 139 | + jQuery( "<div />" ).addClass( "story-metadata" ).append( |
| 140 | + jQuery("<span />").addClass( "story-metadata" ).text( " Submitted by $1 from $2 on $3, $4.") |
| 141 | + ) |
| 142 | + ); |
| 143 | + |
| 144 | + // TODO: add review controls |
| 145 | + |
| 146 | + $storyboard.append( $storyBody ); |
126 | 147 | } |
127 | 148 | } |
128 | 149 | |