You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2017/08/03 06:07:52 UTC

[1/2] openmeetings git commit: [OPENMEETINGS-1667] CSS combining+minification is added

Repository: openmeetings
Updated Branches:
  refs/heads/3.3.x adbe444e2 -> b9e43d7fa


http://git-wip-us.apache.org/repos/asf/openmeetings/blob/b9e43d7f/openmeetings-web/src/main/webapp/css/theme.css
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/webapp/css/theme.css b/openmeetings-web/src/main/webapp/css/theme.css
deleted file mode 100644
index b8511e7..0000000
--- a/openmeetings-web/src/main/webapp/css/theme.css
+++ /dev/null
@@ -1,1096 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License") +  you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-html, body {
-	height: 100%;
-	margin: 0;
-	font-family: Arial, Helvetica, sans-serif;
-}
-* {
-	box-sizing: initial; /*reset bootstrap box sizing*/
-}
-#header {
-	font-size: 28px;
-	line-height: 40px;
-	font-weight: bold;
-	background-image: url(images/logo.png);
-	background-repeat: no-repeat;
-	padding-left: 80px;
-	margin-bottom: 10px;
-	margin-left: 20px;
-}
-#topLinks {
-	position: absolute;
-	top: 10px;
-	right: 10px;
-}
-
-#topLinks span {
-	padding-right: 5px;
-	padding-left: 5px;
-	border-right: 1px solid black;
-	white-space: nowrap;
-}
-
-#topLinks span:last-child {
-	border-right: none;
-}
-#busy-indicator {
-	display: none;
-	z-index: 1000;
-	width: 30px;
-	height: 30px;
-	border: 0;
-	position: absolute;
-	right: 0;
-	margin: 2px;
-	background-image: url(../images/ajax-loader.gif);
-	background-repeat: no-repeat;
-	background-size: 28px 28px;
-}
-.clickable {
-	cursor: pointer;
-}
-.dragbox-content .tableWrapper {
-	width: auto;
-	height: 100px;
-}
-.dragbox-content .tableWrapper .adminListTable {
-	max-width: none;
-	min-width: 0;
-}
-.help.support h3 {
-	margin-bottom: 5px;
-}
-.tableWrapper, .tableWrapperSmall {
-	background-color: #FFFFFF;
-	border: solid 1px #aacfe4;
-	width: 536px;
-	height: 100px;
-	overflow-y: scroll;
-}
-.tableWrapper {
-	height: 500px;
-}
-
-.formelementradiobox {
-	margin-left: 100px;
-}
-
-.formelementradiobox input {
-	margin: 0px 0px;
-	border: none;
-	width: 20px;
-}
-
-.formelementradiobox label {
-	width: 260px;
-	margin: 0px
-}
-
-.addLanguagePanel {
-	display: inline-block;
-}
-
-.addLanguagePanel select {
-	padding: 0px 0px;
-	border: solid 1px #aacfe4;
-	width: 140px;
-	font-size: 12px;
-	margin-left: 2px;
-}
-
-.pagedEntityListPanel {
-	margin-left: 2px;
-	display: inline-block;
-}
-
-.searchForm {
-	display: inline-block;
-	vertical-align: top;
-}
-
-.pagedEntityListPanel select, .adminForm .pagedEntityListPanel select {
-	padding: 0px 0px;
-	border: solid 1px #aacfe4;
-	width: 60px;
-	font-size: 12px;
-	display: inline;
-	float: none;
-}
-.searchForm input[type="text"], .adminForm .searchForm input[type="text"] {
-	width: 140px;
-	float: none;
-	display: inline-block;
-}
-.searchForm input[type="submit"], .adminForm .searchForm input[type="submit"] {
-	width: auto;
-	float: none;
-	display: inline-block;
-	border: 2px outset buttonface;
-	padding: 1px 6px;
-	font-size: 12px;
-}
-.searchForm input[type="button"] {
-	padding: .2em .5em;
-	font-size: smaller;
-}
-.pagedEntityListPanel input, .adminForm .pagedEntityListPanel input {
-	font-size: 14px;
-	padding: 0px 0px;
-	border: solid 1px #aacfe4;
-	width: 100px;
-	height: 20px;
-	margin: 2px 2px;
-	display: inline;
-	float: none;
-}
-
-.goto, .goto :link, .goto :hover {
-	font-size: 14px;
-	line-height: 14px;
-	text-decoration: none;
-	text-align: center;
-	vertical-align: middle;
-	min-width: 16px;
-}
-
-.goto.icon {
-	display: inline-block;
-	width: 16px;
-	height: 16px;
-	border: none;
-	margin: 0px;
-	padding: 0px;
-	zoom: 1.2;
-}
-
-.ui-dialog {
-	-moz-box-shadow: 3px 3px 4px #000;
-	-webkit-box-shadow: 3px 3px 4px #000;
-	/* For IE 8 */
-	-ms-filter:
-		"progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=135, Color='#000000')";
-	/* For IE 5.5 - 7 */
-	filter: progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=135,
-		Color='#000000' );
-	box-shadow: 3px 3px 4px #000;
-}
-.sort-icon, .sort-icon a {
-	display: inline-block !important;
-	text-indent: 0px !important;
-}
-.sort-icon a {
-	width: inherit;
-	height: inherit;
-}	
-.start_step1, .start_step2, .start_step3, .start_step4 {
-	padding-left: 30px;
-	background-position: left top;
-	margin: 5px 0px 5px 0px; 
-	background-size: contain;
-	background-repeat: no-repeat;
-	display: inline-block;
-}
-.start_step1 {
-	background-image: url(images/wizzard_button_1.png);
-}
-.start_step2 {
-	background-image: url(images/wizzard_button_2.png);
-	margin-left: 20px;
-}
-.start_step3 {
-	background-image: url(images/wizzard_button_3.png);
-	margin-left: 40px;
-}
-.start_step4 {
-	background-image: url(images/wizzard_button_4.png);
-	margin-left: 60px;
-}
-.widget {
-	width: 100%;
-}
-.widget td {
-	min-width: 150px;
-}
-#contents {
-}
-#contents .dragbox-content {
-}
-#feedcontainer {
-	overflow: auto;
-}
-#feeds.ui-accordion .ui-accordion-header {
-	margin-bottom: 2px;
-}
-.file.tree.container {
-	border: 1px solid #ccc;
-	max-width: 350px;
-}
-.file.tree {
-	width: 100%;
-	display: inline-block;
-}
-.file.tree .trees {
-	min-height: 400px;
-	max-height: 600px;
-	overflow-x: hidden;
-	overflow-y: auto;
-}
-.trash-toolbar {
-	font-weight: bold;
-	line-height: 20px;
-	color: transparent;
-}
-.trash-toolbar .fileitem, .trash-toolbar .recorditem {
-	display: none;
-}
-.trash-toolbar-hover {
-	color: inherit;
-}
-.file.tree .files .sizes table, .file.tree .files .info table {
-	width: 100%;
-}
-.file.tree .files .info input {
-	width: 100%;
-	padding-right: 5px;
-	padding-left: 5px;
-}
-.recording .video .player {
-	width: 100%;
-	display: inline-block;
-	box-shadow: 0 0 10px 1px rgba(74, 137, 151, 0.5);
-}
-.recording .video .player video {
-	width: 100%;
-}
-.align-left {
-	float: left;
-}
-.align-right {
-	float: right;
-}
-.clear {
-	clear: both;
-}
-.om-icon {
-	background-repeat: no-repeat !important;
-	background-position: 0 0 !important;
-	background-size: 16px;
-	width: 18px;
-	height: 18px;
-	border: none;
-	margin-left: 2px;
-	margin-top: 2px;
-	display: inline-block !important;
-}
-.om-icon.big {
-	background-size: 32px;
-	background-position: 1px 1px !important;
-	width: 34px;
-	height: 34px;
-}
-.trees a.om-icon {
-	width: auto;
-}
-.trees a.om-icon span {
-	white-space: nowrap;
-	padding-right: 20px;
-	vertical-align: top;
-}
-.cross.om-icon {
-	background-image: url(images/cross.png);
-}
-.tick.om-icon {
-	background-image: url(images/tick.png);
-}
-.add.om-icon {
-	background-image: url(images/add.png);
-}
-.new-email.om-icon {
-	background-image: url(images/email_add.png);
-}
-.user.om-icon {
-	background-image: url(images/user.png);
-}
-.refresh.om-icon {
-	background-image: url(images/refresh.png);
-}
-.trash.om-icon {
-	background-image: url(images/bin_closed.png);
-}
-.ui-state-hover.trash-toolbar-hover .trash.om-icon {
-	background-image: url(images/bin_empty.png);
-} 
-.folder-create.om-icon {
-	background-image: url(images/folder_add.png);
-}
-.recording.om-icon {
-	background-image: url(images/film.png);
-}
-.broken.recording.om-icon {
-	background-image: url(images/film_error.png);
-}
-.processing.recording.om-icon {
-	background-image: url(images/film_processing.png);
-}
-.file.om-icon, .recording.om-icon {
-	padding-left: 34px;
-}
-.my.file.om-icon {
-	background-image: url(images/house_link.png);
-}
-.public.file.om-icon {
-	background-image: url(images/world_link.png);
-}
-.image.file.om-icon {
-	background-image: url(images/picture.png);
-}
-.broken.image.file.om-icon {
-	background-image: url(images/picture_error.png);
-}
-.chart.file.om-icon {
-	background-image: url(images/chart_pie.png);
-}
-.broken.chart.file.om-icon {
-	background-image: url(images/chart_pie_error.png);
-}
-.wml.file.om-icon {
-	background-image: url(images/layout.png);
-}
-.broken.wml.file.om-icon {
-	background-image: url(images/layout_error.png);
-}
-.doc.file.om-icon {
-	background-image: url(images/page.png);
-}
-.broken.doc.file.om-icon {
-	background-image: url(images/page_error.png);
-}
-.folder.file.om-icon {
-	background-image: url(images/folder.png);
-}
-.folder-open.file.om-icon {
-	background-image: url(images/folder_open.png);
-}
-.chart.file.om-icon {
-	background-image: url(images/chart_pie.png);
-}
-.invite.om-icon {
-	background-image: url(images/connect.png);
-}
-.selected .file.item {
-	background-color: #0099FF;
-}
-.tree-theme-windows span.tree-content {
-	display: flex !important;
-}
-.file.item {
-	position: relative;
-	display: inline-block;
-	vertical-align: top;
-}
-.file.item .name, .file.item .name span {
-	color: black;
-	display: block;
-	width: 230px;
-	max-width: 230px;
-	/* Required for text-overflow to do anything */
-	text-overflow: ellipsis;
-	white-space: nowrap;
-	overflow: hidden;
-}
-.file.item .name {
-	padding-top: 10px;
-}
-.file.item .errors {
-	position: absolute;
-	top: 0px;
-	right: 0px;
-	background-image: url(images/script_error.png);
-	width: 32px;
-	height: 32px;
-	background-repeat: no-repeat;
-}
-.dialog.errors {
-	width: 600px;
-	height: 500px;
-	font-size: small;
-}
-.dialog.errors .alert {
-	color: red;
-}
-.dialog.errors .message {
-	display: block;
-	unicode-bidi: embed;
-	font-family: monospace;
-	white-space: pre;
-	margin: 0;
-}
-.online.om-icon {
-	background-image: url(images/bullet_green.png);
-}
-.offline.om-icon {
-	background-image: url(images/bullet_red.png);
-}
-.signin .error .k-notification-wrap, .adminPanel .k-notification-wrap {
-	white-space: normal;
-}
-.error {
-	color: red;
-}
-.message {
-	margin: 50px;
-	border: 1px solid black;
-	padding: 15px;
-	-webkit-border-radius: 8px;
-	border-radius: 8px;
-}
-.ui-progressbar div { 
-	text-align: center;
-	padding-top: 7px;
-	font-weight: bold;
-}
-table.messages {
-	width: 100%;
-	min-height: 500px;
-}
-table.messages td.side, table.messages td.main {
-	vertical-align: top;
-}
-table.messages td.side.left {
-	min-width: 150px;
-	overflow-x: hidden;
-}
-table.messages td.side.right {
-	min-width: 200px;
-	overflow-x: hidden;
-}
-table.messages td.main {
-	width: 100%;
-}
-.email {
-	padding-left: 25px;
-	background-repeat: no-repeat !important;
-	background-position: 5px 3px !important;
-	background-size: 16px 16px !important;
-	padding-top: 2px;
-	display: block;
-	text-align:left;
-}
-.email.new {
-	background-image: url(images/email_add.png);
-	font-weight: normal;
-}
-.email.new .ui-button-text, .email.newdir .ui-button-text {
-	padding: 0;
-}
-.email.inbox {
-	background-image: url(images/basket_put.png);
-}
-.email.sent {
-	background-image: url(images/email_go.png);
-}
-.email.trash {
-	background-image: url(images/email_delete.png);
-}
-.email.newdir {
-	background-image: url(images/folder_add.png);
-	font-weight: normal;
-}
-.email.folder {
-	background-image: url(images/folder.png);
-	font-weight: normal;
-	position: relative;
-}
-.email.folder .delete {
-	position:absolute;
-	right: 2px;
-	top: 2px;
-	background-image: url(images/cross.png);
-	font-weight: normal;
-	padding: 0;
-	display: inline-block;
-	background-position: 0;
-	width: 18px;
-	height: 18px;
-}
-.messages.column.label {
-	width: 20px;
-	min-height: inherit;
-}
-input[type="text"].messages.text {
-	width: 100%;
-}
-textarea.messages.body {
-	width: 100%;
-	height: 300px;
-}
-select.messages.selector {
-	width: 220px;
-}
-.info-text {
-	background-image: url(images/information.png);
-	background-repeat: no-repeat;
-	background-position: left top;
-	cursor: default;
-	border: none;
-	padding-left: 20px;
-	font-style: italic;
-	white-space: normal;
-}
-.info-title {
-	background-image: url(images/information.png);
-	background-repeat: no-repeat;
-	width: 16px;
-	height: 16px;
-	display: inline-block;
-	margin-left: 10px;
-}
-.invisible-form-component {
-	position: absolute;
-	top: -9999px;
-	width: 1px;
-	height: 1px;
-}
-#messagesTable tr.selected {
-	background-color: #d7ebf9;
-}
-#messagesTable tr.unread {
-	font-weight: bold;
-}
-.fht-tbody {
-	background-color: white;
-}
-#searchUsersTable th, .fht-table th {
-	font-weight: bold !important;
-	text-align: left;
-}
-#ui-datepicker-div {
-	z-index: 100 !important;
-}
-.room-list {
-	border-collapse: collapse;
-}
-.room-row {
-	background-color: rgb(248, 248, 248);
-	border-bottom: 5px solid white;
-}
-.select2-results .user.external, .select2-selection .user.external
-, .select2-results .user.internal, .select2-selection .user.internal {
-	padding-left: 18px;
-	background-repeat: no-repeat;
-	background-position: 0px 2px;
-}
-.select2-results .user.external, .select2-selection .user.external {
-	background-image: url(images/user_go.png);
-}
-.select2-results .user.internal, .select2-selection .user.internal {
-	background-image: url(images/user.png);
-}
-.om-select2 .select2.select2-container {
-	max-height: 80px;
-	overflow-y: auto;
-}
-.om-select2.full-width .select2.select2-container {
-	width: 100% !important;
-}
-.page.recording {
-	padding-top: 40px;
-}
-.page.recording .video, .page.recording .info {
-	display: inline-block;
-	float: left;
-	padding-left: 20px;
-}
-.page.recording .video {
-	min-width: 400px;
-}
-.rooms.title {
-	font-weight: bold;
-	padding: 10px;
-	padding-bottom: 0;
-}
-.rooms.desc {
-	margin: 10px;
-	max-width: 900px;
-}
-.user.info.panel legend {
-	font-style: italic;
-	text-align: right;
-}
-.user.info.panel fieldset table, .user.info.panel fieldset table textarea {
-	width: 100%;
-}
-#topControls #wicketDebugBar {
-	right: initial;
-	top: initial;
-	z-index: 2;
-	bottom: 0;
-	position: fixed;
-}
-form .input {
-	display: block;
-	float: left;
-	font-size: 14px;
-	padding: 0px 0px;
-	width: 280px;
-	margin: 2px 2px;
-}
-.profile img {
-	width: 125px;
-}
-.date.time.picker {
-	font-size: 12px;
-	white-space: nowrap;
-}
-.profile .ui-button-text-only .ui-button-text {
-	font-size: 12px;
-	padding-right: 0.2em;
-	padding-left: 0.2em;
-}
-#contents .btn-file>input {
-	transform: translate(-30px, 0) scale(1);
-}
-.room.list.container {
-	height: 150px;
-	max-height: 150px;
-	overflow-y: auto;
-	border: 1px solid #cccccc;
-}
-.no-close .ui-dialog-titlebar-close {
-	display: none;
-}
-.table {
-	position: relative;
-}
-.table .column {
-	display: inline-block;
-	margin-bottom: 5px;
-	min-height: initial;
-	float: none;
-	margin-right: 0;
-}
-.table .column.label {
-	width: 20%;
-}
-.table .column.data {
-	width: 75%;
-	vertical-align: middle;
-}
- /**** FIXME TODO need to be unified with other icons used ****/
-div.formSaveBar {
-	height: 22px;
-}
-.addButton, .delButton {
-	display: inline-block;
-	cursor: pointer;
-	width: 18px;
-	height: 18px;
-	border: none;
-	margin-left: 2px;
-	margin-top: 2px;
-	vertical-align: super;
-}
-div.formSaveButton input {
-	background: url(images/disk.png) no-repeat;
-	float: left;
-	cursor: pointer;
-	width: 18px;
-	height: 18px;
-	border: none;
-	margin-left: 2px;
-	margin-top: 2px;
-}
-.addButton {
-	background: url(images/plus_icon.png) no-repeat;
-}
-.delButton {
-	background: url(images/cancel_icon.png) no-repeat;
-}
-.formNewButton {
-	background: url(images/plus_icon.png) no-repeat;
-	float: left;
-	cursor: pointer;
-	width: 18px;
-	height: 18px;
-	border: none;
-	margin-left: 2px;
-	margin-top: 2px;
-}
-.formNewButton.disabled {
-	background: url(images/plus_icon_disabled.png) no-repeat;
-}
-div.formRefreshButton input {
-	background: url(images/arrow_refresh_small.png) no-repeat;
-	float: left;
-	cursor: pointer;
-	width: 18px;
-	height: 18px;
-	border: none;
-	margin-left: 2px;
-	margin-top: 2px;
-}
-.formCancelButton {
-	background: url(images/cancel_icon.png) no-repeat;
-	display: inline-block;
-	float: left;
-	cursor: pointer;
-	width: 18px;
-	height: 18px;
-	border: none;
-	margin-left: 2px;
-	margin-top: 2px;
-}
-.adminPanel {
-	min-width: 1070px;
-}
-/*
-################################
- Column layout admin section
-################################
- */
-.adminPanelColumnTable {
-	display: inline-block;
-	vertical-align: top;
-}
-
-table.adminListTable {
-	max-width: 518px;
-	min-width: 518px;
-}
-
-table.adminListTable tr:nth-child(odd), table.adminListTableSmall tr:nth-child(odd) {
-	opacity: .8;
-}
-
-table.adminListTable tr:hover, table.adminListTableSmall tr:hover, tr.room-row:hover {
-	/*SHOULD BE MANUALLY IN SYNC WITH THEME .ui-state-hover */
-	border: 1px solid #74b2e2;
-	background: #e4f1fb;
-	font-weight: normal;
-	color: #0070a3;
-}
-
-table.adminListTable th.two_column_layout_column1 {
-	width: 136px;
-}
-
-table.adminListTable th.two_column_layout_column2 {
-	width: 354px;
-}
-
-table.adminListTable td.two_column_layout_column1 {
-	width: 136px;
-}
-
-table.adminListTable td.two_column_layout_column2 {
-	width: 354px;
-}
-
-table.adminListTable td div.two_column_layout_divcolumn1 {
-	word-wrap: break-word;
-	width: 136px;
-}
-
-table.adminListTable td div.two_column_layout_divcolumn2 {
-	word-wrap: break-word;
-	width: 354px;
-}
-
-table.adminListTable th.three_column_layout_column1 {
-	width: 96px;
-}
-
-table.adminListTable th.three_column_layout_column2 {
-	width: 150px;
-}
-
-table.adminListTable th.three_column_layout_column3 {
-	width: 244px;
-}
-
-.rooms table.adminListTable th.three_column_layout_column1 {
-	width: 46px;
-}
-
-.rooms table.adminListTable th.three_column_layout_column2 {
-	width: 370px;
-}
-
-.rooms table.adminListTable th.three_column_layout_column3 {
-	width: 74px;
-}
-
-table.adminListTableSmall th.three_column_layout_column1 {
-	width: 50px;
-}
-
-table.adminListTableSmall th.three_column_layout_column2 {
-	width: 50px;
-}
-
-table.adminListTableSmall th.three_column_layout_column3 {
-	width: 218px;
-}
-table.adminListTableSmall th.three_column_layout_column4 {
-	width: 150px;
-}
-table.adminListTableSmall th.three_column_layout_column5 {
-	width: 50px;
-}
-
-table.adminListTable td.three_column_layout_column1 {
-	width: 96px;
-}
-
-table.adminListTable td.three_column_layout_column2 {
-	width: 150px;
-}
-
-table.adminListTable td.three_column_layout_column3 {
-	width: 244px;
-}
-
-table.adminListTableSmall td.three_column_layout_column1 {
-	width: 50px;
-}
-
-table.adminListTableSmall td.three_column_layout_column2 {
-	width: 50px;
-}
-
-table.adminListTableSmall td.three_column_layout_column3 {
-	width: 218px;
-}
-table.adminListTableSmall td.three_column_layout_column4 {
-	width: 150px;
-}
-table.adminListTableSmall td.three_column_layout_column5 {
-	width: 50px;
-}
-
-table.adminListTable td div.three_column_layout_divcolumn1 {
-	word-wrap: break-word;
-	width: 96px;
-}
-
-table.adminListTable td div.three_column_layout_divcolumn2 {
-	word-wrap: break-word;
-	width: 150px;
-}
-
-table.adminListTable td div.three_column_layout_divcolumn3 {
-	word-wrap: break-word;
-	width: 244px;
-}
-
-.rooms table.adminListTable td div.three_column_layout_divcolumn1 {
-	word-wrap: break-word;
-	width: 44px;
-}
-
-.rooms table.adminListTable td div.three_column_layout_divcolumn2 {
-	word-wrap: break-word;
-	width: 382px;
-}
-
-.rooms table.adminListTable td div.three_column_layout_divcolumn3 {
-	word-wrap: break-word;
-	width: 74px;
-}
-
-table.adminListTableSmall td div.three_column_layout_divcolumn1 {
-	width: 50px;
-}
-
-table.adminListTableSmall td div.three_column_layout_divcolumn2 {
-	width: 50px;
-}
-
-table.adminListTableSmall td div.three_column_layout_divcolumn3 {
-	width: 218px;
-}
-
-table.adminListTableSmall td div.three_column_layout_divcolumn4 {
-	width: 150px;
-}
-
-table.adminListTableSmall td div.three_column_layout_divcolumn5 {
-	width: 50px;
-}
-
-table.adminListTable th.four_column_layout_column1 {
-	width: 96px;
-}
-
-table.adminListTable th.four_column_layout_column2 {
-	width: 130px;
-}
-
-table.adminListTable th.four_column_layout_column3 {
-	width: 132px;
-}
-
-table.adminListTable th.four_column_layout_column4 {
-	width: 132px;
-}
-
-table.adminListTable td.four_column_layout_column1 {
-	width: 96px;
-}
-
-table.adminListTable td.four_column_layout_column2 {
-	width: 130px;
-}
-
-table.adminListTable td.four_column_layout_column3 {
-	width: 132px;
-}
-
-table.adminListTable td.four_column_layout_column4 {
-	width: 132px;
-}
-
-table.adminListTable td div.four_column_layout_divcolumn1 {
-	word-wrap: break-word;
-	width: 96px;
-}
-
-table.adminListTable td div.four_column_layout_divcolumn2 {
-	word-wrap: break-word;
-	width: 130px;
-}
-
-table.adminListTable td div.four_column_layout_divcolumn3 {
-	word-wrap: break-word;
-	width: 132px;
-}
-
-table.adminListTable td div.four_column_layout_divcolumn4 {
-	word-wrap: break-word;
-	width: 132px;
-}
-table.adminListTable .one_sixth {
-	width: 16.67%;
-}
-.adminPanelColumnForm {
-	display: inline-block;
-	vertical-align: top;
-	margin-top: 2px;
-}
-
-.adminPanelColumnForm div.scrollcontent {
-	vertical-align: top;
-	height: 500px;
-	overflow-y: scroll;
-}
-
-.adminForm {
-}
-.adminForm .btn {
-	width: 280px;
-}
-.adminForm .input, .adminForm input, .adminForm input.formcheckbox
-,.adminForm textarea, .adminForm select, .adminForm label
- {
-	display: block;
-	float: left;
-	font-size: 14px;
-	padding: 0px 0px;
-	margin: 2px 2px;
-}
-.adminForm .input {
-	border: solid 1px #aacfe4;
-	width: 280px;
-	min-height: 20px;
-	white-space: initial;
-}
-.adminForm input {
-	border: solid 1px #aacfe4;
-	width: 280px;
-	height: 20px;
-}
-.adminForm input[type=checkbox], .adminForm input[type=radio] {
-	width: auto;
-}
-.adminForm input.formcheckbox {
-	border: none;
-	width: 20px;
-	height: 20px;
-}
-
-.adminForm fieldset {
-	margin-top: 4px;
-	padding: 4px;
-}
-
-.adminForm legend {
-	padding: 0.2em 0.5em;
-	margin: 0px 10px;
-	font-style: italic;
-	text-align: right;
-}
-
-.adminForm textarea {
-	border: solid 1px #aacfe4;
-	width: 280px;
-	height: 60px;
-}
-
-.adminForm div.formelement {
-	display: block;
-	clear: both;
-	max-width: 540px;
-	white-space: nowrap;
-}
-
-.adminForm select {
-	height: 20px;
-	border: solid 1px #aacfe4;
-	width: 282px;
-}
-
-.adminForm label {
-	font-weight: bold;
-	text-align: right;
-	width: 180px;
-	white-space: normal;
-}
-.adminForm .group.logo .profile img {
-	height: 16px;
-	width: auto;
-}
-.adminBackupForm div.formelement {
-	display: block;
-	clear: both;
-	max-width: 1240px;
-}
-.adminFormsFeedbackPanel {
-	position: fixed;
-	left:550px;
-	width: 480px;
-	bottom: 16px;
-	z-index:999;
-}
-.adminForm .newItem {
-	padding-left: 25px;
-	background-image: url(images/new.png);
-	background-repeat: no-repeat;
-	background-position: 5px;
-}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/b9e43d7f/openmeetings-web/src/main/webapp/css/tree.css
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/webapp/css/tree.css b/openmeetings-web/src/main/webapp/css/tree.css
new file mode 100644
index 0000000..9d99a20
--- /dev/null
+++ b/openmeetings-web/src/main/webapp/css/tree.css
@@ -0,0 +1,170 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+.file.tree.container {
+	border: 1px solid #ccc;
+	max-width: 350px;
+}
+.file.tree {
+	width: 100%;
+	display: inline-block;
+}
+.file.tree .trees {
+	min-height: 400px;
+	max-height: 600px;
+	overflow-x: hidden;
+	overflow-y: auto;
+}
+.trash-toolbar {
+	font-weight: bold;
+	line-height: 20px;
+	color: transparent;
+}
+.trash-toolbar .fileitem, .trash-toolbar .recorditem {
+	display: none;
+}
+.trash-toolbar-hover {
+	color: inherit;
+}
+.file.tree .files .sizes table, .file.tree .files .info table {
+	width: 100%;
+}
+.file.tree .files .info input {
+	width: 100%;
+	padding-right: 5px;
+	padding-left: 5px;
+}
+.trees a.om-icon {
+	width: auto;
+}
+.trees a.om-icon span {
+	white-space: nowrap;
+	padding-right: 20px;
+	vertical-align: top;
+}
+.refresh.om-icon {
+	background-image: url(images/refresh.png);
+}
+.trash.om-icon {
+	background-image: url(images/bin_closed.png);
+}
+.ui-state-hover.trash-toolbar-hover .trash.om-icon {
+	background-image: url(images/bin_empty.png);
+} 
+.folder-create.om-icon {
+	background-image: url(images/folder_add.png);
+}
+.recording.om-icon {
+	background-image: url(images/film.png);
+}
+.broken.recording.om-icon {
+	background-image: url(images/film_error.png);
+}
+.processing.recording.om-icon {
+	background-image: url(images/film_processing.png);
+}
+.file.om-icon, .recording.om-icon {
+	padding-left: 34px;
+}
+.my.file.om-icon {
+	background-image: url(images/house_link.png);
+}
+.public.file.om-icon {
+	background-image: url(images/world_link.png);
+}
+.image.file.om-icon {
+	background-image: url(images/picture.png);
+}
+.broken.image.file.om-icon {
+	background-image: url(images/picture_error.png);
+}
+.chart.file.om-icon {
+	background-image: url(images/chart_pie.png);
+}
+.broken.chart.file.om-icon {
+	background-image: url(images/chart_pie_error.png);
+}
+.wml.file.om-icon {
+	background-image: url(images/layout.png);
+}
+.broken.wml.file.om-icon {
+	background-image: url(images/layout_error.png);
+}
+.doc.file.om-icon {
+	background-image: url(images/page.png);
+}
+.broken.doc.file.om-icon {
+	background-image: url(images/page_error.png);
+}
+.folder.file.om-icon {
+	background-image: url(images/folder.png);
+}
+.folder-open.file.om-icon {
+	background-image: url(images/folder_open.png);
+}
+.chart.file.om-icon {
+	background-image: url(images/chart_pie.png);
+}
+.selected .file.item {
+	background-color: #0099FF;
+}
+.tree-theme-windows span.tree-content {
+	display: flex !important;
+}
+.file.item {
+	position: relative;
+	display: inline-block;
+	vertical-align: top;
+}
+.file.item .name, .file.item .name span {
+	color: black;
+	display: block;
+	width: 230px;
+	max-width: 230px;
+	/* Required for text-overflow to do anything */
+	text-overflow: ellipsis;
+	white-space: nowrap;
+	overflow: hidden;
+}
+.file.item .name {
+	padding-top: 10px;
+}
+.file.item .errors {
+	position: absolute;
+	top: 0px;
+	right: 0px;
+	background-image: url(images/script_error.png);
+	width: 32px;
+	height: 32px;
+	background-repeat: no-repeat;
+}
+.dialog.errors {
+	width: 600px;
+	height: 500px;
+	font-size: small;
+}
+.dialog.errors .alert {
+	color: red;
+}
+.dialog.errors .message {
+	display: block;
+	unicode-bidi: embed;
+	font-family: monospace;
+	white-space: pre;
+	margin: 0;
+}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/b9e43d7f/openmeetings-web/src/main/webapp/css/wb.css
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/webapp/css/wb.css b/openmeetings-web/src/main/webapp/css/wb.css
new file mode 100644
index 0000000..8eed0af
--- /dev/null
+++ b/openmeetings-web/src/main/webapp/css/wb.css
@@ -0,0 +1,116 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+.wb-settings {
+	position: absolute;
+}
+.wb-settings, .wb-settings .tab.props {
+	display: inline-block;
+	width: 310px;
+}
+.wb-settings .ui-dialog-titlebar-close {
+	position: absolute;
+	right: .3em;
+	top: 5px;
+	width: 20px;
+	padding: 1px;
+	height: 20px;
+}
+.wb-settings .header {
+	padding: 5px;
+}
+.wb-settings .header .ui-dialog-title {
+	padding-left: 10px;
+}
+.wb-settings .tab.props {
+	padding: 5px 10px;
+}
+.wb-settings .tab.props .prop-row {
+	padding-top: 5px;
+	margin: 0;
+	font-size: small;
+}
+.wb-settings .tab.props .block {
+	display: inline;
+	padding-left: 5px;
+}
+.wb-settings .tab.props .block.lbl {
+	width: 1em;
+}
+.wb-settings .tab.props .block.but {
+	width: 2.5em;
+}
+.wb-settings .tab.props .block.input {
+	width: 40px;
+}
+.wb-settings .tab.props .block.input input {
+	width: 30px;
+}
+.wb-settings .tab.props .block.input input[type=number] {
+	width: 40px;
+}
+.wb-settings .tab.props .block.input input[type=color] {
+	padding: 0;
+}
+.wb-settings .tab.props .block.input input[type=color]:disabled {
+	opacity:.3;
+}
+.wb-settings .tab.props .block.but button {
+	width: 2.5em;
+}
+.wb-settings .tab.props  .wb-prop-i.selected {
+	font-style: italic;
+}
+.wb-settings .tab.props .wb-prop-b.selected {
+	font-weight: bold;
+}
+.dropdown-menu.om-left {
+	right: 0;
+	left: auto !important;
+}
+.wb-tabbar {
+	padding-left: 70px !important;
+	padding-right: 35px !important;
+}
+.wb-tabbar .scroll-container {
+	overflow: hidden;
+}
+.wb-tabbar .scroll-container .scrollable, .wb-tabbar .scroll-container .scrollable li {
+	display: flex;
+}
+.wb-tabbar .add.disabled, .wb-tabbar .prev.disabled, .wb-tabbar .next.disabled {
+	opacity: .3;
+}
+.wb-tabbar .add, .wb-tabbar .prev, .wb-tabbar .next {
+	position: absolute;
+	top: 3px;
+}
+.wb-tabbar .add {
+	left: 2px;
+}
+.wb-tabbar .prev {
+	left: 35px;
+}
+.wb-tabbar .next {
+	right: 2px;
+}
+.wb-tabbar li button {
+	width: 20px;
+	height: 20px;
+	padding: 0;
+}


[2/2] openmeetings git commit: [OPENMEETINGS-1667] CSS combining+minification is added

Posted by so...@apache.org.
[OPENMEETINGS-1667] CSS combining+minification is added


Project: http://git-wip-us.apache.org/repos/asf/openmeetings/repo
Commit: http://git-wip-us.apache.org/repos/asf/openmeetings/commit/b9e43d7f
Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/b9e43d7f
Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/b9e43d7f

Branch: refs/heads/3.3.x
Commit: b9e43d7fa1d2820221020a326bd2283f843e1318
Parents: adbe444
Author: Maxim Solodovnik <so...@gmail.com>
Authored: Thu Aug 3 13:07:44 2017 +0700
Committer: Maxim Solodovnik <so...@gmail.com>
Committed: Thu Aug 3 13:07:44 2017 +0700

----------------------------------------------------------------------
 openmeetings-server/src/main/assembly/quick.xml |   12 +-
 openmeetings-web/pom.xml                        |   43 +
 .../web/admin/backup/BackupPanel.java           |   27 +-
 .../web/admin/labels/LangPanel.java             |   31 +-
 .../web/common/tree/DownloadMenuItem.java       |    4 +-
 .../web/common/tree/FileTreePanel.java          |   26 +-
 .../apache/openmeetings/web/pages/BasePage.html |    5 -
 .../apache/openmeetings/web/pages/BasePage.java |    9 +-
 .../web/room/menu/StartSharingButton.java       |   26 +-
 .../apache/openmeetings/web/user/chat/Chat.java |    1 -
 .../openmeetings/web/user/record/VideoInfo.java |   29 +-
 .../openmeetings/web/util/AjaxDownload.java     |  128 --
 .../openmeetings/web/util/ajax-download.js      |   23 -
 .../src/main/webapp/css/activities.css          |   50 +
 openmeetings-web/src/main/webapp/css/admin.css  |  355 ++++++
 .../src/main/webapp/css/general-rtl.css         |   98 ++
 .../src/main/webapp/css/general.css             |  606 ++++++++++
 openmeetings-web/src/main/webapp/css/room.css   |  132 ---
 .../src/main/webapp/css/theme-rtl.css           |   98 --
 openmeetings-web/src/main/webapp/css/theme.css  | 1096 ------------------
 openmeetings-web/src/main/webapp/css/tree.css   |  170 +++
 openmeetings-web/src/main/webapp/css/wb.css     |  116 ++
 22 files changed, 1560 insertions(+), 1525 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/openmeetings/blob/b9e43d7f/openmeetings-server/src/main/assembly/quick.xml
----------------------------------------------------------------------
diff --git a/openmeetings-server/src/main/assembly/quick.xml b/openmeetings-server/src/main/assembly/quick.xml
index f128925..80cb51d 100644
--- a/openmeetings-server/src/main/assembly/quick.xml
+++ b/openmeetings-server/src/main/assembly/quick.xml
@@ -29,9 +29,6 @@
 			<directory>${project.parent.basedir}/openmeetings-web/src/main/webapp</directory>
 			<outputDirectory>${om.webapp}</outputDirectory>
 			<includes>
-				<include>css/**</include>
-				<include>js/**</include>
-				<include>images/**</include>
 				<include>WEB-INF/**</include>
 			</includes>
 			<excludes>
@@ -84,6 +81,15 @@
 			</includes>
 		</fileSet>
 		<fileSet>
+			<directory>${project.parent.basedir}/openmeetings-web/target/openmeetings-web-${project.version}/</directory>
+			<outputDirectory>${om.webapp}</outputDirectory>
+			<includes>
+				<include>css/**</include>
+				<include>js/**</include>
+				<include>images/**</include>
+			</includes>
+		</fileSet>
+		<fileSet>
 			<directory>${project.parent.basedir}/openmeetings-web/target/openmeetings-web-${project.version}/WEB-INF/lib</directory>
 			<outputDirectory>${om.webapp}/WEB-INF/lib</outputDirectory>
 			<includes>

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/b9e43d7f/openmeetings-web/pom.xml
----------------------------------------------------------------------
diff --git a/openmeetings-web/pom.xml b/openmeetings-web/pom.xml
index 25c975f..4976285 100644
--- a/openmeetings-web/pom.xml
+++ b/openmeetings-web/pom.xml
@@ -67,6 +67,49 @@
 	<build>
 		<plugins>
 			<plugin>
+				<groupId>com.samaxes.maven</groupId>
+				<artifactId>minify-maven-plugin</artifactId>
+				<version>1.7.6</version>
+				<executions>
+					<execution>
+						<id>theme-minify</id>
+						<goals>
+							<goal>minify</goal>
+						</goals>
+						<configuration>
+							<charset>UTF-8</charset>
+							<cssSourceDir>css</cssSourceDir>
+							<cssSourceFiles>
+								<cssSourceFile>general.css</cssSourceFile>
+								<cssSourceFile>activities.css</cssSourceFile>
+								<cssSourceFile>admin.css</cssSourceFile>
+								<cssSourceFile>calendar.css</cssSourceFile>
+								<cssSourceFile>chat.css</cssSourceFile>
+								<cssSourceFile>menu.css</cssSourceFile>
+								<cssSourceFile>room.css</cssSourceFile>
+								<cssSourceFile>tree.css</cssSourceFile>
+								<cssSourceFile>wb.css</cssSourceFile>
+							</cssSourceFiles>
+							<cssFinalFile>theme.css</cssFinalFile>
+						</configuration>
+					</execution>
+					<execution>
+						<id>theme-rtl-minify</id>
+						<goals>
+							<goal>minify</goal>
+						</goals>
+						<configuration>
+							<charset>UTF-8</charset>
+							<cssSourceDir>css</cssSourceDir>
+							<cssSourceFiles>
+								<cssSourceFile>general-rtl.css</cssSourceFile>
+							</cssSourceFiles>
+							<cssFinalFile>theme-rtl.css</cssFinalFile>
+						</configuration>
+					</execution>
+				</executions>
+			</plugin>
+			<plugin>
 				<groupId>org.apache.maven.plugins</groupId>
 				<artifactId>maven-war-plugin</artifactId>
 				<configuration>

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/b9e43d7f/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/backup/BackupPanel.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/backup/BackupPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/backup/BackupPanel.java
index 9aee9b0..09de3fd 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/backup/BackupPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/backup/BackupPanel.java
@@ -20,8 +20,10 @@ package org.apache.openmeetings.web.admin.backup;
 
 import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 import static org.apache.openmeetings.web.app.Application.getBean;
+import static org.apache.wicket.util.time.Duration.NONE;
 
 import java.io.File;
+import java.nio.file.Path;
 import java.text.DecimalFormat;
 import java.util.Date;
 
@@ -33,11 +35,11 @@ import org.apache.openmeetings.util.CalendarPatterns;
 import org.apache.openmeetings.util.OmFileHelper;
 import org.apache.openmeetings.web.admin.AdminPanel;
 import org.apache.openmeetings.web.app.Application;
-import org.apache.openmeetings.web.util.AjaxDownload;
 import org.apache.openmeetings.web.util.upload.BootstrapFileUploadBehavior;
 import org.apache.wicket.ajax.AbstractAjaxTimerBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.ajax.form.AjaxFormSubmitBehavior;
+import org.apache.wicket.extensions.ajax.AjaxDownload;
 import org.apache.wicket.extensions.ajax.markup.html.form.upload.UploadProgressBar;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.form.CheckBox;
@@ -45,8 +47,9 @@ import org.apache.wicket.markup.html.form.Form;
 import org.apache.wicket.markup.html.form.upload.FileUpload;
 import org.apache.wicket.markup.html.form.upload.FileUploadField;
 import org.apache.wicket.model.Model;
+import org.apache.wicket.request.resource.IResource;
+import org.apache.wicket.resource.FileSystemResource;
 import org.apache.wicket.util.lang.Bytes;
-import org.apache.wicket.util.resource.FileResourceStream;
 import org.apache.wicket.util.time.Duration;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
@@ -105,7 +108,23 @@ public class BackupPanel extends AdminPanel {
 			setMaxSize(Bytes.bytes(maxBytes));
 
 			// Add a component to download a file without page refresh
-			final AjaxDownload download = new AjaxDownload();
+			final AjaxDownload download = new AjaxDownload(new IResource() {
+				private static final long serialVersionUID = 1L;
+
+				@Override
+				public void respond(Attributes attributes) {
+					new FileSystemResource(backupFile.toPath()) {
+						private static final long serialVersionUID = 1L;
+
+						@Override
+						protected ResourceResponse createResourceResponse(Attributes attr, Path path) {
+							ResourceResponse response = super.createResourceResponse(attr, path);
+							response.setCacheDuration(NONE);
+							return response;
+						}
+					}.respond(attributes);
+				}
+			});
 			add(download);
 			// add an download button
 			add(new AjaxButton("download", this) {
@@ -163,8 +182,6 @@ public class BackupPanel extends AdminPanel {
 					timer.stop(target);
 					target.add(progressBar.setVisible(false));
 
-					download.setFileName(backupFile.getName());
-					download.setResourceStream(new FileResourceStream(backupFile));
 					download.initiate(target);
 				}
 			}).setVisible(false).setOutputMarkupPlaceholderTag(true));

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/b9e43d7f/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java
index 0465bcf..a8ce7a5 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java
@@ -38,20 +38,23 @@ import org.apache.openmeetings.web.common.PagedEntityListPanel;
 import org.apache.openmeetings.web.data.DataViewContainer;
 import org.apache.openmeetings.web.data.OmOrderByBorder;
 import org.apache.openmeetings.web.data.SearchableDataProvider;
-import org.apache.openmeetings.web.util.AjaxDownload;
 import org.apache.openmeetings.web.util.upload.BootstrapFileUploadBehavior;
 import org.apache.wicket.AttributeModifier;
 import org.apache.wicket.ajax.AjaxEventBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.ajax.form.AjaxFormSubmitBehavior;
 import org.apache.wicket.ajax.markup.html.AjaxLink;
+import org.apache.wicket.extensions.ajax.AjaxDownload;
 import org.apache.wicket.extensions.ajax.markup.html.form.upload.UploadProgressBar;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.form.upload.FileUpload;
 import org.apache.wicket.markup.html.form.upload.FileUploadField;
 import org.apache.wicket.markup.repeater.Item;
+import org.apache.wicket.request.resource.ContentDisposition;
+import org.apache.wicket.request.resource.ResourceStreamResource;
 import org.apache.wicket.util.resource.AbstractResourceStream;
+import org.apache.wicket.util.resource.IResourceStream;
 import org.apache.wicket.util.resource.ResourceStreamNotFoundException;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
@@ -172,17 +175,18 @@ public class LangPanel extends AdminPanel {
 		});
 
 		// Add a component to download a file without page refresh
-		final AjaxDownload download = new AjaxDownload();
-		langForm.add(download);
-
-		langForm.add(new AjaxButton("export"){
+		final AjaxDownload download = new AjaxDownload(new ResourceStreamResource() {
 			private static final long serialVersionUID = 1L;
 
+			{
+				setContentDisposition(ContentDisposition.ATTACHMENT);
+			}
+
 			@Override
-			protected void onSubmit(AjaxRequestTarget target) {
+			protected IResourceStream getResourceStream(Attributes attributes) {
 				final String name = LabelDao.getLabelFileName(language.getValue());
-				download.setFileName(name);
-				download.setResourceStream(new AbstractResourceStream() {
+				setFileName(name);
+				return new AbstractResourceStream() {
 					private static final long serialVersionUID = 1L;
 					private transient InputStream is;
 
@@ -203,7 +207,16 @@ public class LangPanel extends AdminPanel {
 							is = null;
 						}
 					}
-				});
+				};
+			}
+		});
+		langForm.add(download);
+
+		langForm.add(new AjaxButton("export"){
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			protected void onSubmit(AjaxRequestTarget target) {
 				download.initiate(target);
 
 				// repaint the feedback panel so that it is hidden

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/b9e43d7f/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/DownloadMenuItem.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/DownloadMenuItem.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/DownloadMenuItem.java
index 2bea9e9..7c1f33b 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/DownloadMenuItem.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/DownloadMenuItem.java
@@ -31,7 +31,6 @@ import org.apache.openmeetings.db.entity.file.FileItem;
 import org.apache.openmeetings.db.entity.file.FileItem.Type;
 import org.apache.openmeetings.util.OmFileHelper;
 import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.util.resource.FileResourceStream;
 
 import com.googlecode.wicket.jquery.ui.JQueryIcon;
 import com.googlecode.wicket.jquery.ui.widget.menu.MenuItem;
@@ -67,8 +66,7 @@ public class DownloadMenuItem extends MenuItem {
 					f = ff[0];
 				}
 			}
-			tree.downloader.setFileName(f.getName());
-			tree.downloader.setResourceStream(new FileResourceStream(f));
+			tree.dwnldFile = f;
 			tree.downloader.initiate(target);
 		}
 	}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/b9e43d7f/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java
index a540295..60ed81d 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java
@@ -23,7 +23,10 @@ import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_JPG;
 import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_PDF;
 import static org.apache.openmeetings.web.app.Application.getBean;
 import static org.apache.openmeetings.web.app.WebSession.getUserId;
+import static org.apache.wicket.util.time.Duration.NONE;
 
+import java.io.File;
+import java.nio.file.Path;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.HashMap;
@@ -41,19 +44,21 @@ import org.apache.openmeetings.db.entity.record.Recording;
 import org.apache.openmeetings.web.common.ConfirmableAjaxBorder;
 import org.apache.openmeetings.web.common.ConfirmableAjaxBorder.ConfirmableBorderDialog;
 import org.apache.openmeetings.web.common.NameDialog;
-import org.apache.openmeetings.web.util.AjaxDownload;
 import org.apache.wicket.AttributeModifier;
 import org.apache.wicket.Component;
 import org.apache.wicket.ajax.AjaxEventBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.ajax.attributes.CallbackParameter;
 import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
+import org.apache.wicket.extensions.ajax.AjaxDownload;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.form.Form;
 import org.apache.wicket.markup.html.panel.Panel;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
+import org.apache.wicket.request.resource.IResource;
+import org.apache.wicket.resource.FileSystemResource;
 
 import com.googlecode.wicket.jquery.core.JQueryBehavior;
 import com.googlecode.wicket.jquery.core.Options;
@@ -77,7 +82,24 @@ public abstract class FileTreePanel extends Panel {
 	private final WebMarkupContainer sizes = new WebMarkupContainer("sizes");
 	private FileItem lastSelected = null;
 	private Map<String, FileItem> selected = new HashMap<>();
-	final AjaxDownload downloader = new AjaxDownload();
+	File dwnldFile;
+	final AjaxDownload downloader = new AjaxDownload(new IResource() {
+		private static final long serialVersionUID = 1L;
+
+		@Override
+		public void respond(Attributes attributes) {
+			new FileSystemResource(dwnldFile.toPath()) {
+				private static final long serialVersionUID = 1L;
+
+				@Override
+				protected ResourceResponse createResourceResponse(Attributes attr, Path path) {
+					ResourceResponse response = super.createResourceResponse(attr, path);
+					response.setCacheDuration(NONE);
+					return response;
+				}
+			}.respond(attributes);
+		}
+	});
 	protected final IModel<String> homeSize = Model.of((String)null);
 	protected final IModel<String> publicSize = Model.of((String)null);
 	final ConvertingErrorsDialog errorsDialog = new ConvertingErrorsDialog("errors", Model.of((Recording)null));

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/b9e43d7f/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BasePage.html
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BasePage.html b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BasePage.html
index a31ee44..219bec4 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BasePage.html
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BasePage.html
@@ -24,11 +24,6 @@
 		<wicket:header-items/>
 		<link rel="shortcut icon" href="public/favicon.ico" type="image/x-icon"/>
 		<title wicket:id="pageTitle">[title]</title>
-		<link media="screen" type="text/css" rel="stylesheet" href="css/theme.css"/>
-		<link media="screen" type="text/css" rel="stylesheet" href="css/menu.css"/>
-		<link media="screen" type="text/css" rel="stylesheet" href="css/chat.css"/>
-		<link media="screen" type="text/css" rel="stylesheet" href="css/calendar.css"/>
-		<link media="screen" type="text/css" rel="stylesheet" href="css/room.css"/>
 	</head>
 	<body>
 		<div wicket:id="header"></div>

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/b9e43d7f/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BasePage.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BasePage.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BasePage.java
index b9e01fc..7e39bc2 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BasePage.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BasePage.java
@@ -20,6 +20,7 @@ package org.apache.openmeetings.web.pages;
 
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_GOOGLE_ANALYTICS_CODE;
 import static org.apache.openmeetings.web.app.Application.getBean;
+import static org.apache.wicket.RuntimeConfigurationType.DEVELOPMENT;
 
 import java.util.HashMap;
 import java.util.Map;
@@ -31,7 +32,6 @@ import org.apache.openmeetings.web.common.HeaderPanel;
 import org.apache.openmeetings.web.util.OmUrlFragment;
 import org.apache.openmeetings.web.util.OmUrlFragment.AreaKeys;
 import org.apache.wicket.AttributeModifier;
-import org.apache.wicket.RuntimeConfigurationType;
 import org.apache.wicket.markup.head.CssHeaderItem;
 import org.apache.wicket.markup.head.IHeaderResponse;
 import org.apache.wicket.markup.head.JavaScriptHeaderItem;
@@ -99,10 +99,11 @@ public abstract class BasePage extends AsyncUrlFragmentAwarePage {
 	public void renderHead(IHeaderResponse response) {
 		response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forReference(Application.get().getJavaScriptLibrarySettings().getJQueryReference())));
 		super.renderHead(response);
-		response.render(CssHeaderItem.forUrl(String.format("css/theme_om/jquery-ui.%scss"
-				, RuntimeConfigurationType.DEVELOPMENT == getApplication().getConfigurationType() ? "" : "min.")));
+		final String suffix = DEVELOPMENT == getApplication().getConfigurationType() ? "" : ".min";
+		response.render(CssHeaderItem.forUrl(String.format("css/theme_om/jquery-ui%s.css", suffix)));
+		response.render(CssHeaderItem.forUrl(String.format("css/theme%s.css", suffix)));
 		if (isRtl()) {
-			response.render(CssHeaderItem.forUrl("css/theme-rtl.css"));
+			response.render(CssHeaderItem.forUrl(String.format("css/theme-rtl%s.css", suffix)));
 		}
 		if (!Strings.isEmpty(getGaCode())) {
 			response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forReference(new JavaScriptResourceReference(BasePage.class, "om-ga.js"))));

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/b9e43d7f/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/StartSharingButton.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/StartSharingButton.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/StartSharingButton.java
index d05446d..d26bc32 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/StartSharingButton.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/StartSharingButton.java
@@ -27,6 +27,7 @@ import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 import static org.apache.openmeetings.web.app.Application.getBean;
 import static org.apache.openmeetings.web.app.WebSession.getLanguage;
 import static org.apache.openmeetings.web.room.RoomBroadcaster.getClient;
+import static org.apache.wicket.util.time.Duration.NONE;
 
 import java.io.File;
 import java.io.FileInputStream;
@@ -47,7 +48,9 @@ import org.apache.openmeetings.util.OmFileHelper;
 import org.apache.openmeetings.web.app.Application;
 import org.apache.openmeetings.web.app.WebSession;
 import org.apache.openmeetings.web.common.OmButton;
-import org.apache.openmeetings.web.util.AjaxDownload;
+import org.apache.wicket.extensions.ajax.AjaxDownload;
+import org.apache.wicket.request.resource.ResourceStreamResource;
+import org.apache.wicket.util.resource.IResourceStream;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.behavior.AttributeAppender;
 import org.apache.wicket.util.resource.StringResourceStream;
@@ -62,6 +65,7 @@ public class StartSharingButton extends OmButton {
 	private static final String CDATA_END = "]]>";
 	private final AjaxDownload download;
 	private final Client c;
+	private String app = "";
 	private enum Protocol {
 		rtmp
 		, rtmpe
@@ -75,20 +79,26 @@ public class StartSharingButton extends OmButton {
 		setOutputMarkupPlaceholderTag(true);
 		setVisible(false);
 		add(new AttributeAppender("title", Application.getString(1480)));
-		add(download = new AjaxDownload(true) {
+		add(download = new AjaxDownload(new ResourceStreamResource() {
 			private static final long serialVersionUID = 1L;
 
+			{
+				setCacheDuration(NONE);
+			}
+
 			@Override
-			protected String getFileName() {
-				return String.format("public_%s.jnlp", StartSharingButton.this.c.getRoomId());
+			protected IResourceStream getResourceStream(Attributes attributes) {
+				setFileName(String.format("public_%s.jnlp", StartSharingButton.this.c.getRoomId()));
+				StringResourceStream srs = new StringResourceStream(app, "application/x-java-jnlp-file");
+				srs.setCharset(UTF_8);
+				return srs;
 			}
-		});
+		}));
 	}
 
 	@Override
 	public void onClick(AjaxRequestTarget target) {
 		//TODO deny download in case other screen sharing is in progress
-		String app = "";
 		try (InputStream jnlp = getClass().getClassLoader().getResourceAsStream("APPLICATION.jnlp")) {
 			ConfigurationDao cfgDao = getBean(ConfigurationDao.class);
 			app = IOUtils.toString(jnlp, UTF_8);
@@ -128,10 +138,6 @@ public class StartSharingButton extends OmButton {
 					.replace("$allowRecording", "" + (rc.getUserId() > 0 && room.isAllowRecording() && rc.isAllowRecording() && (0 == sessionManager.getRecordingCount(roomId))))
 					.replace("$allowPublishing", "" + (0 == sessionManager.getPublishingCount(roomId)))
 					;
-
-			StringResourceStream srs = new StringResourceStream(app, "application/x-java-jnlp-file");
-			srs.setCharset(UTF_8);
-			download.setResourceStream(srs);
 			download.initiate(target);
 		} catch (Exception e) {
 			log.error("Unexpected error while creating jnlp file", e);

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/b9e43d7f/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/Chat.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/Chat.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/Chat.java
index 5285e7c..77ad001 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/Chat.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/Chat.java
@@ -154,7 +154,6 @@ public class Chat extends Panel {
 		response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forReference(EMOTIONS_JS_REFERENCE)));
 		response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forReference(new JavaScriptResourceReference(Chat.class, "chat.js"))));
 		response.render(CssHeaderItem.forReference(EMOTIONS_CSS_REFERENCE));
-		response.render(CssHeaderItem.forUrl("css/chat.css"));
 		response.render(new PriorityHeaderItem(getNamedFunction("chatActivity", chatActivity, explicit(PARAM_TYPE), explicit(PARAM_ROOM_ID), explicit(PARAM_MSG_ID))));
 
 		ChatDao dao = getBean(ChatDao.class);

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/b9e43d7f/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoInfo.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoInfo.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoInfo.java
index a5a6285..792269a 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoInfo.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoInfo.java
@@ -22,8 +22,10 @@ import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_MP4;
 import static org.apache.openmeetings.util.OmFileHelper.getRecordingMetaData;
 import static org.apache.openmeetings.web.app.Application.getBean;
 import static org.apache.openmeetings.web.app.WebSession.getUserId;
+import static org.apache.wicket.util.time.Duration.NONE;
 
 import java.io.File;
+import java.nio.file.Path;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -38,15 +40,16 @@ import org.apache.openmeetings.db.entity.record.Recording.Status;
 import org.apache.openmeetings.db.entity.record.RecordingMetaData;
 import org.apache.openmeetings.db.entity.room.Room;
 import org.apache.openmeetings.web.common.InvitationDialog;
-import org.apache.openmeetings.web.util.AjaxDownload;
 import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.extensions.ajax.AjaxDownload;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.form.Form;
 import org.apache.wicket.markup.html.panel.Panel;
 import org.apache.wicket.model.CompoundPropertyModel;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
-import org.apache.wicket.util.resource.FileResourceStream;
+import org.apache.wicket.request.resource.IResource;
+import org.apache.wicket.resource.FileSystemResource;
 
 import com.googlecode.wicket.jquery.ui.JQueryIcon;
 import com.googlecode.wicket.jquery.ui.form.button.AjaxButton;
@@ -77,7 +80,24 @@ public class VideoInfo extends Panel {
 			}.start();
 		}
 	};
-	private final AjaxDownload download = new AjaxDownload();
+	private final AjaxDownload download = new AjaxDownload(new IResource() {
+		private static final long serialVersionUID = 1L;
+
+		@Override
+		public void respond(Attributes attributes) {
+			File f = rm.getObject().getFile(EXTENSION_MP4);
+			new FileSystemResource(f.toPath()) {
+				private static final long serialVersionUID = 1L;
+
+				@Override
+				protected ResourceResponse createResourceResponse(Attributes attr, Path path) {
+					ResourceResponse response = super.createResourceResponse(attr, path);
+					response.setCacheDuration(NONE);
+					return response;
+				}
+			}.respond(attributes);
+		}
+	});
 	private final IModel<Recording> rm = new CompoundPropertyModel<>(new Recording());
 	private final IModel<String> roomName = Model.of((String)null);
 	private boolean isInterview = false;
@@ -184,9 +204,6 @@ public class VideoInfo extends Panel {
 
 			@Override
 			public void onClick(AjaxRequestTarget target) {
-				File f = rm.getObject().getFile(EXTENSION_MP4);
-				download.setFileName(f.getName());
-				download.setResourceStream(new FileResourceStream(f));
 				download.initiate(target);
 			}
 		});

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/b9e43d7f/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/AjaxDownload.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/AjaxDownload.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/AjaxDownload.java
deleted file mode 100644
index 992707d..0000000
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/AjaxDownload.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License") +  you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.openmeetings.web.util;
-
-import java.util.UUID;
-
-import org.apache.wicket.Component;
-import org.apache.wicket.Page;
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.behavior.AbstractAjaxBehavior;
-import org.apache.wicket.markup.head.IHeaderResponse;
-import org.apache.wicket.markup.head.JavaScriptHeaderItem;
-import org.apache.wicket.markup.head.OnDomReadyHeaderItem;
-import org.apache.wicket.markup.head.PriorityHeaderItem;
-import org.apache.wicket.request.handler.resource.ResourceStreamRequestHandler;
-import org.apache.wicket.request.resource.ContentDisposition;
-import org.apache.wicket.request.resource.JavaScriptResourceReference;
-import org.apache.wicket.request.resource.ResourceReference;
-import org.apache.wicket.util.resource.IResourceStream;
-
-/**
- * see: <a href="https://cwiki.apache.org/confluence/display/WICKET/AJAX+update+and+file+download+in+one+blow">
- * https://cwiki.apache.org/confluence/display/WICKET/AJAX+update+and+file+download+in+one+blow</href>
- * 
- */
-public class AjaxDownload extends AbstractAjaxBehavior {
-	private static final long serialVersionUID = 1L;
-	private boolean addAntiCache;
-	private String fileName;
-	private IResourceStream resourceStream;
-	private final String iframeId;
-
-	public AjaxDownload() {
-		this(true);
-	}
-
-	public AjaxDownload(boolean addAntiCache) {
-		super();
-		this.addAntiCache = addAntiCache;
-		iframeId = String.format("download-iframe-%s", UUID.randomUUID().toString());
-	}
-
-	/**
-	 * Call this method to initiate the download.
-	 */
-	public void initiate(AjaxRequestTarget target) {
-		StringBuilder url = new StringBuilder(getCallbackUrl());
-
-		if (addAntiCache) {
-			url.append(url.indexOf("?") > -1 ? "&" : "?")
-				.append("antiCache=").append(System.currentTimeMillis());
-		}
-		target.appendJavaScript(String.format("$('#%s').attr('src', '%s');", iframeId, url.toString()));
-	}
-
-	@Override
-	protected void onBind() {
-		super.onBind();
-		// it is impossible to get page by id anyway
-		if (!(getComponent() instanceof Page)) {
-			getComponent().setOutputMarkupId(true);
-		}
-	}
-
-	private static ResourceReference newResourceReference() {
-		return new JavaScriptResourceReference(AjaxDownload.class, "ajax-download.js");
-	}
-
-	@Override
-	public void renderHead(Component component, IHeaderResponse response) {
-		super.renderHead(component, response);
-		response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forReference(newResourceReference())));
-		response.render(OnDomReadyHeaderItem.forScript(String.format("addDwnldIframe('%s', '%s');", component instanceof Page ? "" : component.getMarkupId(), iframeId)));
-	}
-
-	@Override
-	public void onRequest() {
-		ResourceStreamRequestHandler handler = new ResourceStreamRequestHandler(getResourceStream(), getFileName());
-		handler.setContentDisposition(getContentDisposition());
-		getComponent().getRequestCycle().scheduleRequestHandlerAfterCurrent(handler);
-	}
-
-	protected ContentDisposition getContentDisposition() {
-		return ContentDisposition.ATTACHMENT;
-	}
-	/**
-	 * Override this method for a file name which will let the browser prompt
-	 * with a save/open dialog.
-	 * 
-	 * @see ResourceStreamRequestTarget#getFileName()
-	 */
-	protected String getFileName() {
-		return this.fileName;
-	}
-
-	public void setFileName(String fileName) {
-		this.fileName = fileName;
-	}
-
-	/**
-	 * Hook method providing the actual resource stream.
-	 */
-	protected IResourceStream getResourceStream() {
-		return resourceStream;
-
-	}
-
-	public void setResourceStream(IResourceStream resourceStream) {
-		this.resourceStream = resourceStream;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/b9e43d7f/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/ajax-download.js
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/ajax-download.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/ajax-download.js
deleted file mode 100644
index ee23529..0000000
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/ajax-download.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License") +  you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-function addDwnldIframe(compId, id) {
-	compId = !!compId ? '#' + compId : 'body';
-	$(compId).append('<iframe id="' + id + '" style="display:none" src="about:blank"></iframe>');
-}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/b9e43d7f/openmeetings-web/src/main/webapp/css/activities.css
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/webapp/css/activities.css b/openmeetings-web/src/main/webapp/css/activities.css
new file mode 100644
index 0000000..2ef9187
--- /dev/null
+++ b/openmeetings-web/src/main/webapp/css/activities.css
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+#activities {
+	position: fixed;
+	z-index: 2000;
+	bottom: 0px;
+	left: 10px;
+	width: 600px;
+	height: 20px;
+}
+#activities .control.block .ui-icon {
+	text-align: center;
+}
+#activities .control.block .label {
+	display: inline-block;
+	padding-left: 20px;
+}
+#activities .area {
+	height: 319px;
+	overflow-y: auto;
+}
+.activity.item {
+	position: relative;
+	padding: 5px;
+	margin-bottom: 3px
+}
+.activity.item .ui-icon {
+	border-width: 1px;
+	border-style: solid;
+	margin-left: 2px;
+}
+.ui-icon.crosshair {
+	background-image: url(images/crosshair.png);
+}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/b9e43d7f/openmeetings-web/src/main/webapp/css/admin.css
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/webapp/css/admin.css b/openmeetings-web/src/main/webapp/css/admin.css
new file mode 100644
index 0000000..0f6bf70
--- /dev/null
+++ b/openmeetings-web/src/main/webapp/css/admin.css
@@ -0,0 +1,355 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+.adminPanel {
+	min-width: 1070px;
+}
+/*
+################################
+ Column layout admin section
+################################
+ */
+.adminPanelColumnTable {
+	display: inline-block;
+	vertical-align: top;
+}
+
+table.adminListTable {
+	max-width: 518px;
+	min-width: 518px;
+}
+
+table.adminListTable tr:nth-child(odd), table.adminListTableSmall tr:nth-child(odd) {
+	opacity: .8;
+}
+
+table.adminListTable tr:hover, table.adminListTableSmall tr:hover, tr.room-row:hover {
+	/*SHOULD BE MANUALLY IN SYNC WITH THEME .ui-state-hover */
+	border: 1px solid #74b2e2;
+	background: #e4f1fb;
+	font-weight: normal;
+	color: #0070a3;
+}
+
+table.adminListTable th.two_column_layout_column1 {
+	width: 136px;
+}
+
+table.adminListTable th.two_column_layout_column2 {
+	width: 354px;
+}
+
+table.adminListTable td.two_column_layout_column1 {
+	width: 136px;
+}
+
+table.adminListTable td.two_column_layout_column2 {
+	width: 354px;
+}
+
+table.adminListTable td div.two_column_layout_divcolumn1 {
+	word-wrap: break-word;
+	width: 136px;
+}
+
+table.adminListTable td div.two_column_layout_divcolumn2 {
+	word-wrap: break-word;
+	width: 354px;
+}
+
+table.adminListTable th.three_column_layout_column1 {
+	width: 96px;
+}
+
+table.adminListTable th.three_column_layout_column2 {
+	width: 150px;
+}
+
+table.adminListTable th.three_column_layout_column3 {
+	width: 244px;
+}
+
+.rooms table.adminListTable th.three_column_layout_column1 {
+	width: 46px;
+}
+
+.rooms table.adminListTable th.three_column_layout_column2 {
+	width: 370px;
+}
+
+.rooms table.adminListTable th.three_column_layout_column3 {
+	width: 74px;
+}
+
+table.adminListTableSmall th.three_column_layout_column1 {
+	width: 50px;
+}
+
+table.adminListTableSmall th.three_column_layout_column2 {
+	width: 50px;
+}
+
+table.adminListTableSmall th.three_column_layout_column3 {
+	width: 218px;
+}
+table.adminListTableSmall th.three_column_layout_column4 {
+	width: 150px;
+}
+table.adminListTableSmall th.three_column_layout_column5 {
+	width: 50px;
+}
+
+table.adminListTable td.three_column_layout_column1 {
+	width: 96px;
+}
+
+table.adminListTable td.three_column_layout_column2 {
+	width: 150px;
+}
+
+table.adminListTable td.three_column_layout_column3 {
+	width: 244px;
+}
+
+table.adminListTableSmall td.three_column_layout_column1 {
+	width: 50px;
+}
+
+table.adminListTableSmall td.three_column_layout_column2 {
+	width: 50px;
+}
+
+table.adminListTableSmall td.three_column_layout_column3 {
+	width: 218px;
+}
+table.adminListTableSmall td.three_column_layout_column4 {
+	width: 150px;
+}
+table.adminListTableSmall td.three_column_layout_column5 {
+	width: 50px;
+}
+
+table.adminListTable td div.three_column_layout_divcolumn1 {
+	word-wrap: break-word;
+	width: 96px;
+}
+
+table.adminListTable td div.three_column_layout_divcolumn2 {
+	word-wrap: break-word;
+	width: 150px;
+}
+
+table.adminListTable td div.three_column_layout_divcolumn3 {
+	word-wrap: break-word;
+	width: 244px;
+}
+
+.rooms table.adminListTable td div.three_column_layout_divcolumn1 {
+	word-wrap: break-word;
+	width: 44px;
+}
+
+.rooms table.adminListTable td div.three_column_layout_divcolumn2 {
+	word-wrap: break-word;
+	width: 382px;
+}
+
+.rooms table.adminListTable td div.three_column_layout_divcolumn3 {
+	word-wrap: break-word;
+	width: 74px;
+}
+
+table.adminListTableSmall td div.three_column_layout_divcolumn1 {
+	width: 50px;
+}
+
+table.adminListTableSmall td div.three_column_layout_divcolumn2 {
+	width: 50px;
+}
+
+table.adminListTableSmall td div.three_column_layout_divcolumn3 {
+	width: 218px;
+}
+
+table.adminListTableSmall td div.three_column_layout_divcolumn4 {
+	width: 150px;
+}
+
+table.adminListTableSmall td div.three_column_layout_divcolumn5 {
+	width: 50px;
+}
+
+table.adminListTable th.four_column_layout_column1 {
+	width: 96px;
+}
+
+table.adminListTable th.four_column_layout_column2 {
+	width: 130px;
+}
+
+table.adminListTable th.four_column_layout_column3 {
+	width: 132px;
+}
+
+table.adminListTable th.four_column_layout_column4 {
+	width: 132px;
+}
+
+table.adminListTable td.four_column_layout_column1 {
+	width: 96px;
+}
+
+table.adminListTable td.four_column_layout_column2 {
+	width: 130px;
+}
+
+table.adminListTable td.four_column_layout_column3 {
+	width: 132px;
+}
+
+table.adminListTable td.four_column_layout_column4 {
+	width: 132px;
+}
+
+table.adminListTable td div.four_column_layout_divcolumn1 {
+	word-wrap: break-word;
+	width: 96px;
+}
+
+table.adminListTable td div.four_column_layout_divcolumn2 {
+	word-wrap: break-word;
+	width: 130px;
+}
+
+table.adminListTable td div.four_column_layout_divcolumn3 {
+	word-wrap: break-word;
+	width: 132px;
+}
+
+table.adminListTable td div.four_column_layout_divcolumn4 {
+	word-wrap: break-word;
+	width: 132px;
+}
+table.adminListTable .one_sixth {
+	width: 16.67%;
+}
+.adminPanelColumnForm {
+	display: inline-block;
+	vertical-align: top;
+	margin-top: 2px;
+}
+
+.adminPanelColumnForm div.scrollcontent {
+	vertical-align: top;
+	height: 500px;
+	overflow-y: scroll;
+}
+
+.adminForm {
+}
+.adminForm .btn {
+	width: 280px;
+}
+.adminForm .input, .adminForm input, .adminForm input.formcheckbox
+,.adminForm textarea, .adminForm select, .adminForm label
+ {
+	display: block;
+	float: left;
+	font-size: 14px;
+	padding: 0px 0px;
+	margin: 2px 2px;
+}
+.adminForm .input {
+	border: solid 1px #aacfe4;
+	width: 280px;
+	min-height: 20px;
+	white-space: initial;
+}
+.adminForm input {
+	border: solid 1px #aacfe4;
+	width: 280px;
+	height: 20px;
+}
+.adminForm input[type=checkbox], .adminForm input[type=radio] {
+	width: auto;
+}
+.adminForm input.formcheckbox {
+	border: none;
+	width: 20px;
+	height: 20px;
+}
+
+.adminForm fieldset {
+	margin-top: 4px;
+	padding: 4px;
+}
+
+.adminForm legend {
+	padding: 0.2em 0.5em;
+	margin: 0px 10px;
+	font-style: italic;
+	text-align: right;
+}
+
+.adminForm textarea {
+	border: solid 1px #aacfe4;
+	width: 280px;
+	height: 60px;
+}
+
+.adminForm div.formelement {
+	display: block;
+	clear: both;
+	max-width: 540px;
+	white-space: nowrap;
+}
+
+.adminForm select {
+	height: 20px;
+	border: solid 1px #aacfe4;
+	width: 282px;
+}
+
+.adminForm label {
+	font-weight: bold;
+	text-align: right;
+	width: 180px;
+	white-space: normal;
+}
+.adminForm .group.logo .profile img {
+	height: 16px;
+	width: auto;
+}
+.adminBackupForm div.formelement {
+	display: block;
+	clear: both;
+	max-width: 1240px;
+}
+.adminFormsFeedbackPanel {
+	position: fixed;
+	left:550px;
+	width: 480px;
+	bottom: 16px;
+	z-index:999;
+}
+.adminForm .newItem {
+	padding-left: 25px;
+	background-image: url(images/new.png);
+	background-repeat: no-repeat;
+	background-position: 5px;
+}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/b9e43d7f/openmeetings-web/src/main/webapp/css/general-rtl.css
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/webapp/css/general-rtl.css b/openmeetings-web/src/main/webapp/css/general-rtl.css
new file mode 100644
index 0000000..8eca0c8
--- /dev/null
+++ b/openmeetings-web/src/main/webapp/css/general-rtl.css
@@ -0,0 +1,98 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+#header {
+	padding-left: initial !important;
+	padding-right: 150px;
+	background-position: right center;
+}
+#topLinks {
+	right: initial !important;
+	left: 10px;
+}
+
+#topLinks span {
+	border-right: none !important;
+	border-left: 1px solid black;
+}
+
+#topLinks span:last-child {
+	border-left: none;
+}
+#busy-indicator {
+	right: initial !important;
+	left: 0 !important;
+}
+#chatPanel {
+	right: initial !important;
+	left: 10px;
+}
+.ui-tabs .ui-tabs-nav li {
+	float: right !important;
+}
+.info-text {
+	background-position: right top !important;
+	padding-left: initial !important;
+	padding-right: 20px;
+}
+.start_step1, .start_step2, .start_step3, .start_step4 {
+	padding-left: initial !important;
+	padding-right: 30px;
+	background-position: right top !important;
+}
+.start_step2 {
+	margin-left: initial !important;
+	margin-right: 20px !important;
+}
+.start_step3 {
+	margin-left: initial !important;
+	margin-right: 40px !important;
+}
+.start_step4 {
+	margin-left: initial !important;
+	margin-right: 60px !important;
+}
+form .input {
+	float: right !important;
+}
+#searchUsersTable th, .fht-table th {
+	text-align: right !important;
+}
+.ui-dialog .ui-dialog-title {
+	float: right !important;
+}
+.ui-dialog .ui-dialog-titlebar-close {
+	right: initial !important;
+	left: .3em;
+}
+.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
+	float: left !important;
+}
+
+/**** FIXME need to be moved to wicket-jquery-ui **************/
+span.css-emoticon {
+	transform: rotate(-90deg) !important;
+}
+.chat.dropdown-menu {
+	left: initial !important;
+	right: -50px !important;
+	float: right !important;
+}
+.adminForm label, .adminForm input, .adminForm select, .adminForm textarea {
+	float: right !important;
+}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/b9e43d7f/openmeetings-web/src/main/webapp/css/general.css
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/webapp/css/general.css b/openmeetings-web/src/main/webapp/css/general.css
new file mode 100644
index 0000000..ac9a3fc
--- /dev/null
+++ b/openmeetings-web/src/main/webapp/css/general.css
@@ -0,0 +1,606 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+html, body {
+	height: 100%;
+	margin: 0;
+	font-family: Arial, Helvetica, sans-serif;
+}
+* {
+	box-sizing: initial; /*reset bootstrap box sizing*/
+}
+#header {
+	font-size: 28px;
+	line-height: 40px;
+	font-weight: bold;
+	background-image: url(images/logo.png);
+	background-repeat: no-repeat;
+	padding-left: 80px;
+	margin-bottom: 10px;
+	margin-left: 20px;
+}
+#topLinks {
+	position: absolute;
+	top: 10px;
+	right: 10px;
+}
+
+#topLinks span {
+	padding-right: 5px;
+	padding-left: 5px;
+	border-right: 1px solid black;
+	white-space: nowrap;
+}
+
+#topLinks span:last-child {
+	border-right: none;
+}
+#busy-indicator {
+	display: none;
+	z-index: 1000;
+	width: 30px;
+	height: 30px;
+	border: 0;
+	position: absolute;
+	right: 0;
+	margin: 2px;
+	background-image: url(../images/ajax-loader.gif);
+	background-repeat: no-repeat;
+	background-size: 28px 28px;
+}
+.clickable {
+	cursor: pointer;
+}
+.dragbox-content .tableWrapper {
+	width: auto;
+	height: 100px;
+}
+.dragbox-content .tableWrapper .adminListTable {
+	max-width: none;
+	min-width: 0;
+}
+.help.support h3 {
+	margin-bottom: 5px;
+}
+.tableWrapper, .tableWrapperSmall {
+	background-color: #FFFFFF;
+	border: solid 1px #aacfe4;
+	width: 536px;
+	height: 100px;
+	overflow-y: scroll;
+}
+.tableWrapper {
+	height: 500px;
+}
+
+.formelementradiobox {
+	margin-left: 100px;
+}
+
+.formelementradiobox input {
+	margin: 0px 0px;
+	border: none;
+	width: 20px;
+}
+
+.formelementradiobox label {
+	width: 260px;
+	margin: 0px
+}
+
+.addLanguagePanel {
+	display: inline-block;
+}
+
+.addLanguagePanel select {
+	padding: 0px 0px;
+	border: solid 1px #aacfe4;
+	width: 140px;
+	font-size: 12px;
+	margin-left: 2px;
+}
+
+.pagedEntityListPanel {
+	margin-left: 2px;
+	display: inline-block;
+}
+
+.searchForm {
+	display: inline-block;
+	vertical-align: top;
+}
+.searchForm input[type="button"] {
+	padding: .2em .5em;
+	font-size: smaller;
+}
+.pagedEntityListPanel select, .adminForm .pagedEntityListPanel select {
+	padding: 0px 0px;
+	border: solid 1px #aacfe4;
+	width: 60px;
+	font-size: 12px;
+	display: inline;
+	float: none;
+}
+.searchForm input[type="text"], .adminForm .searchForm input[type="text"] {
+	width: 140px;
+	float: none;
+	display: inline-block;
+}
+.searchForm input[type="submit"], .adminForm .searchForm input[type="submit"] {
+	width: auto;
+	float: none;
+	display: inline-block;
+	border: 2px outset buttonface;
+	padding: 1px 6px;
+	font-size: 12px;
+}
+.pagedEntityListPanel input, .adminForm .pagedEntityListPanel input {
+	font-size: 14px;
+	padding: 0px 0px;
+	border: solid 1px #aacfe4;
+	width: 100px;
+	height: 20px;
+	margin: 2px 2px;
+	display: inline;
+	float: none;
+}
+
+.goto, .goto :link, .goto :hover {
+	font-size: 14px;
+	line-height: 14px;
+	text-decoration: none;
+	text-align: center;
+	vertical-align: middle;
+	min-width: 16px;
+}
+
+.goto.icon {
+	display: inline-block;
+	width: 16px;
+	height: 16px;
+	border: none;
+	margin: 0px;
+	padding: 0px;
+	zoom: 1.2;
+}
+
+.ui-dialog {
+	-moz-box-shadow: 3px 3px 4px #000;
+	-webkit-box-shadow: 3px 3px 4px #000;
+	/* For IE 8 */
+	-ms-filter:
+		"progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=135, Color='#000000')";
+	/* For IE 5.5 - 7 */
+	filter: progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=135,
+		Color='#000000' );
+	box-shadow: 3px 3px 4px #000;
+}
+.sort-icon, .sort-icon a {
+	display: inline-block !important;
+	text-indent: 0px !important;
+}
+.sort-icon a {
+	width: inherit;
+	height: inherit;
+}	
+.start_step1, .start_step2, .start_step3, .start_step4 {
+	padding-left: 30px;
+	background-position: left top;
+	margin: 5px 0px 5px 0px; 
+	background-size: contain;
+	background-repeat: no-repeat;
+	display: inline-block;
+}
+.start_step1 {
+	background-image: url(images/wizzard_button_1.png);
+}
+.start_step2 {
+	background-image: url(images/wizzard_button_2.png);
+	margin-left: 20px;
+}
+.start_step3 {
+	background-image: url(images/wizzard_button_3.png);
+	margin-left: 40px;
+}
+.start_step4 {
+	background-image: url(images/wizzard_button_4.png);
+	margin-left: 60px;
+}
+.widget {
+	width: 100%;
+}
+.widget td {
+	min-width: 150px;
+}
+#contents {
+}
+#contents .dragbox-content {
+}
+#feedcontainer {
+	overflow: auto;
+}
+#feeds.ui-accordion .ui-accordion-header {
+	margin-bottom: 2px;
+}
+.recording .video .player {
+	width: 100%;
+	display: inline-block;
+	box-shadow: 0 0 10px 1px rgba(74, 137, 151, 0.5);
+}
+.recording .video .player video {
+	width: 100%;
+}
+.align-left {
+	float: left;
+}
+.align-right {
+	float: right;
+}
+.clear {
+	clear: both;
+}
+.om-icon {
+	background-repeat: no-repeat !important;
+	background-position: 0 0 !important;
+	background-size: 16px;
+	width: 18px;
+	height: 18px;
+	border: none;
+	margin-left: 2px;
+	margin-top: 2px;
+	display: inline-block !important;
+}
+.om-icon.big {
+	background-size: 32px;
+	background-position: 1px 1px !important;
+	width: 34px;
+	height: 34px;
+}
+.cross.om-icon {
+	background-image: url(images/cross.png);
+}
+.tick.om-icon {
+	background-image: url(images/tick.png);
+}
+.add.om-icon {
+	background-image: url(images/add.png);
+}
+.new-email.om-icon {
+	background-image: url(images/email_add.png);
+}
+.user.om-icon {
+	background-image: url(images/user.png);
+}
+.invite.om-icon {
+	background-image: url(images/connect.png);
+}
+.online.om-icon {
+	background-image: url(images/bullet_green.png);
+}
+.offline.om-icon {
+	background-image: url(images/bullet_red.png);
+}
+.signin .error .k-notification-wrap, .adminPanel .k-notification-wrap {
+	white-space: normal;
+}
+.error {
+	color: red;
+}
+.message {
+	margin: 50px;
+	border: 1px solid black;
+	padding: 15px;
+	-webkit-border-radius: 8px;
+	border-radius: 8px;
+}
+.ui-progressbar div { 
+	text-align: center;
+	padding-top: 7px;
+	font-weight: bold;
+}
+table.messages {
+	width: 100%;
+	min-height: 500px;
+}
+table.messages td.side, table.messages td.main {
+	vertical-align: top;
+}
+table.messages td.side.left {
+	min-width: 150px;
+	overflow-x: hidden;
+}
+table.messages td.side.right {
+	min-width: 200px;
+	overflow-x: hidden;
+}
+table.messages td.main {
+	width: 100%;
+}
+.email {
+	padding-left: 25px;
+	background-repeat: no-repeat !important;
+	background-position: 5px 3px !important;
+	background-size: 16px 16px !important;
+	padding-top: 2px;
+	display: block;
+	text-align:left;
+}
+.email.new {
+	background-image: url(images/email_add.png);
+	font-weight: normal;
+}
+.email.new .ui-button-text, .email.newdir .ui-button-text {
+	padding: 0;
+}
+.email.inbox {
+	background-image: url(images/basket_put.png);
+}
+.email.sent {
+	background-image: url(images/email_go.png);
+}
+.email.trash {
+	background-image: url(images/email_delete.png);
+}
+.email.newdir {
+	background-image: url(images/folder_add.png);
+	font-weight: normal;
+}
+.email.folder {
+	background-image: url(images/folder.png);
+	font-weight: normal;
+	position: relative;
+}
+.email.folder .delete {
+	position:absolute;
+	right: 2px;
+	top: 2px;
+	background-image: url(images/cross.png);
+	font-weight: normal;
+	padding: 0;
+	display: inline-block;
+	background-position: 0;
+	width: 18px;
+	height: 18px;
+}
+.messages.column.label {
+	width: 20px;
+	min-height: inherit;
+}
+input[type="text"].messages.text {
+	width: 100%;
+}
+textarea.messages.body {
+	width: 100%;
+	height: 300px;
+}
+select.messages.selector {
+	width: 220px;
+}
+.info-text {
+	background-image: url(images/information.png);
+	background-repeat: no-repeat;
+	background-position: left top;
+	cursor: default;
+	border: none;
+	padding-left: 20px;
+	font-style: italic;
+	white-space: normal;
+}
+.info-title {
+	background-image: url(images/information.png);
+	background-repeat: no-repeat;
+	width: 16px;
+	height: 16px;
+	display: inline-block;
+	margin-left: 10px;
+}
+.invisible-form-component {
+	position: absolute;
+	top: -9999px;
+	width: 1px;
+	height: 1px;
+}
+#messagesTable tr.selected {
+	background-color: #d7ebf9;
+}
+#messagesTable tr.unread {
+	font-weight: bold;
+}
+.fht-tbody {
+	background-color: white;
+}
+#searchUsersTable th, .fht-table th {
+	font-weight: bold !important;
+	text-align: left;
+}
+#ui-datepicker-div {
+	z-index: 100 !important;
+}
+.room-list {
+	border-collapse: collapse;
+}
+.room-row {
+	background-color: rgb(248, 248, 248);
+	border-bottom: 5px solid white;
+}
+.select2-results .user.external, .select2-selection .user.external
+, .select2-results .user.internal, .select2-selection .user.internal {
+	padding-left: 18px;
+	background-repeat: no-repeat;
+	background-position: 0px 2px;
+}
+.select2-results .user.external, .select2-selection .user.external {
+	background-image: url(images/user_go.png);
+}
+.select2-results .user.internal, .select2-selection .user.internal {
+	background-image: url(images/user.png);
+}
+.om-select2 .select2.select2-container {
+	max-height: 80px;
+	overflow-y: auto;
+}
+.om-select2.full-width .select2.select2-container {
+	width: 100% !important;
+}
+.page.recording {
+	padding-top: 40px;
+}
+.page.recording .video, .page.recording .info {
+	display: inline-block;
+	float: left;
+	padding-left: 20px;
+}
+.page.recording .video {
+	min-width: 400px;
+}
+.rooms.title {
+	font-weight: bold;
+	padding: 10px;
+	padding-bottom: 0;
+}
+.rooms.desc {
+	margin: 10px;
+	max-width: 900px;
+}
+.user.info.panel legend {
+	font-style: italic;
+	text-align: right;
+}
+.user.info.panel fieldset table, .user.info.panel fieldset table textarea {
+	width: 100%;
+}
+#topControls #wicketDebugBar {
+	right: initial;
+	top: initial;
+	z-index: 2;
+	bottom: 0;
+	position: fixed;
+}
+form .input {
+	display: block;
+	float: left;
+	font-size: 14px;
+	padding: 0px 0px;
+	width: 280px;
+	margin: 2px 2px;
+}
+.profile img {
+	width: 125px;
+}
+.date.time.picker {
+	font-size: 12px;
+	white-space: nowrap;
+}
+.profile .ui-button-text-only .ui-button-text {
+	font-size: 12px;
+	padding-right: 0.2em;
+	padding-left: 0.2em;
+}
+#contents .btn-file>input {
+	transform: translate(-30px, 0) scale(1);
+}
+.room.list.container {
+	height: 150px;
+	max-height: 150px;
+	overflow-y: auto;
+	border: 1px solid #cccccc;
+}
+.no-close .ui-dialog-titlebar-close {
+	display: none;
+}
+.table {
+	position: relative;
+}
+.table .column {
+	display: inline-block;
+	margin-bottom: 5px;
+	min-height: initial;
+	float: none;
+	margin-right: 0;
+}
+.table .column.label {
+	width: 20%;
+}
+.table .column.data {
+	width: 75%;
+	vertical-align: middle;
+}
+ /**** FIXME TODO need to be unified with other icons used ****/
+div.formSaveBar {
+	height: 22px;
+}
+.addButton, .delButton {
+	display: inline-block;
+	cursor: pointer;
+	width: 18px;
+	height: 18px;
+	border: none;
+	margin-left: 2px;
+	margin-top: 2px;
+	vertical-align: super;
+}
+div.formSaveButton input {
+	background: url(images/disk.png) no-repeat;
+	float: left;
+	cursor: pointer;
+	width: 18px;
+	height: 18px;
+	border: none;
+	margin-left: 2px;
+	margin-top: 2px;
+}
+.addButton {
+	background: url(images/plus_icon.png) no-repeat;
+}
+.delButton {
+	background: url(images/cancel_icon.png) no-repeat;
+}
+.formNewButton {
+	background: url(images/plus_icon.png) no-repeat;
+	float: left;
+	cursor: pointer;
+	width: 18px;
+	height: 18px;
+	border: none;
+	margin-left: 2px;
+	margin-top: 2px;
+}
+.formNewButton.disabled {
+	background: url(images/plus_icon_disabled.png) no-repeat;
+}
+div.formRefreshButton input {
+	background: url(images/arrow_refresh_small.png) no-repeat;
+	float: left;
+	cursor: pointer;
+	width: 18px;
+	height: 18px;
+	border: none;
+	margin-left: 2px;
+	margin-top: 2px;
+}
+.formCancelButton {
+	background: url(images/cancel_icon.png) no-repeat;
+	display: inline-block;
+	float: left;
+	cursor: pointer;
+	width: 18px;
+	height: 18px;
+	border: none;
+	margin-left: 2px;
+	margin-top: 2px;
+}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/b9e43d7f/openmeetings-web/src/main/webapp/css/room.css
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/webapp/css/room.css b/openmeetings-web/src/main/webapp/css/room.css
index 42ae447..b954ca1 100644
--- a/openmeetings-web/src/main/webapp/css/room.css
+++ b/openmeetings-web/src/main/webapp/css/room.css
@@ -390,138 +390,6 @@
 .room.sidebar.left .tab.om-icon.big.file {
 	background-image: url(images/folder_explore.png);
 }
-/******** Activities **********/
-#activities {
-	position: fixed;
-	z-index: 2000;
-	bottom: 0px;
-	left: 10px;
-	width: 600px;
-	height: 20px;
-}
-#activities .control.block .ui-icon {
-	text-align: center;
-}
-#activities .control.block .label {
-	display: inline-block;
-	padding-left: 20px;
-}
-#activities .area {
-	height: 319px;
-	overflow-y: auto;
-}
-.activity.item {
-	position: relative;
-	padding: 5px;
-	margin-bottom: 3px
-}
-.activity.item .ui-icon {
-	border-width: 1px;
-	border-style: solid;
-	margin-left: 2px;
-}
-.ui-icon.crosshair {
-	background-image: url(images/crosshair.png);
-}
-/************ WB **************/
-.wb-settings {
-	position: absolute;
-}
-.wb-settings, .wb-settings .tab.props {
-	display: inline-block;
-	width: 310px;
-}
-.wb-settings .ui-dialog-titlebar-close {
-	position: absolute;
-	right: .3em;
-	top: 5px;
-	width: 20px;
-	padding: 1px;
-	height: 20px;
-}
-.wb-settings .header {
-	padding: 5px;
-}
-.wb-settings .header .ui-dialog-title {
-	padding-left: 10px;
-}
-.wb-settings .tab.props {
-	padding: 5px 10px;
-}
-.wb-settings .tab.props .prop-row {
-	padding-top: 5px;
-	margin: 0;
-	font-size: small;
-}
-.wb-settings .tab.props .block {
-	display: inline;
-	padding-left: 5px;
-}
-.wb-settings .tab.props .block.lbl {
-	width: 1em;
-}
-.wb-settings .tab.props .block.but {
-	width: 2.5em;
-}
-.wb-settings .tab.props .block.input {
-	width: 40px;
-}
-.wb-settings .tab.props .block.input input {
-	width: 30px;
-}
-.wb-settings .tab.props .block.input input[type=number] {
-	width: 40px;
-}
-.wb-settings .tab.props .block.input input[type=color] {
-	padding: 0;
-}
-.wb-settings .tab.props .block.input input[type=color]:disabled {
-	opacity:.3;
-}
-.wb-settings .tab.props .block.but button {
-	width: 2.5em;
-}
-.wb-settings .tab.props  .wb-prop-i.selected {
-	font-style: italic;
-}
-.wb-settings .tab.props .wb-prop-b.selected {
-	font-weight: bold;
-}
-.dropdown-menu.om-left {
-	right: 0;
-	left: auto !important;
-}
-.wb-tabbar {
-	padding-left: 70px !important;
-	padding-right: 35px !important;
-}
-.wb-tabbar .scroll-container {
-	overflow: hidden;
-}
-.wb-tabbar .scroll-container .scrollable, .wb-tabbar .scroll-container .scrollable li {
-	display: flex;
-}
-.wb-tabbar .add.disabled, .wb-tabbar .prev.disabled, .wb-tabbar .next.disabled {
-	opacity: .3;
-}
-.wb-tabbar .add, .wb-tabbar .prev, .wb-tabbar .next {
-	position: absolute;
-	top: 3px;
-}
-.wb-tabbar .add {
-	left: 2px;
-}
-.wb-tabbar .prev {
-	left: 35px;
-}
-.wb-tabbar .next {
-	right: 2px;
-}
-.wb-tabbar li button {
-	width: 20px;
-	height: 20px;
-	padding: 0;
-}
 @media screen and (max-width: 1280px) {
 	.room.sidebar.left {
 		width: 150px;

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/b9e43d7f/openmeetings-web/src/main/webapp/css/theme-rtl.css
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/webapp/css/theme-rtl.css b/openmeetings-web/src/main/webapp/css/theme-rtl.css
deleted file mode 100644
index 8eca0c8..0000000
--- a/openmeetings-web/src/main/webapp/css/theme-rtl.css
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License") +  you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#header {
-	padding-left: initial !important;
-	padding-right: 150px;
-	background-position: right center;
-}
-#topLinks {
-	right: initial !important;
-	left: 10px;
-}
-
-#topLinks span {
-	border-right: none !important;
-	border-left: 1px solid black;
-}
-
-#topLinks span:last-child {
-	border-left: none;
-}
-#busy-indicator {
-	right: initial !important;
-	left: 0 !important;
-}
-#chatPanel {
-	right: initial !important;
-	left: 10px;
-}
-.ui-tabs .ui-tabs-nav li {
-	float: right !important;
-}
-.info-text {
-	background-position: right top !important;
-	padding-left: initial !important;
-	padding-right: 20px;
-}
-.start_step1, .start_step2, .start_step3, .start_step4 {
-	padding-left: initial !important;
-	padding-right: 30px;
-	background-position: right top !important;
-}
-.start_step2 {
-	margin-left: initial !important;
-	margin-right: 20px !important;
-}
-.start_step3 {
-	margin-left: initial !important;
-	margin-right: 40px !important;
-}
-.start_step4 {
-	margin-left: initial !important;
-	margin-right: 60px !important;
-}
-form .input {
-	float: right !important;
-}
-#searchUsersTable th, .fht-table th {
-	text-align: right !important;
-}
-.ui-dialog .ui-dialog-title {
-	float: right !important;
-}
-.ui-dialog .ui-dialog-titlebar-close {
-	right: initial !important;
-	left: .3em;
-}
-.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
-	float: left !important;
-}
-
-/**** FIXME need to be moved to wicket-jquery-ui **************/
-span.css-emoticon {
-	transform: rotate(-90deg) !important;
-}
-.chat.dropdown-menu {
-	left: initial !important;
-	right: -50px !important;
-	float: right !important;
-}
-.adminForm label, .adminForm input, .adminForm select, .adminForm textarea {
-	float: right !important;
-}